Hello all,
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.
Erich
_______________________________________________
SlackBuilds-users mailing list
[email protected]
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/