Red Hat Bugzilla – Bug 1388549
setuptools strips off first character of package_data file names
Last modified: 2017-09-26 09:23:34 EDT
Created attachment 1213966 [details] bug fix Description of problem: setuptools on RHEL 7 has a bug in setuptools.command.build_py. The method _get_data_files() has an off-by-one error when package_dir is '' and the package_data file is in the root directory of the package. In FreeIPA the bug is triggered by a setup.py like: setup( name="ipatests", package_dir={'ipatests': ''}, package_data={'ipatests': ['pytest.ini']} ) _get_data_files() strips off 'p' of pytest.ini and later fails to add 'ytest.ini' file. Version-Release number of selected component (if applicable): python-setuptools-0.9.8-4.el7.noarch How reproducible: always Steps to Reproduce: $ git clone https://github.com/freeipa/freeipa.git $ cd freeipa $ make version-update $ cd ipatests $ python setup.py bdist Actual results: error: can't copy 'ytest.ini': doesn't exist or not a regular file Expected results: no error Additional info: Petr Vobornik turned my preliminary patch into a proper dist-git patch and tested it. The patch fixes the bug. IPA build: https://copr.devel.redhat.com/coprs/pvoborni/ipa/build/5598/ python-setuptools build: https://copr.devel.redhat.com/coprs/pvoborni/ipa/build/5597/
The problem is no longer reproducible with recent version of FreeIPA becaues pytest.ini was removed. You need to check out an older version of FreeIPA, e.g. git checkout 2dedfe5d33062fc7121bf36be12d7b423b62120a
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:1900