Install the dependancy package for from a Lower Layer Package Repo.
In nearly every company I've been, we completely build our own ports tree and create our own package repos. There are mutliple reasons for this - "creating our distro" by freeze port sets, setting our own set of options for ports, which are not defaults, etc.
I'm currently doing this, and insanely ... I build everything (I blacklist 1428 ports). Now I want to create my own, company specific packages - for meta packaes, tools, binaries, code, etc - that are stricktly inernal things. (I've gone back and fort - put these in puppet/ansible config management - or put them in packages.)
But I'd like to be able to itterate quickly over a subset, but intergrating 1 pkg into the 30k+ pkg repo ... a simple package that contains a small script or two, takes too long.
poudriere's (ports?) poorly documented OVERLAY feature is ideal, but I want this meta packaqges to be a repo of its own, but pull all depends from a different repo - aka - work like Enterprise Linux (EL7, EL8) repos ... layer ontop. So I need the depenancies to come from the lower layer pkg repo, but the new packages to go to the upper layer packages repo.
Apply the dp_PACKAGES_LOWERLAYER.patch
below to the files in /usr/ports/Mk
. Outside of poudriere, in the directory of any /usr/port
- I create this way :
sudo zfs snap nas0/poudriere/ports/default@20220524a
sudo zfs clone -o mountpoint=/usr/ports nas0/poudriere/ports/default@20220524a nas0/poudriere/ports/clones/default
Not sure it matters, nas0 is actually a zpool on an iSCSI lun from my nas.
make \
PACKAGES_LOWERLAYER=/usr/local/poudriere/data/packages/13-1-stable-default \
PACKAGES=/usr/ports/packages \
USE_PACKAGE_DEPENDS_ONLY=1 \
package
and this would very well, Built all your packages & create a repo.
> sudo pkg repo /usr/ports/packages
> tree /usr/ports/packages/
/usr/ports/packages/
├── All
│ ├── care2-meta-1.0.0_1.pkg
│ └── py38-passiveagent-0.2.0.pkg
├── meta.conf
├── meta.pkg
├── meta.txz -> meta.pkg
├── packagesite.pkg
└── packagesite.txz -> packagesite.pkg