Hi Christoph,

when closing this, I suggest to open a new bug report, since this is indeed an issue related to Debian PostgreSQL packaging, which prevents the intended PostgreSQL upgrade possibility that is actively implemented with /etc/apt/apt.conf.d/02autoremove-postgresql. There is currently no way to not break PostgreSQL on distro upgrade, since PostgreSQL 17 cannot be installed without PostgreSQL 15 being removed.

Am 25.09.2025 um 15:56 schrieb Christoph Berg:
Re: MichaIng
due to 64-bit time_t transition, on 32-bit architecture, PostgreSQL 15
packages are forcefully removed on dist-upgrade from Bookworm to Trixie,
since they depend on non-t64 packages (which are only "provided" but the
*t64 ones on 64-bit arch).

The weird thing about the t64 transition is that is excludes i386,
which stays on 32-bit time.

You are right, the i386 *t64 packages contain "Provides:" for the non-t64 package as well, like 64-bit arch packages. We do not deal with i386 at all, so I only know this affecting armhf, and from the logic of Year 2038 solution via time64 syscalls, I assumed it would be the case for all 32-bit architecture.

It would be useful to know which libraries exactly caused the removal
for you.

Most importantly libssl3: libssl3t64 is dependency for PostgreSQL 17 packages, and a large number of base OS packages anyway, breaks and does not provide libssl3.

And there is a number of other dependencies not available on Trixie, some of which are affected by the same t64 vs non-t64 replacement:

- For `postgresql-client-15`: `libreadline8`
- For `postgresql-15`: `libldap-2.5-0` < `libgnutls30` < `libhogweed6` < `libnettle8`

So despite /etc/apt/apt.conf.d/02autoremove-postgresql intending to keep
PostgreSQL 15 installed, they are removed, and the cluster migration hence

02autoremove-postgresql is only about "apt autoremove". If packages
get removed for other reasons, this protection does nothing.

Right, just saying that this exist to allow v15 => v17 cluster upgrades, which is however broken due to the conflicts.

cannot work. We are currently testing whether it is possible when installing
Bookworm packages via `dpkg -i --force-depends`, but I guess the rats tail
of non-t64 shared lib dependencies, file conflicts of those with the ones
from Trixie, and maybe actual runtime errors due to unexpected 64-bit length
time_t values in Bookworm libs, will make this impossible.

If the postgresql-15 and postgresql-17 packages from bookworm and
trixie are not co-installable, do a pg_dumpall before the upgrade and
manually restore the data after the upgrade.

Thanks, that sounds like a solution I was looking for. Might be an idea to implement this into the maintainer scripts as well for armhf, to prevent users from being stuck with PostgreSQL 17 but v15 clusters? I mean sure, one should have a backup etc. We will implement and test pg_dumpall + restore for our users. If this works, I could open a PR to patch v15 and v17 maintainer scripts accordingly.

Let me know if I should open a new issue, since this is a serious breakage
for 32-bit systems. But this is high likely the explanation why OP ran into
this issue in the first place.

I don't think the two problems are connected. I doubt that many people
are running databases on 32-bit systems these days. Trixie doesn't
even have a kernel for 32-bit installs anymore.

Of course it does: https://packages.debian.org/trixie/linux-image-armmp
Though for SBCs, the Debian kernel is used rarely, but often vendor kernel builds or Armbian or our's instead, which distribute this with bootloader builds, and boot scripts/configs which work together.

Among our ~140.000 users, mostly but not only SBCs, even that we do all we can to have users on 64-bit userland where possible, we still have ~15% 32-bit systems, mostly older Raspberry Pi models, and some Odroids. They are perfectly capable to run PostgreSQL as database for some server applications. Of course not for huge public websites/APIs, but for home or smaller offices no problem.

Please do consider moving to a 64-bit platform. 32-bit support has
already been terminated for all PostgreSQL extensions in trixie; we
might remove the server packages as well.

As said, there is ARMv6 and ARMv7 hardware which cannot.

Best regards,

Micha (aka MichaIng)
DietPi project lead

Attachment: OpenPGP_0x0442B9ADE65643FE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to