Open gaffo opened 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?
So the problem (per investigation on irc) is that the file system does not support hard links, which results in link()
returning EPERM
.
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}
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).
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