On 06/11/2011 12:14 AM, Kevin Fenzi wrote:
> On Fri, 10 Jun 2011 13:59:18 +0300
> Panu Matilainen<pmatilai(a)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.
Oh and btw, the above is for detecting the exact condition for a missed
script interpreter dependency, but in this situation a simpler rule
could also be used (for packages built with the internal depgen): if it
contains any files whose %{FILECLASS} contains "script", and has a build
date within the last month, it almost certainly needs a rebuild.
- Panu -