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

Re: Trimming priority:standard



Adam Borowski wrote:
> What would you guys say about cutting some cruft from priority:standard?

Yes please!  I've been poking at this for a while, trying to reduce the
number of installed-by-default packages; I've filed quite a few bugs,
some of which have gotten fixed.

> The current list is:
> 
> apt-listchanges aptitude aptitude-common at bash-completion bc dc bind9-host
> dnsutils host libbind9-90 libdns100 libisc95 liblwres90 bsd-mailx bzip2
> libcwidget3 libsasl2-2 libsasl2-modules-db db5.1-util libdb5.3 debian-faq
> doc-debian exim4 exim4-base exim4-config exim4-daemon-light file libmagic1
> gettext-base libasprintf0c2 locales libgnutls26 libgnutls-deb0-28
> libgnutls-openssl27 libgpm2 libkeyutils1 krb5-locales libgssapi-krb5-2
> libgssrpc4 libk5crypto3 libkadm5clnt-mit9 libkadm5srv-mit9 libkdb5-7
> libkrad0 libkrb5-3 libkrb5support0 libcap2 libclass-isa-perl libedit2
> libevent-2.0-5 libgc1c2 libgcrypt11 libgcrypt20 libgpg-error0 libgssglue1
> libidn11 liblockfile-bin liblockfile1 libnfsidmap2 librpcsecgss3
> libswitch-perl libtasn1-6 libtirpc1 libxml2 lsof m4 make-guile mime-support
> mlocate mutt ncurses-term ftp telnet nfs-common libldap-2.4-2 openssh-client
> libp11-kit0 patch libpci3 pciutils perl perl-modules procmail python-apt
> python python-minimal python-support python2.7 python-reportbug reportbug
> rpcbind wamerican libsqlcipher0 libsqlite3-0 libwrap0 info install-info
> texinfo time libtokyocabinet9 ucf w3m libwgdb0 whois libxapian22 xz-utils
> 
> I'd start with:
> * dc: a RPN calculator is pretty esoteric, bc is for "normal people".

Just filed a bug for that one.

I'd actually argue that both bc and dc should become "optional".
"normal people" don't use command-line calculators at all, and people
who do use command-line calculators spell that "python" or "ghci" or
"ruby" or "node" or $(()) or pick-your-favorite-REPL-here.

> * db5.1-util: we're on db5.3, and I don't see much util here.

Already fixed in unstable (5.1.29-9); the override file just needs
updating.  From the PTS: "There were override disparities found in suite
unstable: db5.1-util: Override says database - standard, .deb says
oldlibs - optional"

None of the db*-util packages should be "standard"; libdb* should only
be pulled in by programs that need it, and the utilities shouldn't be
pulled in at all.

> * m4: a really obscure language.  Used basically only for autoconf scripts,
>   and that use is covered by autoconf's dependency.

Not *that* obscure, but it certainly doesn't need to appear in
"standard".

> * texinfo: 'info' should be enough for most uses.

I filed that one a long time ago, and the maintainers fixed it a long
time ago (priority optional now); the override file just needs fixing.

Getting rid of texinfo would also drop several perl library packages
from the default install.

> * telnet: dead for 19 years.  Used only by those who misspell 'nc' and hope
>   for no 0xff bytes.

Given the rarity of telnet for login, and the common use of telnet for a
text connection to random ports, how insane would it be to make
interactive invocation of telnet default to being clean and transparent
(without the crazy escape characters), and require an explicit option to
*enable* non-transparent operation?

(Yeah, I realize that's called "nc", but fingers take a while to
retrain.)

Also, it's sad that "netcat-traditional" is priority important, rather
than "netcat-openbsd", which has far more useful features (for instance,
proxy support).

> * wamerican: what use is a wordlist with no users?

Lots of things want /usr/share/dict/words; it doesn't seem unreasonable
for "standard", though it certainly shouldn't have a higher priority
than that.

> On the other hand, I'd nominate 'locales' for priority:important.  Needed
> for working UTF-8 support.

Not needed; just set LANG=C.UTF-8, provided by libc-bin (Essential:
yes).  We should do that by default.

Other packages which should not live in standard:

- at.  Trivially installed by anyone actually using it, but we don't
  need one more daemon running on everyone's system just to watch for
  jobs via a service that almost nobody uses.

- bc, along with dc, as mentioned above.

- host, a transitional package.
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645437

- bsd-mailx.  Any package that uses this will depend on it.  Very few
  people use this as a mail reader, and it's trivially installed for
  people who have scripts that invoke it (rather than the more common
  case of invoking sendmail).  And this doesn't work at all without an
  installed or configured MTA, another good reason to give it the boot.

- liblockfile-bin and liblockfile1.  Within standard, only bsd-mailx
  depends on these.

- procmail.  Anyone using this can trivially install it, but it's far
  from common, and it wouldn't be shocking for a system (particularly a
  system other than a mail server) to not have it preinstalled.

- exim4.  The vast majority of desktop users ignore this completely and
  read their mail using mail clients that speak IMAP and SMTP (or a web
  browser, sigh).  Anything using sendmail to attempt to reach the local
  admin (or to attempt to reach the outside world) can depend on this,
  and more to the point should be fixed to use logging or some other
  mechanism.  I've already created patches for cron and anacron (
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670118 and
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670137 ).  (Please
  don't bother responding that users "should" use an MTA; users don't,
  won't, and often can't.  If you want to fight that battle, take it
  elsewhere.  Standard should reflect the reality of what users use.)

- w3m.  Very few people use text-based web browsers, and we should not
  have one in standard.

- libgpm2.  From within standard, only w3m depends on this.

- gettext-base.  Supports internationalized shell scripts; anything
  using this depends on it, and nothing in standard or above does.

- libasprintf0c2.  From within standard, only gettext-base depends on
  this.

- locales.  Now that libc-bin contains C.UTF-8, which we should make the
  default locale, I wonder whether we could boot locales to priority
  optional, and only pull it in from the various language-specific
  tasks.

- krb5-locales.  Only a Recommends of libkrb5-3, not a Depends.

- make-guile.  More of a question than a recommendation for a change,
  but why is this standard and make optional, rather than the other way
  around?

- mlocate.  We don't need a "locate" in standard; anyone who actually
  uses locate (and wants the very significant overhead of running a
  locate daemon) can easily install this.

- nfs-common and rpc-bind.  Anyone using NFS can install these, but NFS
  is not anywhere close to common enough to appear in priority standard.


Comments welcome.

- Josh Triplett


Reply to: