Hi. I am trying to compile ports in a sandbox environment on FreeBSD-9.1-RELEASE using a snapshot of ports from 06/27/2013.
I have a jail file system I setup using my own scripts that I am pointing $DESTDIR to. I am using 'zip' as the port for testing. The problem is, I get an error like this and it immediately aborts. cd: /tmp/mountpoint.TJizHb/data/freebsd/ports/ports-20130627/archivers/zip: No such file or directory Below is the output with DESTDIR debugging turned on. ________________________________________________ # realpath . /data/freebsd/ports/ports-20130627/archivers/zip # make DESTDIR=/data/freebsd/ports/jail WITH_DESTDIR_DEBUG=1 ===> Creating some important subdirectories DEBUG: _DESTDIR_MOUNT_LIST= PORTSDIR:/usr/ports:___temp___ DISTDIR:/usr/ports/distfiles:___temp___ DEBUG: Processing PORTSDIR:/usr/ports:___temp___ DEBUG: PORTSDIR:/data/freebsd/ports/ports-20130627:/data/freebsd/ports/jail/___temp___ DEBUG: Creating temporary mount point DEBUG: Temporary mount point /data/freebsd/ports/jail/tmp/mountpoint.TJizHb created successfully DEBUG: Directory /data/freebsd/ports/ports-20130627 mounted DEBUG: Processing DISTDIR:/usr/ports/distfiles:___temp___ DEBUG: DISTDIR:/data/freebsd/ports/distfiles:/data/freebsd/ports/jail/___temp___ DEBUG: Creating temporary mount point DEBUG: Temporary mount point /data/freebsd/ports/jail/tmp/mountpoint.ZxFnzJ created successfully DEBUG: Directory /data/freebsd/ports/distfiles mounted DEBUG: Handling devfs separately DEBUG: devfs mounted DEBUG: Things we mounted: /data/freebsd/ports/jail/dev /data/freebsd/ports/jail/tmp/mountpoint.ZxFnzJ /data/freebsd/ports/jail/tmp/mountpoint.TJizHb DEBUG: Things we created: /data/freebsd/ports/jail/tmp/mountpoint.ZxFnzJ /data/freebsd/ports/jail/tmp/mountpoint.TJizHb DEBUG: _var_path_list: PORTSDIR=/tmp/mountpoint.TJizHb DISTDIR=/tmp/mountpoint.ZxFnzJ DEVFS=/dev ===> Starting chrooted make in /data/freebsd/ports/jail... cd: /tmp/mountpoint.TJizHb/data/freebsd/ports/ports-20130627/archivers/zip: No such file or directory ===> Chrooted make in /data/freebsd/ports/jail failed ===> Cleaning up... *** [do-chroot] Error code 2 Stop in /data/freebsd/ports/ports-20130627/archivers/zip. ________________________________________________ Where it tries to cd to /tmp/mountpoint.TJizHb/data/freebsd/ports/ports-20130627/archivers/zip ---------------------------------- the underlined part should not be there. Ports is mounted directly on /tmp/mountpoint.TJizHb in the jail by the makefiles and I verified that /tmp/mountpoint.TJizHb/archivers/zip does exist at this point just prior to getting the 'cd' error and cleaning up, by stopping the makefile there and manually checking. Makefile code in ports ====================== Mk/bsd.destdir.mk ... ${ECHO_MSG} "===> Starting chrooted make in ${DESTDIR}..."; \ export $${_var_path_list}; \ ${CHROOT} $${_destdir} ${SH} -c "\ cd $${PORTSDIR}${.CURDIR:S|^${PORTSDIR}||}; \ ${SETENV} -i ${DESTDIR_ENV} $${_var_path_list} ${MAKE} ${.TARGETS}" && \ { status=$$?; ${ECHO_MSG} "===> Chrooted make in ${DESTDIR} succeeded"; } || \ { status=$$?; ${ECHO_MSG} "===> Chrooted make in ${DESTDIR} failed"; }; \ ${ECHO_MSG} "===> Cleaning up..."; \ ... The problem seems to be with cd $${PORTSDIR}${.CURDIR:S|^${PORTSDIR}||}; I don't quite understand the expansion. $PORTSDIR seems to be set to '/data/freebsd/ports/ports-20130627', so I don't know how it is getting '/tmp/mountpoint.TJizHb' prepended, or why the full path to the ports directory outside the jail is being used in this expansion to cd to it inside the jail. Could this be a bug in the ports makefile or is it possible that I am missing something in my jail that can cause this? _______________________________________________ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"