Your message dated Fri, 16 Oct 2026 10:38:13 +0000
with message-id <[email protected]>
and subject line Bug#1150230: fixed in apt-listchanges 4.8.1
has caused the Debian Bug report #1150230,
regarding [omv-00.umashika.ne.jp] apt-listchanges: configuration fragments are 
loaded in nondeterministic order
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1150230: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1150230
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: apt-listchanges
Version: 4.8
Severity: normal
Tags: patch

Dear Maintainer,

I found that configuration fragments in /etc/apt/listchanges.conf.d/ are loaded 
in a nondeterministic order.

This caused different effective configurations on two Debian 13 systems even 
though they had the same apt-listchanges version and identical configuration 
files.

The relevant code in apt_listchanges/ALCConfig.py is:

    configs = [conf]
    configs += glob(os.path.join(conf_d, '*.conf'))
    self.read(configs)

Python's glob() does not guarantee any particular ordering. Therefore the order 
in which configuration fragments override each other depends on the directory 
enumeration order.

I reproduced this on two OpenMediaVault systems running Debian 13 and 
apt-listchanges 4.8.

Both systems contained these files:

    /etc/apt/listchanges.conf.d/95openmediavault.conf
    /etc/apt/listchanges.conf.d/98openmediavault-mail.conf

95openmediavault.conf contains:

    [apt]
    which=both
    email_address=none
    email_format=html
    headers=false
    reverse=false
    titled=true

98openmediavault-mail.conf contains:

    [apt]
    email_address=root

On the affected system, glob() returned:

    /etc/apt/listchanges.conf.d/98openmediavault-mail.conf
    /etc/apt/listchanges.conf.d/95openmediavault.conf

The resulting effective configuration was:

    frontend        = 'pager'
    which           = 'both'
    email_address   = None
    email_format    = 'html'

As a result, apt-listchanges did not send email because can_send_emails() 
returned False.

On another system with the same apt-listchanges version and the same 
configuration files, glob() returned:

    /etc/apt/listchanges.conf.d/95openmediavault.conf
    /etc/apt/listchanges.conf.d/98openmediavault-mail.conf

The resulting effective configuration was:

    email_address   = 'root'

and apt-listchanges email notifications worked correctly.

I tested the following one-line change on the affected system:

--- a/apt_listchanges/ALCConfig.py
+++ b/apt_listchanges/ALCConfig.py
@@
-        configs += glob(os.path.join(conf_d, '*.conf'))
+        configs += sorted(glob(os.path.join(conf_d, '*.conf')))

After applying this change, the effective configuration became:

    email_address = 'root'
    which         = 'both'
    email_format  = 'html'

I then performed a normal APT upgrade. The apt-listchanges hook ran normally 
and the expected apt-listchanges email was successfully sent.

Therefore, sorting the configuration fragment filenames before passing them to 
ConfigParser appears to fix the issue and makes the override order 
deterministic.

The problem was reproduced with apt-listchanges 4.8 from Debian trixie. I have 
not tested whether 4.8+nmu3 in testing/unstable is affected.

Regards,
Kenichiro Kakizaki

-- Package-specific info:
==> /etc/apt/listchanges.conf <==
[apt]
frontend=pager
which=news
email_address=root
email_format=text
confirm=false
headers=false
reverse=false
save_seen=/var/lib/apt/listchanges


==> /etc/apt/listchanges.conf.d/98openmediavault-mail.conf <==
[apt]
email_address=root

==> /etc/apt/listchanges.conf.d/95openmediavault.conf <==
# https://manpages.debian.org/trixie/apt-listchanges/apt-listchanges.1.en.html
[apt]
which=both
email_address=none
email_format=html
headers=false
reverse=false
titled=true

-- System Information:
Debian Release: 13.7
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 7.1.13+deb13-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages apt-listchanges depends on:
ii  apt                    3.0.3
ii  debconf [debconf-2.0]  1.5.91
ii  python3                3.13.5-1
ii  python3-apt            3.0.0
ii  python3-debconf        1.5.91
ii  sensible-utils         0.0.25
ii  ucf                    3.0052

apt-listchanges recommends no packages.

Versions of packages apt-listchanges suggests:
ii  postfix [mail-transport-agent]  3.10.13-0+deb13u1
pn  python3-gi                      <none>
pn  www-browser                     <none>
pn  x-terminal-emulator             <none>

-- debconf information:
* apt-listchanges/reverse: false
* apt-listchanges/email-format: text
* apt-listchanges/save-seen: true
* apt-listchanges/email-address: root
* apt-listchanges/frontend: pager
  apt-listchanges/no-network: false
