200920.2 · 92db3c9339d8035befe4c045dc68fce75956071c
system: re-arrange system configuration structure
Basically, for system configuration, we want to check all of that into source control. Until now, I had just been sporadically maintaining system configuration on each machine, but this has become unwieldy. It also guarantees that I will forget to copy something whenever I wipe a machine.
Given that my Archlinux install on my laptop is FUBAR, I'm trying to start this process right. The general scheme is:
$HOME/etc/path/to/config-file-as-directory/{default,krusty,...}
Where `/etc/path/to/config-file-as-directory` is a directory that refers to a concrete file path in the /etc directory. Inside this directory is an optional file named `default`, along with other optional files named by hostname, e.g., `krusty`. If a hostname file is present, then that file is symlinked to the corresponding config file location. Otherwise the `default` file is. If no files are present, then no symlinks are created.
This simple scheme permits per-system configuration without losing track of anything.
reading declarations
Changes to system/etc/makepkg.conf/. All files
system/etc/makepkg.conf/default
@@ -0,0 +1,148 @@+#!/hint/bash+#+# /etc/makepkg.conf+#++#########################################################################+# SOURCE ACQUISITION+#########################################################################+#+#-- The download utilities that makepkg should use to acquire sources+# Format: 'protocol::agent'+DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'+ 'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'+ 'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'+ 'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'+ 'rsync::/usr/bin/rsync --no-motd -z %u %o'+ 'scp::/usr/bin/scp -C %u %o')++# Other common tools:+# /usr/bin/snarf+# /usr/bin/lftpget -c+# /usr/bin/wget++#-- The package required by makepkg to download VCS sources+# Format: 'protocol::package'+VCSCLIENTS=('bzr::bzr'+ 'git::git'+ 'hg::mercurial'+ 'svn::subversion')++#########################################################################+# ARCHITECTURE, COMPILE FLAGS+#########################################################################+#+CARCH="x86_64"+CHOST="x86_64-pc-linux-gnu"++#-- Compiler and Linker Flags+CPPFLAGS="-D_FORTIFY_SOURCE=2"+CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt"+CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt"+LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"+#RUSTFLAGS="-C opt-level=2"+#-- Make Flags: change this for DistCC/SMP systems+#MAKEFLAGS="-j2"+#-- Debugging flags+DEBUG_CFLAGS="-g -fvar-tracking-assignments"+DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"+#DEBUG_RUSTFLAGS="-C debuginfo=2"++#########################################################################+# BUILD ENVIRONMENT+#########################################################################+#+# Defaults: BUILDENV=(!distcc !color !ccache check !sign)+# A negated environment option will do the opposite of the comments below.+#+#-- distcc: Use the Distributed C/C++/ObjC compiler+#-- color: Colorize output messages+#-- ccache: Use ccache to cache compilation+#-- check: Run the check() function if present in the PKGBUILD+#-- sign: Generate PGP signature file+#+BUILDENV=(!distcc color !ccache check !sign)+#+#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,+#-- specify a space-delimited list of hosts running in the DistCC cluster.+#DISTCC_HOSTS=""+#+#-- Specify a directory for package building.+#BUILDDIR=/tmp/makepkg++#########################################################################+# GLOBAL PACKAGE OPTIONS+# These are default values for the options=() settings+#########################################################################+#+# Default: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug)+# A negated option will do the opposite of the comments below.+#+#-- strip: Strip symbols from binaries/libraries+#-- docs: Save doc directories specified by DOC_DIRS+#-- libtool: Leave libtool (.la) files in packages+#-- staticlibs: Leave static library (.a) files in packages+#-- emptydirs: Leave empty directories in packages+#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip+#-- purge: Remove files specified by PURGE_TARGETS+#-- debug: Add debugging flags as specified in DEBUG_* variables+#+OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug)++#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2+INTEGRITY_CHECK=(md5)+#-- Options to be used when stripping binaries. See `man strip' for details.+STRIP_BINARIES="--strip-all"+#-- Options to be used when stripping shared libraries. See `man strip' for details.+STRIP_SHARED="--strip-unneeded"+#-- Options to be used when stripping static libraries. See `man strip' for details.+STRIP_STATIC="--strip-debug"+#-- Manual (man and info) directories to compress (if zipman is specified)+MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})+#-- Doc directories to remove (if !docs is specified)+DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})+#-- Files to be removed from all packages (if purge is specified)+PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)+#-- Directory to store source code in for debug packages+DBGSRCDIR="/usr/src/debug"++#########################################################################+# PACKAGE OUTPUT+#########################################################################+#+# Default: put built package and cached source in build directory+#+#-- Destination: specify a fixed directory where all packages will be placed+#PKGDEST=/home/packages+#-- Source cache: specify a fixed directory where source files will be cached+#SRCDEST=/home/sources+#-- Source packages: specify a fixed directory where all src packages will be placed+#SRCPKGDEST=/home/srcpackages+#-- Log files: specify a fixed directory where all log files will be placed+#LOGDEST=/home/makepkglogs+#-- Packager: name/email of the person or organization building packages+#PACKAGER="John Doe <john@doe.com>"+#-- Specify a key to use for package signing+#GPGKEY=""++#########################################################################+# COMPRESSION DEFAULTS+#########################################################################+#+COMPRESSGZ=(gzip -c -f -n)+COMPRESSBZ2=(bzip2 -c -f)+COMPRESSXZ=(xz -c -z -)+COMPRESSZST=(zstd -c -z -q -)+COMPRESSLRZ=(lrzip -q)+COMPRESSLZO=(lzop -q)+COMPRESSZ=(compress -c -f)+COMPRESSLZ4=(lz4 -q)+COMPRESSLZ=(lzip -c -f)++#########################################################################+# EXTENSION DEFAULTS+#########################################################################+#+PKGEXT='.pkg.tar.zst'+SRCEXT='.src.tar.gz'+COMPRESSXZ=(xz -c -z -0 -)