Bug 1388549

Summary: setuptools strips off first character of package_data file names
Product: Red Hat Enterprise Linux 7 Reporter: Christian Heimes <cheimes>
Component: python-setuptoolsAssignee: Charalampos Stratakis <cstratak>
Status: CLOSED ERRATA QA Contact: Jakub Heger <jheger>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.3CC: cstratak, isenfeld, pviktori, pvoborni
Target Milestone: rcKeywords: Patch
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-setuptools-0.9.8-5.el7 Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of:
: 1420343 (view as bug list) Environment:
Last Closed: 2017-08-01 12:14:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1380359, 1393868    
Attachments:
Description Flags
bug fix none

Description Christian Heimes 2016-10-25 15:39:55 UTC
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/

Comment 3 Christian Heimes 2017-01-31 15:35:28 UTC
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

Comment 7 errata-xmlrpc 2017-08-01 12:14:52 UTC
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