Uploaded image for project: 'Funtoo Linux'
  1. Funtoo Linux
  2. FL-8450

Portage needs a FEATURE to verify build dependencies

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Normal Normal
    • None
    • None
    • Hide
      The root cause is the that status quo for verifying dependencies relies in part on package maintainers building against a stage3, which is a step that few package maintainers take. This could be viewed as either laziness or a reflection of the reality that it is just too much work.
      Show
      The root cause is the that status quo for verifying dependencies relies in part on package maintainers building against a stage3, which is a step that few package maintainers take. This could be viewed as either laziness or a reflection of the reality that it is just too much work.
    • This would not catch runtime dependency issues, but it would at least catch an entire class of build time issues that affect end users.

      At present, it is possible for people maintaining packages to omit dependencies from ebuilds when the dependencies are installed on their systems. This is an issue that has personally affected me on Gentoo many times in the past and likely hits every user of both Gentoo and Funtoo at some point.

      Proper packaging generally should be verified by installing the package from a minimal stage3, but this is time intensive and seldom done. This results in situations where new users try to install software, but the builds fail, due to the missing dependency.

      As an alternative to the status quo, we could implement a feature in portage to track all files accessed during the build process, check them against the dependency list (plus the system set) and report the packages of missed dependencies.

      There are a few ways of doing this. One possibility would be through the sandbox. Another possibility might be through cgroups and ftrace/eBPF. This should allow us to collect information on which files are opened. Then the rest should be fairly straightforward by checking them against the portage database. This might be somewhat slow, but it is really only needed for QA, so that should be fine.

      This is really an upstream portage issue, but I thought of it following a conversation with drobbins where he encouraged me to think of fundamental improvements, so I am filing this here to track it in Funtoo.

            Unassigned Unassigned
            ryao ryao
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: