summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--WORKFLOW.org38
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