* apt-listchanges/confirm: false
* apt-listchanges/headers: false
* apt-listchanges/which: news

--- End Message ---
--- Begin Message ---
Source: apt-listchanges
Source-Version: 4.8.1
Done: Jonathan Kamens <[email protected]>

We believe that the bug you reported is fixed in the latest version of
apt-listchanges, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jonathan Kamens <[email protected]> (supplier of updated apt-listchanges package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 08 Oct 2026 09:58:58 -0400
Source: apt-listchanges
Built-For-Profiles: noudeb
Architecture: source
Version: 4.8.1
Distribution: unstable
Urgency: medium
Maintainer: Jonathan Kamens <[email protected]>
Changed-By: Jonathan Kamens <[email protected]>
Closes: 1145641 1150230
Changes:
 apt-listchanges (4.8.1) unstable; urgency=medium
 .
   * Remove debconf from pip dependencies in setup.py, since it's not
     actually a pip module. This fixes spurious warnings about
     apt-listchanges and debconf from `python3 -m pip check`.
     (Closes: #1145641)
 .
   * Load config file fragments in /etc/apt/listchanges.conf.d in file name
     order so they are loaded deterministically. Fix courtesy of Kenichiro
     Kakizaki. (Closes: #1150230)
Checksums-Sha1:
 b9fbb96a87f91a522fa58bc62837148351b61294 2049 apt-listchanges_4.8.1.dsc
 7993517eaf64c84b449f3407bcbe17e882d96e71 488164 apt-listchanges_4.8.1.tar.xz
 ce33756886b77a2c45ba2ebd91e621d4eed243dc 8093 
apt-listchanges_4.8.1_source.buildinfo
Checksums-Sha256:
 49678d63f39939933f6de49bbc145aae3640f958128de47f4af03ae9a07568eb 2049 
apt-listchanges_4.8.1.dsc
 e7f18b595e3b13c407771e90f42c4755b3644309ff601780707423f4229c0022 488164 
apt-listchanges_4.8.1.tar.xz
 5a9558b712eefd2ae67d58bb7d5397ffdf1cc105d879d4f8c5aa898953166ff0 8093 
apt-listchanges_4.8.1_source.buildinfo
Files:
 e4e40823edd1ff417c7c72848cc80b08 2049 utils - apt-listchanges_4.8.1.dsc
 bb45c01b378a261afc9a2e43b9c80719 488164 utils - apt-listchanges_4.8.1.tar.xz
 210ed31681602ecc5a5711f9ee2fe452 8093 utils - 
apt-listchanges_4.8.1_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEd8lhnEnWos3N8v+qQoMEoXSNzHoFAmrR+ccACgkQQoMEoXSN
zHqGFxAAqKEqmvOowECaaPmxluiW3+wz5v0GDmvoOM+zsLrbjHHJIc8An8Itlg0M
XkYZrd8i9eL1RqgHWeas7zLv6SOuNIZx9Uhul354p2Y2mkVM9bJr+mZr7EE/cTjX
W9ZelKlmf6OhSFC1fOvZF5z4RB9LxrTNUskNQ5NUccF1OxtkvOkuSVZtr/AykjhN
+ZzNdKlFJKLXk3/uR80pum3qcrrq3tFw/4hrdY/CB53vzI+r1EW9NbVtuDUMp69O
Mw7/kXbMUcF6JeLNudmwRG0Xa1nZxgPSiNXS6D6oOtGOmF2vGocQjGQ6SlL/gHi6
qr20T97cTBPGfII5VTk44UGX133eH0aT5Lb9YViQ+YTpT4QfN+A/HoNqh81rRTUH
ZzItzerfcPULRapZXdFGylf+O2ylFZSxWoa8s0ARUh/MsZqBufpvZvnX/NSJ0w2P
G5O1jdlApUpgay5sXXHMq6Izp3OrHvHYuXUHe0K8JODDVZG26N8LgOFgAlgjKRYi
UB8L/1NGOeEcuTv0e2OmPHitkZIuo/B2qlA/4h3AHCX0zyM7fRn4yr4zSQWGPptc
sR+N97dBaEU+4fe/YS9R1e0hQvuAchQAfsBDpg2NZMR8Cb2HHAN27DXyBq6vQyiu
JnYEGf0qupPwmdkYFSDHDkUKJMkSob6F971/dbeuEOwIQEEJkzU=
=RtQ8
-----END PGP SIGNATURE-----

Attachment: pgpFN1uLAZPPd.pgp
Description: PGP signature


--- End Message ---

Reply via email to