Fix differing config files? (reported by reform-check)

$ sudo reform-check
I: Contents of /proc/device-tree/model: MNT Pocket Reform with RCORE RK3588 Module
I: `uname -a` output: Linux io 6.14.6-mnt-reform-arm64 #1 SMP Debian 6.14.6-1~exp1+reform20250512T085505Z (2025-05-12) aarch64 GNU/Linux
I: Version of linux-image-mnt-reform-arm64: 6.14.6-1~exp1+reform20250512T085505Z
I: Version of reform-tools: 1.72-1+reform20250508T045900Z1
I: Mount source of /: /dev/reformvg/root (LVM vg 'reformvg' on LUKS device 'reform_crypt' on SSD)
I: Mount source of /boot: /dev/mmcblk0p1 (eMMC)
I: the following files differ from how they are shipped by reform-tools (ignore /var/lib/alsa/asound.state):
??5??????   /var/lib/alsa/asound.state
??5?????? c /etc/skel/.config/sway/config.d/input
??5?????? c /etc/skel/.config/wayfire.ini

Those last few lines about differing config files: Should I fix that? If yes, how?

I didn’t change these manually so I assume it’s just differences between what the current version of reform-check assumes today vs the older system image that I started on.

The only effect of not “fixing” this is, that should you create another user, then that user will get the files in their current state copied into their new $HOME instead of the files as they were shipped by the last reform-tools version that installed these.

These days, reform-tools no longer ships files in /etc/skel/ so these are an artifact from before reform-tools 1.47 (August 2024). They were removed in this commit in case you ire interested in their last state in the reform-tools package: stop shipping files in /etc (709d77cb) · Commits · Reform / MNT Reform Tools · GitLab

Their latest version can be found here: etc/skel/.config · main · Reform / reform-system-image · GitLab

Does that mean they can be safely deleted?

Maybe. :upside_down_face:

The long answer is: right now, reform-tools only ships one thing in /etc: a symlink from /etc/kernel/postinst.d/zz-reform-tools to /usr/share/kernel/postinst.d/zz-reform-tools to make the kernel postinst hook compatible with kernel releases before they switch to supporting hooks in /usr/share/kernel. In earlier days, all of this used to be shipped by the reform-tools package in /etc:

/etc/reform-desktop-help
/etc/reform-help
/etc/reform-root-help
/etc/X11/xorg.conf
/etc/skel/.local/share/rofi/themes/mnt-reform.rasi
/etc/skel/.local/bin/reform-windowmaker
/etc/skel/.local/bin/kde
/etc/skel/.local/bin/gnome
/etc/skel/.ircrc
/etc/skel/.config/xfce4/terminal/terminalrc
/etc/skel/.config/wofi.css
/etc/skel/.config/wayfire.ini
/etc/skel/.config/waybar/style.css
/etc/skel/.config/waybar/config
/etc/skel/.config/systemd/user/waybar.service
/etc/skel/.config/sway/config.d/input
/etc/skel/.config/sway/config
/etc/skel/.config/qt5ct/qt5ct.conf
/etc/skel/.config/mpv/mpv.conf
/etc/skel/.config/gtk-3.0/settings.ini
/etc/skel/.config/foot/foot.ini
/etc/skel/.config/dunst/dunstrc
/etc/skel/.config/autostart/pasystray.desktop
/etc/skel/.config/autostart/lxpolkit.desktop
/etc/skel/.config/autostart/blueman.desktop
/etc/profile.d/reform.sh
/etc/motd-rescue
/etc/motd-full
/etc/firefox/syspref.js

How do users get these files these days? They are part of the system image and no longer get shipped by any package. This has advantages and disadvantages. The problem with packages shipping files in /etc is, that those files are config files for dpkg. This means that the user is allowed to modify them and they do not get removed even after the user uninstalls the package (they have to “purge” the package if they want config files to be removed). The disadvantage of not shipping these files in reform-tools is that it is now impossible for reform-tools to ship updates to these files. But then, updating these files is exactly the problem that we would have if reform-tools would ship them. Because if the user modified them and then reform-tools modifies them as well, the user would be presented with a conflict and would have to resolve that manually somehow, which is annoying.

Luckily, a lot of stuff that was in /etc can be moved to /usr. For example, the kernel hooks in /etc/kernel/postinst.d can soon live in /usr/share/kernel/postinst.d and there they are not config files any longer and not supposed to be updated anymore. For the files in /etc/skel, the issue is, that packages in Debian (with the exception of bash) are not allowed to ship files in it: Lintian Tag: package-contains-file-in-etc-skel So to upload reform-tools to Debian proper, those needed to go.

Back to your original question: can they be deleted? It depends… if you do not plan to add a second user to your machine (like a friend or family member) then the files in /etc/skel are quite pointless because their only use is to populate the $HOME of a new user. Furthermore, if you want to create a new user, you might want to consider using the updated files of /etc/skel from the reform-system-image repository. On the other hand, having the files in /etc/skel also does not hurt. They are very small.

If you delete them now, dpkg will complain that suddenly config files are gone. In case of your example, the dpkg --verify output will look like this:

missing  c /etc/skel/.config/sway/config.d/input
missing  c /etc/skel/.config/wayfire.ini

If all you want to do is to get rid of the two lines in your “the following files differ” output of reform-check then you would have to restore them into a state that matches the md5sum stored in /var/lib/dpkg/info/reform-tools.md5sums. If you tell me which md5sums you have for /etc/skel/.config/sway/config.d/input and /etc/skel/.config/wayfire.ini then I can give you links to the correct content.

1 Like