X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=distro-end;h=d7fa65831328beb8567ffdaa65a57e54afba90d6;hb=HEAD;hp=ba0b585482efd636a10dde0c64c5ba7060d110a7;hpb=1f027ea146ea6c62002a8f67f831273a5c431b52;p=distro-setup diff --git a/distro-end b/distro-end index ba0b585..d8a6cc5 100755 --- a/distro-end +++ b/distro-end @@ -18,8 +18,9 @@ # SPDX-License-Identifier: GPL-3.0-or-later -# shellcheck source=./brc -source ~/brc +# shellcheck disable=SC2317 # false positive +export LC_USEBASHRC=t +source /a/bin/ds/.bashrc ### setup source /a/bin/bash-bear-trap/bash-bear @@ -205,10 +206,10 @@ EOF 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 @@ -332,7 +333,7 @@ EOF esac case $codename_compat in - jammy) + jammy|noble) s systemctl enable --now ssh-agent-iank ;; esac @@ -748,13 +749,37 @@ EOF # Pin-Priority: 1001 # EOF # - # TODO: I had to uninstall linux-image-generic-hwe-20.04 because of a conflict - # about linux-firmware. Should probably install it to begin with in fai if - # i'm going to use. - pi system76-driver system76-firmware + # s fwupdmgr get-updates + # says I have 3 "devices with no available firmware updates" + # if there were updates, install with: s fwupdmgr update + + check_downgrade=false + if [[ ! -e /etc/apt/preferences.d/system76-apt-preferences ]]; then + check_downgrade=true + fi + pi system76-firmware system76-driver fwupd + if $check_downgrade && [[ -e /etc/apt/preferences.d/system76-apt-preferences ]]; then + # driver installs a preferences file to give s76 packages + # priority so we may need to downgrade here. + pup --allow-downgrades + fi + # system76-driver: on a modern kernel, it seems to mainly just do + # some power settings, I haven't looked entirely through it. Of + # its recommended packages, system76-power is the only one I + # haven't looked at, the others do nothing for laptops i + # have. they have models hardcoded in source, so you can just grep + # for it. pkx package; caf | less. I'm rather annoyed that + # com.system76.PowerDaemon.service is regularly taking up the + # most power. I wonder what it is actually doing, it really + # doesn't say, just has cryptic messages when I turn on + # debug logs, and has no documentation. Similar deal with + # system76-driver.service. + # # if you get a notice about a firmware update, the notifier on i3 - # is too dumb to do anything when you click it. so to see - # a changelog, cd to + # is too dumb to do anything when you click it. + # to manually get new firmware, + # system76-firmware-cli schedule --open + # to see a changelog, cd to # /var/cache/system76-firmware-daemon # extract the xz files there, one will contain a changelog. # then to install an update: @@ -796,15 +821,18 @@ case $distro in # box type: scale to width of bounds. alignment in bounding box: # bottom left. bounding box size 1920 x 1080. - # ppa:obsproject/obs-studio - if [[ ! -s /etc/apt/sources.list.d/obs.list ]]; then - # https://blog.zackad.dev/en/2017/08/17/add-ppa-simple-way.html - sd /etc/apt/sources.list.d/obs.list </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 @@ -886,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) @@ -925,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 @@ -938,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 @@ -1833,6 +1952,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' @@ -1882,10 +2002,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 @@ -1900,7 +2019,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" @@ -1933,25 +2052,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 ### @@ -2106,6 +2226,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