rawhide missed an implicit dependency for #!python
Panu Matilainen
pmatilai at laiskiainen.org
Sat Jun 11 07:15:31 UTC 2011
On 06/11/2011 12:14 AM, Kevin Fenzi wrote:
> On Fri, 10 Jun 2011 13:59:18 +0300
> Panu Matilainen<pmatilai at laiskiainen.org> wrote:
>
>> On 06/10/2011 02:28 AM, Josh Stone wrote:
>>> On 06/02/2011 01:26 PM, Josh Stone wrote:
>>>> Our dtrace script in systemtap-sdt-devel starts
>>>> "#!/usr/bin/python". Usually this leads to an implicit
>>>> "Requires: /usr/bin/python", but for some reason our rawhide build
>>>> did not get this. The F15, F14, and F13 builds from the same spec
>>>> required python as expected.
>>> [...]
>>>> Is this a bug? Or must we now explicitly require python?
>>>
>>> An output change in file-5.07 appears to have broken find-requires:
>>> https://bugzilla.redhat.com/show_bug.cgi?id=712251
>>>
>>> And since file-5.07-2.fc15 is now in updates, I would expect this to
>>> cause even more problems going forward.
>>
>> Fixed now in rawhide rpm and an update for F15 is here:
>> https://admin.fedoraproject.org/updates/rpm-4.9.0-9.fc15
>>
>> Please help testing to get this nasty regression fixed ASAP.
>>
>> ALL packages containing scripts which have been built while file-5.07
>> has been in rawhide (since May 11th)& F15 (in updates-testing since
>> May 23rd) are affected and will have missing dependencies because of
>> this, requiring rebuilds to correct the situation.
>>
>> Thanks Josh for reporting this, and also apologies for missing your
>> initial mail on the subject, reacting then would've saved a week's
>> worth of broken builds :-/
>
> Is there a way we can generate a list of builds affected?
> Is it everything? Or things that only have a specific type of requires?
Every package which contains one or more script files starting with
#!/some/interpreter is affected (%pre etc scriptlets are not affected
though). And all the missing dependencies are file-dependencies, eg
/usr/bin/python, /bin/sh etc.
This can't be detected from repodata, but the actual rpm headers carry
enough data to fairly reliably spot these: executable files (from
%{FILEMODES}) whose %{FILECLASS} contains "script" but does not have
%{FILEREQUIRE} (to its interpreter) means the package is missing
dependencies.
The above works for packages built with the internal dependency
generator, for the others:
a) packages using the Fedora specific dependency filtering macros (large
percentage of perl-packages at least)
b) packages directly setting %_use_internal_dependency_generator to 0
...it can't be detected from the metadata alone and would require
unpacking the rpm and examining executable files. I'll be mostly AFK
through the rest of the weekend but I can try scripting it up for the
part that can be automated on Monday.
In the meanwhile if you know your package contains executable scripts
and was built within the last month (for rawhide), it will need a rebuild.
- Panu -
More information about the devel
mailing list