Friday, April 10, 2026¶
Today I upgraded laudate from Debian 12 to 13
I made a snapshot of ets, the only production Lino site on laudate.
Here is a list of the websites on laudate:
$ ll /etc/nginx/sites-enabled/
total 16
drwxr-xr-x 2 root root 4096 4. dets 07:15 .
drwxr-xr-x 8 root root 4096 10. apr 20:37 ..
-rw-rw-r-- 1 root root 275 3. dets 2024 default.conf
-rw-rw-r-- 2 root root 2107 7. dets 2023 ets.conf
lrwxrwxrwx 1 root root 36 31. dets 2022 jane.conf -> /etc/nginx/sites-available/jane.conf
lrwxrwxrwx 1 root root 42 18. märts 2021 laudate.ee.conf -> /etc/nginx/sites-available/laudate.ee.conf
lrwxrwxrwx 1 root root 48 21. sept 2021 lists.laudate.ee.conf -> /etc/nginx/sites-available/lists.laudate.ee.conf
lrwxrwxrwx 1 root root 49 2. okt 2021 sinod.katoliku.ee.conf -> /etc/nginx/sites-available/sinod.katoliku.ee.conf
lrwxrwxrwx 1 root root 39 1. jaan 2023 welcht1.conf -> /etc/nginx/sites-available/welcht1.conf
lrwxrwxrwx 1 root root 39 1. jaan 2023 weleup1.conf -> /etc/nginx/sites-available/weleup1.conf
I removed the obsolete sites jane, lists and weleup1.
I then followed the instructions at https://linuxconfig.org/how-to-upgrade-debian-to-latest-version
The apt update gives some warnings:
$ sudo apt update
Hit:1 http://deb.debian.org/debian bookworm InRelease
Hit:2 http://security.debian.org bookworm-security InRelease
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
Hit:4 http://mirror.hetzner.de/debian/packages buster InRelease
Hit:5 http://mirror.hetzner.de/debian/packages buster-updates InRelease
Hit:6 http://mirror.hetzner.de/debian/packages buster-backports InRelease
Ign:7 http://mirror.hetzner.de/debian/security buster/updates InRelease
Hit:8 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease
Err:9 http://mirror.hetzner.de/debian/security buster/updates Release
404 Not Found [IP: 2a01:4f8:0:1::1:97 80]
Hit:10 https://packages.groonga.org/debian bullseye InRelease
Reading package lists... Done
E: The repository 'http://mirror.hetzner.de/debian/security buster/updates Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: http://apt.postgresql.org/pub/repos/apt/dists/bullseye-pgdg/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
N: Repository 'Debian bookworm' changed its 'non-free component' value from 'non-free' to 'non-free non-free-firmware'
N: More information about this can be found online in the Release notes at: https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.html#non-free-split
I removed the obsolete files for groonga and hetzner from the /etc/apt/sources.d.
I answered to keep current version for the following config files:
For /etc/ssh/sshd_config and, of course, for
/etc/dovecot/dovecot.conf, I decided to install the package maintainer’s
version.
Also for /etc/default/grub I took the new version because AFAIK we never
did any important modification to this. Here is the diff before upgrading:
│ GRUB_DEFAULT=0
│ GRUB_TIMEOUT=5
│ -GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
│ +GRUB_DISTRIBUTOR=`( . /etc/os-release && echo ${NAME} )`
│ GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0 systemd.show_status=true elevator=noop console=tty1 console=ttyS0"
│ GRUB_CMDLINE_LINUX=""
│
│ +# If your computer has multiple operating systems installed, then you
│ +# probably want to run os-prober. However, if your computer is a host
│ +# for guest OSes installed via LVM or raw disk devices, running
│ +# os-prober can cause damage to those guest OSes as it mounts
│ +# filesystems to look for things.
│ +#GRUB_DISABLE_OS_PROBER=false
│ +
│ # Uncomment to enable BadRAM filtering, modify to suit your needs
│ # This works with Linux (no patch required) and with any kernel that obtains
│ # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
│ #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
│
│ -# Uncomment to disable graphical terminal (grub-pc only)
│ -GRUB_TERMINAL=console
│ +# Uncomment to disable graphical terminal
│ +#GRUB_TERMINAL=console
│
│ # The resolution used on graphical terminal
│ -# note that you can use only modes which your graphic card supports via VBE
│ -# you can see them in real GRUB with the command `vbeinfo'
│ +# note that you can use only modes which your graphic card supports via VBE/GOP/UGA
│ +# you can see them in real GRUB with the command `videoinfo'
│ #GRUB_GFXMODE=640x480
Some issues afterwards:
postfix[18307]: postfix/postlog: warning: /var/spool/postfix/etc/ssl/certs/GlobalSign_ECC_Root_CA_-_R4.pem and /etc/ssl/certs/GlobalSign_ECC_Root_CA_-_R4.pem differ
I said “postconf compatibility_level=3.6”:
# postconf compatibility_level=3.6
# postfix reload
/usr/sbin/postconf: warning: /etc/postfix/main.cf: support for parameter "smtp_use_tls" will be removed; instead, specify "smtp_tls_security_level"
/usr/sbin/postconf: warning: /etc/postfix/main.cf: support for parameter "smtpd_use_tls" will be removed; instead, specify "smtpd_tls_security_level"
postfix/postfix-script: refreshing the Postfix mail system
And I then did as the warnings told me:
# smtp_use_tls=yes
# smtpd_use_tls=yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
Thunderbird said “An error occurred while sending mail: Outgoing server (SMTP) error. The server responded: TLS not available due to local problem.” – this was because i had a typo in the smtpd_tls_cert_file filename. A “systemctl status postfix” told me this in a funny way:
apr 11 10:21:20 laudate postfix/submission/smtpd[19025]: warning: cannot get RSA certificate from file "/etc/letsencrypt/live/laudate.ee/fulchain.pem": disabling TLS support apr 11 10:21:20 laudate postfix/submission/smtpd[19025]: warning: TLS library problem: error:80000002:system library::No such file or directory:../crypto/bio/bss_file.c:288:calling fopen(/etc/letsencrypt/live/laudate.ee/fulchai> apr 11 10:21:20 laudate postfix/submission/smtpd[19025]: warning: TLS library problem: error:10080002:BIO routines::system lib:../crypto/bio/bss_file.c:291: apr 11 10:21:20 laudate postfix/submission/smtpd[19025]: warning: TLS library problem: error:0A080002:SSL routines::system lib:../ssl/ssl_rsa.c:503:
Thunderbird said “Unable to communicate securely with peer: requested domain name does not match the server’s certificate. The configuration related to mail.laudate.ee must be corrected.”