NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

toolchain/39528: src/tools/file fails to install due to permission problem



>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:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Sep 13 02:05:00 +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



Home | Main Index | Thread Index | Old Index