[Slackbuilds-users] Clarification of REQUIRES and dependencies
baildon.research at googlemail.com
Thu Nov 27 11:13:43 UTC 2014
> The disagreement occurs when package 1 depends on packages 2 and 3,
> and package 2 depends on 3. Should 3 be listed in 1's REQUIRES?
My amateur opinion: yes, because if 2 eventually drops the dependency
on 3, 1 will still need 3. But this is unlikely.
Also, if 1's documentation lists 3, some users might freak out if 3 is
not listed in REQUIRES.
Also, we are saved a *huge* number of these cases because we don't
track dependencies within Slackware, so there are not many of these to
worry about :D
Also, it's a rare situation that doesn't matter much. Friends can
disagree about it, but still be friends :-)
> It's similar in context to overlinking/underlinking for libraries. If
> you don't know what that is, these two pages describe it with
Wow. It's a miracle anything works, with so much to worry about.
/usr/bin is full of "Unused direct dependencies", but Slackware still
rocks. The part that reads "When building a package / You will get a
warning as explained here (the check is done by
strip_and_check_elf_files from spec-helper)" is 100% rpm rubbish. So
I'm filing that page under "evidence that dependency resolving distros
are broken". BICBW
Some of that advice may be out of date -- the linker in gcc-4.7 or 4.8
(can't remember which) was changed, it now refuses to underlink.
> Possibly a more important question: Does it matter? Are there any
> SBo tools out there that need the dependency info to be underlinked?
> Are there any tools that would benefit by not underlinking, or are
> broken by underlinking?
SBo is now so mature that the answer to most of these questions is:
"Apparently it doesn't matter in the real world" ;-)
Overlinking can occur in most of the community tools due to the
prevalent use of build queues. Most of the time this doesn't matter.
It matters if you're publishing packages for other people, who might
install an overlinked package without its unintended dependencies.
> I'd love to hear other opinions and use cases.
Ok, well, what if the dependency of 2 on 3 is optional?
To be honest, I'd be grateful for other peoples' opinions, because I'm
not very confident that my amateur opinion is correct. This is not
the kind of thing they teach on software engineering courses or write
books about :-(
Best regards to all
More information about the SlackBuilds-users