1. Introduction: As many other users, i usually ask for help on this list, naming problems, i am facing and hoping to find help. Not this time. Last night, i rectivated an old script of mine, that was still hanging around in my repo since my Ubuntu days. I found it to be so useful, that i am now thinking about sharing this, as it may be useful to other people as well. So it is more like a solution searching for a problem, it could remedy. ;-) 2. Initial problem: On Ubuntu, i happened to run into bugs, and while trying to understand them, i sometimes found a kind of workaround, a simple change, that allowed me to live happily with the bug until further improvements would come my way. But (and there was one big BUT) sometimes the Ubuntu updates would just overwrite my changes and thereby reactivate the buggy system behavior. After experiencing this multiple times, i wanted my computer to give me a warning. when such a situation would arise. That way, i would be invited to check the changes and eventually decide on the best response to those. 3. The simplistic approach: To get to that goal, i did create a directory purely to hold the status of my changes in the following form. For every modification to the system, i considered being worth keeping, i stored 3 files. 1. the original file as Ubuntu had installed it. 2. a "Pointer" (a file containing the path to the location of that file), and also some description of the initial problem and my workaround. Later, this was as useful as a piece of documentation. 3. the modified file which had made my life easier. Furthermore, i made a simple script to check, if my "solution" was still in place. Later, i allowed this script to restore my solution automatically, if it found the situation being unchanged relative to the beginning of my work. 4. Technical details: During startup, while creating my desired working environment (through some sort auf "autostart" script), i used to include a whole lot of checks to let me know, if the system would not look as clean as i would like it to be. And in this (bash-) script was a line, saying: > sudo b repair -v || notify-send "Vorsicht! PreserveOldVersions > fällt eine relevante Abweichung auf. Dringend mal 'sudo b repair > -v' ausführen." Which reminds me to check myself (manually) to see, if it would be suitable to use automatic repair or if another round of controlling activities would be necessary. What b repair does, is - basically - to pass on elevated priviledges (sudo) to the final script, to make sure, it will be able to replace things like grub-mkconfig, if need be. PreservOldVersions, the real script, is only 80 lines long, with around 1/3 being comments. So it is rather simple. 5. Current status: After 2 years of living in debian (-oldstable by) now, i did not use my old implementation at all. But i am fighting ghosts, i know, i had already resolved in Ubuntu-times. So, just for fun, i reactivated my old infrastructure yesterday, and found, this immediately solved 2 little actual problems, while documenting several problems, that seem to still be unresolved (or worse). This persuaded me, to reuse my old work today, at least for the time being. My situation is pretty much non-standard, for example, i am lagging behind - even - the stable release. That is also the reason, why i refrain from calling bugs out loud, as i am not able to check, if they would still be present, if i was running a more up-to-date-version of my beloved OS. But i found grub(2) being a major area of pain. while changing/creating a couple of scripts in grub.d, i came across a very buggy os-prober, which is causing major headache. But developers just introduced a default/grub variable to switch it off. Leaving only inferior choices to the user. (Just as an example of what i am working on.) 6. Resume: From now on, i am going to protect myself from inadvertently overwritten or deactivated changes of mine. I know, apt *should* do that already, but in my case, it did not prevent me losing previous work through package updates/installs. The other major source of trouble is being caused by me using the Oracle version of VirtualBox. So not by debian itself. Also zfs used to optimistically overwrite old configurations. So i have quite a number of reasons to think, i am doing the right thing. 7. Outlook: This post is - more or less - an experiment. I am an old geezer, no longer in shape to develop software (which has once been my job). Also i am not interested to fight with debian, which is the best OS i came across uptil now. Since i am not aware of any guideline, that i would fail to respect, i am willing to show (a.k.a. give away) some of my insights/findings, if it was useful to someone. But if this would be consided abusive by the list members, please let me know, before i could eventually give more ideas into the public domain. Of course, ANY comment will be welcome. Let me throw this stone into the pond first and see, if it creates any ripples on the surface. ;-)
Thanks for your attention, and have a nice day. DdB