diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2026-07-25 12:14:27 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2026-07-25 12:14:27 +0300 |
| commit | 6bf890f5bcafd9747509efe1122a6132a064a53e (patch) | |
| tree | cb654270c56a0f882744b4cc6217e9addf41fd54 /roles/host/templates | |
| parent | da9a729eaf6fac9b0cc532dcf0056ba76c7f677d (diff) | |
Set up poudriere custom repo
Diffstat (limited to 'roles/host/templates')
6 files changed, 93 insertions, 0 deletions
diff --git a/roles/host/templates/etc_crontab.j2 b/roles/host/templates/etc_crontab.j2 index 33276ab..a78c105 100644 --- a/roles/host/templates/etc_crontab.j2 +++ b/roles/host/templates/etc_crontab.j2 @@ -30,3 +30,7 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin */10 * * * * root python -m pylogsentinel # Run pylogsentinel batch job once a day 5 6 * * * root /usr/local/bin/pylogsentinel-batch-email.sh + +# Update ports trees nightly +0 2 * * * root /usr/local/bin/update-ports quarterly >>/var/log/update-ports.log 2>&1 +5 2 * * * root /usr/local/bin/update-ports custom >>/var/log/update-ports.log 2>&1 diff --git a/roles/host/templates/poudriere_build_make.conf.j2 b/roles/host/templates/poudriere_build_make.conf.j2 new file mode 100644 index 0000000..6bc860f --- /dev/null +++ b/roles/host/templates/poudriere_build_make.conf.j2 @@ -0,0 +1,2 @@ +DEFAULT_VERSIONS+=python=3.12 python3=3.12 +DISABLE_LICENSES=yes diff --git a/roles/host/templates/usr_local_bin_poudriere_start_build.sh.j2 b/roles/host/templates/usr_local_bin_poudriere_start_build.sh.j2 new file mode 100644 index 0000000..6bbd379 --- /dev/null +++ b/roles/host/templates/usr_local_bin_poudriere_start_build.sh.j2 @@ -0,0 +1,2 @@ +#!/bin/sh +exec poudriere bulk -j poudriere_build -p quarterly -O custom -f /usr/local/etc/poudriere-pkglist "$@" diff --git a/roles/host/templates/usr_local_bin_update_ports.sh.j2 b/roles/host/templates/usr_local_bin_update_ports.sh.j2 new file mode 100644 index 0000000..ad4102d --- /dev/null +++ b/roles/host/templates/usr_local_bin_update_ports.sh.j2 @@ -0,0 +1,61 @@ +#!/bin/sh +set -e + +usage() { + echo "Usage: update-ports [quarterly|custom]" + exit 1 +} + +[ $# -eq 1 ] || usage + +BASEDIR=/usr/ports +REMOTE_QUARTERLY="https://github.com/freebsd/freebsd-ports.git" +REMOTE_CUSTOM="https://github.com/jantuomi/freebsd-ports-custom.git" + +case "$1" in +quarterly) + # Find the newest quarterly branch + BRANCH=$(git ls-remote --heads "$REMOTE_QUARTERLY" | grep -oE 'refs/heads/[0-9]{4}Q[0-9]' | sort -t/ -k3 -V | tail -1 | sed 's|refs/heads/||') + if [ -z "$BRANCH" ]; then + echo "Error: Could not determine quarterly branch" + exit 1 + fi + + # Check if already at this version + VERSION_FILE="${BASEDIR}/quarterly/.version" + if [ -f "$VERSION_FILE" ] && [ "$(cat "$VERSION_FILE")" = "$BRANCH" ]; then + echo "Quarterly ports tree already at $BRANCH." + exit 0 + fi + + echo "Downloading quarterly ports tree (branch: $BRANCH)..." + TMPDIR="${BASEDIR}/.quarterly.new" + rm -rf "$TMPDIR" + mkdir -p "$TMPDIR" + fetch -qo- "https://github.com/freebsd/freebsd-ports/archive/refs/heads/${BRANCH}.tar.gz" | tar -xf - -C "$TMPDIR" --strip-components=1 + echo "$BRANCH" > "$TMPDIR/.version" + + if [ -d "${BASEDIR}/quarterly" ]; then + mv "${BASEDIR}/quarterly" "${BASEDIR}/.quarterly.old" + fi + mv "$TMPDIR" "${BASEDIR}/quarterly" + rm -rf "${BASEDIR}/.quarterly.old" & + echo "Done. Quarterly ports tree updated to $BRANCH." + ;; +custom) + # Clone or update + if [ -d "${BASEDIR}/custom/.git" ]; then + echo "Updating custom ports overlay..." + git -C "${BASEDIR}/custom" fetch origin + git -C "${BASEDIR}/custom" reset --hard origin/main + else + echo "Cloning custom ports overlay..." + rm -rf "${BASEDIR}/custom" + git clone "$REMOTE_CUSTOM" "${BASEDIR}/custom" + fi + echo "Done. Custom ports overlay updated." + ;; +*) + usage + ;; +esac diff --git a/roles/host/templates/usr_local_etc_poudriere.conf.j2 b/roles/host/templates/usr_local_etc_poudriere.conf.j2 new file mode 100644 index 0000000..965ca3a --- /dev/null +++ b/roles/host/templates/usr_local_etc_poudriere.conf.j2 @@ -0,0 +1,13 @@ +ZPOOL=zroot +ZROOTFS=/poudriere +FREEBSD_HOST=https://download.FreeBSD.org +RESOLV_CONF=/etc/resolv.conf +BASEFS=/usr/local/poudriere +DISTFILES_CACHE=/usr/local/poudriere/distfiles +USE_PORTLINT=no +USE_TMPFS=yes +NOLINUX=yes +ALLOW_MAKE_JOBS=yes +MAKE_JOBS_NUMBER={{ ansible_processor_count | default(4) }} +PACKAGE_FETCH_BRANCH=quarterly +PACKAGE_FETCH_URL=pkg+https://pkg.FreeBSD.org/{{ pkg_abi }} diff --git a/roles/host/templates/usr_local_etc_poudriere_pkglist.j2 b/roles/host/templates/usr_local_etc_poudriere_pkglist.j2 new file mode 100644 index 0000000..add1784 --- /dev/null +++ b/roles/host/templates/usr_local_etc_poudriere_pkglist.j2 @@ -0,0 +1,11 @@ +databases/py-tinydb +www/py-ua-parser +www/py-user-agents +sysutils/pylogsentinel +net-im/taulubot +net-im/hommabot +www/aggro +www/diddle +www/expense-tracker +www/gdrive-photo-gallery +www/pastebin |
