rumpkernel / buildrump.sh

Utilities for building rump kernels
Other
116 stars 50 forks source link

Permissions issue when running buildrump.sh clean checkout #77

Open gaffo opened 8 years ago

gaffo commented 8 years ago

SHA: 760c6a948ef358adb7ec5a03843f9ee9d310fd2a

./buildrump.sh on a ubuntu server 14.04 virt

trucated

echo '# ' "install " /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_server.1; echo "/home/vagrant/ws-uk/rumprun/buildrump.sh/obj/tooldir/bin/x86_64--netbsd-install -U -l h -r -o root -g wheel -m 444 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_allserver.1 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_server.1" && /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/tooldir/bin/x86_64--netbsd-install -U -l h -r -o root -g wheel -m 444 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_allserver.1 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_server.1

install /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_server.1

/home/vagrant/ws-uk/rumprun/buildrump.sh/obj/tooldir/bin/x86_64--netbsd-install -U -l h -r -o root -g wheel -m 444 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_allserver.1 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_server.1 --- /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0 --- echo '# ' "install " /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0; echo "/home/vagrant/ws-uk/rumprun/buildrump.sh/obj/tooldir/bin/x86_64--netbsd-install -U -l h -r -o root -g wheel -m 444 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_allserver.0 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0" && /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/tooldir/bin/x86_64--netbsd-install -U -l h -r -o root -g wheel -m 444 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_allserver.0 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0

install /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0

/home/vagrant/ws-uk/rumprun/buildrump.sh/obj/tooldir/bin/x86_64--netbsd-install -U -l h -r -o root -g wheel -m 444 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_allserver.0 /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0 --- /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_server.1 --- x86_64--netbsd-install: link /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_allserver.1 -> /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_server.1: Operation not permitted *\ [/home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/man1/rump_server.1] Error code 1

nbmake[1]: stopped in /home/vagrant/ws-uk/rumprun/buildrump.sh/src/usr.bin/rump_allserver --- /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0 --- x86_64--netbsd-install: link /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_allserver.0 -> /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0: Operation not permitted *\ [/home/vagrant/ws-uk/rumprun/buildrump.sh/obj/dest.stage/usr/share/man/cat1/rump_server.0] Error code 1

nbmake[1]: stopped in /home/vagrant/ws-uk/rumprun/buildrump.sh/src/usr.bin/rump_allserver 2 errors

nbmake[1]: stopped in /home/vagrant/ws-uk/rumprun/buildrump.sh/src/usr.bin/rump_allserver *\ [install-/home/vagrant/ws-uk/rumprun/buildrump.sh/src/usr.bin/rump_allserver] Error code 2

nbmake: stopped in /home/vagrant/ws-uk/rumprun/buildrump.sh/src 1 error

nbmake: stopped in /home/vagrant/ws-uk/rumprun/buildrump.sh/src

ERROR: make /home/vagrant/ws-uk/rumprun/buildrump.sh/obj/Makefile.utils install

anttikantee commented 8 years ago

Well that should not happen, but it's hard to know what exactly goes wrong without being able to repeat the problem. Can you poke around a bit to see what the relevant directory/file owner/group and modes are?

anttikantee commented 8 years ago

So the problem (per investigation on irc) is that the file system does not support hard links, which results in link() returning EPERM.

tobyjaffey commented 8 years ago

I had this same problem, trying to build on vagrant (on the vboxsf filesystem). The easiest solution is just not to build on vboxsf.

You can workaround with ./buildroot -o /tmp/rump, but buildnb.sh will suffer from the same problem also.

The netbsd docs do say that the filesystem on the build host must support hard links. https://www.netbsd.org/docs/guide/en/chap-build.html#chap-build-make-variables

One way to alter the behaviour would be to change src-netbsd/share/mk/bsd.own.mk

INSTALL_LINK?= ${INSTALL} ${INSTPRIV} ${HRDLINK} ${RENAME}

to

INSTALL_LINK?= ${INSTALL} ${INSTPRIV} ${SYMLINK} ${RENAME}

anttikantee commented 8 years ago

I think you should just be able to run buildrump.sh (I assume that's what you mean by buildroot) as:

./buildrump.sh -V 'INSTALL_LINK=${INSTALL_SYMLINK}'

If that helps, maybe you can make buildrump.sh autodetect it, and that will fix the issue for buildnb.sh too (by which I assume you mean the rumpctrl build script).