Things new in Etch

Emacs

The GFDL is a new non-free license a problem for the documentation. Because it is non-free it has been removed from Debian. That leaves Debian with the emacs program using the GPL but without the emacs documentation using the GFDL.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=357260

The maintainer decided to support Ubuntu (which allows non-free components) and withdraws emacs support from Debian.
http://lists.debian.org/debian-emacsen/2007/03/msg00012.html

However the maintainer keeps a Debian track alive.
http://lists.debian.org/debian-emacsen/2007/04/msg00002.html

See this page for the latest version of emacs available for Debian.
http://emacs.orebokech.com/

Summary:

deb http://emacs.orebokech.com sid main
deb-src http://emacs.orebokech.com sid main

deb http://emacs.orebokech.com sarge main
deb-src http://emacs.orebokech.com sarge main

Firefox and GTK Editing

Sometimes setting $HOME/.gtkrc-2.0 works and sometimes not. Sometimes setting this through gconftool works and sometimes not. I don't know what triggers which behavior.

gconftool-2 --set /desktop/gnome/interface/gtk_key_theme Emacs --type string
# /etc/gtk-2.0/gtkrc
# Restore the previous GTK behavior and allow emacs keys to be active.
# To use the GTK 2.0 default MS-like behavior set "Default" either
# here
# or in your $HOME/.gtkrc-2.0 file.
#
# gtk-key-theme-name = "Default"
gtk-key-theme-name = "Emacs"

/etc/rc.local now supported

Etch now provides support for /etc/rc.local. The /etc/init.d/rc.local boot script will run it if it exists. This is not typical Debian but is nice that it provides compatibility with BSD and Sun. A lot of BSD and Sun folks would try using that file by default and now it will do something on Debian.

/etc/network/options

In Etch the /etc/network/options is deprecated. See the /usr/share/doc/netbase/README.Debian file for details. I think that for our purposes when upgrading from Sarge to Etch that generally the file can simply be deleted.

rm -f /etc/network/options

I noticed this because after upgrading one of my machines I see this at boot time now. Or when '/etc/init.d/networking restart'.

* /etc/network/options is deprecated (see README.Debian of netbase).

New Directories Are B-trees

dumpe2fs /dev/hda5 | grep features

If you see dir_index in the feature list then you have the newer and faster and virtually limitless B-tree based directory index. If not then you don't. But you can turn it on.

tune2fs -O dir_index /dev/hda5

That enables it for the filesystem. But it will only take affect for new directories. The directory format is created for each new directory either in the old linear format or in the new B-tree format when the directory is created. But if that is important you can always recreate the existing directories so that they now have B-trees.

/etc/network/interfaces

The debian-installer now sets up interfaces as "allow-hotplug" by default. This means that interfaces are bought up when the interface becomes available instead of at boot time. This triggers interfaces through udev scripts. This is a technically superior design but is different from previous releases. This means that the boot script /etc/init.d/network no longer controls the network and restarting it will not restart the networks. Using "auto" still works fine and returns to the previous behavior.

FIXME: There are several bugs in the BTS talking about this. I need to update this section with the bug numbers. AFAICT setting both allow-hotplug and auto both is okay. UPDATE: Yes. Setting both is okay. Setting "auto" allows "/etc/init.d/networking restart" to restart the networking. If it is only "allow-hotplug" then restarting the network won't do anything and you will need to run ifupdown individually on each interface. Meaning "allow" is the old boot time start and stop while "allow-hotplug" is the new event driven trigger.

/etc/default/locale

Locale related environment variables were moved to /etc/default/locale. This will typically be something like the following. The file is read by libpam for system processes now and that configures /etc/init.d/* boottime rc start scripts.

LANG="en_US.UTF-8"

Aptitude

Aptitude is now the Debian recommended installer. It is however not my recommended installer. I still find apt-get to be much superior.

One important aptitude configuration parameter is to ensure that it does not treat Recommends: as hard dependencies. Otherwise almost anything that you install will pull in packages that are not desired.

Put this in /etc/apt/apt.conf or /etc/apt/apt.conf.d/something.

Aptitude::Recommends-Important "false";

Aptitude tries to guess at what you want by keeping track of your actions and then doing additional things based upon subsequent actions. For example if a package was installed as a dependency of another and that other package is removed then the dependency is removed. But this is wrong in the case of transition or meta packages. After the transition the dependencies are still desired. See the newbie doc wiki for good use information on aptitude in Etch.

Tell aptitude to keep all of the packages.

aptitude keep-all

checkrestart

The checkrestart program manual says:

The checkrestart program tries to determine if there are
processes in the system that need to be restarted after a
system upgrade. This is necessary since an upgrade will usually
bring new system libraries and running processes will be still
using the old versions of the libraries. In stable Debian
GNU/Linux systems this is typically needed to eliminate a
system exposure to a vulnerability which might have been fixed
by upgrading a library which that process makes use of.

Sun Java

The old sun java package was named sun-j2re1.5 but the new prebuilt one in Etch's non-free is named sun-java5-jre.

sudo apt-get remove --purge sun-j2re1.5
sudo apt-get install sun-java5-jre sun-java5-plugin

LCD and sub-pixel hinting

When upgrading from a CRT to an LCD make sure that sub-pixel optimization is enabled.

sudo dpkg-reconfigure fontconfig-config

UMASK

Much chaos exists surrounding how to set umask. New in Etch is libpam-umask designed to slip into the PAM system.

See /etc/login.defs for the old Debian way.

See http://lists.debian.org/debian-devel/2005/06/msg01598.html

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=314539

Apache

Apache SSL

Apache2 is the same to configure in Etch as in Sarge but Apache with SSL for use with HTTPS has gotten much harder to set up in Etch than it was in Sarge. See Bug#267077 for a quite long discussion of the problem.

Problem number one. The apache2-ssl-certificate helper script which created self-signed certificates was removed. If you were used to using it on Sarge and now can't find it on Etch that is why.

In the meantime here are the steps that are needed to get SSL up and running on Etch. Hopefully this will get fixed for Lenny. This file is needed. /usr/bin/apache2-ssl-certificate

mkdir /etc/apache2/ssl

Apache Default Charset

A fresh pristine installation of apache2.2-common will install /etc/apache2/conf.d/charset but an upgrade will not.

AddDefaultCharset UTF-8

This has the effect that all Apache headers say:

Content-Type: text/html; charset=UTF-8

The default is iso-8859-1 otherwise. This affects web page validation.

Automatic fsck at boot

I have a machine without console access. If for any reason the system decides to interactively fsck at boot time then the machine is stuck waiting or console access. If none is available then the machine cannot boot. To enable a non-interactive boot in this case set FSCKFIX=yes in the /etc/default/rcS file.

sed --in-place "s/^FSCKFIX=no$/FSCKFIX=yes/" /etc/default/rcS

Valid XHTML 1.0 Strict