On Sun, 3 Nov 2013 18:30:04 +0100 Tijl Coosemans wrote: > On Wed, 16 Oct 2013 21:54:35 +0200 Matthias Andree wrote: >> Am 16.10.2013 21:17, schrieb Alexander Leidinger: >>> On Wed, 16 Oct 2013 14:31:17 +0200 >>> René Ladan <r...@freebsd.org> wrote: >>>> On 15-10-2013 15:00, Boris Samorodov wrote: >>>>> 15.10.2013 15:08, René Ladan ?????: >>>>>> Here tar gets confused somehow, it wants to pack >>>>>> ${STAGEDIR}/usr/compat/linux (note the extra usr/ ), which fails >>>>>> consequently. >>>>> >>>>> Does the affected system (poudiere jail) use links, like >>>>> /compat -> /usr/compat? >>>> >>>> Mine does not have a /usr/compat -> /compat link (nor the other way >>>> around), and /compat is only created when building/installing linux >>>> ports (or other ports that require it). >>> >>> A normal install creates (or used to create, so at least there are old >>> systems with this) the link /compat -> /usr/compat, so maybe somewhere >>> realpath comes into use and exhibits a problem here ("here" being the >>> staging support in general, not limited to the port). >> >> I think I can confirm your assessment. >> >> >> René, >> >> I had the same issue as Jerry (as reported on IRC, on >> 9.1-RELEASE-amd64), but did not dig deeper. >> >> In the end I sidestepped the problem because I could not solve it; >> meaning I used poudriere to build the package and installed that through >> pkg_add. That is not the canonical way to do that. >> >> I think I can confirm Alexanders suspicion. >> >> I do have the symbolic link that Alexander states: >> >> $ ls -l /compat >> lrwxr-xr-x 1 root wheel 10 10 Okt 2009 /compat -> usr/compat >> >> "make package" in the actual system fails (poudriere is fine for me, too). >> >> So perhaps either Poudriere sets up the jail a touch differently than a >> regular system would install it (possibly through sysinstall or whatever >> I used to get 9.1, I do not remember). >> >> >> Now, my workaround that makes "make package" work is to alias the file >> systems instead of : >> >> # mv /compat /compat.off >> # mkdir /compat && mount_nullfs /usr/compat /compat >> >> (Further hints below.) >> >> Then: >> >> $ make package >> ===> Building package for linux-f10-pango-1.28.3_1 >> Creating package >> /var/tmp/usr/ports.svn/x11-toolkits/linux-f10-pango/work/linux-f10-pango-1.28.3_1.tbz >> Registering depends: linux-f10-cairo-1.8.0_2 linux-f10-xorg-libs-7.4_1 >> linux-f10-fontconfig-2.6.0 linux-f10-expat-2.0.1 linux-f10-png-1.2.37_2 >> linux_base-f10-10_7. >> Registering conflicts: linux-pango-[0-9]* linux-f8-pango-[0-9]*. >> Creating bzip'd tar ball in >> '/var/tmp/usr/ports.svn/x11-toolkits/linux-f10-pango/work/linux-f10-pango-1.28.3_1.tbz' >> $ >> >> *This would seem to confirm that the symlink is the trigger for the >> problem.* >> >> >> Now, for the archives, further hints: >> >> 1. to make the change permanent, add one line to /etc/fstab so the mount >> gets re-established after reboot >> >> # printf '/usr/compat\t\t/compat\t\tnullfs\trw\t\t0\t0\n' >> /etc/fstab >> >> 2. if instead you want to revert the change: >> >> # umount /compat >> # rmdir /compat && mv /compat.off /compat >> # sed -i.bak -e '/^\/usr\/compat/d' /etc/fstab >> >> 3. if /compat gets destroyed: >> >> # ln -sfn usr/compat /compat >> >> >> I hope portmgr can investigate and fix this problem. > > If there's no immediate fix for this can it please be reverted. > Everybody who has separate / and /usr partitions has a /compat -> > /usr/compat link because you don't want to install packages on the > root file system. This includes pretty much everyone running FreeBSD > 8 because the installer creates separate partitions by default there.
I've looked into this a bit deeper. The call to realpath in pkg_create has been introduced in: http://svnweb.freebsd.org/base?view=revision&revision=231300 This revision has been MFCed to stable/8 between releng/8.3 and releng/8.4 and to stable/9 between releng/9.0 and releng/9.1. The call has been disabled for absolute path names in http://svnweb.freebsd.org/base?view=revision&revision=240682 This revision has been MFCed to stable/8 between releng/8.3 and releng/8.4 and to stable/9 between releng/9.1 and releng/9.2. So only FreeBSD 9.1 is affected by this. People in this thread running stable should just update. If you run FreeBSD 9.1 a workaround is to switch to the new pkg tools. _______________________________________________ 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"