X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=distro-end;h=19cdaba738bda94a9c6b02808c0d25b80094057c;hb=refs%2Fheads%2Fmaster;hp=f81baa3d0acf4ac5fc9cc09293f04f2e0757a168;hpb=6d1ec26482f86b0f2d9560ce3d04ea8c63297c25;p=distro-setup diff --git a/distro-end b/distro-end index f81baa3..88ff40b 100755 --- a/distro-end +++ b/distro-end @@ -18,8 +18,9 @@ # SPDX-License-Identifier: GPL-3.0-or-later -# shellcheck source=/a/bin/ds/.bashrc -export LC_USEBASHRC=t; if [[ -s ~/.bashrc ]]; then . ~/.bashrc; fi +# shellcheck disable=SC2317 # false positive +export LC_USEBASHRC=t +source /a/bin/ds/.bashrc ### setup source /a/bin/bash-bear-trap/bash-bear @@ -191,23 +192,24 @@ EOF done if $doupdate; then tmpdir=$(mktemp -d) - cd $tmpdir - # cant apt get the keyring without doing an update, can't update - # without the keyring, this is a stupid chicken and egg problem - # that apt should have some feature to solve, but doesn't as far - # as I know. - f=debian-archive-keyring_2023.3+deb12u1_all.deb - wget http://ftp.debian.org/debian/pool/main/d/debian-archive-keyring/$f - sudo dpkg -i $f + ( + cd $tmpdir + # cant apt get the keyring without doing an update, can't update + # without the keyring, this is a stupid chicken and egg problem + # that apt should have some feature to solve, but doesn't as far + # as I know. + f=debian-archive-keyring_2023.3+deb12u1_all.deb + wget http://ftp.debian.org/debian/pool/main/d/debian-archive-keyring/$f + sudo dpkg -i $f + ) p update - cd - rm -rf $tmpdir fi - if [[ ! -e /usr/share/debootstrap/scripts/bookworm ]]; then + if [[ ! -e /usr/share/debootstrap/scripts/noble ]]; then t=$(mktemp -d) cd $t - m aptitude download debootstrap/bookworm + m aptitude download debootstrap/noble m ex ./* sudo cp ./usr/share/debootstrap/scripts/* /usr/share/debootstrap/scripts fi @@ -331,7 +333,7 @@ EOF esac case $codename_compat in - jammy) + jammy|noble) s systemctl enable --now ssh-agent-iank ;; esac @@ -522,18 +524,7 @@ EOF client-to-client EOF - - ngset - files=(/etc/openvpn/client-config-hole/*) - if (( ${#files[@]} >= 1 )); then - rm -f ${files[@]} - fi - ngreset - for host in ${!vpn_ips[@]}; do - sd /etc/openvpn/client-config-hole/$host </etc/X11/xorg.conf.d/20-intel.conf <<'EOF' +# iank: +# https://forums.linuxmint.com/viewtopic.php?f=208&t=224942#p1197049 +# prevents konsole from being borderline unusable on system76 intel graphics + i3 +Section "Device" + Identifier "Intel Graphics" + Driver "intel" + Option "TearFree" "true" +EndSection +EOF + ;; + esac + ;; + noble) + pi xinit ;; esac @@ -896,6 +947,32 @@ case $distro in esac ;; ubuntu) + case $codename in + noble) + if pcheck ubuntu-system-adjustments; then + # mint firefox has a dependency which is totally not really + # needed, just some mint branding and maybe a random firefox + # setting. + tmpdir="$(mktemp -d)" + # it puts the deb in .., so use a subdir to stay contained + mkdir $tmpdir/sub + cd "$tmpdir/sub" + # edited from output of equivs-control ubuntu-system-adjustments + cat >ubuntu-system-adjustments <<'EOF' +Section: misc +Priority: optional +Version: 2030 +Standards-Version: 3.9.2 +Package: ubuntu-system-adjustments +Description: ubuntu-system-adjustments-dummy +EOF + equivs-build ubuntu-system-adjustments + sudo dpkg -i ../ubuntu-system-adjustments_2030_all.deb + cd + rm -r "$tmpdir" + fi + ;; + esac pi firefox ;; debian) @@ -935,6 +1012,19 @@ case $codename_compat in esac +case $codename_compat in + aramo|buster) + # https://wiki.archlinux.org/title/bluetooth + pi pavucontrol paprefs pulseaudio-module-bluetooth pulsemixer + ;; + noble|bookworm) + pi pipewire-audio + # having pipewire installed prevents the recommends in these from installing pulse + pi pulsemixer pavucontrol + ;; +esac + + # TODO: some of the X programs can be removed from pall when using wayland # depends gcc is a way to install suggests. this is apparently the only @@ -948,19 +1038,21 @@ pi ${pall[@]} $(apt-cache search ruby[.0-9]+-doc| awk '{print $1}') $($src/distr # I dont want that. pi-nostart schroot +## note: this bug doesn't exist in t12+ # fix systemd unit failure. i dont know of any actual impact # other than systemd showing in degraded state. So, we dont bother # fixing the current state, let it fix on the next reboot. # https://gitlab.com/cjwatson/binfmt-support/-/commit/54f0e1af8a -tmp=$(systemctl cat binfmt-support.service | grep ^After=) -if [[ $tmp != *systemd-binfmt.service* ]]; then - s u /etc/systemd/system/binfmt-support.service.d/override.conf <tox <<'EOF' +case $(debian-codename) in + aramo) + if pcheck tox; then + tmpdir="$(mktemp -d)" + cd "$tmpdir" + # edited from output of equivs-control tox + cat >tox <<'EOF' Section: python Priority: optional Standards-Version: 3.9.2 Package: tox Description: tox-dummy EOF - equivs-build tox - sudo dpkg -i tox_1.0_all.deb - rm -rf ./tox* - pi beets python3-discogs-client - cd - rm -r "$tmpdir" -fi + equivs-build tox + sudo dpkg -i tox_1.0_all.deb + rm -rf ./tox* + pi beets + cd + rm -r "$tmpdir" + fi + ;; +esac # get rid of annoying message s sed -ri "s/^([[:space:]]*ui.print_\('Playing)/#\1/" /usr/share/beets/beetsplug/play.py @@ -1843,6 +1948,7 @@ case $HOSTNAME in # Font awesome is needed for the alertmanager ui. pi prometheus-alertmanager prometheus fonts-font-awesome /c/roles/prom/files/simple/usr/local/bin/fsf-install-prometheus + # make it available for other machines rsync -a /usr/local/bin/amtool /a/opt/bin web-conf -p 9091 -f 9090 - apache2 b8.nz <<'EOF' @@ -1892,10 +1998,9 @@ EOF ;; esac -# cleanup old files. 2023-02 -x=(/var/lib/prometheus/node-exporter/*.premerge) -if [[ -e ${x[0]} ]]; then - s rm /var/lib/prometheus/node-exporter/* +# user specific file isn't installed until the user exists +if [[ ! -e /etc/prometheus/ssl/prom_node_key.pem ]]; then + conflink fi @@ -1910,7 +2015,7 @@ case $HOSTNAME in wgip=$(command sudo sed -rn 's,^ *Address *= *([^/]+).*,\1,p' /etc/wireguard/wghole.conf) # old filename. remove once all hosts are updated. s rm -fv /etc/apache2/sites-enabled/${HOSTNAME}wg.b8.nz.conf - web-conf -i -a $wgip -p 9101 -f 9100 - apache2 ${HOSTNAME}wg.b8.nz <<'EOF' + s bash -x web-conf -i -a $wgip -p 9101 -f 9100 - apache2 ${HOSTNAME}wg.b8.nz <<'EOF' AuthType Basic AuthName "basic_auth" @@ -1943,25 +2048,26 @@ esac ### end prometheus ### -### begin bitcoin ### - -case $HOSTNAME in - sy|kd|so) - sudo install -m 0755 -o root -g root -t /usr/bin /a/opt/bitcoin-27.0/bin/* - # Note: i leave it to system-status to start and stop bitcoin. - # note: the bitcoin user & group are setup in fai - sudo usermod -a -G bitcoin iank - # todo: make bitcoin have a stable uid/gid - sudo mkdir -p /var/lib/bitcoind - sudo chown bitcoin:bitcoin /var/lib/bitcoind - # 710 comes from the upstream bitcoin unit file - sudo chmod 710 /var/lib/bitcoind - # note, there exists - # /a/bin/ds/disabled/bitcoin - ;; -esac +# disabled +# ### begin bitcoin ### + +# case $HOSTNAME in +# sy|kd|so) +# sudo install -m 0755 -o root -g root -t /usr/bin /a/opt/bitcoin-27.0/bin/* +# # Note: i leave it to system-status to start and stop bitcoin. +# # note: the bitcoin user & group are setup in fai +# sudo usermod -a -G bitcoin iank +# # todo: make bitcoin have a stable uid/gid +# sudo mkdir -p /var/lib/bitcoind +# sudo chown bitcoin:bitcoin /var/lib/bitcoind +# # 710 comes from the upstream bitcoin unit file +# sudo chmod 710 /var/lib/bitcoind +# # note, there exists +# # /a/bin/ds/disabled/bitcoin +# ;; +# esac -### end bitcoin +# ### end bitcoin ### begin live streaming ### @@ -2116,6 +2222,27 @@ EOF sudo exportfs -rav fi +# very temporary fix. +# should be gone in a few days +# https://bugs.launchpad.net/ubuntu/+source/fail2ban/+bug/2055114 +case $codename_compat in + noble) + if [[ ! -e ~/fail2ban_1.1.0-1_all.deb ]]; then + cd + wget https://launchpad.net/ubuntu/+source/fail2ban/1.1.0-1/+build/28291332/+files/fail2ban_1.1.0-1_all.deb + sudo dpkg -i fail2ban_1.1.0-1_all.deb + fi + ;; +esac + +case $codename_compat in + noble) + # this fails on startup. i don't use resolvconf, so it is totally pointless. + soff unbound-resolvconf.service + ;; +esac + +host-info-update # if I was going to create a persistent vm, i might do it like this: # variant=something # from: virt-install --os-variant list