Page MenuHomeFreeBSD

Overlay support for the ports tree
ClosedPublic

Authored by bapt on Aug 29 2019, 6:41 PM.

Details

Reviewers
manu
swills
Group Reviewers
portmgr
Commits
rP510950: Add support for overlays
Summary

add overlay support
A user can now define OVERLAYS=path1 path2
The ports tree will lookup into path1 and path2 (the order matters) to find the
path for the port (testing origin/Makefile)

If also have a naive implementation for USES, so one can overwrite existing USES.

Note that for the USES that includes other uses, or will have to also converted
to overlay to be able to properly work

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 26191
Build 24697: arc lint + arc unit

Event Timeline

Add forgotten scripts update

only add the relevant one

manu added a subscriber: manu.

LGTM

swills added a subscriber: swills.

Haven't tested, but looks fine.

This revision is now accepted and ready to land.Sep 3 2019, 1:48 PM
This revision was automatically updated to reflect the committed changes.

It would be nice to put a note in CHANGES about this with a quick blurb on how to use it.

~/svn/ports/databases/mysql56-client # grep MASTERDIR Makefile
MASTERDIR=      ${.CURDIR}/../mysql56-server
EXTRA_PATCHES+= ${MASTERDIR}/files/patch-PR225888.diff
.include "${MASTERDIR}/Makefile"
  1. If mysql56-client is pulled from an OVERLAY, wouldn't the mysql56-server Makefile be pulled from the NON overlay directory due to .CURDIR?
  2. I'm immediately wanting to replace a single file in /usr/ports/Mk with an overlay feature at work (not Mk/Uses). Yet this won't work for the same reason as the last I noted.
  3. Keywords/ dir not covered (noted on IRC).

These shortcomings need to be documented.
The .include/.CURDIR issue is a blocker to me as it will lead to confusion for a very common pattern.

I only see a feature like this working if implemented entirely in Poudriere.

This comment was removed by bdrewery.