Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1088001

Summary: Rebuilding thunderbird from rawhide generates broken dep: Requires: libxul.so(xul24)(64bit)
Product: [Fedora] Fedora Reporter: Gustavo Luiz Duarte <gustavold>
Component: thunderbirdAssignee: Gecko Maintainer <gecko-bugs-nobody>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: gecko-bugs-nobody, gustavold, jhorak, pmatilai, rbarlow, robatino
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-05-06 09:50:01 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: 1051573    
Attachments:
Description Flags
Use newline separator on find-provides input none

Description Gustavo Luiz Duarte 2014-04-15 19:44:01 UTC
Rebuilding thunderbird from the master branch resulted in a package with broken dependencies. Although I found this on the ppc64le bootstrap, I verified this is a general issue impacting all architectures.

Here is the error message trying to install the generated package:
Error: Package: thunderbird-24.4.0-1.1.fc21.ppc64le (build)
           Requires: libxul.so(xul24)(64bit)

I investigated this further and it turns out this issue was introduced by rpm-4.11.2-5.fc21 when they switched from find-{requires,provides} scripts to rpmdeps wrappers.
The old scripts used to recognize as a valid input a list of files separated by space, while rpmdeps fails to recognize it as a valid input.

Here is a reproducer:

# echo "/bin/cat /bin/sed" | /lib/rpm/find-requires
warning: Recognition of file "/bin/cat /bin/sed" failed: mode 000000 cannot open `/bin/cat /bin/sed' (No such file or directory)

I'm not sure if this is a bug on thunderbird's find-external-requires script or an rpm regression. I'm posting a patch to fix it from thunderbid side anyway.

Comment 1 Gustavo Luiz Duarte 2014-04-15 19:49:44 UTC
Created attachment 886622 [details]
Use newline separator on find-provides input

Minimal patch that fixes the issue described here from the thunderbird side.

Comment 2 Gustavo Luiz Duarte 2014-04-15 19:53:51 UTC
CC'ing rpm maintainer for his awareness and comments whether it is an rpm regression or expected change in find-{requires,provides} behavior.

Comment 3 poma 2014-04-26 06:37:33 UTC
Error: Package: thunderbird-24.4.0-2.fc21.i686 (rawhide) Requires: libxul.so(xul24)
https://bugzilla.redhat.com/show_bug.cgi?id=1091295

Comment 4 Adam Williamson 2014-04-30 18:05:37 UTC
*** Bug 1091295 has been marked as a duplicate of this bug. ***

Comment 5 Andre Robatino 2014-05-03 21:51:09 UTC
Adding needinfo since the rpm maintainer hasn't responded in 3 weeks.

Comment 6 Panu Matilainen 2014-05-04 08:15:55 UTC
I get a lot of bugzilla mail, these things get easily buried in the noise.

I didn't exactly expect whitespace behavior to change, but that's because I didn't remember such a difference exists between the mechanisms and the old unmaintained scripts, which Thunderbird has been relying on.

That old script junk is not coming back, and neither is space as separator because its a really just an ill-fitting separator for this purpose. Instead of messing with these scripts, please update thunderbird to use the native filtering mechanism instead:
http://rpm.org/wiki/PackagerDocs/DependencyGenerator
https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering

If you have to use the same spec for RHEL too then you could use the current script-overriding hack on RHEL <= 6 where it is indeed needed, and native filters elsewhere.

Comment 7 Jan Horak 2014-05-06 09:50:01 UTC
Thanks for clarification and pointing me to the right direction Panu Matilainen. This should be fixed now by thunderbird-24.5.0-2.fc21 build.

Comment 8 Panu Matilainen 2014-05-06 10:14:47 UTC
Um, not quite. You still have this:

 %define _use_internal_dependency_generator 0

in the thunderbird spec, which means none of the new tricks like native filtering work.

Comment 9 Jan Horak 2014-05-06 14:55:26 UTC
Okay, removed.