Page MenuHomeFreeBSD

subpackages: integrate autodeps and add per-subpackage build scoping
Needs ReviewPublic

Authored by bapt on Mon, May 25, 2:36 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Jun 17, 12:48 AM
Unknown Object (File)
Wed, Jun 17, 12:47 AM
Unknown Object (File)
Sun, Jun 14, 11:12 AM
Unknown Object (File)
Thu, Jun 11, 1:31 AM
Unknown Object (File)
Sat, Jun 6, 3:42 PM
Unknown Object (File)
Thu, Jun 4, 12:26 AM
Unknown Object (File)
Tue, Jun 2, 9:39 PM
Unknown Object (File)
Tue, Jun 2, 2:30 AM
Subscribers
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary
  • Add Mk/Scripts/autodeps.sh: analyze ELF binaries from the plist to automatically determine library dependencies per subpackage. Each subpackage gets its own analysis based on its own plist, naturally scoping dependencies to what the subpackage actually ships.
  • Modify create-manifest.sh: include autodeps output in the manifest"s deps section via .include(try=true) so pkg resolves real library dependencies instead of relying on manually curated LIB_DEPENDS.
  • Modify bsd.port.mk:
    • Add ${METADIR}.${sp}/autodeps target per subpackage, run before package creation
    • Make ${WRKDIR_PKGFILE} depend on the autodeps target
    • Remove LIB_DEPENDS_ALL from RUN-DEPENDS-LIST since autodeps now handles runtime library dependency detection
    • Add SUBPACKAGE build scoping: make build SUBPACKAGE=libs aggregates only BUILD_DEPENDS + BUILD_DEPENDS.libs, excluding dependencies of other subpackages

This makes subpackage dependency management automatic and accurate:
each subpackage"s real library needs are detected at package creation
time, and the main package can declare dependencies on its subpackages
via SELF_DEPENDS (already supported without modification).

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 73423
Build 70306: arc lint + arc unit

Event Timeline

bapt requested review of this revision.Mon, May 25, 2:36 PM
bapt created this revision.
arrowd added inline comments.
Mk/bsd.port.mk
3458

Hmm, shouldn't we use _ALL_LIB_DIRS there?

4141

I made a similar, but more elaborate change in https://reviews.freebsd.org/D43791
It provides a backwards compatibility with Poudriere.