From b31f99aa53d9bd0ef98d35c4468b34ce99ec900f Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Sun, 8 May 2016 10:46:46 -0700 Subject: [PATCH] various fixes --- distro-begin | 165 +++++++++++++++++++-- distro-end | 399 +++++++++++++++++++++++++++------------------------ rootsshsync | 10 ++ 3 files changed, 375 insertions(+), 199 deletions(-) create mode 100755 rootsshsync diff --git a/distro-begin b/distro-begin index fee2249..07b19b3 100755 --- a/distro-begin +++ b/distro-begin @@ -38,6 +38,9 @@ fi 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 @@ -250,12 +253,12 @@ if isarch; then } 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 <$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. @@ -528,18 +658,24 @@ fi 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 @@ -588,7 +724,7 @@ if isarch; then 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 @@ -603,3 +739,4 @@ if isdeb && (tp || x2); then fi sudo chown -R traci:traci /home/traci +echo "$0: $(date): ending now" diff --git a/distro-end b/distro-end index 4056d05..3ebc231 100755 --- a/distro-end +++ b/distro-end @@ -6,6 +6,9 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR set -x +exec &> >(sudo tee -a /var/log/distro-end) +echo "$0: $(date): starting now)" + end_msg() { = local y IFS= read -r -d '' y ||: @@ -14,6 +17,7 @@ end_msg() { distro=$(distro-name) +pending_reboot=false # template case $distro in @@ -46,6 +50,7 @@ simple_packages=( smartmontools squashfs-tools tcpdump + transmission-remote-gtk tree vim ) @@ -160,21 +165,29 @@ EOF 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 @@ -227,46 +240,46 @@ case $distro in 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 @@ -279,7 +292,7 @@ Restart=on-failure [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 @@ -290,10 +303,11 @@ Accept=false [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 @@ -310,146 +324,147 @@ RestartSec=3s [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 @@ -478,9 +493,10 @@ esac 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. @@ -489,7 +505,10 @@ case $distro in # 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 @@ -514,7 +533,7 @@ case $distro in pi cronie sgo cronie ;; - *) : ;; # other distros come with cron. + *) : ;; # other distros come with cron. esac @@ -746,8 +765,8 @@ if [[ ! -L /var/spool/postfix ]]; then 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 @@ -885,8 +904,9 @@ EOF pi nfs-server ;; arch) - pi nfs-utils + pi nfs-utils || pending_reboot=true sgo rpcbind + # this failed until I rebooted sgo nfs-server ;; esac @@ -975,7 +995,9 @@ fi 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 @@ -1029,3 +1051,10 @@ fi # 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 diff --git a/rootsshsync b/rootsshsync new file mode 100755 index 0000000..ab904e3 --- /dev/null +++ b/rootsshsync @@ -0,0 +1,10 @@ +#!/bin/bash -l +# Copyright (C) 2016 Ian Kelling +# This program is under GPL v. 3 or later, see +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 -- 2.30.2