[Slackbuilds-users] Please list all direct dependencies as dependencies

Alexander Grotewohl alex at dcclost.com
Tue Apr 28 18:42:13 UTC 2026


Probably best to think of dependencies as opaque.

fwupd requires protobuf-c, not broken protobuf-c that didn't get updated. That'd be slackrepo's responsibility. Or yours.

Watch the updates list?

________________________________
From: SlackBuilds-users <slackbuilds-users-bounces at slackbuilds.org> on behalf of Fellype <fellype at gmail.com>
Sent: Tuesday, April 28, 2026 2:14:11 PM
To: SlackBuilds.org Users List <slackbuilds-users at slackbuilds.org>
Subject: Re: [Slackbuilds-users] Please list all direct dependencies as dependencies

I know that some like to "optimize" the dependency list of SlackBuilds by not listing dependencies that are already included as dependencies of dependencies.  I would humbly ask to please not do this.  If a package directly depends on another package, explicitly list it as a dependency.  For those familiar with C programming, this is similar to the question of which headers to include in your source files (whether or not to list headers that are already included by other headers).

Why?  2 reasons:

1) You don't have to track the dependency list of your dependencies (and their dependencies, etc.).  It shouldn't matter if a dependency 3 levels deep drops a dependency on something you actually need.

2) Slackrepo's rebuild logic depends on it.  When a package is updated, slackrepo builds it and then rebuilds all packages that depend on it.  It does not, however, rebuild packages that depend on rebuilt packages.

For me, the fwupd build failed with error:

protoc-gen-c: error while loading shared libraries: libabsl_log_internal_check_op.so.2508.0.0: cannot open shared object file: No such file or directory

The reason is that abseil-cpp was updated, and slackrepo duly rebuilt protobuf3.  However, it did not rebuild protobuf-c, as protobuf-c only lists protobuf3 as a dependency (and not abseil-cpp).  fwupd depends on protobuf-c.  The (trimmmed) slackrepo dependency tree output is:

Dependency tree:
system/fwupd (update for version 1.9.34)
  libraries/protobuf-c (ok)
    development/protobuf3 (ok)
      development/abseil-cpp (ok)

After explicitly telling slackrepo to rebuild protobuf-c, the fwupd build succeeded.  I can thus infer that protobuf-c directly depends on abseil-cpp.  In other words, whenever abseil-cpp is upgraded protobuf-c needs to be rebuilt.

Of course, maintainers are free to do as they wish.  I ask because I prefer not to rebuild all my SBo packages each week, instead (re)building only what is necessary.  This happens infrequent enough that I usually forget this is the issue, wait a week for the build to be fixed, and after further investigation remember that some of the dependencies need a manual rebuild.

AFAIK, this 'optimization' is currently a SBo policy (needs confirmation)..
In addition to your suggestion, I think it would be interesting to have an entry like 'AFFECTS=""' in the .info files, where the dependees could/should be listed. This could be used by slackrepo/sbopkg/sbotools for automation to list and/or rebuild the dependees.

Regards,
Fellype
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.slackbuilds.org/pipermail/slackbuilds-users/attachments/20260428/aad0be36/attachment-0001.htm>


More information about the SlackBuilds-users mailing list