Re: Who owns /etc/default/locale?
On Sun, 2008-11-09 at 18:43 +0100, Andreas Metzler wrote:
> Frank Lin PIAT wrote:
> [....]
> > I have question which is directly related: shouldn't a package own and
> > declare all the configuration files that it uses, even if it doesn't
> > install or modify it?
> [...]
>
> No. Not all configuration files can be managed as dpkg conffiles.
I did not wrote that all configuration file should be conffiles : I
wrote that all (well known) configuration files should be tracked.
Some configuration files are used by packages but they aren't declared
anywhere. Also, as I mentioned, those file aren't necessarily removed by
the package when it is purged.
For example, on my laptop I've used a quick script to check
if /etc/default/* files are declared by the scripts located
in /etc/{init.d,cron.*}... as you can see, almost half of them don't
belong to any package.
apache2.2-common uses /etc/default/apache2 owned by apache2.2-common
exim4-base uses /etc/default/exim4 NOT OWNED
live-helper uses /etc/default/live-helper_autobuild owned by
live-helper
acpid uses /etc/default/acpid owned by acpid
apache2.2-common uses /etc/default/apache2 owned by apache2.2-common
apt-proxy uses /etc/default/apt-proxy owned by apt-proxy
atftpd uses /etc/default/atftpd NOT OWNED
avahi-daemon uses /etc/default/avahi-daemon owned by avahi-daemon
bluez-utils uses /etc/default/bluetooth owned by bluez-utils
initscripts uses /etc/default/bootlogd owned by initscripts
clamav-daemon uses /etc/default/clamav-daemon owned by clamav-daemon
console-tools uses /etc/default/locale NOT OWNED
cpufrequtils uses /etc/default/cpufrequtils owned by cpufrequtils
cron uses /etc/default/cron owned by cron
cron uses /etc/default/locale NOT OWNED
cups uses /etc/default/cups owned by cups
dbus uses /etc/default/dbus owned by dbus
dhcp3-server uses /etc/default/dhcp3-server NOT OWNED
dnsmasq uses /etc/default/dnsmasq owned by dnsmasq
exim4-base uses /etc/default/exim4 NOT OWNED
gdm uses /etc/default/locale NOT OWNED
hal uses /etc/default/hal owned by hal
initscripts uses /etc/default/halt owned by initscripts
hdparm uses /etc/default/hdparm owned by hdparm
ifupdown uses /etc/default/ifupdown owned by ifupdown
ifupdown uses /etc/default/ifupdown owned by ifupdown
irda-utils uses /etc/default/irda-utils NOT OWNED
console-common uses /etc/default/locale NOT OWNED
klogd uses /etc/default/klogd owned by klogd
cpufrequtils uses /etc/default/loadcpufreq NOT OWNED
cpufrequtils uses /etc/default/powernowd NOT OWNED
initscripts uses /etc/default/locale NOT OWNED
initscripts uses /etc/default/devpts owned by initscripts
initscripts uses /etc/default/tmpfs owned by initscripts
initscripts uses /etc/default/tmpfs owned by initscripts
initscripts uses /etc/default/mountoverflowtmp NOT OWNED
initscripts uses /etc/default/devpts owned by initscripts
initscripts uses /etc/default/tmpfs owned by initscripts
network-manager uses /etc/default/NetworkManagerDispatcher NOT OWNED
network-manager uses /etc/default/NetworkManager NOT OWNED
nfs-common uses /etc/default/nfs-common NOT OWNED
nfs-kernel-server uses /etc/default/nfs-kernel-server NOT OWNED
openbsd-inetd uses /etc/default/openbsd-inetd NOT OWNED
partimage-server uses /etc/default/partimaged owned by partimage-server
pcmciautils uses /etc/default/pcmciautils NOT OWNED
portmap uses /etc/default/portmap NOT OWNED
rsync uses /etc/default/rsync owned by rsync
sane-utils uses /etc/default/saned owned by sane-utils
sl-modem-daemon uses /etc/default/slmodemd NOT OWNED
sl-modem-daemon uses /etc/default/sl-modem-daemon owned by
sl-modem-daemon
openssh-server uses /etc/default/ssh owned by openssh-server
sysklogd uses /etc/default/syslogd owned by sysklogd
udftools uses /etc/default/udftools owned by udftools
acpi-support uses /etc/default/acpi-support owned by acpi-support
----
The scriptlet I used:
for x in $(grep --binary-files=without-match -R -E "/etc/default/[^
$].*[^~]" /etc/{init.d,cron.*} | sed -e 's#\([^:]*\):.*
\(/etc/default/[[:alnum:]_-]*\).*#\1:\2#' | sort -u | grep -v
':/etc/default/rcS' ) ; do script="${x##*:}"; cfg="${x%%:*}" ; pkg=
$(dpkg -S "$cfg" | sed -e 's/:.*//') ; owner=$(dpkg -S $script
2>/dev/null | sed -e 's/:.*//' ) ; echo -n "$pkg uses ${x##*:} " ; if
[ "$owner" ] ; then echo "owned by $owner" ; else echo "NOT OWNED" ;
fi ; done
Reply to: