Bug 1212956

Summary: pkgconfig needs large file support
Product: [Fedora] Fedora Reporter: Peter Jones <pjones>
Component: pkgconfigAssignee: Matthias Clasen <mclasen>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: cfergeau, mclasen
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pkgconfig-0.28-8.fc21 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-04-22 22:49:46 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:
Attachments:
Description Flags
add correct large file support bits to configure.am
none
Add it to the spec file none

Description Peter Jones 2015-04-17 18:55:11 UTC
Created attachment 1015714 [details]
add correct large file support bits to configure.am

Description of problem: pkgconfig is built without large file support.  Since xfs enables 64-bit inodes by default on filesystems >1TB, that means if /usr/share/pkgconfig happens to get an inode number > 2^31, it will fail with EOVERFLOW because getdents() would return a number that doesn't fit in its uint32_t parameter.

Version-Release number of selected component (if applicable):
pkgconfig-0.28-6.fc22.x86_64 (and all prior versions.)

How reproducible: very easy

Steps to Reproduce:
1. get a 1.5TB disk
2. partition it as 1 partition
3. mkfs.xfs on that partition
4. mount it on /var/lib/mock
5. try to mock build any large project that uses autoconf and pkgconfig
6. autoconf will claim you don't have some libraries that you do because pkgconfig is failing
7. strace pkg-config in the chroot
 
Actual results:
openat(AT_FDCWD, "/usr/lib/pkgconfig", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 1 entries */, 32768)     = 16
getdents(3, 0x9272394, 32768)           = -1 EOVERFLOW (Value too large for defined data type)
close(3)                                = 0

Expected results:
getdents64() should be what you see, and then it will work.

Additional info:
it might not happen every time, since it does actually require that the inode numbers /assigned/ in the directory are >2^31 , as opposed to merely being 64-bit.

Comment 1 Peter Jones 2015-04-17 18:57:29 UTC
Created attachment 1015715 [details]
Add it to the spec file

This patch adds what's needed for the previous patch into the rpm spec file.  If the previous patch is added upstream, the bits with BuildRequires and the autoreconf (and in fact none of this patch at all) are needed.

Comment 2 Peter Jones 2015-04-17 19:11:48 UTC
( filed upstream as https://bugs.freedesktop.org/show_bug.cgi?id=90078 )

Comment 3 Fedora Update System 2015-04-17 19:39:35 UTC
pkgconfig-0.28-8.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/pkgconfig-0.28-8.fc22

Comment 4 Fedora Update System 2015-04-17 21:59:55 UTC
pkgconfig-0.28-8.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/pkgconfig-0.28-8.fc21

Comment 5 Fedora Update System 2015-04-21 18:29:57 UTC
Package pkgconfig-0.28-8.fc22:
* should fix your issue,
* was pushed to the Fedora 22 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing pkgconfig-0.28-8.fc22'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-6425/pkgconfig-0.28-8.fc22
then log in and leave karma (feedback).

Comment 6 Fedora Update System 2015-04-22 22:49:46 UTC
pkgconfig-0.28-8.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 7 Fedora Update System 2015-05-22 17:56:59 UTC
pkgconfig-0.28-8.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.