On Aug 12, 2012, at 6:20 AM, Paul Schenkeveld wrote: > Hi, > > I have a wrapper script that builds packages in a chroot environment > which happily runs on release 6 thru 9 and earlier 10 but fails with: > > tar: getvfsbyname failed: No such file or directory > > on a recent -CURRENT. > > What I could dig up so far is that "make package-recursive" calls > pkg_create(1) which in turn calls "tar -c -f <portname>.tbz -j -T -" > and then starts feeding filenames that should go into the tarball. > > Something has changed in libarchive when > src/contrib/libarchive/libarchive/archive_read_disk_posix.c was > introduced (libarchive 3.0.3, svn rev 232153 I think) where > setup_current_filesystem() calls getvfsbyname(). > > Now it's getting too hairy for me so I hope someone with more > insight in this kind of stuff can help me out. > > My chroot environment has a root directory which is a subdir of my build > environment, so not a mountpoint by itself. /usr/src and /usr/ports are > NFS mounted from a fileserver and I have devfs mounted on /dev. libarchive does do an initial getvfsbyname() when you ask it to traverse a directory tree so that it can accurately handle later requests about mountpoints and filesystem types. This code is admittedly a little intricate. You've apparently found a case where getvfsbyname() is getting handed a bad filename argument. Maybe one of the filenames getting fed into -T doesn't exist. (In which case tar should report an error, but it should be a clear error.) Can you add a printf() nearby that getvfsbyname() call, to dump the argument that's causing problems? TimReceived on Sun Aug 19 2012 - 14:45:08 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC