Set up poudriere to build pkgbase.

This commit is contained in:
Tom Alexander 2024-02-11 14:59:55 -05:00
parent 8385b036a6
commit a66eff79e2
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
61 changed files with 232 additions and 816 deletions

View File

@ -13,11 +13,7 @@ rc_conf: "homeserver_rc.conf"
loader_conf: "homeserver_loader.conf" loader_conf: "homeserver_loader.conf"
netgraph_config: "setup_netgraph_homeserver" netgraph_config: "setup_netgraph_homeserver"
cputype: "intel" cputype: "intel"
cpu_opt: broadwell
hwpstate: false hwpstate: false
build_user:
name: talexander
group: talexander
devfs_rules: "homeserver_devfs.rules" devfs_rules: "homeserver_devfs.rules"
jail_zfs_dataset: zmass/encrypted/jails jail_zfs_dataset: zmass/encrypted/jails
jail_zfs_dataset_mountpoint: /jail/main jail_zfs_dataset_mountpoint: /jail/main

View File

@ -1,3 +1,28 @@
timezone: "America/New_York" timezone: "America/New_York"
install_bluetooth: true install_bluetooth: true
emacs_flavor: "full" 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

View File

@ -1,25 +1,21 @@
os_flavor: "freebsd" os_flavor: "freebsd"
#custom_repo: 13amd64-default-framework custom_repo: current-default-framework
zfs_snapshot_datasets: zfs_snapshot_datasets:
- path: zroot/freebsd/current/be/default - path: zroot/freebsd/current/be/default
sshd_enabled: true sshd_enabled: true
sshd_conf: "sshd_config" sshd_conf: "sshd_config"
pf_config: "odofreebsd_pf.conf" #pf_config: "odofreebsd_pf.conf"
pflog_conf: #pflog_conf:
- name: 0 # - name: 0
dev: pflog0 # dev: pflog0
network_rc: "odofreebsd_network.conf" network_rc: "odofreebsd_network.conf"
rc_conf: "odofreebsd_rc.conf" rc_conf: "odofreebsd_rc.conf"
loader_conf: "odofreebsd_loader.conf" loader_conf: "odofreebsd_loader.conf"
install_graphics: true install_graphics: true
graphics_driver: "amd" graphics_driver: "amd"
cputype: "amd" cputype: "amd"
cpu_opt: znver4
hwpstate: true hwpstate: true
cores: 16 cores: 16
build_user:
name: talexander
group: talexander
users: users:
talexander: talexander:
initialize: true initialize: true
@ -31,6 +27,7 @@ users:
- name: u2f - name: u2f
- name: operator # To be able to shutdown without root - name: operator # To be able to shutdown without root
- name: webcamd - name: webcamd
gid: 145
authorized_keys: authorized_keys:
- yubikey - yubikey
- main_fido - main_fido

View File

@ -1,5 +0,0 @@
os_flavor: "freebsd"
cpu_opt: tigerlake
build_user:
name: root
group: wheel

View File

@ -1,13 +1,15 @@
os_flavor: "freebsd" os_flavor: "freebsd"
pkgbase_url: "file:///usr/local/poudriere/data/images/currentznver4-repo/FreeBSD:15:amd64/latest"
poudriere_builds: poudriere_builds:
- jail: 13amd64 # - jail: 13amd64
ports: default
set: framework
version: 13.2-RELEASE
# - jail: current
# ports: default # ports: default
# set: framework # set: framework
# version: CURRENT # version: 13.2-RELEASE
# revision: af01b4722577903f91acc44f01bdcb8cdb2d65ad - jail: currentznver4
# kernel: CUSTOM ports: default
# branch: main set: framework
version: CURRENT
# revision: 66d37dbedfbf2dc94ccf49e6983c3652d5909b91
kernel: GENERIC-NODEBUG
branch: main
srcconf: currentznver4_src.conf

View File

@ -1,13 +1,8 @@
[vm] [vm]
poudriereodo ansible_user=builder ansible_host=10.213.177.12 poudriereodo ansible_user=builder ansible_host=10.213.177.12
poudrieremrmanager ansible_user=root ansible_host=poudriere poudrieremrmanager ansible_user=root ansible_host=poudriere
freebsdupdatemrmanager ansible_user=root ansible_host=freebsdupdate
# #
# Put in ~/.ssh/config # Put in ~/.ssh/config
# Host poudriere # Host poudriere
# ProxyJump talexander@mrmanager # ProxyJump talexander@mrmanager
# HostName 10.215.1.203 # HostName 10.215.1.203
#
# Host freebsdupdate
# ProxyJump talexander@mrmanager
# HostName 10.215.1.213

View File

@ -42,7 +42,6 @@
- ansible - ansible
- wireguard - wireguard
- portshaker - portshaker
- poudriere
- android - android
- latex - latex
- python - python
@ -68,10 +67,10 @@
roles: roles:
- sudo # for poudboot script - sudo # for poudboot script
- fstab - fstab
- package_manager
- portshaker - portshaker
- poudriere - poudriere
- poudrierenginx - poudrierenginx
- freebsd_update_server
- hosts: mrmanager - hosts: mrmanager
vars: vars:
@ -123,22 +122,6 @@
roles: roles:
- framework_laptop - 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 - hosts: homeserver
vars: vars:
ansible_become: True ansible_become: True

View File

@ -13,10 +13,12 @@
# name: [] # name: []
# state: present # state: present
# update_cache: true # update_cache: true
- name: Install packages - name: Install packages
package: package:
name: name:
- gvfs - gvfs
- gvfs-mtp - gvfs-mtp
- android-udev # Access android over USB without root.
- android-tools # For fastboot to flash phones.
state: present state: present

View File

@ -33,3 +33,5 @@
cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED" cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED"
# Make the middle pane start without any merge progress: # Make the middle pane start without any merge progress:
# cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED" # cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"
[includeIf "gitdir:/bridge/git/machine_setup/"]
path = /bridge/git/machine_setup/ansible/roles/base/files/gitconfig_home

View File

@ -2,9 +2,9 @@ clear_tmp_enable="YES"
syslogd_flags="-ss" syslogd_flags="-ss"
sendmail_enable="NONE" sendmail_enable="NONE"
hostname="odo" hostname="odo"
# wlans_iwlwifi0="wlan0" wlans_iwlwifi0="wlan0"
# ifconfig_wlan0="WPA DHCP" ifconfig_wlan0="WPA DHCP"
# ifconfig_wlan0_ipv6="inet6 accept_rtadv" ifconfig_wlan0_ipv6="inet6 accept_rtadv"
sshd_enable="YES" sshd_enable="YES"
ntpd_enable="YES" ntpd_enable="YES"
powerd_enable="YES" powerd_enable="YES"

View File

@ -1,2 +0,0 @@
# freebsd_version: "releng/13.2"
freebsd_version: "c3d7bb5aca7749626b5c70dfa86ee8f07960f44a"

View File

@ -1,6 +0,0 @@
include GENERIC-NODEBUG
# Disable Intel SD/MMC controller for reading eMMC
nodevice sdhci
ident CUSTOM

View File

@ -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 "${@}"

View File

@ -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 "${@}"

View File

@ -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 "${@}"

View File

@ -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."

View File

@ -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."

View File

@ -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

View File

@ -89,7 +89,7 @@
loop: loop:
- src: aurutils.conf - src: aurutils.conf
dest: /etc/pacman.d/conf.d/ dest: /etc/pacman.d/conf.d/
- src: pacman-custom.conf - src: pacman-x86_64.conf
dest: /etc/aurutils/ dest: /etc/aurutils/
- src: makepkg.conf # TODO: Is this needed or can I use the default from devtools? - src: makepkg.conf # TODO: Is this needed or can I use the default from devtools?
dest: /etc/aurutils/ dest: /etc/aurutils/
@ -103,7 +103,7 @@
- /var/cache/pacman/custom/ - /var/cache/pacman/custom/
- name: Create custom repo db - 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: true
become_user: "{{ build_user.name }}" become_user: "{{ build_user.name }}"
args: args:

View File

@ -21,7 +21,7 @@
(vertico-count 20) (vertico-count 20)
) )
;; Create an ivy-like experience when selecting files. ;; Create an ido/ivy-like experience when selecting files.
(use-package vertico-directory (use-package vertico-directory
:after vertico :after vertico
:ensure nil :ensure nil

View File

@ -3,6 +3,7 @@
package: package:
name: name:
- aspell - aspell
- graphviz # used for exporting graphviz dot charts from org-mode
state: present state: present
- name: Install scripts - name: Install scripts

View File

@ -18,7 +18,6 @@
- py39-black - py39-black
- zip # for odt export from org-mode - zip # for odt export from org-mode
- gnuplot # used for exporting graphs from org-mode - gnuplot # used for exporting graphs from org-mode
- graphviz # used for exporting graphviz dot charts from org-mode
# - pyright # - pyright
- sqlite3 # for sqlite code blocks in org-mode - sqlite3 # for sqlite code blocks in org-mode
# - terraform-ls # Terraform language server # - terraform-ls # Terraform language server

View File

@ -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 "${@}"

View File

@ -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"

View File

@ -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"'

View File

@ -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

View File

@ -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

View File

@ -1,2 +0,0 @@
- import_tasks: tasks/common.yaml
# when: foo is defined

View File

@ -0,0 +1 @@
kld_list="/boot/modules/amdgpu.ko"

View File

@ -31,12 +31,12 @@
# - intel_power # - intel_power
# - intel_hw_accel_video # - intel_hw_accel_video
#- name: Install service configuration - name: Install service configuration
# copy: copy:
# src: "files/intel_{{ item }}_rc.conf" src: "files/amd_{{ item }}_rc.conf"
# dest: "/etc/rc.conf.d/{{ item }}" dest: "/etc/rc.conf.d/{{ item }}"
# mode: 0644 mode: 0644
# owner: root owner: root
# group: wheel group: wheel
# loop: loop:
# - kld - kld

View File

@ -78,11 +78,6 @@
// brianai // brianai
"hw-address": "06:a6:dc:59:78:12", "hw-address": "06:a6:dc:59:78:12",
"ip-address": "10.215.1.215" "ip-address": "10.215.1.215"
},
{
// freebsdupdate
"hw-address": "06:14:5c:92:3d:5b",
"ip-address": "10.215.1.213"
} }
] ]
} }

View File

@ -1,2 +0,0 @@
dependencies:
- build

View File

@ -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 - name: Install packages
package: package:
name: name:
- yamllint - yamllint
- stern - stern
- kubeswitch # - kubeswitch
- flux-scm - fluxcd
state: present state: present

View File

@ -717,7 +717,7 @@
#Server = https://mirrors.42tm.tech/archlinux/$repo/os/$arch #Server = https://mirrors.42tm.tech/archlinux/$repo/os/$arch
#Server = http://f.archlinuxvn.org/archlinux/$repo/os/$arch #Server = http://f.archlinuxvn.org/archlinux/$repo/os/$arch
#Server = http://mirror.bizflycloud.vn/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://iad.mirrors.misaka.one/archlinux/$repo/os/$arch
Server = https://forksystems.mm.fcix.net/archlinux/$repo/os/$arch Server = https://forksystems.mm.fcix.net/archlinux/$repo/os/$arch
Server = https://mirrors.mit.edu/archlinux/$repo/os/$arch Server = https://mirrors.mit.edu/archlinux/$repo/os/$arch

View File

@ -3,12 +3,3 @@
- import_tasks: tasks/linux.yaml - import_tasks: tasks/linux.yaml
when: 'os_flavor == "linux"' 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

View File

@ -8,7 +8,7 @@
loop: loop:
- /usr/local/etc/pkg - /usr/local/etc/pkg
- /usr/local/etc/pkg/repos - /usr/local/etc/pkg/repos
- name: Install packages - name: Install packages
package: package:
name: name:
@ -65,6 +65,16 @@
loop: loop:
- { src: custom.conf.j2, dest: /usr/local/etc/pkg/repos/custom.conf } - { 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 # - name: Replace all packages with packages from new repo
# command: pkg upgrade -f -y # command: pkg upgrade -f -y
# when: changed_config.changed # when: changed_config.changed

View File

@ -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"'

View File

@ -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

View File

@ -1,13 +1,7 @@
{% if cpu_opt is defined and cpu_opt %} CPUTYPE?=znver4
CPUTYPE?={{ cpu_opt }}
{% endif %}
KERNCONF=CUSTOM
WITH_MALLOC_PRODUCTION=YES WITH_MALLOC_PRODUCTION=YES
WITHOUT_LLVM_ASSERTIONS=YES WITHOUT_LLVM_ASSERTIONS=YES
WITH_REPRODUCIBLE_BUILD=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: # Would be fun to experiment with:
# WITHOUT_SOURCELESS=YES # WITHOUT_SOURCELESS=YES
@ -31,5 +25,6 @@ WITHOUT_HTML=YES
WITHOUT_IPFW=YES WITHOUT_IPFW=YES
WITHOUT_IPFILTER=YES WITHOUT_IPFILTER=YES
WITHOUT_LLVM_TARGET_ALL=YES WITHOUT_LLVM_TARGET_ALL=YES
# Commented out because maybe I want email alerts for failing disks # Commented out because maybe I want email alerts for failing disks
# WITHOUT_MAIL=YES # WITHOUT_MAIL=YES

View File

@ -13,12 +13,12 @@ desc="Poudriere Loop"
load_rc_config $name load_rc_config $name
: ${poudboot_enable:=YES} : ${poudboot_enable:=NO}
command=/usr/sbin/daemon command=/usr/sbin/daemon
pidfile=/var/run/${name}.pid 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" export PATH="${PATH}:/usr/local/bin"
run_rc_command "$1" run_rc_command "$1"

View File

@ -8,6 +8,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
: ${LOCKFILE:="/var/run/poudboot.lock"} : ${LOCKFILE:="/var/run/poudboot.lock"}
: ${INFO_DIR:="/opt/poudriere/run_info"} : ${INFO_DIR:="/opt/poudriere/run_info"}
: ${PORT_UPDATE_SECONDS:="86400"} : ${PORT_UPDATE_SECONDS:="86400"}
: ${CLEAN_SECONDS:="1209600"}
: ${BUILD_SECONDS:="7200"} : ${BUILD_SECONDS:="7200"}
: ${LOG_RETENTION_DAYS:="30"} : ${LOG_RETENTION_DAYS:="30"}
@ -67,7 +68,7 @@ function abort_if_jobs_running {
} }
function build { function build {
poudriere pkgclean -y "$@" poudriere pkgclean -v -y "$@"
poudriere bulk -J "${POUDRIERE_JOBS:-1}" "$@" poudriere bulk -J "${POUDRIERE_JOBS:-1}" "$@"
} }
@ -88,6 +89,7 @@ function cmd_start {
mkdir -p "$RUN_DIR" mkdir -p "$RUN_DIR"
local PORTUPDATE=0 local PORTUPDATE=0
local LASTBUILD=0 local LASTBUILD=0
local LASTCLEAN=0
if [ -e "$TIMES_FILE" ]; then if [ -e "$TIMES_FILE" ]; then
source "$TIMES_FILE" source "$TIMES_FILE"
fi fi
@ -97,19 +99,25 @@ function cmd_start {
portshaker -U portshaker -U
portshaker -M portshaker -M
PORTUPDATE=$(date +%s) 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 fi
if [ $((now - LASTBUILD)) -gt "$BUILD_SECONDS" ]; then if [ $((now - LASTBUILD)) -gt "$BUILD_SECONDS" ]; then
log "Building ports for $JAIL-$PORTS-$SET" log "Building ports for $JAIL-$PORTS-$SET"
build -j "$JAIL" -p "$PORTS" -z "$SET" -f /usr/local/etc/poudriere.d/$JAIL-$PORTS-$SET-pkglist build -j "$JAIL" -p "$PORTS" -z "$SET" -f /usr/local/etc/poudriere.d/$JAIL-$PORTS-$SET-pkglist
LASTBUILD=$(date +%s) LASTBUILD=$(date +%s)
fi 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" <<EOF cat > "$TIMES_FILE" <<EOF
PORTUPDATE=$PORTUPDATE PORTUPDATE=$PORTUPDATE
LASTBUILD=$LASTBUILD LASTBUILD=$LASTBUILD
LASTCLEAN=$LASTCLEAN
EOF EOF
) )
done done

View File

@ -1,44 +0,0 @@
# This file is auto-generated by 'make config'.
# Options for emacs-29.1,3
_OPTIONS_READ=emacs-29.1,3
_FILE_COMPLETE_OPTIONS_LIST=ACL DBUS GNUTLS GSETTINGS HARFBUZZ JSON LCMS2 M17N MAILUTILS MODULES NATIVECOMP OTF PGTK SCROLLBARS SOURCES SQLITE3 THREADS TREESITTER XFT XIM XML XWIDGETS GFILE KQUEUE ALSA OSS GTK2 GTK3 MOTIF XAW XAW3D CAIRO GIF JPEG MAGICK PNG SVG TIFF WEBP XPM
OPTIONS_FILE_SET+=ACL
OPTIONS_FILE_SET+=DBUS
OPTIONS_FILE_SET+=GNUTLS
OPTIONS_FILE_SET+=GSETTINGS
OPTIONS_FILE_SET+=HARFBUZZ
OPTIONS_FILE_SET+=JSON
OPTIONS_FILE_SET+=LCMS2
OPTIONS_FILE_UNSET+=M17N
OPTIONS_FILE_SET+=MAILUTILS
OPTIONS_FILE_SET+=MODULES
OPTIONS_FILE_SET+=NATIVECOMP
OPTIONS_FILE_SET+=OTF
OPTIONS_FILE_SET+=PGTK
OPTIONS_FILE_SET+=SCROLLBARS
OPTIONS_FILE_SET+=SOURCES
OPTIONS_FILE_SET+=SQLITE3
OPTIONS_FILE_SET+=THREADS
OPTIONS_FILE_SET+=TREESITTER
OPTIONS_FILE_UNSET+=XFT
OPTIONS_FILE_UNSET+=XIM
OPTIONS_FILE_SET+=XML
OPTIONS_FILE_UNSET+=XWIDGETS
OPTIONS_FILE_UNSET+=GFILE
OPTIONS_FILE_SET+=KQUEUE
OPTIONS_FILE_UNSET+=ALSA
OPTIONS_FILE_SET+=OSS
OPTIONS_FILE_UNSET+=GTK2
OPTIONS_FILE_SET+=GTK3
OPTIONS_FILE_UNSET+=MOTIF
OPTIONS_FILE_UNSET+=XAW
OPTIONS_FILE_UNSET+=XAW3D
OPTIONS_FILE_SET+=CAIRO
OPTIONS_FILE_SET+=GIF
OPTIONS_FILE_SET+=JPEG
OPTIONS_FILE_UNSET+=MAGICK
OPTIONS_FILE_SET+=PNG
OPTIONS_FILE_SET+=SVG
OPTIONS_FILE_SET+=TIFF
OPTIONS_FILE_SET+=WEBP
OPTIONS_FILE_UNSET+=XPM

View File

@ -1,10 +1,10 @@
# Disable CPUTYPE optimizations when compiling gcc48 because tigerlake is not included in gcc4.8 # Disable CPUTYPE optimizations when compiling gcc48 because zen 4 is not included in gcc4.8
#
# Disable CPUTYPE optimizations for qt6-base because FreeBSD 13 is on Clang 14 which does not yet support zen4 (added in Clang 16) so qt6 is incorrectly flagging my CPU as not supporting AVX512.
# #
# Example from bottom of /usr/share/examples/etc/make.conf # Example from bottom of /usr/share/examples/etc/make.conf
.if ${.CURDIR:N*/lang/gcc48*} && ${.CURDIR:N*/lang/gcc10*} && ${.CURDIR:N*/devel/qt6-base*} .if ${.CURDIR:M*/devel/boost-libs*} || ${.CURDIR:M*/multimedia/wl-screenrec*} || ${.CURDIR:M*/www/firefox*}
CPUTYPE?=tigerlake CPUTYPE?=x86-64-v4
.elif ${.CURDIR:N*/lang/gcc48*} && ${.CURDIR:N*/lang/gcc10*} && ${.CURDIR:N*/devel/binutils*} && ${.CURDIR:N*/devel/qt6-base*} && ${.CURDIR:N*/www/node20*}
CPUTYPE?=znver4
# CPUTYPE?=x86-64-v4 # CPUTYPE?=x86-64-v4
.endif .endif
@ -21,6 +21,10 @@ CPUTYPE?=tigerlake
OPTIONS_SET+=STATIC LTO OPTIONS_SET+=STATIC LTO
.endif .endif
.if ${.CURDIR:M*/editors/emacs*}
OPTIONS_SET+=NATIVECOMP PGTK
.endif
OPTIONS_SET+=OPTIMIZED_CFLAGS OPTIONS_SET+=OPTIMIZED_CFLAGS
# qemu uses STATIC_LINK instead of the more standard flag of STATIC # qemu uses STATIC_LINK instead of the more standard flag of STATIC
OPTIONS_SET+=STATIC_LINK OPTIONS_SET+=STATIC_LINK

View File

@ -20,7 +20,7 @@ dns/coredns
editors/emacs editors/emacs
editors/mg editors/mg
ftp/wget ftp/wget
graphics/ImageMagick graphics/ImageMagick7
graphics/drm-kmod graphics/drm-kmod
graphics/evince graphics/evince
graphics/gimp graphics/gimp
@ -51,7 +51,7 @@ net-mgmt/ipcalc
net/google-cloud-sdk net/google-cloud-sdk
net/rsync net/rsync
net/tcpdump net/tcpdump
net/wireguard net/wireguard-tools
net/wlvncc net/wlvncc
ports-mgmt/pkg ports-mgmt/pkg
ports-mgmt/pkg-provides ports-mgmt/pkg-provides
@ -105,16 +105,18 @@ textproc/en-aspell
textproc/gsed textproc/gsed
textproc/jq textproc/jq
textproc/kdiff3 textproc/kdiff3
textproc/meld
textproc/py-pygments textproc/py-pygments
textproc/ripgrep textproc/ripgrep
www/firefox www/firefox
www/yt-dlp
x11-fm/pcmanfm x11-fm/pcmanfm
x11-fonts/cascadia-code x11-fonts/cascadia-code
x11-fonts/noto x11-fonts/noto
x11-fonts/noto-emoji x11-fonts/noto-emoji
x11-fonts/noto-extra x11-fonts/noto-extra
x11-fonts/source-code-pro-ttf
x11-fonts/source-sans-ttf x11-fonts/source-sans-ttf
x11-fonts/sourcecodepro-ttf
x11-themes/adwaita-qt5 x11-themes/adwaita-qt5
x11-themes/adwaita-qt6 x11-themes/adwaita-qt6
x11-wm/sway x11-wm/sway

View File

@ -5,7 +5,7 @@ IFS=$'\n\t'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
function main { function main {
find / -type f -name times -exec sed -iE 's/LASTBUILD=.*/LASTBUILD=0/' {} \; find / -type f -name times -exec sed -E -i 's/LASTBUILD=.*/LASTBUILD=0/' {} \;
} }
main "${@}" main "${@}"

View File

@ -92,6 +92,16 @@
mode: 0600 mode: 0600
loop: "{{ poudriere_builds }}" loop: "{{ poudriere_builds }}"
- name: Install src.conf
when: item.srcconf is defined
copy:
src: "files/{{ item.srcconf }}"
dest: "/usr/local/etc/poudriere.d/{{ item.jail }}-src.conf"
owner: root
group: wheel
mode: 0600
loop: "{{ poudriere_builds }}"
- name: Install rc script - name: Install rc script
copy: copy:
src: "files/{{ item.src }}" src: "files/{{ item.src }}"
@ -121,7 +131,7 @@
- name: Create the jails - name: Create the jails
when: item.version != "CURRENT" when: item.version != "CURRENT"
command: |- command: |-
poudriere jail {{poudriere_perf_flags}} -c -j {{ item.jail }} -v {{ item.version }} poudriere jail {{poudriere_perf_flags}} -c -j {{ item.jail }} -v {{ item.version }} -B -b
args: args:
creates: "/usr/local/poudriere/jails/{{ item.jail }}" creates: "/usr/local/poudriere/jails/{{ item.jail }}"
loop: "{{ poudriere_builds }}" loop: "{{ poudriere_builds }}"
@ -129,8 +139,10 @@
- name: Create the jails - name: Create the jails
when: item.version == "CURRENT" when: item.version == "CURRENT"
# -D clones the entire history instead of just the most recent commit # -D clones the entire history instead of just the most recent commit
# -B to build the pkgbase packages
# -b to build the jail OS from source
command: |- command: |-
poudriere jail {{poudriere_perf_flags}} -c -j {{ item.jail }} -v {{ item.branch|default("main") }} -a amd64 -m git -D -U https://git.FreeBSD.org/src.git -K {{ item.kernel|default("GENERIC") }} echo poudriere jail {{poudriere_perf_flags}} -c -j {{ item.jail }} -v {{ item.branch|default("main") }} -a amd64 -m git -D -U https://git.FreeBSD.org/src.git -K {{ item.kernel|default("GENERIC-NODEBUG") }} -B -b
args: args:
creates: "/usr/local/poudriere/jails/{{ item.jail }}" creates: "/usr/local/poudriere/jails/{{ item.jail }}"
loop: "{{ poudriere_builds }}" loop: "{{ poudriere_builds }}"

View File

@ -39,5 +39,10 @@ http {
alias /usr/local/poudriere/data/packages; alias /usr/local/poudriere/data/packages;
autoindex on; autoindex on;
} }
location /pkgbase {
alias /usr/local/poudriere/data/images;
autoindex on;
}
} }
} }

View File

@ -1,2 +1,2 @@
# Check that rust-analyzer is valid for date on https://rust-lang.github.io/rustup-components-history/ # Check that rust-analyzer is valid for date on https://rust-lang.github.io/rustup-components-history/
rust_date: "2023-12-04" rust_date: "2024-03-28"

View File

@ -1,2 +1,2 @@
[target.x86_64-unknown-linux-gnu] [target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "target-cpu=native"] rustflags = ["-C", "target-cpu=native", "-Zthreads=0"]

View File

@ -18,7 +18,7 @@
git: git:
repo: "https://github.com/rust-lang/rust-analyzer.git" repo: "https://github.com/rust-lang/rust-analyzer.git"
dest: /opt/rust-analyzer dest: /opt/rust-analyzer
version: "2023-05-01" version: "2024-04-01"
force: true force: true
diff: false diff: false

View File

@ -22,6 +22,11 @@
args: args:
creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/bin/cargo-clippy" creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/bin/cargo-clippy"
- name: Install cranelift
command: rustup component add rustc-codegen-cranelift
args:
creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/lib/rustlib/manifest-rustc-codegen-cranelift-preview-x86_64-unknown-linux-gnu"
- name: Create directories - name: Create directories
file: file:
name: "{{ account_homedir.stdout }}/{{ item }}" name: "{{ account_homedir.stdout }}/{{ item }}"

View File

@ -1,26 +1,34 @@
- include_role: - include_role:
name: per_user name: per_user
# - name: Create directories - name: Create directories
# file: file:
# name: "{{ account_homedir.stdout }}/{{ item }}" name: "{{ account_homedir.stdout }}/{{ item }}"
# state: directory state: directory
# mode: 0700 mode: 0700
# owner: "{{ account_name.stdout }}" owner: "{{ account_name.stdout }}"
# group: "{{ group_name.stdout }}" group: "{{ group_name.stdout }}"
# loop: loop:
# - ".config/foo" - ".ssh"
# - name: Copy files - name: Add ssh hosts to config
# copy: blockinfile:
# src: "files/{{ item.src }}" path: "{{ account_homedir.stdout }}/.ssh/config"
# dest: "{{ account_homedir.stdout }}/{{ item.dest }}" marker: "# {mark} ANSIBLE MANAGED BLOCK {{ item.name }}"
# mode: 0600 create: true
# owner: "{{ account_name.stdout }}" mode: 0600
# group: "{{ group_name.stdout }}" owner: "{{ account_name.stdout }}"
# loop: group: "{{ group_name.stdout }}"
# - src: foo.conf block: |
# dest: .config/foo/foo.conf Host {{ item.name }}
{% if item.proxy_jump is defined %}
ProxyJump {{ item.proxy_jump }}
{% endif %}
{% if item.host_name is defined %}
HostName {{ item.host_name }}
{% endif %}
when: ssh_hosts is defined
loop: "{{ ssh_hosts }}"
- import_tasks: tasks/peruser_freebsd.yaml - import_tasks: tasks/peruser_freebsd.yaml
when: 'os_flavor == "freebsd"' when: 'os_flavor == "freebsd"'

View File

@ -164,7 +164,7 @@
"command": "-editor.action.clipboardPasteAction" "command": "-editor.action.clipboardPasteAction"
}, },
{ {
"key": "ctrl+x ctrl+f", "key": "ctrl+x p f",
"command": "workbench.action.quickOpen" "command": "workbench.action.quickOpen"
}, },
{ {
@ -234,5 +234,47 @@
"key": "ctrl+alt+enter", "key": "ctrl+alt+enter",
"command": "-editor.action.replaceAll", "command": "-editor.action.replaceAll",
"when": "editorFocus && findWidgetVisible" "when": "editorFocus && findWidgetVisible"
},
{
"key": "shift+alt+,",
"command": "cursorTop",
"when": "textInputFocus"
},
{
"key": "ctrl+home",
"command": "-cursorTop",
"when": "textInputFocus"
},
{
"key": "shift+alt+.",
"command": "cursorBottom",
"when": "textInputFocus"
},
{
"key": "ctrl+end",
"command": "-cursorBottom",
"when": "textInputFocus"
},
{
"key": "ctrl+x ctrl+f",
"command": "workbench.action.files.openFile",
"when": "true"
},
{
"key": "ctrl+o",
"command": "-workbench.action.files.openFile",
"when": "true"
},
{
"key": "ctrl+x k",
"command": "workbench.action.closeEditorInAllGroups"
},
{
"key": "ctrl+x b",
"command": "workbench.action.showAllEditors"
},
{
"key": "ctrl+k ctrl+p",
"command": "-workbench.action.showAllEditors"
} }
] ]

View File

@ -15,6 +15,10 @@
"editorCursor.foreground": "#ccff66", "editorCursor.foreground": "#ccff66",
"terminalCursor.foreground": "#ccff66" "terminalCursor.foreground": "#ccff66"
}, },
"workbench.editor.showTabs": "none",
"workbench.activityBar.location": "hidden",
"window.menuBarVisibility": "toggle",
"explorer.autoReveal": false,
"[python]": { "[python]": {
"editor.defaultFormatter": "ms-python.black-formatter", "editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true "editor.formatOnSave": true
@ -27,5 +31,6 @@
"editor.defaultFormatter": "hashicorp.terraform", "editor.defaultFormatter": "hashicorp.terraform",
"editor.formatOnSave": true "editor.formatOnSave": true
}, },
"black-formatter.importStrategy": "fromEnvironment" "black-formatter.importStrategy": "fromEnvironment",
"workbench.statusBar.visible": false
} }

View File

@ -1,7 +1,7 @@
- name: Install packages - name: Install packages
package: package:
name: name:
- wireguard - wireguard-tools
state: present state: present
- name: Configure wireguard - name: Configure wireguard

View File

@ -2,7 +2,6 @@
package: package:
name: name:
- linux-lts-headers - linux-lts-headers
- linux-headers
state: present state: present
- name: Check trusted gpg keys - name: Check trusted gpg keys

View File

@ -40,8 +40,6 @@ elif [ "$target" = "jail_admin_git" ]; then
ansible-playbook -v -i environments/jail playbook.yaml --diff --limit admin_git "${@}" ansible-playbook -v -i environments/jail playbook.yaml --diff --limit admin_git "${@}"
elif [ "$target" = "jail_public_dns" ]; then elif [ "$target" = "jail_public_dns" ]; then
ansible-playbook -v -i environments/jail playbook.yaml --diff --limit public_dns "${@}" ansible-playbook -v -i environments/jail playbook.yaml --diff --limit public_dns "${@}"
elif [ "$target" = "vm_freebsdupdatemrmanager" ]; then
ansible-playbook -v -i environments/vm playbook.yaml --diff --limit freebsdupdatemrmanager "${@}"
else else
die 1 "Unrecognized target" die 1 "Unrecognized target"
fi fi