2012-06-25 - Re: [GRASE-Hotspot] Uninstalling Grase leave behind several pieces

Header Data

From: Timothy White <ti***8@gmail.com>
Message Hash: 19d5eeae3a77debd2792b853b527578151c9578875a9984b6a977bf448ac946a
Message ID: <CAESLx0+hFFHfsCc4JHaja+1UsXPqhLCj9gng1-z2uvq8NQMM+g@mail.gmail.com>
Reply To: <201206251652.28810.solbu@solbu.net>
UTC Datetime: 2012-06-25 16:50:19 UTC
Raw Date: Tue, 26 Jun 2012 07:50:19 +0800

Raw message

On Mon, Jun 25, 2012 at 10:52 PM, Johnny Solbu <so***u@solbu.net> wrote:
> On Monday 25 June 2012 16:02, Timothy White wrote:
>> However, it's normal to be "left behind" when you uninstall. When you
>> remove a package in Ubuntu/Debian, it leaves behind it's config files,
>> one of which is the crontab.
>
> Then you are not packaging correctly. (I'm a Mandriva and Mageia packager, so I think I'm qualified to have an oppinion on packaging)
> On Debian, those cron scripts are also removed by a simple "remove" command. On every other package I've removed in Debian systems, it has also removed the cron scripts it installed without the need to use "--purge".
> This is a packaging problem, and you need to fix this.

I'm sorry, but being a Mandriva packager doesn't give you any
qualification for packaging opinions under Debian.
Under Debian packaging, cron "config" files are config files. They
tell Cron what to run, and when. That's config. I understand that
under the cron.{daily,weekly,hourly,monthly} directories they are
often scripts, but at the very least, under the cron.d directory, they
are config files.

In all my packages, they are installed the Debian way. See
http://www.debian.org/doc/manuals/maint-guide/dother.en.html#crond for
how I package them. I put the files in the correct location, and the
packaging system marks them as a conffile, and installs them in the
correct directories when the package is installed. It also decides
when they are removed, not me.

For a quick check that I'm right in how I'm packaging, I found a
common package that also has a file in /etc/cron.d/ and installed, it,
and then uninstalled it, and yes, it leaves behind the cron.d files.
The package is php5-common, and looking at it's info files, it has it
marked as a conffile.

$ cat /var/lib/dpkg/info/php5-common.conffiles
/etc/php5/conf.d/pdo.ini
/etc/cron.d/php5
$ cat /var/lib/dpkg/info/grase-www-portal.conffiles
/etc/cron.d/grase-www-portal

You probably have never noticed most packages left behind cron.d
files, as they don't run every 5 minutes like the network settings one
does, so you don't see it in your logs constantly. (Honestly, I wish I
didn't have to have a script run as root every 5 minutes just to check
if the user has changed the network settings, so if you can work out a
better way to do this, tell me!)

The reason they are considered conffile files, and not removed until a
purge, is that a user can, and would have good reason to, change the
files to suit them. A great example is the grase-conf-dnsmasq cron.d
file, as you may change it to only check hourly. And all the Grase
cron.d files, have the possibility of generating useful output, so you
may want to change who it mails to.

So sorry, but I'm not going to "fix" what isn't a packaging problem
(unless you can show me it really is a packaging problem, in the
Debian way). If you can find me a better (but valid Debian way) of
doing it, I will. Given that it "spams" the logs, I can see a better
way would be ideal, and if I get a chance, I'll ask some Debian
packagers for suggestions. I am slowly working through all the
packages Lintian errors, so I know that the packages aren't perfect.

Tim




Thread