set -E
trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR
+exec &> >(sudo tee -a /var/log/distro-begin)
+echo "$0: $(date): starting now)"
+
# headless=false # unused atm
recompile=true
# for copying to a new data fs
}
aurpi cower pacaur
- # this creates ~/.gnupg. addgnupghome is broken on arch.
- gpg -k
# for aur, automatically dl & add gpg keys.
# Just the keyserver-options line goes in dirmngr.conf once
# this bug is fixed: https://bugs.gnupg.org/gnupg/issue2147
for homedir in /home/*; do
+ # this creates ~/.gnupg. addgnupghome is kinda broken on arch.
+ HOME=$homedir gpg -k
teeu $homedir/.gnupg/gpg.conf <<EOF
$(grep -o '^ *keyserver .*' $homedir/.gnupg/dirmngr.conf)
keyserver-options auto-key-retrieve
lnf -T /p/News ~/News
# don't use /* because I don't want to require it to be mounted
s lnf /q/root/.editor-backups /q/root/.undo-tree-history \
- /q/root/.ssh /a/opt \
- /a/c/.emacs.d ~/.unison /root
-
+ /a/opt /a/c/.emacs.d ~/.unison /root
fi
+/a/bin/rootsshsync
+
s lnf /a/c/.inputrc /a/c/.vim /a/c/.vimrc /a/c/.gvimrc /root
# machine is going away
;;&
esac
-pi xbindkeys xkbset cryptsetup
+# background:
+# https://aur.archlinux.org/packages/xkbset/#comment-545419
+cert=$(mktemp)
+cat >$cert <<'EOF'
+-----BEGIN CERTIFICATE-----
+MIIJADCCB+igAwIBAgIRAIVAhZ0TMbQ5jTm0koI8X6YwDQYJKoZIhvcNAQELBQAw
+djELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1JMRIwEAYDVQQHEwlBbm4gQXJib3Ix
+EjAQBgNVBAoTCUludGVybmV0MjERMA8GA1UECxMISW5Db21tb24xHzAdBgNVBAMT
+FkluQ29tbW9uIFJTQSBTZXJ2ZXIgQ0EwHhcNMTUxMjA4MDAwMDAwWhcNMTgxMjA3
+MjM1OTU5WjCBsTELMAkGA1UEBhMCVVMxDjAMBgNVBBETBTY1MjExMREwDwYDVQQI
+EwhNaXNzb3VyaTERMA8GA1UEBxMIQ29sdW1iaWExHzAdBgNVBAkTFjExMDAgQ2Fy
+cmllIEZyYW5ja2UgRHIxHzAdBgNVBAoTFlVuaXZlcnNpdHkgb2YgTWlzc291cmkx
+CzAJBgNVBAsTAk1VMR0wGwYDVQQDExRmYWN1bHR5Lm1pc3NvdXJpLmVkdTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN8Kap8hASpxQeqjHibGsCR1PBkh
+nW9p5FkuhGpMW/3ko8QfxH0W1Hq2y2DTFUmq17kH3GfT3h9a7HcmUrC3q15PciOB
+WR3j8u0bDfVppyAZXiHJzYGN7xHiPrZtFEGgwZd28+sW80WXTbGl+zKkmeZguGdH
+AVGeWJEFK44ctLbpjHWCy+xNuhxJuL4olwPoV7WX9IUhceC0rxYQANhLGOJhbchj
+Z76MA8dc2K3CZI5m7VqQwl09QSnCfz00afUr88ny9vj1S5k2ADS46gaE9O0lM6EY
+z/uZvMizXN/4ko+hFBjCSt0Vhxjx0kYDSP15btiwh700ywBEubpvLROmd48CAwEA
+AaOCBUswggVHMB8GA1UdIwQYMBaAFB4Fo3ePbJbiW4dLprSGrHEADOc4MB0GA1Ud
+DgQWBBTTNWrSb+V/Ayy0i8W2LExMUisQMzAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0T
+AQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwZwYDVR0gBGAw
+XjBSBgwrBgEEAa4jAQQDAQEwQjBABggrBgEFBQcCARY0aHR0cHM6Ly93d3cuaW5j
+b21tb24ub3JnL2NlcnQvcmVwb3NpdG9yeS9jcHNfc3NsLnBkZjAIBgZngQwBAgIw
+RAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5pbmNvbW1vbi1yc2Eub3JnL0lu
+Q29tbW9uUlNBU2VydmVyQ0EuY3JsMHUGCCsGAQUFBwEBBGkwZzA+BggrBgEFBQcw
+AoYyaHR0cDovL2NydC51c2VydHJ1c3QuY29tL0luQ29tbW9uUlNBU2VydmVyQ0Ff
+Mi5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wggOg
+BgNVHREEggOXMIIDk4IUZmFjdWx0eS5taXNzb3VyaS5lZHWCGmFkdmlzaW5nLmNv
+YXMubWlzc291cmkuZWR1ghBhaGEubWlzc291cmkuZWR1ghZhbGwtY3JhZnQubWlz
+c291cmkuZWR1gh1hbWVyaWNhbmJhc2tldHJ5Lm1pc3NvdXJpLmVkdYIXYW5kcmVh
+cmlldy5taXNzb3VyaS5lZHWCFWFydGdyYWRzLm1pc3NvdXJpLmVkdYIYYmFja3Vw
+LmNvYXMubWlzc291cmkuZWR1ghBiaWMubWlzc291cmkuZWR1ghZibG9nLmNvYXMu
+bWlzc291cmkuZWR1ghVjb3dhbmxhYi5taXNzb3VyaS5lZHWCFWRhZS5zdGF0Lm1p
+c3NvdXJpLmVkdYIRZGljZS5taXNzb3VyaS5lZHWCIGRpZ2l0YWxzdG9yeXRlbGxp
+bmcubWlzc291cmkuZWR1gg9lYS5taXNzb3VyaS5lZHWCG2Vib29rLWRldi5tYXRo
+Lm1pc3NvdXJpLmVkdYIXZWJvb2suZWNvbi5taXNzb3VyaS5lZHWCGGVuZ2xpc2g4
+MDA2Lm1pc3NvdXJpLmVkdYIZZXVnZW5lZml0c2NoLm1pc3NvdXJpLmVkdYIYZXVy
+b2t1bHR1cmUubWlzc291cmkuZWR1ghNmY2RsYWIubWlzc291cmkuZWR1ghZnZW9t
+dXNldW0ubWlzc291cmkuZWR1ghRoYXJzdGFkLm1pc3NvdXJpLmVkdYITbHVkd2ln
+Lm1pc3NvdXJpLmVkdYIYbWFjaGluZXNob3AubWlzc291cmkuZWR1ghNtYWpvcnMu
+bWlzc291cmkuZWR1ghBtZ2EubWlzc291cmkuZWR1ghdvcmdhbnByaW50Lm1pc3Nv
+dXJpLmVkdYIUcGh5c2ljcy5taXNzb3VyaS5lZHWCFHBtLmNoZW0ubWlzc291cmku
+ZWR1ghxyZWNydWl0aW5nLmVjb24ubWlzc291cmkuZWR1ghdyZXBlYy5lY29uLm1p
+c3NvdXJpLmVkdYIUc2NhbmxhYi5taXNzb3VyaS5lZHWCFnNzc2MuY29hcy5taXNz
+b3VyaS5lZHWCF3RlYWNoLmNvYXMubWlzc291cmkuZWR1ghd0b3B0ZWFjaGVyLm1p
+c3NvdXJpLmVkdYIQdnNmLm1pc3NvdXJpLmVkdYIid2hpdGVwYXBlci5ncmFkc2No
+b29sLm1pc3NvdXJpLmVkdTANBgkqhkiG9w0BAQsFAAOCAQEAQutYVAqG7MpmG2Nu
+Z/UypjYkN4JvwRbKBpTrce2IT/Sy29x6chBbyD+0WE6QORBtaUHuzE1KoXqpnF4M
+QrkKw0oBAC6x9dISoomq0DkIndtoBYYLaxSoII6F4OGWgF7pQ/7MiCBYzsKQpn9t
+aofMcTfvnCjq+MCIaeYnUKBVww0lOJlUxZGKxFJvRpf78HfbBauojjRO2zXLZD/u
+KMspbTfDaj5etIgWGShY2eml3N/SjAENmZYkcgDBYFyi8CckcEBAVzpH1+D+7Anz
+txHSYDNHAYLv83MwbegApa1FwPqlG/4SdEU8G6e6Xf5GLC/6GPGVTUpr7o348OOO
+lzGQzw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF+TCCA+GgAwIBAgIQRyDQ+oVGGn4XoWQCkYRjdDANBgkqhkiG9w0BAQwFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQx
+MDA2MDAwMDAwWhcNMjQxMDA1MjM1OTU5WjB2MQswCQYDVQQGEwJVUzELMAkGA1UE
+CBMCTUkxEjAQBgNVBAcTCUFubiBBcmJvcjESMBAGA1UEChMJSW50ZXJuZXQyMREw
+DwYDVQQLEwhJbkNvbW1vbjEfMB0GA1UEAxMWSW5Db21tb24gUlNBIFNlcnZlciBD
+QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJwb8bsvf2MYFVFRVA+e
+xU5NEFj6MJsXKZDmMwysE1N8VJG06thum4ltuzM+j9INpun5uukNDBqeso7JcC7v
+HgV9lestjaKpTbOc5/MZNrun8XzmCB5hJ0R6lvSoNNviQsil2zfVtefkQnI/tBPP
+iwckRR6MkYNGuQmm/BijBgLsNI0yZpUn6uGX6Ns1oytW61fo8BBZ321wDGZq0GTl
+qKOYMa0dYtX6kuOaQ80tNfvZnjNbRX3EhigsZhLI2w8ZMA0/6fDqSl5AB8f2IHpT
+eIFken5FahZv9JNYyWL7KSd9oX8hzudPR9aKVuDjZvjs3YncJowZaDuNi+L7RyML
+fzcCAwEAAaOCAW4wggFqMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvAnfKyA2bL
+MB0GA1UdDgQWBBQeBaN3j2yW4luHS6a0hqxxAAznODAOBgNVHQ8BAf8EBAMCAYYw
+EgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH
+AwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgGBmeBDAECAjBQBgNVHR8ESTBHMEWgQ6BB
+hj9odHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQ2VydGlmaWNh
+dGlvbkF1dGhvcml0eS5jcmwwdgYIKwYBBQUHAQEEajBoMD8GCCsGAQUFBzAChjNo
+dHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQWRkVHJ1c3RDQS5j
+cnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZI
+hvcNAQEMBQADggIBAC0RBjjW29dYaK+qOGcXjeIT16MUJNkGE+vrkS/fT2ctyNMU
+11ZlUp5uH5gIjppIG8GLWZqjV5vbhvhZQPwZsHURKsISNrqOcooGTie3jVgU0W+0
++Wj8mN2knCVANt69F2YrA394gbGAdJ5fOrQmL2pIhDY0jqco74fzYefbZ/VS29fR
+5jBxu4uj1P+5ZImem4Gbj1e4ZEzVBhmO55GFfBjRidj26h1oFBHZ7heDH1Bjzw72
+hipu47Gkyfr2NEx3KoCGMLCj3Btx7ASn5Ji8FoU+hCazwOU1VX55mKPU1I2250Lo
+RCASN18JyfsD5PVldJbtyrmz9gn/TKbRXTr80U2q5JhyvjhLf4lOJo/UzL5WCXED
+Smyj4jWG3R7Z8TED9xNNCxGBMXnMete+3PvzdhssvbORDwBZByogQ9xL2LUZFI/i
+eoQp0UM/L8zfP527vWjEzuDN5xwxMnhi+vCToh7J159o5ah29mP+aJnvujbXEnGa
+nrNxHzu+AGOePV8hwrGGG7hOIcPDQwkuYwzN/xT29iLp/cqf9ZhEtkGcQcIImH3b
+oJ8ifsCnSbu0GB9L06Yqh7lcyvKDTEADslIaeSEINxhO2Y1fmcYFX/Fqrrp1WnhH
+OjplXuXE0OPa0utaKC25Aplgom88L2Z8mEWcyfoB7zKOfD759AN7JKZWCYwk
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
+MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
+3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
+tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
+Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
+VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
+79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
+c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
+Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
+c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
+UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
+Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
+BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
+Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
+VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
+ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
+8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
+iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
+Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
+XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
+qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
+VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
+L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
+jjxDah2nGN59PRbxYvnKkKj9
+-----END CERTIFICATE-----
+EOF
+cat /etc/ssl/certs/ca-certificates.crt >> $cert
+CURL_CA_BUNDLE=$cert pi xkbset
+
+pi xbindkeys cryptsetup
pi lvm2
# enables trim for volume delete, other rare commands.
if isarch; then
# install so it's build dependencies don't get removed.
- x=$(mktemp -d)
- pushd $x
- aurex emacs-git
- makepkg -si --noconfirm
- popd
- rm -rf $x
+
+ # emacs git build is currently broken
+ if false; then
+ x=$(mktemp -d)
+ pushd $x
+ aurex emacs-git
+ makepkg -si --noconfirm
+ popd
+ rm -rf $x
+ else
+ pi emacs
+ fi
pi hunspell hunspell-en
else
# to disable emacs git build,
# s apt-get install emacs
if $recompile; then
- /a/bin/buildscripts/emacs
+ /a/bin/buildscripts/emacs -u
else
/a/bin/buildscripts/emacs -r
fi
pi xorg-xmessage xmonad-contrib xorg-xsetroot xorg-xinit
# https://wiki.archlinux.org/index.php/Xinitrc
- for homedir in /homme/*; do
+ for homedir in /home/*; do
cp /etc/X11/xinit/xinitrc $homedir/.xinitrc
sed -ri '/^ *twm\b/,$d' $homedir/.xinitrc
echo "source /a/bin/xinitrc" | tee -a $homedir/.xinitrc
fi
sudo chown -R traci:traci /home/traci
+echo "$0: $(date): ending now"
set -x
+exec &> >(sudo tee -a /var/log/distro-end)
+echo "$0: $(date): starting now)"
+
end_msg() {
= local y
IFS= read -r -d '' y ||:
distro=$(distro-name)
+pending_reboot=false
# template
case $distro in
smartmontools
squashfs-tools
tcpdump
+ transmission-remote-gtk
tree
vim
)
esac
fi
-# from /var/lib/dpkg/info/transmission-daemon.postinst
+# adapted from /var/lib/dpkg/info/transmission-daemon.postinst
if ! getent passwd debian-transmission > /dev/null; then
- s adduser --quiet \
- --system \
- --group \
- --no-create-home \
- --disabled-password \
- --home /var/lib/transmission-daemon \
- debian-transmission
+ case $distro in
+ arch)
+ s useradd \
+ --system \
+ --create-home \
+ --home-dir /var/lib/transmission-daemon \
+ --shell /bin/false \
+ debian-transmission
+ ;;
+ *)
+ s adduser --quiet \
+ --system \
+ --group \
+ --no-create-home \
+ --disabled-password \
+ --home /var/lib/transmission-daemon \
+ debian-transmission
+ ;;
+ esac
fi
-case $distro in
- debian|ubuntu) pi transmission-remote-gtk ;;
- arch) pi transmission-remote-gtk2 ;;
-esac
# arch had a default config,
# debian had nothing until you start it.
# With a little trial an error, here is a minimal config
ser disable openvpn@client
ser disable openvpn
;;
- *) pi openvpn ;;
-esac
+ *) pi openvpn ;;
+ esac
-case $HOSTNAME in
- tp|frodo)
- case $distro in
- debian|ubuntu)
- log=$(mktemp)
- cd /a/opt
- wget -N https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- set +e
- s dpkg -i google-chrome-stable_current_amd64.deb &> $log
- code=$?
- set -e
- case $code in
- 1)
- if grep '^dpkg: dependency problems prevent configuration of' \
- $log &>/dev/null; then
- s apt-get -fy install
- else
- exit 1
- fi
- ;;
- 0) : ;;
- *) exit $code
- esac
- ;;
- arch)
- pi google-chrome
- ;;
- esac
- ;;
-esac
+ case $HOSTNAME in
+ tp|frodo)
+ case $distro in
+ debian|ubuntu)
+ log=$(mktemp)
+ cd /a/opt
+ wget -N https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
+ set +e
+ s dpkg -i google-chrome-stable_current_amd64.deb &> $log
+ code=$?
+ set -e
+ case $code in
+ 1)
+ if grep '^dpkg: dependency problems prevent configuration of' \
+ $log &>/dev/null; then
+ s apt-get -fy install
+ else
+ exit 1
+ fi
+ ;;
+ 0) : ;;
+ *) exit $code
+ esac
+ ;;
+ arch)
+ pi google-chrome
+ ;;
+ esac
+ ;;
+ esac
-case $distro in
- # ubuntu unknown. probably the same as debian, just check if the
- # init scripts come with the package.
- debian)
- # copied from arch
- s dd of=/etc/systemd/system/synergys@.service <<'EOF'
+ case $distro in
+ # ubuntu unknown. probably the same as debian, just check if the
+ # init scripts come with the package.
+ debian)
+ # copied from arch, but moved to etc
+ s dd of=/etc/systemd/user/synergys.service <<'EOF'
[Unit]
Description=Synergy Server Daemon
After=network.target
[Install]
WantedBy=multi-user.target
EOF
- s dd of=/etc/systemd/system/synergys@.socket <<'EOF'
+ s dd of=/etc/systemd/user/synergys.socket <<'EOF'
[Unit]
Conflicts=synergys@.service
[Install]
WantedBy=sockets.target
EOF
- ;;&
- *)
- pi synergy
- s dd of=/etc/systemd/system/synergyc@.service <<'EOF'
+ ;;&
+ *)
+ pi synergy
+ # taken from arch wiki.
+ s dd of=/etc/systemd/system/synergyc@.service <<'EOF'
[Unit]
Description=Synergy Client
After=network.target
[Install]
WantedBy=multi-user.target
EOF
- case $HOSTNAME in
- frodo)
- sgo synergyc@ian
- sgo synergys@ian.socket
- ;;
- treetowl) sgo synergys@ian.socket ;;
- esac
- ;;
-esac
+ case $HOSTNAME in
+ frodo)
+ sgo synergyc@ian
+ systemctl --user start synergys
+ systemctl --user enable synergys
+ ;;
+ treetowl) systemctl --user enable synergys ;;
+ esac
+ ;;
+ esac
-case $distro in
- # tk for gitk
- arch) spa git tk ;;
- *) spa git ;;
-esac
+ case $distro in
+ # tk for gitk
+ arch) spa git tk ;;
+ *) spa git ;;
+ esac
-case $distro in
- arch) spa the_silver_searcher ;;
- debian|ubuntu) spa silversearcher-ag ;;
- # fedora unknown
-esac
+ case $distro in
+ arch) spa the_silver_searcher ;;
+ debian|ubuntu) spa silversearcher-ag ;;
+ # fedora unknown
+ esac
-# printer
-case $distro in
- arch)
- pi cups ghostscript gsfonts # from arch wiki cups page
- pi hplip # from google
- s gpasswd -a $USER sys # from arch wiki
- sgo org.cups.cupsd.service
- # goto http://127.0.0.1:631
- # administration tab, add new printer button.
- # In debian, I could use hte recommended driver,
- # in arch, I had to pick out the 6L driver.
- ;;
- debian|ubuntu)
- spa hplip
- ;;
- # other distros unknown
-esac
+ # printer
+ case $distro in
+ arch)
+ pi cups ghostscript gsfonts # from arch wiki cups page
+ pi hplip # from google
+ s gpasswd -a $USER sys # from arch wiki
+ sgo org.cups.cupsd.service
+ # goto http://127.0.0.1:631
+ # administration tab, add new printer button.
+ # In debian, I could use hte recommended driver,
+ # in arch, I had to pick out the 6L driver.
+ ;;
+ debian|ubuntu)
+ spa hplip
+ ;;
+ # other distros unknown
+ esac
-case $distro in
- ubuntu|debian) spa ack-grep ;;
- arch|fedora) spa ack ;;
- # fedora unknown
-esac
-case $distro in
- ubuntu|debian) pi --no-install-recommends mairix notmuch ;;
- fedora|arch) spa mairix notmuch ;;
-esac
-case $distro in
- arch) spa nfs-utils ;;
- ubuntu|debian) spa nfs-client ;;
-esac
-case $distro in
- ubuntu|debian) spa par2 ;;
- arch|fedora) spa par2cmdline ;;
-esac
+ case $distro in
+ ubuntu|debian) spa ack-grep ;;
+ arch|fedora) spa ack ;;
+ # fedora unknown
+ esac
+ case $distro in
+ ubuntu|debian) pi --no-install-recommends mairix notmuch ;;
+ fedora|arch) spa mairix notmuch ;;
+ esac
+ case $distro in
+ arch) spa nfs-utils ;;
+ ubuntu|debian) spa nfs-client ;;
+ esac
+ case $distro in
+ ubuntu|debian) spa par2 ;;
+ arch|fedora) spa par2cmdline ;;
+ esac
-# needed for my tex resume
-case $distro in
- ubuntu|debian) spa texlive-full ;;
- arch) spa texlive-most ;;
- # fedora unknown
-esac
+ # needed for my tex resume
+ case $distro in
+ ubuntu|debian) spa texlive-full ;;
+ arch) spa texlive-most ;;
+ # fedora unknown
+ esac
-case $distro in
- ubuntu)
- # flash, unrar, codecs, ms fonts.
- # This has a manual prompt.
- spa ubuntu-restricted-extras
- ;;
- fedora)
- pi yum-utils
- # rpm fusion recommended codecs
- s su -c "yum localinstall -y --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm"
- pi gstreamer-plugins-ugly gstreamer-plugins-bad gstreamer-ffmpeg\
- xine-lib-extras-freeworld
- ;;
-esac
+ case $distro in
+ ubuntu)
+ # flash, unrar, codecs, ms fonts.
+ # This has a manual prompt.
+ spa ubuntu-restricted-extras
+ ;;
+ fedora)
+ pi yum-utils
+ # rpm fusion recommended codecs
+ s su -c "yum localinstall -y --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm"
+ pi gstreamer-plugins-ugly gstreamer-plugins-bad gstreamer-ffmpeg\
+ xine-lib-extras-freeworld
+ ;;
+ esac
-case $distro in
- # optional dep for firefox for h.264 video
- arch) spa gst-libav ;;
- # other distros, probably come by default
-esac
+ case $distro in
+ # optional dep for firefox for h.264 video
+ arch) spa gst-libav ;;
+ # other distros, probably come by default
+ esac
-case $distro in
- fedora|ubuntu|debian) spa gnupg-agent ;;
- arch) : ;;
-esac
+ case $distro in
+ fedora|ubuntu|debian) spa gnupg-agent ;;
+ arch) : ;;
+ esac
-case $distro in
- fedora) spa pinentry-gtk ;;
- *) : ;; # comes default or with other packages
-esac
+ case $distro in
+ fedora) spa pinentry-gtk ;;
+ *) : ;; # comes default or with other packages
+ esac
-case $distro in
- arch) spa firefox pulseaudio;;
- *) : ;; # comes default or with other packages
-esac
+ case $distro in
+ arch) spa firefox pulseaudio;;
+ *) : ;; # comes default or with other packages
+ esac
-case $distro in
- arch|debian|ubuntu)
- spa bash-completion
- ;;
- # others unknown
-esac
+ case $distro in
+ arch|debian|ubuntu)
+ spa bash-completion
+ ;;
+ # others unknown
+ esac
-case $distro in
- arch) spa ttf-dejavu;;
- debian|ubuntu) spa fonts-dejavu ;;
- # others unknown
-esac
+ case $distro in
+ arch) spa ttf-dejavu;;
+ debian|ubuntu) spa fonts-dejavu ;;
+ # others unknown
+ esac
-case $distro in
- debian|ubuntu) spa ntp;;
- arch)
- pi ntp
- sgo ntpd
- ;;
- # others unknown
-esac
+ case $distro in
+ debian|ubuntu) spa ntp;;
+ arch)
+ pi ntp
+ sgo ntpd
+ ;;
+ # others unknown
+ esac
-case $distro in
- arch) spa xorg-xev;;
- debian|ubuntu) spa x11-utils ;;
- # others unknown
-esac
+ case $distro in
+ arch) spa xorg-xev;;
+ debian|ubuntu) spa x11-utils ;;
+ # others unknown
+ esac
-case $distro in
- arch) pi virt-install;;&
- debian|ubuntu) pi virtinst ;;&
- *) pi virt-manager ;; # creates the libvirt group in debian at least
- # others unknown
-esac
-# allow user to run vms, from debian handbook
-for x in ian traci; do s usermod -a -G libvirt $x; done
+ case $distro in
+ arch) pi virt-install;;&
+ debian|ubuntu) pi virtinst ;;&
+ *) pi virt-manager ;; # creates the libvirt group in debian at least
+ # others unknown
+ esac
+ # allow user to run vms, from debian handbook
+ for x in ian traci; do s usermod -a -G libvirt $x; done
# bridge networking as user fails. google lead here, but it doesn't work:
# oh well, I give up.
# http://wiki.qemu.org/Features-Done/HelperNetworking
case $distro in
arch)
# cdrkit for cloud-init isos
- # dnsmasq for nat networking in libvirt
+ # dnsmasq & ebtables for nat networking in libvirt
# qemu for qemu-img, bind-tools for dig
- pi unzip wget xorg-xmodmap \
+ # dmidecode just because syslog complains
+ pi unzip wget xorg-xmodmap dmidecode ebtables\
bridge-utils dnsmasq qemu bind-tools
# otherwise we get error about accessing kvm module.
# seems like there might be a better way, but google was a bit vague.
# https://bbs.archlinux.org/viewtopic.php?id=206206
# # this should prolly go in the wiki
sgo virtlogd.socket
- sgo virtlogd.service
+ # guessing this is not needed
+ #sgo virtlogd.service
+ sgo libvirtd
+
;;
esac
pi cronie
sgo cronie
;;
- *) : ;; # other distros come with cron.
+ *) : ;; # other distros come with cron.
esac
ser stop postfix
n=/q/postfix-`distro-name``debian-archive`
if [[ -e $n ]]; then
- echo "$0: error: /q/postfix exists but not the link to it"
- exit 1
+ echo "$0: warning: $n already exists before we do the link, removing it"
+ rm -rf $n
fi
s mv /var/spool/postfix $n
s lnf -T $n /var/spool/postfix
pi nfs-server
;;
arch)
- pi nfs-utils
+ pi nfs-utils || pending_reboot=true
sgo rpcbind
+ # this failed until I rebooted
sgo nfs-server
;;
esac
pi samba
# note samba re-reads it's config every 1 minute
-
+case $distro in
+ arch) s cp /etc/samba/smb.conf.default /etc/samba/smb.conf ;;
+esac
# add 2 lines after workgroup option
s sed -ri '/^\s*encrypt passwords\s*=/d' /etc/samba/smb.conf
# Do this again because it occasionally has changes and
# it can be run outside initial isntall.
s /a/bin/fai/fai/config/distro-install-common/end
+
+if $pending_reboot; then
+ echo "$0: pending reboot and then finished. doing it now."
+ s reboot now
+else
+ echo "$0: $(date): ending now)"
+fi
--- /dev/null
+#!/bin/bash -l
+# Copyright (C) 2016 Ian Kelling
+# This program is under GPL v. 3 or later, see <http://www.gnu.org/licenses/>
+if s test -e /q/root/.ssh; then
+ s lnf /q/root/.ssh /root
+else
+ mkdir /root/.ssh
+fi
+s cp -rL $(eval echo ~${SUDO_USER:-$USER})/.ssh/* /root/.ssh
+s chown -R root:root /root/.ssh