From: Simon Ruderich Date: Sat, 2 Jun 2018 11:40:59 +0000 (+0200) Subject: Merge branch 'os' X-Git-Url: https://ruderich.org/simon/gitweb/?p=config%2Fdotfiles.git;a=commitdiff_plain;h=f7a8615b16edb9065f10f89560c995e05c823cc5;hp=dcd322819bcff59f34bde4a4a82e4d20afb1b1d6 Merge branch 'os' --- diff --git a/os/.gitignore b/os/.gitignore new file mode 100644 index 0000000..d19959a --- /dev/null +++ b/os/.gitignore @@ -0,0 +1,4 @@ +# Ignore files created by setup.sh. +/debian/aptitude/config +# Ignore temporary files. +/debian/aptitude/cache diff --git a/os/Makefile b/os/Makefile new file mode 100644 index 0000000..23d5991 --- /dev/null +++ b/os/Makefile @@ -0,0 +1,4 @@ +all: + @./setup.sh + +.PHONY: all diff --git a/os/darwin/environment.plist b/os/darwin/environment.plist new file mode 100644 index 0000000..6c87ec5 --- /dev/null +++ b/os/darwin/environment.plist @@ -0,0 +1 @@ +{ PATH = "/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin"; } diff --git a/os/debian/aptitude/config.in b/os/debian/aptitude/config.in new file mode 100644 index 0000000..2030dfb --- /dev/null +++ b/os/debian/aptitude/config.in @@ -0,0 +1,50 @@ +// Aptitude configuration file. + +// Copyright (C) 2009-2013 Simon Ruderich +// +// This file is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This file is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this file. If not, see . + + +aptitude { + UI { + // Only display menubar when it's active. + Menubar-Autohide "true"; + // Don't display often used commands as help, I know them. + HelpBar "false"; + + // Use normal grouping with origin (~O) package as new top level. + // Thanks to hark in #debian on Freenode (2009-04-02 19:14) and + // http://noone.org/blog/English/Computer/Debian/Group%20by%20origin%20in%20aptitude.futile + // the site he pointed me to. + //Default-Grouping "task,status,pattern(~O, !~O => other),section(subdirs,passthrough),section(topdir)"; + // Same as Default-Grouping but only display packages which are + // changed (so no upgradeable are shown). + //Default-Preview-Grouping "pattern(~O),action,section(topdir),filter(~ainstall | ~aupgrade | ~adowngrade | ~aremove | ~apurge | ~ahold)"; + + // Pause before installing any packages. + Pause-After-Download "Yes"; + } + + // Don't display a warning when performing changes (add new packages, + // etc.) in read only mode. + Suppress-Read-Only-Warning "true"; +} + +Apt { + // Don't install recommended packages by default. The most annoying + // aptitude default! + Install-Recommends "false"; +} + +// vim: ft=cfg diff --git a/os/debian/bin/backup.sh b/os/debian/bin/backup.sh new file mode 100755 index 0000000..4b9bffa --- /dev/null +++ b/os/debian/bin/backup.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +# Backup all important system-relevant data of a Debian system. +# +# The list of installed packages can be extracted from /var/lib/dpkg/status. + +# Copyright (C) 2013 Simon Ruderich +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +set -eu + +# tar can't exclude it automatically because we pipe it through gpg. +target="`pwd`/`hostname`.tar.gpg" + +tar cf - \ + --exclude /root/apt \ + --exclude /var/cache \ + --exclude /var/www \ + --exclude "$target" \ + --exclude "$target.tmp" \ + /etc /root /var \ + | gpg --encrypt --sign --recipient 0x95AC608FB0863F79 \ + >"$target.tmp" +mv "$target.tmp" "$target" diff --git a/os/debian/bin/init-reprepro.sh b/os/debian/bin/init-reprepro.sh new file mode 100755 index 0000000..4014dc4 --- /dev/null +++ b/os/debian/bin/init-reprepro.sh @@ -0,0 +1,90 @@ +# Setup a reprepro repository in /root/apt and add it to +# /etc/apt/sources.list. + +# Copyright (C) 2013 Simon Ruderich +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +set -eu + +sources=/etc/apt/sources.list +repo=/root/apt + +# Don't look for exact "file://$repo" match to allow modifications on the +# system. +if grep -E '^deb file:///' "$sources" >/dev/null 2>&1; then + echo "file:/// already present in '$sources'!" >&2 + exit 1 +fi + +# Create signing key for the repository if necessary. +email="apt@`hostname`" +if ! gpg --list-keys "$email" >/dev/null 2>&1; then + # See doc/DETAILS in the gpg source tree for documentation. + gpg --gen-key --batch </dev/null \ + || grep -E '^deb' "$sources" | head -n1 | awk '{ print $3 }'` + +# Create reprepro repository. +if test ! -d "$repo"; then + echo "creating reprepro repository in '$repo'" >&2 + mkdir -p "$repo/conf" + mkdir -p "$repo/morgue" + + arch="`dpkg --print-architecture` `dpkg --print-foreign-architectures`" + cat >"$repo/conf/distributions" <"$repo/conf/options" <&2 + ( cd "$repo" && reprepro export ) || true + + # Does nothing if the same key is imported multiple times. + echo 'Adding key with apt-key.' >&2 + gpg --export "$keyid" | apt-key add - +fi + +echo "deb file://$repo $codename main" >>"$sources" + +echo 'Finished successfully'. >&2 diff --git a/os/debian/reportbugrc b/os/debian/reportbugrc new file mode 100644 index 0000000..e5d3ef1 --- /dev/null +++ b/os/debian/reportbugrc @@ -0,0 +1,51 @@ +# reportbug preferences file. + +# Copyright (C) 2009-2014 Simon Ruderich +# +# This file is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this file. If not, see . + + +# character encoding: UTF-8 +# Version of reportbug this preferences file was written by +reportbug_version "6.5.0" + +# Use advanced operating mode which asks more questions than the default +# (novice). +mode advanced + +# Use text interface, simple and powerful. +ui text + +# Use `debsums` to verify the integrity of the package before reporting a bug. +verify + +# Name and email settings. +realname "Simon Ruderich" +email "simon@ruderich.org" + +# Use Debian's SMTP server. +smtphost reportbug.debian.org +# Encrypt connection to SMTP server. +smtptls + +# Sign bug reports using GnuPG. Ignored when a MUA (like mutt) is used. +sign gpg + +# Display complete mail before sending it. Not used with mutt. +paranoid + +# Use mutt as MUA to send the mails. +mutt +# And use mutt to read mboxes. +mbox_reader_cmd "mutt -f %s" diff --git a/os/nocreeps.pub b/os/nocreeps.pub new file mode 100644 index 0000000..1a31e9b --- /dev/null +++ b/os/nocreeps.pub @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.14 (GNU/Linux) + +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 +LlQ= +=6ozN +-----END PGP PUBLIC KEY BLOCK----- diff --git a/os/setup.sh b/os/setup.sh new file mode 100755 index 0000000..dc3a341 --- /dev/null +++ b/os/setup.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# Setup script for OS related configuration files. + +# Copyright (C) 2009-2013 Simon Ruderich +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +set -eu + +. ../lib.sh + + +if test x"`os`" = xdarwin; then + # Sets a custom PATH for GUI applications. + mkdir -p ~/.MacOSX + link darwin/environment.plist ~/.MacOSX/environment.plist +fi +if test x"`os`" = xdebian; then + # Necessary as aptitude rewrites the config file on every start. + generate debian/aptitude/config .in cat + # aptitude/config uses // as comment instead of #. + sed_i 's|^#|//|' debian/aptitude/config + + link debian/aptitude ~/.aptitude + if installed reportbug; then + link debian/reportbugrc ~/.reportbugrc + fi +fi