Package: redis
Version: 5:5.0.7-2
Severity: normal
Dear Maintainer,
* What led up to the situation?
Upgrades between versions of the package, with local configuration changes
* What exactly did you do (or not do) that was effective
Nothing particular other than modifying the default config (even if
modification is trivial)
* What was the outcome of this action?
Upgrade caused a configuration conflict which necessitated manual intervention
and patching/merging of config options. We frequently updagade/downgrade this
package for dev puposes and this has been a thorn in our back.
* What outcome did you expect instead?
Currently the redis.conf configuration file supports the "include" keyword.
However, by default, nothing is included. Problems can pop up when local
configuration needs to be maintained between upgrades/downgrades. The upgrade
mechanism will prompt for manual intervention with the configuration file, if
any changes were made to it. Depending on the amount of customization done
therein, this could cause a time-consuming and error-prone situation of having
to merge/patch things up.
Other packages, such as Apache and MySQL (for instance, amongst many others),
have addressed this by providing a "conf.d"-style directory and having "include
conf.d/*" type of statement in the default configuration file that's maintained
by the package maintainer. This is effectively the standard approach seen
nowadays in Linux.
The benefit is obvious: one can simply drop their local configuration file into
the provided conf.d directory and upgrade away with far fewer worries.
In summary, please consider affecting the following two (or three) changes to
the redis package:
1) add an empty /etc/redis/conf.d directory to the package
2) add the statement "include /etc/reds/conf.d/*" to the bottom of the official
/etc/redis.conf file to serve as an override of all default settings
3) it's not clear to me whether wildcard can actually currently be specified in
the include statement. If they currently cannot be specified, please patch the
code to glob using the pattern specified in the include, instead of targeting
an individual file.
Ideally, redis' default configraion should include an additional statement at
the bottom of the config file like this:
include "/etc/redis/conf.d/*"
plus the package should contain a default empty /etc/redis/conf.d directory.
-- System Information:
Debian Release: bullseye/sid
APT prefers focal-updates
APT policy: (500, 'focal-updates'), (500, 'focal-security'), (500, 'focal'),
(100, 'focal-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.11.13-051113-generic (SMP w/12 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8),
LANGUAGE=en_CA:en (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages redis depends on:
ii redis-server 5:5.0.7-2
redis recommends no packages.
redis suggests no packages.
-- no debconf information