Things new in Stretch

systemd

Preventing systemd

To return to sysvinit and remove systemd perform the following. This is simlar to Jessie but in Stretch the sysvinit package was removed.

# cat > /etc/apt/preferences.d/no-systemd <<EOF
Package: systemd-sysv
Pin: release o=Debian
Pin-Priority: -1
EOF
apt-get install sysvinit-core sysvinit-utils
...reboot...
apt-get purge --auto-remove systemd
...reboot...

Starting X

In Jessie 8 to avoid problems with gdm, gdm, lightdm all going systemd crazy I stopped using them and start X the old way using xinit. In Sid starting around early November 2015 an upgrade to libpam-systemd breaks this. A hint about trying to start on the same vt works.

Fails with permission problems:

xinit

Works okay:

xinit -- vt2

Of course libvirt pulled in libpam-systemd on my system where I had removed it previously. However libpam-systemd is installed by default on a "normal" Jessie system without systemd. On a normal system without systemd it doesn't cause problems. Around the November updates somewhere it started to cause problems. I assume at that time is when it increased restrictions on starting X.

I see no downside to leaving libpam-systemd installed and satisfying dependencies of other packages but removing the pam.d config.

line='session[[:space:]]*optional[[:space:]]*pam_systemd.so'
sed --in-place "/^$line/d" /etc/pam.d/common-session

(I am using [[:space:]] because the line includes TAB characters and wanted to have a visible cut and paste-able pattern.)

Disabling that allows X to start normally. I am sure some systemd fanboys would be spinning that I would be so brazen as to disable their code. Expecially when I could start on the same vt I am logged into but I figure this is just the start of problems so want to get ahead of other problems.

Additionally removing pam_systemd.so has other advantages. Having it enabled moves Xauth to a /run/user/$(id -u) directory. That breaks my ability to use ssh to run X applications such as x2x from my coffee table laptop to my media machine. Removing pam_systemd.so restores that capability.

As per the Debian Stretch release notes https://www.debian.org/releases/stretch/amd64/release-notes/ch-whats-new.en.html#x-no-longer-requires-root the X server now can be started up without root permissions but requiring systemd-logind and libpam-systemd. The wording there is incomplete and misleading. It should say that the default has changed to require systemd-logind and libpam-systemd.so but may be configured to run without them. They never mention in the release notes what is needed to make that work. Since I am avoiding those it means I still need the previous suid root functionality. There is a package to support this xserver-xorg-legacy which appears to support doing this automatically. However it doesn't quite work. It has an automatic mode which guesses wrong and must be forced. I haven't determined why it fails to automatically determine the right answer but it can be forced with a config setting.

apt-get install xserver-xorg-legacy
echo needs_root_rights=yes >> /etc/X11/Xwrapper.config

Laptop sleep and hibernate

In Stretch my laptop Fn+sleep button did not work. Strangely Fn+hibernate did work. I haven't figure out why hibernate works but sleep needs a config setting.

sed --in-place '/^#ACPI_SLEEP=true/s/^#//' /etc/default/acpi-support

NTP ntp.conf

The default package config file has changed, in a good way, between 1:4.2.8p3+dfsg-1 and 1:4.2.8p4+dfsg-3.

-server 0.debian.pool.ntp.org iburst
-server 1.debian.pool.ntp.org iburst
-server 2.debian.pool.ntp.org iburst
-server 3.debian.pool.ntp.org iburst
+pool 0.debian.pool.ntp.org iburst
+pool 1.debian.pool.ntp.org iburst
+pool 2.debian.pool.ntp.org iburst
+pool 3.debian.pool.ntp.org iburst

The "pool" keyword hasn't made it into the man page, I couldn't find it there, but it is documented in the upstream web pages. Basically it does exactly what you think it should do when dealing with a pool resource that is a collection of upstream servers. A good change. It just isn't documented. I filed Bug#803709 but it wasn't fixed untli after Stretch. It will be fixed in Buster 10.

Emacs

The 'string-rectangle' feature, that I use a lot, has changed to acquire a dynamic "on-the-fly preview" feature. I really hate this feature. Especially with a lot of text on the screen it causes a lot of screen "flicker" as every character moves. This is controlled by the new variable string-rectangle. Defaults to t. Set to nil to disable this awful feature.

M-x shell now opens a new secondary split window instead of using the current window. Why? Because it is more annoying that way. This can be disabled by putting it in the list that should not do this. This really feels like a hack but so it is.

