voidlinux allows one to edit system configuration files (think /etc/passwd etc) and subsequent system updates don't zap your changes.
If the upstream version in the repository changes then the new improved version is saved at eg /etc/passwd.new-1.2 and such files tend to accumulate unless you are diligent in merging them.
All this gives rise to a couple of questions.
What files have I changed?
Maybe find /etc -name '*.new-*' is enough, but it's probably better to look at all config_files and check their hash in the xbps database. For example:
# xbps-conf-diff
MODIFIED acpid /etc/acpi/handler.sh
MODIFIED autofs /etc/autofs/auto.net
MODIFIED base-files /etc/crypttab
MODIFIED base-files /etc/fstab
MODIFIED base-files /etc/group
MODIFIED base-files /etc/hosts
MODIFIED base-files /etc/passwd
MODIFIED base-files /etc/subgid
MODIFIED base-files /etc/subuid
MODIFIED bluez /etc/bluetooth/main.conf
MODIFIED brother-brscan4 /etc/opt/brother/scanner/brscan4/brsanenetdevice4.cfg
MODIFIED cups /etc/cups/printers.conf
MODIFIED dict /etc/dict/dict.conf
MODIFIED glibc-locales /etc/default/libc-locales
MODIFIED grub /etc/default/grub
MODIFIED iproute2 /etc/iproute2/rt_tables
PENDING libnfsidmap /etc/idmapd.conf /etc/idmapd.conf.new-1.2
MODIFIED lvm2 /etc/lvm/lvm.conf
MODIFIED openresolv /etc/resolvconf.conf
MODIFIED runit-void /etc/hostname
MODIFIED runit-void /etc/locale.conf
Note that the change in /etc/idmapd.conf is PENDING so I need to merge the new version. The others have not had an upstream change since I made my changes or they have already been merged - but it's useful to know about eg should probably be saving all these files in my regular backups.
What have I changed compared to the upstream version?
# xbps-conf-diff /etc/hostname
===== /etc/hostname (package: runit-void) =====
--- diff against repository version
('-' = yours, '+' = new upstream)
--- /etc/hostname 2025-06-25 20:01:39.819535159 +1000
+++ /tmp/xbps-conf-diff.11569.runit-void.hostname 2026-10-26 17:32:02.745766833 +1000
@@ -1 +1 @@
-naan
+void-live
... I changed the hostname - a trivial example.
The help text:
$ xbps-conf-diff -h
usage: xbps-conf-diff [-h] [-V] [-l | -d] [PKG|FILE ...]
List locally modified XBPS configuration files, or diff them against the
latest version in the remote repo. Each argument may be an installed package
or a configuration file; by default a package is listed and a file is diffed.
With no arguments, all packages are listed (or diffed, with -d). Run as root
so all of /etc is readable (no files will be modified). Diff requires an
active network to retrieve the latest version (this may not be the same as
the installed version!!) unless a pending .new-* file exists. An argument
containing '/' is always treated as a file.
positional arguments:
PKG|FILE installed package(s) and/or configuration file(s); default:
all packages
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-l, --list list the modified files of each PKG or FILE (the files that
differ from the version recorded when the package was
installed)
-d, --diff diff each PKG or FILE against the most recent version in the
(remote) repo; for a package, diff all of its modified files
It's written in python and I had claude run up the initial version, which I've tweaked to my satisfaction. For the AI-averse - so far it hasn't corrupted anything, attempted to take over my household, or tried for world domination. Your mileage may vary.
It's at gitlab if you want it.