NetBSD Problem Report #39528

From tsutsui@ceres.dti.ne.jp  Sat Sep 13 02:02:11 2008
Return-Path: <tsutsui@ceres.dti.ne.jp>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by narn.NetBSD.org (Postfix) with ESMTP id 3931C63B11D
	for <gnats-bugs@gnats.NetBSD.org>; Sat, 13 Sep 2008 02:02:11 +0000 (UTC)
Message-Id: <200809130202.m8D227Tm025546@mirage.ceres.dti.ne.jp>
Date: Sat, 13 Sep 2008 11:02:07 +0900 (JST)
From: tsutsui@ceres.dti.ne.jp
Reply-To: tsutsui@ceres.dti.ne.jp
To: gnats-bugs@gnats.NetBSD.org
Cc: tsutsui@ceres.dti.ne.jp
Subject: src/tools/file fails to install due to permission problem
X-Send-Pr-Version: 3.95

>Number:         39528
>Category:       toolchain
>Synopsis:       src/tools/file fails to install due to permission problem
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    toolchain-manager
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Sep 13 02:05:00 +0000 2008
>Closed-Date:    Sun Oct 12 03:48:30 +0000 2008
>Last-Modified:  Sun Oct 12 03:48:30 +0000 2008
>Originator:     Izumi Tsutsui
>Release:        NetBSD 4.99.72
>Organization:
>Environment:
System: NetBSD 4.99.72 from NetBSD-daily/HEAD/200809120002Z
Architecture: i386
Machine: i386
>Description:
On build.sh tools, "make install" in src/tools/files invokes
"src/dist/file/install-sh" script directly for "MKDIR_P"
(at least on NetBSD/i386 4.99.72 host).

But source sets in the [RELEASE]/source/sets directory
(which are created by src/distrib/sets/makesrcsets)
don't preserve executable bits in archives, so
the installation fails due to "permission denied."

>How-To-Repeat:

% ftp ftp://ftp.NetBSD.org/pub/NetBSD-daily/HEAD/200809100002Z/source/sets/gnusrc.tgz
% ftp ftp://ftp.NetBSD.org/pub/NetBSD-daily/HEAD/200809100002Z/source/sets/sharesrc.tgz
% ftp ftp://ftp.NetBSD.org/pub/NetBSD-daily/HEAD/200809100002Z/source/sets/src.tgz
% ftp ftp://ftp.NetBSD.org/pub/NetBSD-daily/HEAD/200809100002Z/source/sets/syssrc.tgz
% tar -ztvf src.tgz usr/src/dist/file/src/install-sh
-rw-rw-r--  1 root     wsrc       13184 Sep  2 23:06 usr/src/dist/file/install-sh
tar: ustar vol 1, 66297 files, 296919040 bytes read, 0 bytes written in 3 secs (98973013 bytes/sec)
% tar -zxpf gnusrc.tgz
% tar -zxpf sharesrc.tgz
% tar -zxpf src.tgz
% tar -zxpf syssrc.tgz
% ls -l usr/src/dist/file/install-sh
-rw-rw-r--  1 tsutsui  tsutsui  13184 Sep  2 23:06 usr/src/dist/file/install-sh
% (cd usr/src; sh build.sh -m cobalt -u -U -T tooldir -D destdir -V OBJMACHINE=1 tools)

 :

install ===> db
%   install  /home/tsutsui/cobalt/usr/src/tooldir/bin/nbdb
mkdir -p /home/tsutsui/cobalt/usr/src/tooldir/bin
/home/tsutsui/cobalt/usr/src/tooldir/bin/mipsel--netbsd-install -c -p -r -m 555 db /home/tsutsui/cobalt/usr/src/tooldir/bin/nbdb
install ===> file
Making install in src
test -z "/home/tsutsui/cobalt/usr/src/tooldir/lib" || /home/tsutsui/cobalt/usr/src/tools/file/../../dist/file/install-sh -c -d "/home/tsutsui/cobalt/usr/src/tooldir/lib"
sh: /home/tsutsui/cobalt/usr/src/tools/file/../../dist/file/install-sh: permission denied

*** Failed target:  install-libLTLIBRARIES


>Fix:
I'm not sure if it's autoconf(1) problem or not, but there are
two possible workaround:

1) fix src/distrib/sets/makesrctars to preserve executable bits
   for shell script files

2) fix src/dist/file/configure to call install-sh srcipt via $(SHELL)

Index: dist/file/configure
===================================================================
RCS file: /cvsroot/src/dist/file/configure,v
retrieving revision 1.19
diff -u -r1.19 configure
--- dist/file/configure	30 Aug 2008 12:16:51 -0000	1.19
+++ dist/file/configure	13 Sep 2008 01:38:54 -0000
@@ -2159,7 +2159,7 @@
     # break other packages using the cache if that directory is
     # removed, or if the value is a relative name.
     test -d ./--version && rmdir ./--version
-    MKDIR_P="$ac_install_sh -d"
+    MKDIR_P="\$(SHELL) $ac_install_sh -d"
   fi
 fi
 { echo "$as_me:$LINENO: result: $MKDIR_P" >&5

---
Izumi Tsutsui

>Release-Note:

>Audit-Trail:
From: Izumi Tsutsui <tsutsui@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/39528 CVS commit: src/dist/file
Date: Sun, 12 Oct 2008 02:56:24 +0000 (UTC)

 Module Name:	src
 Committed By:	tsutsui
 Date:		Sun Oct 12 02:56:24 UTC 2008

 Modified Files:
 	src/dist/file: configure

 Log Message:
 Put a workaround for PR toolchain/39528:
 Adjust a definition of MKDIR_P to invoke $ac_install_sh script
 via $(SHELL) so that it will work even if executable bits are not
 preserved in the source archives.

 No objection on tech-toolchain.


 To generate a diff of this commit:
 cvs rdiff -r1.19 -r1.20 src/dist/file/configure

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: tsutsui@NetBSD.org
State-Changed-When: Sun, 12 Oct 2008 12:48:30 +0900
State-Changed-Why:
Workarounded.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.