[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#544481: diff should not be an essential package



reassing 544481 apt 0.7.23.1
severity 544481 normal
retitle 544481 apt mixes essential flag from all sources

On Tue, 01 Sep 2009, Vincent Lefevre wrote:
> > > I could help you to determine what's wrong in your system, but *not*
> > > on the basis that I have to do something that I've *already* done, namely,
> > > dropping the Essential flag from the diff package.
> > 
> > Then this means that aptitude (or dpkg?) broke my system.
> 
> Actually, I have the same problem after reinstalling diff with apt-get
> (on a different machine). So, this probably comes from dpkg.

What makes you believe so?

$ dpkg -s diff
Package: diff
Status: install ok installed
Priority: extra
Section: oldlibs
Installed-Size: 32
Maintainer: Santiago Vila <sanvila@debian.org>
Architecture: all
Source: diffutils
Version: 1:2.8.1-16
Depends: diffutils
Description: dummy transitional package for diff -> diffutils
 This is a dummy package to aid in transitioning from diff to diffutils.
 It may be safely removed after upgrading to squeeze.

=> no essential flag, dpkg removed it as expected...

IMO it's apt that simply mixes the Essential: flag read from different
sources, a quick check makes it obvious:

┏rivendell:~/x/git/dpkg (master)
┗(731)$ grep "deb " /etc/apt/sources.list
deb http://localhost:9999/security lenny/updates main
deb http://localhost:9999/security squeeze/updates main
deb http://localhost:9999/debian unstable main contrib non-free
deb http://localhost:9999/debian squeeze main contrib non-free
deb http://localhost:9999/debian lenny main contrib non-free
deb http://localhost:9999/debian experimental main contrib non-free
#deb http://kernel-archive.buildserver.net/debian-kernel trunk main
#deb http://download.tuxfamily.org/dvorak/debian sid main
#deb http://security.debian.org/ lenny/updates main
┏rivendell:~/x/git/dpkg (master)
┗(732)$ LANG=C sudo apt-get remove diff
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  diff
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  diff
0 upgraded, 0 newly installed, 1 to remove and 59 not upgraded.
After this operation, 32.8kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
 ?] ^C
┏rivendell:~/x/git/dpkg (master)
┗(733)$ sudo vim /etc/apt/sources.list
┏rivendell:~/x/git/dpkg (master)
┗(734)$ grep "deb " /etc/apt/sources.list
#deb http://localhost:9999/security lenny/updates main
#deb http://localhost:9999/security squeeze/updates main
deb http://localhost:9999/debian unstable main contrib non-free
#deb http://localhost:9999/debian squeeze main contrib non-free
#deb http://localhost:9999/debian lenny main contrib non-free
#deb http://localhost:9999/debian experimental main contrib non-free
#deb http://kernel-archive.buildserver.net/debian-kernel trunk main
#deb http://download.tuxfamily.org/dvorak/debian sid main
#deb http://security.debian.org/ lenny/updates main
┏rivendell:~/x/git/dpkg (master)
┗(735)$ LANG=C sudo apt-get remove diff
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  diff
0 upgraded, 0 newly installed, 1 to remove and 59 not upgraded.
After this operation, 32.8kB disk space will be freed.
Do you want to continue [Y/n]? ^C

So reassiging to apt... apt should use the essential flag from
/var/lib/dpkg/status / the distribution containing the installed package to
decide whether an essential package can be removed or not.

I also fail to see why this bug would be critical, the set of essential
packages doesn't change often and having to keep around the transitional
package is not a big deal.

Cheers,
-- 
Raphaël Hertzog




Reply to: