Bug 1476594

Summary: rpm: Extracts dependencies from shbang lines in /usr/share/doc
Product: [Fedora] Fedora Reporter: Florian Weimer <fweimer>
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 27CC: ffesti, igor.raits, kardos.lubos, mattdm, mjw, packaging-team-maint, pmatilai, ppisar, praiskup, vmukhame
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-11-30 22:17:44 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:

Description Florian Weimer 2017-07-30 15:28:33 UTC
highlight-3.36-3.fc27 suddenly has a Requires: /bin/lua:

$ rpm -qp --requires
https://kojipkgs.fedoraproject.org//packages/highlight/3.39/1.fc27/x86_64/highlight-3.39-1.fc27.x86_64.rpm
/bin/lua
config(highlight) = 3.39-1.fc27
libc.so.6()(64bit)
…

I have verified that this comes from the
/usr/share/doc/highlight/examples/json/theme2json.lua file installed by
the package.  This file is now executable when installed; it used not to be.

The build happened with rpm-build 4.13.0.1-38.fc27.

Comment 1 Matthew Miller 2017-07-30 15:33:10 UTC
It does seem like it would be nice if examples in docs directories _just worked_. Is it crazy to suggest that RPM should not ignore docs, but instead add Recommends where there isn't already a Requires?

Comment 2 Igor Gnatenko 2017-07-30 15:34:50 UTC
(In reply to Matthew Miller from comment #1)
> It does seem like it would be nice if examples in docs directories _just
> worked_. Is it crazy to suggest that RPM should not ignore docs, but instead
> add Recommends where there isn't already a Requires?

Actually adding Recommends instead of Requires for %doc files sounds good to me.

If Florian or Panu like this idea, I'm willing to submit a patch.

Comment 3 Florian Festi 2017-07-30 15:47:47 UTC
Well, the Requires should go away if you remove the executable bit in the installroot. You can keep it executable in the package by setting attr if that's the desired result.

Comment 4 Igor Gnatenko 2017-07-30 19:24:12 UTC
(In reply to Florian Festi from comment #3)
> Well, the Requires should go away if you remove the executable bit in the
> installroot. You can keep it executable in the package by setting attr if
> that's the desired result.

The point of Matt's proposal is to *do* generation of such dependencies, but in forms of *Recommends* rather than Requirements for all files marked as %doc. From my POV it is nice suggestion even not trivial to implement though.

Comment 5 Jan Kurik 2017-08-15 08:41:08 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 27 development cycle.
Changing version to '27'.

Comment 6 Panu Matilainen 2017-09-07 11:12:51 UTC
rpm 4.14.0 actually filters out dependencies from docdir (see bug 964126). I'm not a big fan of this because ... like Matt says, if the docs are marked executable then they should runnable too, and that simply requires the dependencies to be present. But people have disagreed over this about as long as rpm has existed, there must be over a dozen bugs on this topic just on RH bugzilla. Creating weak dependencies for docs seems like a nice middle-ground to me too, although I'm sure we'll find people who disagree with that too...

As for the original topic of this bug though, this gets mildly hysterical:
Like said, rpm 4.14.0 filters requires from docdirs out by default. However because highlight uses the deprecated %filter_setup macros (among other things to filter out this unwanted lua-dependency), it doesn't benefit from the docdir filtering which only works with the internal dependency generator. Yeah, only in rpm :)

Comment 7 Pavel Raiskup 2018-02-22 13:40:13 UTC
In my opinion, no runtime dependency should be ever generated from
%doc files (all %doc files, so the whitelist for %docdir is incomplete
to me).  If we do so, we should at least ensure that '--nodocs' and
yum's/dnf's equivalents counts with that; e.g. that turning on
--nodocs means that the additional (weak)deps are ignored.

Comment 8 Ben Cotton 2018-11-27 14:53:20 UTC
This message is a reminder that Fedora 27 is nearing its end of life.
On 2018-Nov-30  Fedora will stop maintaining and issuing updates for
Fedora 27. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora  'version' of '27'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 27 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 9 Ben Cotton 2018-11-30 22:17:44 UTC
Fedora 27 changed to end-of-life (EOL) status on 2018-11-30. Fedora 27 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.