diff options
Diffstat (limited to 'WORKFLOW.org')
| -rw-r--r-- | WORKFLOW.org | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/WORKFLOW.org b/WORKFLOW.org index ae2519a..22f282d 100644 --- a/WORKFLOW.org +++ b/WORKFLOW.org @@ -108,7 +108,7 @@ doas poudriere ports -u -p base #+begin_src sh doas poudriere testport -j 151amd64 -p base -O custom -o devel/py-rassumfrassum -doas poudriere bulk -j 151amd64 -p base -O custom -o misc/kimi-code +doas poudriere bulk -j 151amd64 -p base -O custom misc/kimi-code #+end_src =testport= builds the port in the jail and then runs the full QA cycle: stage, =check-plist=, install, deinstall, reinstall. Dependencies from the official tree are fetched as binary packages; only overlay ports compile. @@ -133,6 +133,39 @@ doas poudriere bulk -j 151amd64 -p base -O custom -f /home/cashmere/ports/pkglis =bulk= produces packages for everything on the list. It does not run the interactive install/deinstall tests =testport= runs, so use =testport= when validating a port and =bulk= when you just want the packages. +** Installing the built packages + +Both =testport= and =bulk= leave finished packages in the poudriere repository at =/usr/local/poudriere/data/packages/151amd64-base= (built overlay ports land in =All/= next to the fetched official dependencies). Building never installs anything on the host — that is a separate step. + +The convenient way is to register the poudriere output as a local pkg repository once. Create =/usr/local/etc/pkg/repos/custom.conf= (root-owned): + +#+begin_src sh +doas sh -c 'cat > /usr/local/etc/pkg/repos/custom.conf' <<'EOF' +custom: { + url: "file:///usr/local/poudriere/data/packages/151amd64-base", + enabled: yes, + priority: 100, + signature_type: "none" +} +EOF +#+end_src + +=priority: 100= makes pkg prefer this repository over the official one (default priority 0), so overlay packages win even when an official port with the same name exists; =signature_type: "none"= is needed because the poudriere repository is unsigned. Then install or upgrade like any other package — always naming the package, so only it (and its required dependencies) are touched, never the whole system: + +#+begin_src sh +doas poudriere bulk -j 151amd64 -p base -O custom misc/kimi-code # build the new version first +doas pkg install misc/kimi-code # fresh install; also upgrades if already installed +doas pkg upgrade kimi-code # upgrade only this package +#+end_src + +=pkg install= reporting =The most recent versions of packages are already installed= means the custom repository holds no newer version than the installed one — build it first. A bare =doas pkg upgrade= would upgrade the entire system; avoid it unless that is intended. + +For a one-off install without touching the pkg configuration, point =pkg add= at the package file directly (exact file names are listed by =ls /usr/local/poudriere/data/packages/151amd64-base/All/=): + +#+begin_src sh +doas pkg add /usr/local/poudriere/data/packages/151amd64-base/All/py311-rassumfrassum-<version>.pkg +#+end_src + ** Stopping a build #+begin_src sh @@ -190,6 +223,7 @@ portfmt Makefile #+begin_src sh doas poudriere testport -j 151amd64 -p base -O custom -o devel/foo #+end_src +7. Add the port's origin to =pkglist= and install it on the host (see "Installing the built packages"). * Upgrading a port @@ -210,6 +244,7 @@ make makesum doas poudriere testport -j 151amd64 -p base -O custom -o devel/foo #+end_src 5. Prune the previous version's distfile (see "Pruning old distfiles"). +6. Install the new version on the host (see "Installing the built packages"). ** npm-based ports (e.g. =misc/kimi-code=) @@ -241,6 +276,7 @@ make extract doas poudriere testport -j 151amd64 -p base -O custom -o misc/kimi-code #+end_src 7. Clean up: delete =files/package-lock.json.old= and prune the previous version's distfile (see "Pruning old distfiles"). +8. Install the new version on the host (see "Installing the built packages"). * Troubleshooting |
