From a66eff79e230babe7def9a83709d63ff1146bacd Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sun, 11 Feb 2024 14:59:55 -0500 Subject: [PATCH] Set up poudriere to build pkgbase. --- .../environments/home/host_vars/homeserver | 4 - ansible/environments/laptop/group_vars/all | 25 ++++ .../environments/laptop/host_vars/odofreebsd | 15 +- .../vm/host_vars/freebsdupdatemrmanager | 5 - .../vm/host_vars/poudrieremrmanager | 20 +-- ansible/environments/vm/hosts | 5 - ansible/playbook.yaml | 19 +-- ansible/roles/android/tasks/linux.yaml | 4 +- ansible/roles/base/files/gitconfig_work | 2 + ansible/roles/base/files/odofreebsd_rc.conf | 6 +- ansible/roles/build/defaults/main.yaml | 2 - ansible/roles/build/files/CUSTOM | 6 - ...ackages_that_installed_kernel_modules.bash | 26 ---- .../files/find_popular_ports_options.bash | 36 ----- .../files/find_ports_containing_option.bash | 41 ------ .../roles/build/files/freebsd_update_step1 | 20 --- .../roles/build/files/freebsd_update_step2 | 19 --- ansible/roles/build/files/make.conf | 0 ...{pacman-custom.conf => pacman-x86_64.conf} | 0 ansible/roles/build/tasks/freebsd.yaml | 100 -------------- ansible/roles/build/tasks/linux.yaml | 4 +- .../roles/emacs/files/elisp/util-vertico.el | 2 +- ansible/roles/emacs/tasks/common.yaml | 1 + ansible/roles/emacs/tasks/freebsd.yaml | 1 - .../files/build_release.bash | 130 ------------------ .../freebsd_update_server/files/release.conf | 120 ---------------- .../freebsd_update_server/tasks/common.yaml | 5 - .../freebsd_update_server/tasks/freebsd.yaml | 50 ------- .../freebsd_update_server/tasks/linux.yaml | 29 ---- .../freebsd_update_server/tasks/main.yaml | 2 - ansible/roles/graphics/files/amd_kld_rc.conf | 1 + ansible/roles/graphics/tasks/freebsd_amd.yaml | 18 +-- .../roles/jail_nat_dhcp/files/kea-dhcp4.conf | 5 - ansible/roles/kubernetes/meta/main.yaml | 2 - ansible/roles/kubernetes/tasks/linux.yaml | 21 +-- .../roles/package_manager/files/mirrorlist | 2 +- .../roles/package_manager/tasks/common.yaml | 9 -- .../roles/package_manager/tasks/freebsd.yaml | 12 +- .../roles/package_manager/tasks/peruser.yaml | 29 ---- .../tasks/peruser_freebsd.yaml | 0 .../package_manager/tasks/peruser_linux.yaml | 0 .../package_manager/templates/pkgbase.conf.j2 | 17 +++ .../files/currentznver4_src.conf} | 9 +- ansible/roles/poudriere/files/poudboot | 4 +- ansible/roles/poudriere/files/poudboot.bash | 16 ++- .../editors_emacs/options | 44 ------ ...currentznver4-default-framework-make.conf} | 14 +- ...> currentznver4-default-framework-pkglist} | 8 +- .../files/poudriere_schedule_build.bash | 2 +- ansible/roles/poudriere/tasks/freebsd.yaml | 16 ++- ansible/roles/poudrierenginx/files/nginx.conf | 5 + ansible/roles/rust/defaults/main.yaml | 2 +- ansible/roles/rust/files/cargo_config.toml | 2 +- ansible/roles/rust/tasks/freebsd.yaml | 2 +- ansible/roles/rust/tasks/peruser_linux.yaml | 5 + ansible/roles/ssh_client/tasks/peruser.yaml | 46 ++++--- ansible/roles/vscode/files/keybindings.json | 46 ++++++- ansible/roles/vscode/files/settings.json | 7 +- ansible/roles/wireguard/tasks/freebsd.yaml | 2 +- ansible/roles/zfs/tasks/linux.yaml | 1 - ansible/run.bash | 2 - 61 files changed, 232 insertions(+), 816 deletions(-) delete mode 100644 ansible/environments/vm/host_vars/freebsdupdatemrmanager delete mode 100644 ansible/roles/build/defaults/main.yaml delete mode 100644 ansible/roles/build/files/CUSTOM delete mode 100755 ansible/roles/build/files/find_packages_that_installed_kernel_modules.bash delete mode 100755 ansible/roles/build/files/find_popular_ports_options.bash delete mode 100755 ansible/roles/build/files/find_ports_containing_option.bash delete mode 100644 ansible/roles/build/files/freebsd_update_step1 delete mode 100644 ansible/roles/build/files/freebsd_update_step2 delete mode 100644 ansible/roles/build/files/make.conf rename ansible/roles/build/files/{pacman-custom.conf => pacman-x86_64.conf} (100%) delete mode 100644 ansible/roles/freebsd_update_server/files/build_release.bash delete mode 100644 ansible/roles/freebsd_update_server/files/release.conf delete mode 100644 ansible/roles/freebsd_update_server/tasks/common.yaml delete mode 100644 ansible/roles/freebsd_update_server/tasks/freebsd.yaml delete mode 100644 ansible/roles/freebsd_update_server/tasks/linux.yaml delete mode 100644 ansible/roles/freebsd_update_server/tasks/main.yaml create mode 100644 ansible/roles/graphics/files/amd_kld_rc.conf delete mode 100644 ansible/roles/kubernetes/meta/main.yaml delete mode 100644 ansible/roles/package_manager/tasks/peruser.yaml delete mode 100644 ansible/roles/package_manager/tasks/peruser_freebsd.yaml delete mode 100644 ansible/roles/package_manager/tasks/peruser_linux.yaml create mode 100644 ansible/roles/package_manager/templates/pkgbase.conf.j2 rename ansible/roles/{build/templates/src.conf.j2 => poudriere/files/currentznver4_src.conf} (75%) delete mode 100644 ansible/roles/poudriere/files/poudriere.d/13amd64-default-framework-options/editors_emacs/options rename ansible/roles/poudriere/files/poudriere.d/{13amd64-default-framework-make.conf => currentznver4-default-framework-make.conf} (72%) rename ansible/roles/poudriere/files/poudriere.d/{13amd64-default-framework-pkglist => currentznver4-default-framework-pkglist} (95%) diff --git a/ansible/environments/home/host_vars/homeserver b/ansible/environments/home/host_vars/homeserver index 8039b7e..af67a67 100644 --- a/ansible/environments/home/host_vars/homeserver +++ b/ansible/environments/home/host_vars/homeserver @@ -13,11 +13,7 @@ rc_conf: "homeserver_rc.conf" loader_conf: "homeserver_loader.conf" netgraph_config: "setup_netgraph_homeserver" cputype: "intel" -cpu_opt: broadwell hwpstate: false -build_user: - name: talexander - group: talexander devfs_rules: "homeserver_devfs.rules" jail_zfs_dataset: zmass/encrypted/jails jail_zfs_dataset_mountpoint: /jail/main diff --git a/ansible/environments/laptop/group_vars/all b/ansible/environments/laptop/group_vars/all index 9577e3a..9d7c3bc 100644 --- a/ansible/environments/laptop/group_vars/all +++ b/ansible/environments/laptop/group_vars/all @@ -1,3 +1,28 @@ timezone: "America/New_York" install_bluetooth: true emacs_flavor: "full" +ssh_hosts: + - name: poudriere + proxy_jump: talexander@mrmanager + host_name: 10.215.1.203 + - name: controller0 + proxy_jump: talexander@mrmanager + host_name: 10.215.1.204 + - name: controller1 + proxy_jump: talexander@mrmanager + host_name: 10.215.1.205 + - name: controller2 + proxy_jump: talexander@mrmanager + host_name: 10.215.1.206 + - name: worker0 + proxy_jump: talexander@mrmanager + host_name: 10.215.1.207 + - name: worker1 + proxy_jump: talexander@mrmanager + host_name: 10.215.1.208 + - name: worker2 + proxy_jump: talexander@mrmanager + host_name: 10.215.1.209 + - name: brianai + proxy_jump: talexander@mrmanager + host_name: 10.215.1.215 diff --git a/ansible/environments/laptop/host_vars/odofreebsd b/ansible/environments/laptop/host_vars/odofreebsd index 056894f..14e1ad1 100644 --- a/ansible/environments/laptop/host_vars/odofreebsd +++ b/ansible/environments/laptop/host_vars/odofreebsd @@ -1,25 +1,21 @@ os_flavor: "freebsd" -#custom_repo: 13amd64-default-framework +custom_repo: current-default-framework zfs_snapshot_datasets: - path: zroot/freebsd/current/be/default sshd_enabled: true sshd_conf: "sshd_config" -pf_config: "odofreebsd_pf.conf" -pflog_conf: - - name: 0 - dev: pflog0 +#pf_config: "odofreebsd_pf.conf" +#pflog_conf: +# - name: 0 +# dev: pflog0 network_rc: "odofreebsd_network.conf" rc_conf: "odofreebsd_rc.conf" loader_conf: "odofreebsd_loader.conf" install_graphics: true graphics_driver: "amd" cputype: "amd" -cpu_opt: znver4 hwpstate: true cores: 16 -build_user: - name: talexander - group: talexander users: talexander: initialize: true @@ -31,6 +27,7 @@ users: - name: u2f - name: operator # To be able to shutdown without root - name: webcamd + gid: 145 authorized_keys: - yubikey - main_fido diff --git a/ansible/environments/vm/host_vars/freebsdupdatemrmanager b/ansible/environments/vm/host_vars/freebsdupdatemrmanager deleted file mode 100644 index f68e738..0000000 --- a/ansible/environments/vm/host_vars/freebsdupdatemrmanager +++ /dev/null @@ -1,5 +0,0 @@ -os_flavor: "freebsd" -cpu_opt: tigerlake -build_user: - name: root - group: wheel diff --git a/ansible/environments/vm/host_vars/poudrieremrmanager b/ansible/environments/vm/host_vars/poudrieremrmanager index 348014b..af66d63 100644 --- a/ansible/environments/vm/host_vars/poudrieremrmanager +++ b/ansible/environments/vm/host_vars/poudrieremrmanager @@ -1,13 +1,15 @@ os_flavor: "freebsd" +pkgbase_url: "file:///usr/local/poudriere/data/images/currentznver4-repo/FreeBSD:15:amd64/latest" poudriere_builds: - - jail: 13amd64 - ports: default - set: framework - version: 13.2-RELEASE - # - jail: current + # - jail: 13amd64 # ports: default # set: framework - # version: CURRENT - # revision: af01b4722577903f91acc44f01bdcb8cdb2d65ad - # kernel: CUSTOM - # branch: main + # version: 13.2-RELEASE + - jail: currentznver4 + ports: default + set: framework + version: CURRENT + # revision: 66d37dbedfbf2dc94ccf49e6983c3652d5909b91 + kernel: GENERIC-NODEBUG + branch: main + srcconf: currentznver4_src.conf diff --git a/ansible/environments/vm/hosts b/ansible/environments/vm/hosts index efffe2b..05672df 100644 --- a/ansible/environments/vm/hosts +++ b/ansible/environments/vm/hosts @@ -1,13 +1,8 @@ [vm] poudriereodo ansible_user=builder ansible_host=10.213.177.12 poudrieremrmanager ansible_user=root ansible_host=poudriere -freebsdupdatemrmanager ansible_user=root ansible_host=freebsdupdate # # Put in ~/.ssh/config # Host poudriere # ProxyJump talexander@mrmanager # HostName 10.215.1.203 -# -# Host freebsdupdate -# ProxyJump talexander@mrmanager -# HostName 10.215.1.213 diff --git a/ansible/playbook.yaml b/ansible/playbook.yaml index c32cd4e..7f7e9eb 100644 --- a/ansible/playbook.yaml +++ b/ansible/playbook.yaml @@ -42,7 +42,6 @@ - ansible - wireguard - portshaker - - poudriere - android - latex - python @@ -68,10 +67,10 @@ roles: - sudo # for poudboot script - fstab + - package_manager - portshaker - poudriere - poudrierenginx - - freebsd_update_server - hosts: mrmanager vars: @@ -123,22 +122,6 @@ roles: - framework_laptop -- hosts: odofreebsd - vars: - ansible_become: True - roles: - - freebsd_update_server - -- hosts: freebsdupdatemrmanager - vars: - ansible_become: True - roles: - - sudo # for poudboot script - - doas - - fstab - - build - - freebsd_update_server - - hosts: homeserver vars: ansible_become: True diff --git a/ansible/roles/android/tasks/linux.yaml b/ansible/roles/android/tasks/linux.yaml index 002cf53..99744ab 100644 --- a/ansible/roles/android/tasks/linux.yaml +++ b/ansible/roles/android/tasks/linux.yaml @@ -13,10 +13,12 @@ # name: [] # state: present # update_cache: true - + - name: Install packages package: name: - gvfs - gvfs-mtp + - android-udev # Access android over USB without root. + - android-tools # For fastboot to flash phones. state: present diff --git a/ansible/roles/base/files/gitconfig_work b/ansible/roles/base/files/gitconfig_work index c9b2a3e..f4fb827 100644 --- a/ansible/roles/base/files/gitconfig_work +++ b/ansible/roles/base/files/gitconfig_work @@ -33,3 +33,5 @@ cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED" # Make the middle pane start without any merge progress: # cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED" +[includeIf "gitdir:/bridge/git/machine_setup/"] + path = /bridge/git/machine_setup/ansible/roles/base/files/gitconfig_home diff --git a/ansible/roles/base/files/odofreebsd_rc.conf b/ansible/roles/base/files/odofreebsd_rc.conf index d45469b..968bffd 100644 --- a/ansible/roles/base/files/odofreebsd_rc.conf +++ b/ansible/roles/base/files/odofreebsd_rc.conf @@ -2,9 +2,9 @@ clear_tmp_enable="YES" syslogd_flags="-ss" sendmail_enable="NONE" hostname="odo" -# wlans_iwlwifi0="wlan0" -# ifconfig_wlan0="WPA DHCP" -# ifconfig_wlan0_ipv6="inet6 accept_rtadv" +wlans_iwlwifi0="wlan0" +ifconfig_wlan0="WPA DHCP" +ifconfig_wlan0_ipv6="inet6 accept_rtadv" sshd_enable="YES" ntpd_enable="YES" powerd_enable="YES" diff --git a/ansible/roles/build/defaults/main.yaml b/ansible/roles/build/defaults/main.yaml deleted file mode 100644 index 87a7543..0000000 --- a/ansible/roles/build/defaults/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ -# freebsd_version: "releng/13.2" -freebsd_version: "c3d7bb5aca7749626b5c70dfa86ee8f07960f44a" diff --git a/ansible/roles/build/files/CUSTOM b/ansible/roles/build/files/CUSTOM deleted file mode 100644 index 345d989..0000000 --- a/ansible/roles/build/files/CUSTOM +++ /dev/null @@ -1,6 +0,0 @@ -include GENERIC-NODEBUG - -# Disable Intel SD/MMC controller for reading eMMC -nodevice sdhci - -ident CUSTOM diff --git a/ansible/roles/build/files/find_packages_that_installed_kernel_modules.bash b/ansible/roles/build/files/find_packages_that_installed_kernel_modules.bash deleted file mode 100755 index 7e5d5ea..0000000 --- a/ansible/roles/build/files/find_packages_that_installed_kernel_modules.bash +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -# -# List installed packages that install a kernel module. -set -euo pipefail -IFS=$'\n\t' -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -: ${PORTSDIR:="/usr/ports"} - -function main { - if [ "$#" -ne 0 ]; then - (>&2 echo "This script takes no positional parameters.") - exit 1 - fi - local module - doas find / -type f -name '*.ko' | sort | while read module; do - local provides=$(pkg provides "$module") - if [ -n "$provides" ]; then - package_name=$(grep 'Name : ' <<<"$provides" | sed 's/Name : //g') - # module_file=$(grep 'Filename: ' <<<"$provides" | sed 's/Filename: //g') - echo "$package_name" - fi - done -} - -main "${@}" diff --git a/ansible/roles/build/files/find_popular_ports_options.bash b/ansible/roles/build/files/find_popular_ports_options.bash deleted file mode 100755 index 900df32..0000000 --- a/ansible/roles/build/files/find_popular_ports_options.bash +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash -# -# Find which port options appear the most in ports. -set -euo pipefail -IFS=$'\n\t' -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -: ${PORTSDIR:="/usr/ports"} - -function main { - if [ "$#" -ne 0 ]; then - (>&2 echo "This script takes no positional parameters.") - exit 1 - fi - local folder - find_port_folders | while read folder; do - set +e - dump_port_options "$folder" - set -e - done | sort | uniq -c | sort -nr -} - -function find_port_folders { - local mf - find "$PORTSDIR" -type f -name Makefile -mindepth 3 -maxdepth 3 | sort | while read mf; do - dirname "$mf" - done -} - -function dump_port_options { - local folder="$1" - local portopts=$(make -C "$folder" -V OPTIONS_DEFINE) - echo "$portopts" | grep -oE --line-buffered '[^ ]*' -} - -main "${@}" diff --git a/ansible/roles/build/files/find_ports_containing_option.bash b/ansible/roles/build/files/find_ports_containing_option.bash deleted file mode 100755 index c2ccd3a..0000000 --- a/ansible/roles/build/files/find_ports_containing_option.bash +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -# -# List ports containing an option matching the first parameter to the script. -set -euo pipefail -IFS=$'\n\t' -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -: ${PORTSDIR:="/usr/ports"} - -function main { - if [ "$#" -ne 1 ]; then - (>&2 echo "Pass exactly 1 option name to this script.") - exit 1 - fi - local find_option_name=$1 - local folder - find_port_folders | while read folder; do - set +e - dump_port_options "$folder" | grep -qE "^${find_option_name}$" - has_opt=$?; - set -e - if [ $has_opt -eq 0 ]; then - echo "$folder" - fi - done -} - -function find_port_folders { - local mf - find "$PORTSDIR" -type f -name Makefile -mindepth 3 -maxdepth 3 | sort | while read mf; do - dirname "$mf" - done -} - -function dump_port_options { - local folder="$1" - local portopts=$(make -C "$folder" -V OPTIONS_DEFINE) - echo "$portopts" | grep -oE --line-buffered '[^ ]*' -} - -main "${@}" diff --git a/ansible/roles/build/files/freebsd_update_step1 b/ansible/roles/build/files/freebsd_update_step1 deleted file mode 100644 index 7cbc2f3..0000000 --- a/ansible/roles/build/files/freebsd_update_step1 +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -# -# Build and installs whatever is in /usr/src. Run step 1, reboot, then step 2. -set -euo pipefail -IFS=$'\n\t' -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -cores=$(sysctl -n hw.ncpu) - -if sudo etcupdate status | grep -qE '^ C '; then - >&2 echo 'Conflicts remain in etcupdate. Run `etcupdate resolve` to fix them first.' - exit 1 -fi - -cd /usr/src - -make -j "$cores" clean -make -j "$cores" buildworld buildkernel -sudo make installkernel - -echo "FreeBSD update step 1 done. Please reboot." diff --git a/ansible/roles/build/files/freebsd_update_step2 b/ansible/roles/build/files/freebsd_update_step2 deleted file mode 100644 index cca32ac..0000000 --- a/ansible/roles/build/files/freebsd_update_step2 +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -# -# Build and installs whatever is in /usr/src. Run step 1, reboot, then step 2. -set -euo pipefail -IFS=$'\n\t' -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -sudo etcupdate -p - -cd /usr/src -sudo make installworld -sudo etcupdate -B - -if sudo etcupdate status | grep -qE '^ C '; then - >&2 echo 'Conflicts in etcupdate. Run `etcupdate resolve` to fix them first.' - exit 1 -fi - -echo "FreeBSD update step 2 done. Please reboot." diff --git a/ansible/roles/build/files/make.conf b/ansible/roles/build/files/make.conf deleted file mode 100644 index e69de29..0000000 diff --git a/ansible/roles/build/files/pacman-custom.conf b/ansible/roles/build/files/pacman-x86_64.conf similarity index 100% rename from ansible/roles/build/files/pacman-custom.conf rename to ansible/roles/build/files/pacman-x86_64.conf diff --git a/ansible/roles/build/tasks/freebsd.yaml b/ansible/roles/build/tasks/freebsd.yaml index c167ab8..e69de29 100644 --- a/ansible/roles/build/tasks/freebsd.yaml +++ b/ansible/roles/build/tasks/freebsd.yaml @@ -1,100 +0,0 @@ -- name: Install packages - package: - name: - - git - state: present - -- name: Create directories - file: - name: "{{ item }}" - state: directory - mode: 0755 - owner: "{{ build_user.name }}" - group: "{{ build_user.group }}" - loop: - - "/usr/src" - # - "/usr/ports" - - "/usr/obj" - -- name: chown the FreeBSD source - file: - name: "{{ item }}" - state: directory - owner: "{{ build_user.name }}" - group: "{{ build_user.group }}" - recurse: true - loop: - - "/usr/src" - -- name: Clone FreeBSD Source - git: - repo: "https://git.FreeBSD.org/src.git" - dest: /usr/src - version: "{{ freebsd_version }}" - force: true - become: true - become_user: "{{ build_user.name }}" - diff: false - -# - name: Clone Ports Tree -# git: -# repo: "https://git.FreeBSD.org/ports.git" -# dest: /usr/ports -# version: "main" -# force: true -# update: false -# become: true -# become_user: "{{ build_user.name }}" -# diff: false - -- name: Install Configuration - copy: - src: "files/{{ item.src }}" - dest: "{{ item.dest }}" - mode: 0644 - owner: root - group: wheel - loop: - - src: make.conf - dest: /etc/make.conf - -- name: Install Configuration - copy: - src: "files/{{ item.src }}" - dest: "{{ item.dest }}" - mode: 0644 - owner: "{{ build_user.name }}" - group: "{{ build_user.group }}" - loop: - - src: CUSTOM - dest: /usr/src/sys/amd64/conf/CUSTOM - -- name: Install Configuration - template: - src: "templates/{{ item.src }}.j2" - dest: "{{ item.dest }}" - mode: 0644 - owner: root - group: wheel - loop: - - src: src.conf - dest: /etc/src.conf - -- name: Install scripts - copy: - src: "files/{{ item.src }}" - dest: "{{ item.dest }}" - mode: 0700 - owner: "{{ build_user.name }}" - group: "{{ build_user.group }}" - loop: - - src: freebsd_update_step1 - dest: /usr/local/bin/freebsd_update_step1 - - src: freebsd_update_step2 - dest: /usr/local/bin/freebsd_update_step2 - - src: find_popular_ports_options.bash - dest: /usr/local/bin/find_popular_ports_options - - src: find_ports_containing_option.bash - dest: /usr/local/bin/find_ports_containing_option - - src: find_packages_that_installed_kernel_modules.bash - dest: /usr/local/bin/find_packages_that_installed_kernel_modules diff --git a/ansible/roles/build/tasks/linux.yaml b/ansible/roles/build/tasks/linux.yaml index d44f0f3..3af617a 100644 --- a/ansible/roles/build/tasks/linux.yaml +++ b/ansible/roles/build/tasks/linux.yaml @@ -89,7 +89,7 @@ loop: - src: aurutils.conf dest: /etc/pacman.d/conf.d/ - - src: pacman-custom.conf + - src: pacman-x86_64.conf dest: /etc/aurutils/ - src: makepkg.conf # TODO: Is this needed or can I use the default from devtools? dest: /etc/aurutils/ @@ -103,7 +103,7 @@ - /var/cache/pacman/custom/ - name: Create custom repo db - command: repo-add --sign /var/cache/pacman/custom/custom.db.tar + command: repo-add --new --sign /var/cache/pacman/custom/custom.db.tar "/home/{{ build_user.name }}/.config/ansible_deploy/aurutils/aurutils-*-any.pkg.tar.*" become: true become_user: "{{ build_user.name }}" args: diff --git a/ansible/roles/emacs/files/elisp/util-vertico.el b/ansible/roles/emacs/files/elisp/util-vertico.el index 50f52c8..a1e003e 100644 --- a/ansible/roles/emacs/files/elisp/util-vertico.el +++ b/ansible/roles/emacs/files/elisp/util-vertico.el @@ -21,7 +21,7 @@ (vertico-count 20) ) -;; Create an ivy-like experience when selecting files. +;; Create an ido/ivy-like experience when selecting files. (use-package vertico-directory :after vertico :ensure nil diff --git a/ansible/roles/emacs/tasks/common.yaml b/ansible/roles/emacs/tasks/common.yaml index b9f3c1b..30c326f 100644 --- a/ansible/roles/emacs/tasks/common.yaml +++ b/ansible/roles/emacs/tasks/common.yaml @@ -3,6 +3,7 @@ package: name: - aspell + - graphviz # used for exporting graphviz dot charts from org-mode state: present - name: Install scripts diff --git a/ansible/roles/emacs/tasks/freebsd.yaml b/ansible/roles/emacs/tasks/freebsd.yaml index 9bef000..e5fe64e 100644 --- a/ansible/roles/emacs/tasks/freebsd.yaml +++ b/ansible/roles/emacs/tasks/freebsd.yaml @@ -18,7 +18,6 @@ - py39-black - zip # for odt export from org-mode - gnuplot # used for exporting graphs from org-mode - - graphviz # used for exporting graphviz dot charts from org-mode # - pyright - sqlite3 # for sqlite code blocks in org-mode # - terraform-ls # Terraform language server diff --git a/ansible/roles/freebsd_update_server/files/build_release.bash b/ansible/roles/freebsd_update_server/files/build_release.bash deleted file mode 100644 index 92cc305..0000000 --- a/ansible/roles/freebsd_update_server/files/build_release.bash +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env bash -# -set -euo pipefail -IFS=$'\n\t' -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -: ${DATA_DIRECTORY:="/usr/local/share/freebsdupdate"} -: ${STAGE_FILE:="${DATA_DIRECTORY}/stage"} -: ${RELEASE_DIRECTORY:="${DATA_DIRECTORY}/release"} -: ${LOG_DIRECTORY:="${DATA_DIRECTORY}/logs"} -: ${PORTS_TREE:="/usr/ports"} -: ${PORTS_REPO:="https://git.FreeBSD.org/ports.git"} - -############## Setup ######################### - -function die { - local status_code="$1" - shift - (>&2 echo "${@}") - exit "$status_code" -} - -function log { - (>&2 echo "${@}") -} - -############## Program ######################### - -function main { - assert_directories - - local stage="" - if [ -e "$STAGE_FILE" ]; then - local stage=$(cat "$STAGE_FILE") - fi - if [ "$stage" = "selfbuild" ]; then - log_cmd stage_selfbuild - elif [ "$stage" = "selfinstallworld" ]; then - log_cmd stage_selfinstallworld - elif [ "$stage" = "selfconflictcheck" ]; then - log_cmd stage_selfconflictcheck - elif [ "$stage" = "releasebuild" ]; then - log_cmd stage_releasebuild - elif [ "$stage" = "done" ]; then - log_cmd stage_done - else - die 1 "Unhandled stage: \"$stage\"." - fi -} - -function log_cmd { - "${@}" |& tee "$LOG_DIRECTORY/$(date +%Y%m%d-%s).log" -} - -function self_conflict_check { - if etcupdate status | grep -qE '^ C '; then - die 1 'Conflicts remain in etcupdate. Run `etcupdate resolve` to fix them first.' - fi -} - -function assert_directories { - for d in "$DATA_DIRECTORY" "$RELEASE_DIRECTORY" "$LOG_DIRECTORY"; do - if [ ! -e "$d" ]; then - mkdir -p "$d" - fi - done -} - -function update_ports_tree { - if [ ! -e "$PORTS_TREE" ]; then - mkdir -p $PORTS_TREE - git -C $PORTS_TREE init --initial-branch=main - git -C $PORTS_TREE remote add origin $PORTS_REPO - fi - git -C $PORTS_TREE fetch origin main # 'refs/heads/main' - git -C $PORTS_TREE checkout FETCH_HEAD -} - -function set_stage { - echo "${@}" > "$STAGE_FILE" -} - -function stage_selfbuild { - self_conflict_check - assert_directories - update_ports_tree - - SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src clean - SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src buildworld buildkernel - SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src installkernel - - set_stage "selfinstallworld" - /sbin/shutdown -r now -} - -function stage_selfinstallworld { - etcupdate -p - SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src installworld - etcupdate -B - - set_stage "selfconflictcheck" - stage_selfconflictcheck -} - -function stage_selfconflictcheck { - self_conflict_check - set_stage "releasebuild" - /sbin/shutdown -r now -} - -function stage_releasebuild { - local today=$(date +%Y%m%d) - local target_directory="${RELEASE_DIRECTORY}/${today}" - if [ -e "$target_directory" ]; then - die 1 "The release directory $target_directory already exists. Exiting." - fi - SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src clean - make -C /usr/src buildworld buildkernel - make -C /usr/src/release obj - make -C /usr/src/release release - mkdir -p "$target_directory" - make -C /usr/src/release install DESTDIR="$target_directory" - set_stage "done" -} - -function stage_done { - log "Everything is done." -} - -main "${@}" diff --git a/ansible/roles/freebsd_update_server/files/release.conf b/ansible/roles/freebsd_update_server/files/release.conf deleted file mode 100644 index f03758d..0000000 --- a/ansible/roles/freebsd_update_server/files/release.conf +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/sh -# - -## Redefine environment variables here to override prototypes -## defined in release.sh. -#load_chroot_env() { } -#load_target_env() { } -#buildenv_setup() { } - -## Set the directory within which the release will be built. -CHROOTDIR="/scratch" - -## Do not explicitly require the devel/git port to be installed. -#NOGIT=1 -## Set the version control system host. -GITROOT="https://git.freebsd.org/" -GITSRC="src.git" -GITPORTS="ports.git" - -## Set the src/, ports/, and doc/ branches or tags. -#SRCBRANCH="stable/13" -SRCBRANCH="main" -PORTBRANCH="main" - -## Sample configuration for using git from ports. -#GITCMD="/usr/local/bin/git clone -q --branch main" - -## Set to override the default target architecture. -#TARGET="amd64" -#TARGET_ARCH="amd64" -#KERNEL="GENERIC" -KERNEL="GENERIC-NODEBUG" -## Multiple kernels may be set. -#KERNEL="GENERIC XENHVM" - -## Set to specify a custom make.conf and/or src.conf -#MAKE_CONF="/etc/local/make.conf" -MAKE_CONF="/etc/make.conf" -#SRC_CONF="/etc/local/src.conf" -SRC_CONF="/etc/src.conf" - -## Set to use make(1) flags. -#MAKE_FLAGS="-s" - -## Set to use world- and kernel-specific make(1) flags. -#WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" -#KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" - -## Set miscellaneous 'make release' settings. -#NOPORTS= -#NOSRC= -#WITH_DVD= -#WITH_COMPRESSED_IMAGES= - -## Set to '1' to disable multi-threaded xz(1) compression. -#XZ_THREADS=0 - -## Set when building embedded images. -#EMBEDDEDBUILD= - -## Set to a list of ports required to build embedded system-on-chip -## images, such as sysutils/u-boot-rpi. -#EMBEDDEDPORTS= - -## Set to the hardware platform of the target userland. This value -## is passed to make(1) to set the TARGET (value of uname -m) to cross -## build. -#EMBEDDED_TARGET= - -## Set to the machine processor architecture of the target userland. -## This value is passed to make(1) to set the TARGET_ARCH (value of uname -p) -## to cross build. -#EMBEDDED_TARGET_ARCH= - -## Set to skip the chroot environment buildworld/installworld/distribution -## step if it is expected the build environment will exist via alternate -## means. -#CHROOTBUILD_SKIP= - -## Set to a non-empty value skip checkout or update of /usr/src in -## the chroot. This is intended for use when /usr/src already exists. -#SRC_UPDATE_SKIP= - -## Set to a non-empty value skip checkout or update of /usr/ports in -## the chroot. This is intended for use when /usr/ports already exists. -#PORTS_UPDATE_SKIP= - -## Set to pass additional flags to make(1) for the build chroot setup, such -## as TARGET/TARGET_ARCH. -#CHROOT_MAKEENV= - -## Set to a non-empty value to build virtual machine images as part of the -## release build. -#WITH_VMIMAGES= - -## Set to a non-empty value to compress virtual machine images with xz(1) -## as part of the release build. -#WITH_COMPRESSED_VMIMAGES= - -## If WITH_VMIMAGES is set to a non-empty value, this is the name of the -## file to use for the installed userland/kernel. -#VMBASE="vm" - -## If WITH_VMIMAGES is set to a non-empty value, this is the size of the -## virtual machine disk filesystem. Valid size values are described in -## the makefs(8) manual page. -#VMSIZE="20g" - -## If WITH_VMIMAGES is set to a non-empty value, this is a list of disk -## image formats to create. Valid values are listed in the mkimg(1) -## manual page, as well as 'mkimg --formats' output. -#VMFORMATS="vhdf vmdk qcow2 raw" - -## Set to a non-empty value to build virtual machine images for various -## cloud providers as part of the release build. -#WITH_CLOUDWARE= - -## If WITH_CLOUDWARE is set to a non-empty value, this is a list of providers -## to create disk images. -#CLOUDWARE="EC2 GCE VAGRANT-VIRTUALBOX VAGRANT-VMWARE" diff --git a/ansible/roles/freebsd_update_server/tasks/common.yaml b/ansible/roles/freebsd_update_server/tasks/common.yaml deleted file mode 100644 index b0a9a0a..0000000 --- a/ansible/roles/freebsd_update_server/tasks/common.yaml +++ /dev/null @@ -1,5 +0,0 @@ -- import_tasks: tasks/freebsd.yaml - when: 'os_flavor == "freebsd" and build_user is defined' - -- import_tasks: tasks/linux.yaml - when: 'os_flavor == "linux"' diff --git a/ansible/roles/freebsd_update_server/tasks/freebsd.yaml b/ansible/roles/freebsd_update_server/tasks/freebsd.yaml deleted file mode 100644 index 68ab5d4..0000000 --- a/ansible/roles/freebsd_update_server/tasks/freebsd.yaml +++ /dev/null @@ -1,50 +0,0 @@ -- name: Install packages - package: - name: - - git - - tmux # For convenience - - htop # For convenience - - bash - state: present - -- name: Create directories - file: - name: "{{ item }}" - state: directory - mode: 0755 - owner: "{{ build_user.name }}" - group: "{{ build_user.group }}" - loop: - - /opt/freebsd_update_server - -- name: Clone freebsd-update-build - git: - repo: "https://github.com/freebsd/freebsd-update-build.git" - dest: /opt/freebsd_update_server/freebsd-update-build - version: "28bb3ae7de9c1332fe8a366fb154a5b9faf37f49" - force: true - become: true - become_user: "{{ build_user.name }}" - diff: false - -- name: Install Configuration - copy: - src: "files/{{ item.src }}" - dest: "{{ item.dest }}" - mode: 0600 - owner: "{{ build_user.name }}" - group: "{{ build_user.group }}" - loop: - - src: release.conf - dest: /opt/freebsd_update_server/release.conf - -- name: Install scripts - copy: - src: "files/{{ item.src }}" - dest: "{{ item.dest }}" - mode: 0755 - owner: root - group: wheel - loop: - - src: build_release.bash - dest: /usr/local/bin/build_release diff --git a/ansible/roles/freebsd_update_server/tasks/linux.yaml b/ansible/roles/freebsd_update_server/tasks/linux.yaml deleted file mode 100644 index 43ba876..0000000 --- a/ansible/roles/freebsd_update_server/tasks/linux.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# - name: Build aur packages -# register: buildaur -# become_user: "{{ build_user.name }}" -# command: "aurutils-sync --no-view {{ item }}" -# args: -# creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*" -# loop: -# - foo - -# - name: Update cache -# when: buildaur.changed -# pacman: -# name: [] -# state: present -# update_cache: true - -# - name: Install packages -# package: -# name: -# - foo -# state: present - -# - name: Enable services -# systemd: -# enabled: yes -# name: "{{ item }}" -# daemon_reload: yes -# loop: -# - foo.service diff --git a/ansible/roles/freebsd_update_server/tasks/main.yaml b/ansible/roles/freebsd_update_server/tasks/main.yaml deleted file mode 100644 index 6805b9d..0000000 --- a/ansible/roles/freebsd_update_server/tasks/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ -- import_tasks: tasks/common.yaml - # when: foo is defined diff --git a/ansible/roles/graphics/files/amd_kld_rc.conf b/ansible/roles/graphics/files/amd_kld_rc.conf new file mode 100644 index 0000000..8d34824 --- /dev/null +++ b/ansible/roles/graphics/files/amd_kld_rc.conf @@ -0,0 +1 @@ +kld_list="/boot/modules/amdgpu.ko" diff --git a/ansible/roles/graphics/tasks/freebsd_amd.yaml b/ansible/roles/graphics/tasks/freebsd_amd.yaml index 7a245ee..fbfacf7 100644 --- a/ansible/roles/graphics/tasks/freebsd_amd.yaml +++ b/ansible/roles/graphics/tasks/freebsd_amd.yaml @@ -31,12 +31,12 @@ # - intel_power # - intel_hw_accel_video -#- name: Install service configuration -# copy: -# src: "files/intel_{{ item }}_rc.conf" -# dest: "/etc/rc.conf.d/{{ item }}" -# mode: 0644 -# owner: root -# group: wheel -# loop: -# - kld +- name: Install service configuration + copy: + src: "files/amd_{{ item }}_rc.conf" + dest: "/etc/rc.conf.d/{{ item }}" + mode: 0644 + owner: root + group: wheel + loop: + - kld diff --git a/ansible/roles/jail_nat_dhcp/files/kea-dhcp4.conf b/ansible/roles/jail_nat_dhcp/files/kea-dhcp4.conf index 54a4996..f02f4b3 100644 --- a/ansible/roles/jail_nat_dhcp/files/kea-dhcp4.conf +++ b/ansible/roles/jail_nat_dhcp/files/kea-dhcp4.conf @@ -78,11 +78,6 @@ // brianai "hw-address": "06:a6:dc:59:78:12", "ip-address": "10.215.1.215" - }, - { - // freebsdupdate - "hw-address": "06:14:5c:92:3d:5b", - "ip-address": "10.215.1.213" } ] } diff --git a/ansible/roles/kubernetes/meta/main.yaml b/ansible/roles/kubernetes/meta/main.yaml deleted file mode 100644 index 1674b55..0000000 --- a/ansible/roles/kubernetes/meta/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ -dependencies: - - build diff --git a/ansible/roles/kubernetes/tasks/linux.yaml b/ansible/roles/kubernetes/tasks/linux.yaml index 9ca113d..5b9362e 100644 --- a/ansible/roles/kubernetes/tasks/linux.yaml +++ b/ansible/roles/kubernetes/tasks/linux.yaml @@ -1,25 +1,8 @@ -- name: Build aur packages - register: buildaur - become_user: "{{ build_user.name }}" - command: "aurutils-sync --no-view {{ item }}" - args: - creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*" - loop: - - kubeswitch - - flux-scm - -- name: Update cache - when: buildaur.changed - pacman: - name: [] - state: present - update_cache: true - - name: Install packages package: name: - yamllint - stern - - kubeswitch - - flux-scm + # - kubeswitch + - fluxcd state: present diff --git a/ansible/roles/package_manager/files/mirrorlist b/ansible/roles/package_manager/files/mirrorlist index c743253..20292ce 100644 --- a/ansible/roles/package_manager/files/mirrorlist +++ b/ansible/roles/package_manager/files/mirrorlist @@ -717,7 +717,7 @@ #Server = https://mirrors.42tm.tech/archlinux/$repo/os/$arch #Server = http://f.archlinuxvn.org/archlinux/$repo/os/$arch #Server = http://mirror.bizflycloud.vn/archlinux/$repo/os/$arch -Server = https://arch.mirror.constant.com/$repo/os/$arch +#Server = https://arch.mirror.constant.com/$repo/os/$arch Server = https://iad.mirrors.misaka.one/archlinux/$repo/os/$arch Server = https://forksystems.mm.fcix.net/archlinux/$repo/os/$arch Server = https://mirrors.mit.edu/archlinux/$repo/os/$arch diff --git a/ansible/roles/package_manager/tasks/common.yaml b/ansible/roles/package_manager/tasks/common.yaml index d7c1735..c4f2d20 100644 --- a/ansible/roles/package_manager/tasks/common.yaml +++ b/ansible/roles/package_manager/tasks/common.yaml @@ -3,12 +3,3 @@ - import_tasks: tasks/linux.yaml when: 'os_flavor == "linux"' - -- include_tasks: - file: tasks/peruser.yaml - apply: - become: yes - become_user: "{{ initialize_user }}" - loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}" - loop_control: - loop_var: initialize_user diff --git a/ansible/roles/package_manager/tasks/freebsd.yaml b/ansible/roles/package_manager/tasks/freebsd.yaml index 5258334..bac2387 100644 --- a/ansible/roles/package_manager/tasks/freebsd.yaml +++ b/ansible/roles/package_manager/tasks/freebsd.yaml @@ -8,7 +8,7 @@ loop: - /usr/local/etc/pkg - /usr/local/etc/pkg/repos - + - name: Install packages package: name: @@ -65,6 +65,16 @@ loop: - { src: custom.conf.j2, dest: /usr/local/etc/pkg/repos/custom.conf } +- name: Install Configuration + when: pkgbase_url is defined + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: root + group: wheel + mode: 0644 + loop: + - { src: pkgbase.conf.j2, dest: /usr/local/etc/pkg/repos/pkgbase.conf } # - name: Replace all packages with packages from new repo # command: pkg upgrade -f -y # when: changed_config.changed diff --git a/ansible/roles/package_manager/tasks/peruser.yaml b/ansible/roles/package_manager/tasks/peruser.yaml deleted file mode 100644 index 111e886..0000000 --- a/ansible/roles/package_manager/tasks/peruser.yaml +++ /dev/null @@ -1,29 +0,0 @@ -- include_role: - name: per_user - -# - name: Create directories -# file: -# name: "{{ account_homedir.stdout }}/{{ item }}" -# state: directory -# mode: 0700 -# owner: "{{ account_name.stdout }}" -# group: "{{ group_name.stdout }}" -# loop: -# - ".config/foo" - -# - name: Copy files -# copy: -# src: "files/{{ item.src }}" -# dest: "{{ account_homedir.stdout }}/{{ item.dest }}" -# mode: 0600 -# owner: "{{ account_name.stdout }}" -# group: "{{ group_name.stdout }}" -# loop: -# - src: foo.conf -# dest: .config/foo/foo.conf - -- import_tasks: tasks/peruser_freebsd.yaml - when: 'os_flavor == "freebsd"' - -- import_tasks: tasks/peruser_linux.yaml - when: 'os_flavor == "linux"' diff --git a/ansible/roles/package_manager/tasks/peruser_freebsd.yaml b/ansible/roles/package_manager/tasks/peruser_freebsd.yaml deleted file mode 100644 index e69de29..0000000 diff --git a/ansible/roles/package_manager/tasks/peruser_linux.yaml b/ansible/roles/package_manager/tasks/peruser_linux.yaml deleted file mode 100644 index e69de29..0000000 diff --git a/ansible/roles/package_manager/templates/pkgbase.conf.j2 b/ansible/roles/package_manager/templates/pkgbase.conf.j2 new file mode 100644 index 0000000..6515e1b --- /dev/null +++ b/ansible/roles/package_manager/templates/pkgbase.conf.j2 @@ -0,0 +1,17 @@ +base: { + # url: "file:///usr/local/poudriere/data/images/currentznver4-repo/FreeBSD:15:amd64/latest" + # url: "file:///update" + # url: "https://freebsdpkg.fizz.buzz/pkgbase/currentznver4-repo/FreeBSD:15:amd64/latest", + url: "{{ pkgbase_url }}", + mirror_type: "none", + enabled: yes, + # signature_type: "pubkey", + # pubkey: "/usr/local/etc/pkg/poudriere.pub", + priority: 100 +} +# poudriere jail -c -j current -v main -a amd64 -m git -D -U https://git.FreeBSD.org/src.git -K GENERIC-NODEBUG -B -b +# env ABI=FreeBSD:15:amd64 pkg update -f -r base +# env ABI=FreeBSD:15:amd64 pkg install -r base -g 'FreeBSD-*' + +# for f in /etc/master.passwd /etc/group /etc/sysctl.conf /etc/ssh/sshd_config; do cp -v "$f.pkgsave" "$f"; done +# pwd_mkdb -p /etc/master.passwd diff --git a/ansible/roles/build/templates/src.conf.j2 b/ansible/roles/poudriere/files/currentznver4_src.conf similarity index 75% rename from ansible/roles/build/templates/src.conf.j2 rename to ansible/roles/poudriere/files/currentznver4_src.conf index cbb2fe8..5ae5095 100644 --- a/ansible/roles/build/templates/src.conf.j2 +++ b/ansible/roles/poudriere/files/currentznver4_src.conf @@ -1,13 +1,7 @@ -{% if cpu_opt is defined and cpu_opt %} -CPUTYPE?={{ cpu_opt }} -{% endif %} -KERNCONF=CUSTOM +CPUTYPE?=znver4 WITH_MALLOC_PRODUCTION=YES WITHOUT_LLVM_ASSERTIONS=YES WITH_REPRODUCIBLE_BUILD=YES -PORTS_MODULES+=graphics/drm-kmod -PORTS_MODULES+=graphics/gpu-firmware-intel-kmod -PORTS_MODULES+=net/wireguard-kmod # Would be fun to experiment with: # WITHOUT_SOURCELESS=YES @@ -31,5 +25,6 @@ WITHOUT_HTML=YES WITHOUT_IPFW=YES WITHOUT_IPFILTER=YES WITHOUT_LLVM_TARGET_ALL=YES + # Commented out because maybe I want email alerts for failing disks # WITHOUT_MAIL=YES diff --git a/ansible/roles/poudriere/files/poudboot b/ansible/roles/poudriere/files/poudboot index b6ffc70..53c5ca0 100644 --- a/ansible/roles/poudriere/files/poudboot +++ b/ansible/roles/poudriere/files/poudboot @@ -13,12 +13,12 @@ desc="Poudriere Loop" load_rc_config $name -: ${poudboot_enable:=YES} +: ${poudboot_enable:=NO} command=/usr/sbin/daemon pidfile=/var/run/${name}.pid -command_args="-p $pidfile -u root -f -S -T $name poudboot start" +command_args="-p $pidfile -u root -f -S -T $name nice -n 10 poudboot start" export PATH="${PATH}:/usr/local/bin" run_rc_command "$1" diff --git a/ansible/roles/poudriere/files/poudboot.bash b/ansible/roles/poudriere/files/poudboot.bash index b022c3d..dc96e13 100644 --- a/ansible/roles/poudriere/files/poudboot.bash +++ b/ansible/roles/poudriere/files/poudboot.bash @@ -8,6 +8,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" : ${LOCKFILE:="/var/run/poudboot.lock"} : ${INFO_DIR:="/opt/poudriere/run_info"} : ${PORT_UPDATE_SECONDS:="86400"} +: ${CLEAN_SECONDS:="1209600"} : ${BUILD_SECONDS:="7200"} : ${LOG_RETENTION_DAYS:="30"} @@ -67,7 +68,7 @@ function abort_if_jobs_running { } function build { - poudriere pkgclean -y "$@" + poudriere pkgclean -v -y "$@" poudriere bulk -J "${POUDRIERE_JOBS:-1}" "$@" } @@ -88,6 +89,7 @@ function cmd_start { mkdir -p "$RUN_DIR" local PORTUPDATE=0 local LASTBUILD=0 + local LASTCLEAN=0 if [ -e "$TIMES_FILE" ]; then source "$TIMES_FILE" fi @@ -97,19 +99,25 @@ function cmd_start { portshaker -U portshaker -M PORTUPDATE=$(date +%s) - # Cleanup old unused dist files - poudriere distclean -y -p "$PORTS" -f /usr/local/etc/poudriere.d/$JAIL-$PORTS-$SET-pkglist - poudriere logclean -y "$LOG_RETENTION_DAYS" fi if [ $((now - LASTBUILD)) -gt "$BUILD_SECONDS" ]; then log "Building ports for $JAIL-$PORTS-$SET" build -j "$JAIL" -p "$PORTS" -z "$SET" -f /usr/local/etc/poudriere.d/$JAIL-$PORTS-$SET-pkglist LASTBUILD=$(date +%s) fi + if [ $((now - LASTCLEAN)) -gt "$CLEAN_SECONDS" ]; then + log "Cleaning for $JAIL-$PORTS-$SET" + # Cleanup old unused dist files + poudriere distclean -v -y -p "$PORTS" -f /usr/local/etc/poudriere.d/$JAIL-$PORTS-$SET-pkglist + poudriere logclean -v -y "$LOG_RETENTION_DAYS" + # TODO: Should clean be a global ? + LASTCLEAN=$(date +%s) + fi cat > "$TIMES_FILE" <