distutils 0.6.28 filenames include whitespace

Create issue
Issue #357 invalid
Namaste created an issue

These files include white space in their filenames: /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script template (dev).pyc /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script template.py /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script template (dev).py /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script template.pyc

This is against best practices on Unix machines and causes multiple problems when packaging, scripting and archiving. Package maintainers such as myself are unlikely to help share this software when it contains basic errors like this.

(This (older) version was auto-installed when installing MySQL_python-1.2.4b4)

Comments (5)

  1. Namaste reporter

    Those file names also include parentheses () as well which is another huge no-no. Shells will try to interpolate them unless they are escaped as well.

    % /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script\ template\ (dev).py
    Badly placed ()'s.
    
  2. Namaste reporter

    Here is the full recipe to fix the code:

        mv /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script\ template.py /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.py
        mv /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script\ template.pyc /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.pyc
        mv /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script\ template\ \(dev\).py /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.py
        mv /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script\ template\ \(dev\).pyc /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.pyc
        /bin/perl -pe 's%script template%script_template%' -i /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.py
        /bin/perl -pe 's%script template%script_template%' -i /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.pyc
        /bin/perl -pe 's%script template%script_template%' -i /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.pyc
        /bin/perl -pe 's%script template%script_template%' -i /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/SOURCES.txt
        /bin/perl -pe 's% \(dev\)%_dev%' -i /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.py
        /bin/perl -pe 's% \(dev\)%_dev%' -i /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.pyc
        /bin/perl -pe 's% \(dev\)%_dev%' -i /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/SOURCES.txt
    
  3. Arfrever Frehtes Taifersar Arahesis

    You should fix your software to properly quote file names. Also ensure that it properly handles non-ASCII characters (e.g. Cyrillic or Chinese), which are valid in file names.

  4. Namaste reporter

    You should log enhancement requests against Solaris pkgmk, Linux rpm and apt etc. Then against tcsh, csh, sh and ksh. Then against tar, cpio, pax and zip. You'll need to include justification about why this tool absolutely must have invalid characters in the filenames. I've altered my distribute(1) source trees to eliminate the problem.

  5. Log in to comment