On Wed, 2015-07-22 at 17:01 +0100, Daniel P. Berrange wrote: > > > Might not be trivial, as limits are apparently different for > > symbolic > > links and regular files, nevermind the fact that very similar > > versions > > of tar (eg. Fedora 22 and Fedora rawhide) don't behave the same. > > If we assume 'libvirt-X.Y.Z/' (with double-digits for each version > field) > as a prefix, that's upto 17 characters consumed. With a limit of 100 > chars > for symlinks, we should simply make sure all our file names are 83 > characters > or less > > $ ./build-aux/vc-list-files | perl -e 'while (<>) { die "filename $_ > too long" if length($_) > 83 }' > filename tests/cputestdata/x86-host-Haswell-noTSX+Haswell > -noTSX,haswell,Haswell-noTSX-result.xml > too long at -e line 1, <> line 1280.
Unfortunately, that script[1] doesn't catch any of the files that are breaking the build, and prints out a bunch of false positives instead. That's because vc-list-files explicitly filters out symbolic links; even if it didn't, you would only get the name of the actual symbolic link in the output, for example tests/nodeinfodata/linux-deconfigured-cpus/node/node17/cpu120 which is still way shorter than 83 characters and as such wouldn't trigger the error condition. The problem is that, IIUC, all symbolic links are converted to hard links when creating the tarball and if the path to the file requiring this conversion has length >100, like libvirt-1.2.18/tests/nodeinfodata/linux-deconfigured-cpus/ \ node/node17/cpu120/topology/thread_siblings then we get into trouble. Cheers. [1] with the call to die() replaced with a print() so that it doesn't stop at the first error -- Andrea Bolognani Software Engineer - Virtualization Team -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list