NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
toolchain/38487: [dM] install breaks on RO build tree
>Number: 38487
>Category: toolchain
>Synopsis: build.sh install breaks if -D and -O dirs are RO
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: toolchain-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Apr 23 08:20:00 +0000 2008
>Originator: der Mouse
>Release: NetBSD 4.0
>Organization:
Dis-
>Environment:
System: NetBSD/i386 3.0
Architecture: i386
Machine: i386
>Description:
On a 3.0 i386 machine, I did a build of the 4.0 world using
build.sh's build operation (with -U). This worked fine.
Later, I had the machine up single-user, with the filesystem
containing the source, objdir, and destdir trees mounted
read-only, and I tried to install the resulting 4.0 onto a
secondary disk with build.sh's install operation. This attempt
broke because it tried to write into the objdir. See the
how-to-repeat section for full details. Mail to tech-toolchain
provoked a recommendation I send-pr; I hope my classification
of the PR is appropriate.
>How-To-Repeat:
I built the 4.0 tree with
./build.sh -D /usr/local/4.0/build/DESTDIR -O
/usr/local/4.0/build/OBJDIR -U build
in /usr/local/4.0/src, where I had the 4.0 source tree (yes, I
made sure the -D and -O directories existed beforehand), and
attempted to install with
./build.sh -V USETOOLS=never -V
TOOLDIR=/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386 -D
/usr/local/4.0/build/DESTDIR -O /usr/local/4.0/build/OBJDIR -U install=/mnt
(/usr/local was a RO mount at install time). Each of these was
done under 3.0 kernel+userland. The build was done as a
nonprivileged user, the install attempt as root while booted
single-user. The errors from the install attempt:
| ===> build.sh command: ./build.sh -V USETOOLS=never -V
TOOLDIR=/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386 -D
/usr/local/4.0/build/DESTDIR -O /usr/local/4.0/build/OBJDIR -U install=/mnt
| ===> build.sh started: Tue Apr 22 15:33:17 EDT 2008
| ===> NetBSD version: 4.0
| ===> MACHINE: i386
| ===> MACHINE_ARCH: i386
| ===> Build platform: NetBSD 3.0 i386
| ===> HOST_SH: /bin/sh
| ===> TOOLDIR path:
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386
| ===> DESTDIR path: /usr/local/4.0/build/DESTDIR
| ===> RELEASEDIR path: /usr/local/4.0/build/OBJDIR/releasedir
| rm:
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: Read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| eval: cannot create
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: read-only
file system
| chmod:
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386: Read-only
file system
| ===> makewrapper:
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386
| ===> Updated
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386
| installsets ===> distrib/sets (with: INSTALLDIR=/mnt INSTALLSETS=)
| ( cat /usr/local/4.0/src/etc/mtree/NetBSD.dist ; echo '/unset all' ;
cat /usr/local/4.0/build/DESTDIR/METALOG ) |
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmtree -C -k all -N
/usr/local/4.0/src/etc > /usr/local/4.0/build/DESTDIR/METALOG.new && ( rm -f
/usr/local/4.0/build/DESTDIR/METALOG ; mv
/usr/local/4.0/build/DESTDIR/METALOG.new /usr/local/4.0/build/DESTDIR/METALOG )
| cannot create /usr/local/4.0/build/DESTDIR/METALOG.new: read-only
file system
|
| *** Failed target: /usr/local/4.0/build/DESTDIR/METALOG.sanitised
| *** Failed command: ( cat /usr/local/4.0/src/etc/mtree/NetBSD.dist ;
echo '/unset all' ; cat /usr/local/4.0/build/DESTDIR/METALOG ) |
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmtree -C -k all -N
/usr/local/4.0/src/etc > /usr/local/4.0/build/DESTDIR/METALOG.new && ( rm -f
/usr/local/4.0/build/DESTDIR/METALOG ; mv
/usr/local/4.0/build/DESTDIR/METALOG.new /usr/local/4.0/build/DESTDIR/METALOG )
| *** Error code 2
|
| Stop.
| nbmake: stopped in /usr/local/4.0/src/distrib/sets
|
| *** Failed target: installworld
| *** Failed command: _makedirtarget() { dir="$1"; shift; target="$1";
shift; case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) this="";
real="/usr/local/4.0/src" ;; *) this="${dir}/";
real="/usr/local/4.0/src/${dir}" ;; esac; show=${this:-.}; echo "${target} ===>
${show%/}${1:+ (with: $@)}"; cd "${real}" &&
/usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake
_THISDIR_="${this}" "$@" ${target}; }; _makedirtarget distrib/sets installsets
INSTALLDIR=/mnt INSTALLSETS=
| *** Error code 1
|
| Stop.
| nbmake: stopped in /usr/local/4.0/src
|
| ERROR: Failed to make installworld to /mnt
| *** BUILD ABORTED ***
While composing this PR, I tried another install attempt, this
time with the filesystem that was /usr/local in the above
mounted (read-only) on /mnt and a different install-to
directory, with the build.sh command-line updated to match:
./build.sh -V USETOOLS=never -V
TOOLDIR=/mnt/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386 -D /mnt/4.0/build/DESTDIR
-O /mnt/4.0/build/OBJDIR -U install=/extra/mouse/tmp
This failed in basically the same way, except it didn't produce
as much output, ending with
| ===> makewrapper:
/mnt/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386
| ===> Updated
/mnt/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake-i386
| exec: /usr/local/4.0/build/OBJDIR/tooldir.NetBSD-3.0-i386/bin/nbmake:
not found
|
| ERROR: Failed to make installworld to /extra/mouse/tmp
| *** BUILD ABORTED ***
Presumably the /usr/local/4.0/... path was compiled into
something - which is another, related, problem, it seems to me.
If I've left out anything important, just let me know.
>Fix:
Unknown.
Home |
Main Index |
Thread Index |
Old Index