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
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

bapt created this revision.Aug 29 2019, 6:41 PM
Herald added a subscriber: mat. · View Herald Transcript
bapt updated this revision to Diff 61480.Aug 30 2019, 9:05 AM

Add forgotten scripts update

bapt updated this revision to Diff 61481.Aug 30 2019, 9:06 AM

only add the relevant one

manu accepted this revision.Aug 30 2019, 9:54 AM
manu added a subscriber: manu.

LGTM

swills accepted this revision.Sep 3 2019, 1:48 PM
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.
adamw added a subscriber: adamw.Sep 3 2019, 3:23 PM

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

bdrewery added a subscriber: bdrewery.EditedSep 16 2019, 7:39 PM
~/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.