Bug#1067427: dpkg-dev: Fail to generate a substitution variable ${t64:Provides} (time_t transition)

2024-03-21 Thread Christian Marillat
Package: dpkg-dev
Version: 1.22.6
Severity: serious

Dear Maintainer,

Feel free to reassign.

I noticed this bug with the libopenshot-audio source and with
armel, armh and powerpc architectures from buildd logs and my rebuild.

I didn't pay attention for others sources, but I noticed that only
after a second rebuild...

,
| pkg-gencontrol: warning: Provides field of package libopenshot-audio9t64: 
substitution variable ${t64:Provides} used, but is not defined
| dpkg-gencontrol: warning: Provides field of package libopenshot-audio9t64: 
substitution variable ${t64:Provides} used, but is not defined
`

https://buildd.debian.org/status/fetch.php?pkg=libopenshot-audio&arch=powerpc&ver=0.3.2%2Bdfsg1-2.1&stamp=1709343482&raw=0

https://buildd.debian.org/status/fetch.php?pkg=libopenshot-audio&arch=armhf&ver=0.3.2%2Bdfsg1-2.1&stamp=1709142395&raw=0

Chirstian


-- Package-specific info:

-- System Information:
Debian Release: trixie/sid
  APT prefers buildd-unstable
  APT policy: (500, 'buildd-unstable'), (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.8.1-1-custom (SMP w/24 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.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 dpkg-dev depends on:
ii  binutils  2.42-4
ii  bzip2 1.0.8-5.1
ii  libdpkg-perl  1.22.6
ii  make  4.3-4.1
ii  patch 2.7.6-7
ii  perl  5.38.2-3.2
ii  tar   1.35+dfsg-3
ii  xz-utils  5.6.0-0.2

Versions of packages dpkg-dev recommends:
ii  build-essential  12.10
ii  clang-16 [c-compiler]1:16.0.6-23
ii  fakeroot 1.34-1
ii  gcc [c-compiler] 4:13.2.0-7
ii  gcc-13 [c-compiler]  13.2.0-19
ii  gnupg2.2.40-3
ii  gpgv 2.2.40-3
pn  libalgorithm-merge-perl  

Versions of packages dpkg-dev suggests:
pn  debian-keyring  

-- no debconf information



Bug#1067427: dpkg-dev: Fail to generate a substitution variable ${t64:Provides} (time_t transition)

2024-03-21 Thread Simon McVittie
Control: tags -1 + moreinfo

On Thu, 21 Mar 2024 at 15:00:52 +0100, Christian Marillat wrote:
> I noticed this bug with the libopenshot-audio source and with
> armel, armh and powerpc architectures from buildd logs and my rebuild.
> 
> I didn't pay attention for others sources, but I noticed that only
> after a second rebuild...
> 
> ,
> | pkg-gencontrol: warning: Provides field of package libopenshot-audio9t64: 
> substitution variable ${t64:Provides} used, but is not defined
> | dpkg-gencontrol: warning: Provides field of package libopenshot-audio9t64: 
> substitution variable ${t64:Provides} used, but is not defined
> `

This appears to be working as designed (cc'ing the instigator of this
transition for confirmation). It is correct that no ${t64:Provides}
is generated on armel, armhf and powerpc (and other 32-bit non-i386
architectures, like hppa).

There are four categories of architectures for this transition (text
adapted from https://wiki.debian.org/ReleaseGoals/64bit-time, which was
itself adapted from a recent message from me to -devel):

 1. amd64, arm64, mips64el, ppc64el, riscv64, s390x are all 64-bit, so they
already had 64-bit time_t.
Non-release architectures in the same category: alpha hurd-amd64 ia64
loong64 ppc64 sparc64.

On these architectures, libopenshot-audio9t64 can safely have
Provides: libopenshot-audio9, because the ABI has not actually changed.

 2. i386 is 32-bit but has been excluded from the 64-bit time_t transition
because its major purpose this decade is running legacy 32-bit
binaries, a purpose that would no longer be possible if it broke ABI.
Non-release architectures in the same category: hurd-i386.

On i386, libopenshot-audio9t64 can have the Provides, as above.

 3. There is currently no release architecture that is 32-bit but already
had a 64-bit time_t prior to 2024.
Non-release architectures in this category: x32.

On x32, libopenshot-audio9t64 should ideally have the Provides, as above
(I'm not sure whether it actually does, but given the status of x32,
I don't think this is actually harming anyone.)

 4. armel, armhf are the two 32-bit release architectures which are
not in any of the previous categories, so they are genuinely changing
their ABIs.
Non-release architectures in the same category: hppa m68k powerpc sh4.

On these architectures, libopenshot-audio9t64 must not have a Provides
on libopenshot-audio9, because its ABI has changed, so the new library
does not provide an interface that is compatible with the old library.
(This is the reason why we're doing all this renaming!)

So I think this is not a bug, and certainly not a RC bug. The warnings are
a bit annoying, but do not indicate a genuine problem.

smcv



Bug#1067427: dpkg-dev: Fail to generate a substitution variable ${t64:Provides} (time_t transition)

2024-03-21 Thread Christian Marillat
On 21 mars 2024 15:41, Simon McVittie  wrote:


[...]

>  4. armel, armhf are the two 32-bit release architectures which are
> not in any of the previous categories, so they are genuinely changing
> their ABIs.
> Non-release architectures in the same category: hppa m68k powerpc sh4.
>
> On these architectures, libopenshot-audio9t64 must not have a Provides
> on libopenshot-audio9, because its ABI has changed, so the new library
> does not provide an interface that is compatible with the old library.
> (This is the reason why we're doing all this renaming!)

I did not know.

> So I think this is not a bug, and certainly not a RC bug. The warnings are
> a bit annoying, but do not indicate a genuine problem.

Yes of course, you can close this bug.

Christian