The distutils --record option keeps relative path of arbitrary complexity, which can lead to entries suchs as
- foo/./bar
- ../../foo/./bar/../baz
- /../foo
- etc.
Packaging does not do perform any path normalisation, which in turn leads to
breakages in the QA sanity checks, since those just compare the output of
find to whatever is in the plist.
Citing a conversation between @rm, @sunpoet, @antoine and myself:
devel/py-twistedCore fails to package like this:
http://danny.trejo.ru/py27-twistedCore-14.0.0.log
% pkg info -lF py27-twistedCore-14.0.0.txz
...
/usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/build.bat /usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/iocpsupport/acceptex.pxi /usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/iocpsupport/connectex.pxi /usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/iocpsupport/iocpsupport.c
% tar tf py27-twistedCore-14.0.0.txz
...
/usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/build.bat
/usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/iocpsupport/acceptex.pxi
/usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/iocpsupport/connectex.pxi
/usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/iocpsupport/iocpsupport.c
% pkg which /usr/local/bin/trial
/usr/local/bin/trial was installed by package py27-twistedCore-14.0.0
% pkg which /usr/local/lib/python2.7/site-packages/twisted/internet/iocpreactor/build.bat
/usr/local/lib/python2.7/site-packages/twisted/internet/iocpreactor/build.bat
was not found in the database
% pkg which /usr/local/lib/python2.7/site-packages/./twisted/internet/iocpreactor/build.bat
/usr/local/lib/python2.7/site-packages/twisted/internet/iocpreactor/build.bat
was not found in the database
pkg delete py27-twistedCore
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0
packages in the universe):
Installed packages to be REMOVED:
py27-twistedCore-14.0.0
The operation will free 19 MB
Proceed with deinstalling packages [y/N]: y
[110amd64-custom] [1/1] Deleting py27-twistedCore-14.0.0: 100%
pkg: rmdir(/usr/local/lib/python2.7/site-packages/./twisted/test/): No
such file or directory
pkg: rmdir(/usr/local/lib/python2.7/site-packages/./twisted/spread/ui/):
No such file or directory
pkg: rmdir(/usr/local/lib/python2.7/site-packages/./twisted/spread/):
No such file or directory
...