(if (>= emacs-major-version 25)
    (progn
      ;; Disable nasty on-the-fly preview from string-rectangle.
      (setq rectangle-preview nil)
      ;; Make M-x shell use the current window again instead
      (add-to-list 'display-buffer-alist
                   '("^\\*shell\\*$" . (display-buffer-same-window)))))

GnuPG GPG migrated from v1 to v2

Debian has migrated from v1 to v2. Here is the announcement.

Be sure to read the /usr/share/doc/README.Debian.gz file. It says that the use of v2 should be completely automatic and without notice. But not for me. For me I didn't have any keys in the v2 environment. I installed the v1 programs and they still worked fine. Reading more they say you need to run migrate-pubring-from-classic-gpg or your new v2 environment will not have any keys.

migrate-pubring-from-classic-gpg --default

I ran that and after processing 3000 keys which took quite a while that still did not provide me with a working environment. Non-working for me means that it failed to decrypt anything due to missing secret keys. As I write this I am still trying to make v2 decrypt an email that decrypts fine with v1. Here is the output from the not working case.

bob@hysteria:/tmp$ gpg lorem-ipsum.txt.asc
gpg: encrypted with 4096-bit RSA key, ID 0x1AC7E6AA9F635790, created 2016-06-14
      "Bob Proulx <bob@proulx.com%gt;"
gpg: public key decryption failed: Operation cancelled
gpg: decryption failed: No secret key

Here is a working run using v1.

rwp@dismay:/var/tmp$ gpg lorem-ipsum.txt.asc

You need a passphrase to unlock the secret key for
user: "Bob Proulx <bob@proulx.com>"
4096-bit RSA key, ID 0x1AC7E6AA9F635790, created 2016-06-14
         (subkey on main key ID 0x421AFA26387F9A8E)

gpg: encrypted with 4096-bit RSA key, ID 0x1AC7E6AA9F635790, created 2016-06-14
      "Bob Proulx <bob@proulx.com>"
apt-get install gnupg1

The notes above are all from Sid pre-stretch and so I need to update as to the status in the final release. It might be fixed now.

Chromium 52 does not honor Emacs keybindings

Chromium 52 appears to have switched from GTK 2 to GTK 3. That caused the personality configuration to move. The old location was ~/.gtkrc-2.0 but the new location is ~/.config/gtk-3.0/settings.ini file.

$ cat ~/.config/gtk-3.0/settings.ini
[Settings]
gtk-key-theme-name = Emacs

ISC DHCP daemon IPv6 Stuff

I am finding IPv6 noise from the isc-dhcpd-server now. I think this is a good thing because it is showing that it now supports IPv6. But it is noise because IPv6 generally doesn't use DHCP. Therefore I will need to learn how to silence this noise eventually.

Jun 21 20:08:24 gloom dhcpd[2292]: No subnet6 declaration for eth0 (fe80::5054:ff:fe18:6de).
Jun 21 20:08:24 gloom dhcpd[2292]: ** Ignoring requests on eth0.  If this is not what
Jun 21 20:08:24 gloom dhcpd[2292]:    you want, please write a subnet6 declaration
Jun 21 20:08:24 gloom dhcpd[2292]:    in your dhcpd.conf file for the network segment
Jun 21 20:08:24 gloom dhcpd[2292]:    to which interface eth0 is attached. **
Jun 21 20:08:24 gloom dhcpd[2292]:
Jun 21 20:08:24 gloom dhcpd[2292]:
Jun 21 20:08:24 gloom dhcpd[2292]: Not configured to listen on any interfaces!
Jun 21 20:08:24 gloom dhcpd[2292]:
Jun 21 20:08:24 gloom dhcpd[2292]: If you think you have received this message due to a bug rather
Jun 21 20:08:24 gloom dhcpd[2292]: than a configuration issue please read the section on submitting
Jun 21 20:08:24 gloom dhcpd[2292]: bugs on either our web page at www.isc.org or in the README file
Jun 21 20:08:24 gloom dhcpd[2292]: before submitting a bug.  These pages explain the proper
Jun 21 20:08:24 gloom dhcpd[2292]: process and the information we find helpful for debugging..
Jun 21 20:08:24 gloom dhcpd[2292]:
Jun 21 20:08:24 gloom dhcpd[2292]: exiting.

Regardless of the above message things still seem to be working okay. Needs more investigation. After the upgrade both redundant dhcp servers in the pair returned to a reported normal communications state. Seemingly good. There is a dhcpd running. Among other things I need to verify that the upgraded dhcpd server is still handing out IPs okay and not just idling as the above message would indicate. I am thinking the above is only for IPv6 so far. Needs investigation.

insserv leaves an obsolete file behind

The insserv package upgrades okay but leaves an obsolete file behind. The bash completion file is removed. However I still have good completion so I am not sure what is the actual effect. Seems like nothing important. Fixing the obsolete conffile requires the typical removal of the file and reinstalling the package without it in order to clear this up.

rm /etc/bash_completion.d/insserv
apt-get install --reinstall insserv

Other Things

There are other things that need to be done to clean the system. Right now I am running my check script again and letting it notify me of what needs to be cleaned. Standard stuff. Purging removed packages. Removing obsolete packages. Just not as clean as it should be. I will update these docs and I run into them after doing more upgrades. Otherwise the upgrade has gone well.

/var/lib/medley/sys/bin/jessie2stretch-check

Valid XHTML 1.0 Strict