[Slackbuilds-users] On dependency definition (Was: pelican depends on Jinja2 >= 2.7)

Mikko Värri vmj at linuxbox.fi
Sat Jan 25 19:52:48 UTC 2014


Kyle Guinn <elyk03 at gmail.com> wrote:
>On 1/25/14, Willy Sudiarto Raharjo <willysr at slackbuilds.org> wrote:
>>> The way I see it, if package A says it needs B and C, then I put
>them
>>> both in REQUIRES.  Whether or not B requires C should have no effect
>>> on that.  Maybe some newer version of B won't require C, and then
>the
>>> dependencies for A would be incomplete.
>>
>> please have a look on the FAQ
>> http://slackbuilds.org/guidelines/
>>
>> REQUIRES contains a space-separated list of all required build-time
>and
>> run-time dependencies, each named exactly as listed on the
>> SlackBuilds.org site. It should not contain anything that is part of
>> Slackware itself. The content of REQURIES should only be first level
>> dependences (i.e. no deps of deps).
>
>On the other hand, package A says it depends on B and C, but A only
>"needs" C because B needs C.  In this case A is lying and it only
>needs B, and REQUIRES should only contain B.  This is the scenario the
>FAQ describes.  My first scenario is different.  Which case is this?
>
>-Kyle
>_______________________________________________
>SlackBuilds-users mailing list
>SlackBuilds-users at slackbuilds.org
>http://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
>Archives - http://lists.slackbuilds.org/pipermail/slackbuilds-users/
>FAQ - http://slackbuilds.org/faq/

This is "A requires B and C, because A has actual calls to APIs of both B and C" case.

Jinja2 has a direct, non-optional, build-time dependency to setuptools. It is direct, because setuptools is not used via some other dependency, but via an actual call to setuptools API.  It is non-optional (aka hard) because without setuptools, the build of Jinja2 will fail.  Willy is saying that setuptools should be removed from Jinja2 deps because Jinja2 depends on MarkupSafe that is also using setuptools.

What Willy and Matteo are describing is, in my books, an optimization of dependency tree: removal of dependencies if they form a diamond graph.  Is this optimization useful?



 
-- 
Sent from my Android tablet with K-9 Mail. Please excuse my brevity.


More information about the SlackBuilds-users mailing list