On Sun, Oct 04, Christian Boltz wrote:
No objections against getting rid of fillup, but wouldn't it be better to fix this in a backwards-compatible way, without changing paths (at least in the first step), without leaving unused files behind, and therefore without leaving users confused?
I played around a bit, and it looks like rpm creates *.rpmnew files if you have a file with differing content that isn't owned by any package. Therefore I propose the following backwards-compatible solution:
- change rpmlint to no longer block files in /etc/sysconfig/ - package the sysconfig files as %config(noreplace) /etc/sysconfig/$whatever (note: it seems fillup adds an empty line at the end, so we should add that empty line to the packaged files to avoid superfluous *.rpmnew files)
I already hear you asking "but what about moving to /usr/etc/?" IMHO that should be a second step (maybe in some months) so that most Tumbleweed (or even Leap, if we wait long enough) users get a smooth upgrade path that avoids manual work.
This would require two times a change to a package: 1. replace fillup with a real %config file 2. move the config file and adjust all code. And this would require two times an action from the user, and two times something new to learn: 1. Check for /etc/sysconfig/*.rpmnew and merge your changes, learn you need to check that after every package update 2. Check for /etc/sysconfig/*.rpmsave and merge that, learn that the default is below /usr/etc and the changes should be below /etc.
This delay for the second step even comes with an advantage - rpm will delete unmodified (but now owned) files from /etc/sysconfig/ without leaving garbage behind, and will leave modified files as *.rpmsave so that users (and rpmconfigcheck) can easily find them, and know that they are now unused.
To a high cost for packagers and users. And: what happens with the migratation of Leap 15.x to Leap 16.x, or however the next major Leap version will be called?
In theory we could also handle both steps in one by checking the checksum of /etc/sysconfig/$whatever, and then a) delete matching files and b) rename non-matching files to *.rpmsave. However, this comes with more additional work because packagers would have to add the checksum of each (default) sysconfig file to support this. This could be done by a (not yet existing) macro like %delete_unowned_file /etc/sysconfig/foo \ 749b1bcb73cc025e68d45e4b93c9b1294ee9e63bfba85ec0b410946371b237df
I would do it really trivial: 1. don't package the fillup-template anymore 2. Install the adjusted config below /usr/etc 3. Move the old /etc/sysconfig/<file> to the new location, where the application now expects the user made changes. Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & MicroOS SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany Managing Director: Felix Imendoerffer (HRB 36809, AG Nürnberg) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org