Bug#1066632: djbdns: FTBFS: hier.c:10:3: error: implicit declaration of function ‘h’ [-Werror=implicit-function-declaration]

2024-05-20 Thread Helmut Grohne
Control: tags -1 + patch

On Wed, Mar 13, 2024 at 12:49:27PM +0100, Lucas Nussbaum wrote:
> During a rebuild of all packages in sid, your package failed to build
> on amd64.

I prepared a patch for another djbdns problem and in that proces also
fixed this FTBFS. You can find the combined patch on #1071526. 

Helmut



Bug#1071244: dracut-install has an undeclared file conflict on /usr/lib/dracut/dracut-install

2024-05-16 Thread Helmut Grohne
Package: dracut-install
Version: 060+5-7
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + dracut-core

dracut-install has an undeclared file conflict. This may result in an
unpack error from dpkg.

The file /usr/lib/dracut/dracut-install is contained in the packages
 * dracut-core/060+5-1 as present in trixie
 * dracut-install/060+5-7 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1071243: elfkickers has an undeclared file conflict on /bin/rebind

2024-05-16 Thread Helmut Grohne
Package: elfkickers
Version: 0+git20240221+ds-2
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + websockify

elfkickers has an undeclared file conflict. This may result in an unpack
error from dpkg.

The file /bin/rebind is contained in the packages
 * elfkickers/0+git20240221+ds-2 as present in unstable
 * websockify
   * 0.10.0+dfsg1-4+b1 as present in bookworm
   * 0.10.0+dfsg1-6 as present in trixie|unstable
   * 0.9.0+dfsg1-3 as present in bullseye

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1071242: rust-llvm has an undeclared file conflict

2024-05-16 Thread Helmut Grohne
Package: rust-llvm
Version: 1.71.1+dfsg1-1~exp2
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + rustc-mozilla rustc-web

rust-llvm has an undeclared file conflict. This may result in an unpack
error from dpkg.

The files
 * /usr/bin/rust-clang
 * /usr/bin/rust-lld
 * /usr/bin/rust-llvm-dwp
 * /usr/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/ld
 * /usr/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/ld64
are contained in the packages
 * rust-llvm/1.71.1+dfsg1-1~exp2 as present in experimental
 * rustc-mozilla/1.63.0+dfsg1-2~deb11u1 as present in bullseye
 * rustc-web/1.70.0+dfsg1-7~deb12u2 as present in bookworm-proposed-updates

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1071241: elfkickers adds new aliased files when we want to get rid of them

2024-05-16 Thread Helmut Grohne
Package: elfkickers
Version: 0+git20240221+ds-2
Severity: serious
Justification: keep out of testing
Tags: patch
User: helm...@debian.org
Usertags: dep17m2

Hi Alex,

you may know this /usr-move thingy. We want to stop installing aliased
files and your package installs them to /bin via debian/install now.
Please change

bin/*

to

bin/* usr/bin

to help with the transition. I'm setting severity serious to avoid
introducing regressions in trixie.

Helmut



Bug#1071142: dnsmasq-base: fails to purge when passwd is not installed

2024-05-15 Thread Helmut Grohne
Package: dnsmasq-base
Version: 2.90-3
Severity: serious

When passwd is not installed, dnsmasq-base fails to purge.

| $ mmdebstrap --variant=essential --include=dnsmasq-base 
--customize-hook='dpkg --root "$1" --remove dnsmasq-base passwd' 
--customize-hook='dpkg --root "$1" --purge dnsmasq-base' --verbose unstable 
/dev/null
| ...
| Purging configuration files for dnsmasq-base (2.90-3) ...
| /var/lib/dpkg/info/dnsmasq-base.postrm: 5: userdel: not found
| dpkg: error processing package dnsmasq-base (--purge):
|  installed dnsmasq-base package post-removal script subprocess returned error 
exit status 127
| Errors were encountered while processing:
|  dnsmasq-base
| ...
| $

Arguably, users should not deleted on package removal.

Helmut



Bug#1071125: python3-donfig and python3-nabu have an undeclared file conflict on /usr/lib/python3/dist-packages/doc/conf.py

2024-05-14 Thread Helmut Grohne
Package: python3-donfig,python3-nabu
Version: 0.8.1+dfsg-2
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + python3-nabu

python3-donfig and python3-nabu have an undeclared file conflict. This may
result in an unpack error from dpkg.

The file /usr/lib/python3/dist-packages/doc/conf.py is contained in the
packages
 * python3-donfig/0.8.1+dfsg-2 as present in trixie|unstable
 * python3-nabu/2024.1.6-1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1064003: Bug#1065416: [Cross-toolchain-base-devs] Bug#1065416: linux-libc-dev claims to provide linux-libc-dev-ARCH-cross, but it doesn't do that completely

2024-05-12 Thread Helmut Grohne
Hi Bastian,

I've intentionally snipped much of your reply as I think we two agree on
many of the aspects.

On Sun, May 12, 2024 at 07:35:09PM +0200, Bastian Blank wrote:
> > 1. API expectation of *-$arch-cross packages
> 
> I asked exactly that in
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1065416#55

I guess the best description is to be found in man dpkg-cross
"Conversion process" and even that isn't entirely helpful.

> > 4. cross-toolchain-base being bd-uninstallable
> 
> Which directly correlates to undocumented Build-Conflicts in the
> package.  They neither show up in the changelog or the commit logs.
> 
> >I don't exactly understand why it declares them, but I guess that
> >having a different set of kernel headers available in
> >/usr/$DEB_HOST_GNU_TYPE would cause them to be picked up by the build
> >and potentially cause misbuilds. cross-toolchain-base builds these
> >packages and it also uses them during build of glibc.
> 
> So this reason is now gone.  linux-source-* and linux-libc-dev are
> similar enough in almost all cases.

It's not gone as non-virtual linux-libc-dev-$arch-cross packages are
still built from c-t-b. If c-t-b were to stop building them, I'd concur.

> > 6. Cross bootstrap cannot tell whether linux-libc-dev supports an
> >architecture
> 
> Even in the past it could not.  It could try to build the linux package
> to see if it gets a working linux-libc-dev.  Or have other code to hack
> around, like changing the config.

In the past, there was no need to tell. It would always build
linux-libc-dev. Now that linux-libc-dev works for many but not all
architectures, there is a need to tell.

> Actually linux-libc-dev-$arch-cross is uncommunicated and uncoordinated
> duplication of exactly the same content as linux-libc-dev.

It is news to me that it is uncommunicated and uncoordinated, but that
very accurately matches the rest of the disagreement. Yes, it is
duplication.

> 9. linux-libc-dev-*-cross provides incompatible headers to
>build-essential
> 
>Both linux-libc-dev and linux-libc-dev-*-cross provide the linux/*
>includes that are used by the compiler but of different versions.  It
>is undefined if those can work with the (always older) asm/* provided
>by linux-libc-dev-*-cross.

Yes, this is a problem. It kinda is the same problem that we have with
libc6-dev vs libc6-dev-$arch-cross and is why libc6-dev declares
versioned breaks for libc6-dev-$arch-cross.

> > 3. cross-toolchain-base could build a linux-libc-dev-cross package
> >that Provides the earlier -$arch-cross packages and contains a
> >similar symlink farm to linux-libc-dev.
> 
> This requires coordination of the versions and strict enough
> dependencies.  So linux-libc-dev-cross would need to come out of the
> same source as linux-libc-dev.

Technically speaking, a linux-libc-dev-cross package could be built from
c-t-b. It would just inherit all the other problems including your
problem 9 from the previous approach and only address the space aspect.
I listed it more for completeness sake than suggesting we actually go
for this.

> > 4. cross-toolchain-base could drop its Build-Conflicts. This may cause
> >further problems though.
> >Patch: https://bugs.debian.org/1067370#17
> 
> The build will now see multiple architectures of headers.  So it needs
> to handle this both for native (where build-conflicts can't be used
> anyway) and cross the same.

I don't understand what you are trying to say here. c-t-b only builds
Arch:all packages, so the terms native and cross appear to not apply.
Then again we also don't know what "further problems" are. I hope
Matthias can shed some light here.

> On Sun, May 12, 2024 at 01:53:33PM +0200, Helmut Grohne wrote:
> > 2+3+6+7. linux-libc-dev could be split into linux-libc-dev-common
> >arch:all m-a:foreign and the symlink farms could be kept in
> >linux-libc-dev:any m-a:same retaining the size reduction.
> 
> This would not actually work.  linux-libc-dev-common would only contain
> known architectures.  So the current "change config, build
> linux-libc-dev" will not longer work as well.  This package would then
> depend on a linux-libc-dev-common without the headers for this
> architecture.

I agree that it is not as simple as I pictured it. I was imagining that
a m-a:same linux-libc-dev could simply contain all the
architecture-dependent stuff. For many architectures that would
practically work initially, but there is no bijective mapping between
kernel architecture names and Debian architecture names, so for
directories like /usr/lib/linux/uapi/arm is is unclear whether it should
be part of linux-libc-dev:armel or linux-libc-dev:armhf or
linux-li

Bug#1071010: pcp has an undeclared file conflict on /usr/bin/pmcheck

2024-05-12 Thread Helmut Grohne
Package: pcp
Version: 6.2.1-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + pmtools

pcp has an undeclared file conflict. This may result in an unpack error
from dpkg.

The file /usr/bin/pmcheck is contained in the packages
 * pcp/6.2.1-1 as present in unstable
 * pmtools
   * 2.2.0-2 as present in bullseye
   * 2.2.0-3 as present in bookworm|trixie|unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1071008: libx52pro0: installs udev rules twice to /usr and /

2024-05-12 Thread Helmut Grohne
Package: libx52pro0
Version: 0.1.1-3
Severity: serious
Justification: policy 10.1
Tags: patch
X-Debbugs-Cc: Petter Reinholdtsen 

Hi,

since the last upload, libx52pro0 contains both
/lib/udev/rules.d/99-x52pro.rules and
/usr/lib/udev/rules.d/99-x52pro.rule. Doing so violates Debian policy
section 10.1. The former is installed via the upstream build system
combined with dh_install and debian/libx52pro0.install while the latter
is installed via debian/*.udev with dh_installudev. Given DEP17, the
latter is the desired location. I'm attaching a patch for your
convenience.

Helmut
diff --minimal -Nru x52pro-0.1.1/debian/changelog x52pro-0.1.1/debian/changelog
--- x52pro-0.1.1/debian/changelog   2024-05-12 10:39:38.0 +0200
+++ x52pro-0.1.1/debian/changelog   2024-05-12 22:59:37.0 +0200
@@ -1,3 +1,9 @@
+x52pro (0.1.1-4) UNRELEASED; urgency=medium
+
+  * Install udev rules only once. (Closes: #-1)
+
+ -- Helmut Grohne   Sun, 12 May 2024 22:59:37 +0200
+
 x52pro (0.1.1-3) unstable; urgency=medium
 
   * QA upload.
diff --minimal -Nru x52pro-0.1.1/debian/libx52pro0.install 
x52pro-0.1.1/debian/libx52pro0.install
--- x52pro-0.1.1/debian/libx52pro0.install  2024-05-12 10:14:01.0 
+0200
+++ x52pro-0.1.1/debian/libx52pro0.install  2024-05-12 22:59:36.0 
+0200
@@ -1,4 +1,3 @@
-lib/udev/rules.d
 usr/bin/x52output
 usr/lib/lib*.so.*
 usr/share/man
diff --minimal -Nru x52pro-0.1.1/debian/not-installed 
x52pro-0.1.1/debian/not-installed
--- x52pro-0.1.1/debian/not-installed   1970-01-01 01:00:00.0 +0100
+++ x52pro-0.1.1/debian/not-installed   2024-05-12 22:59:37.0 +0200
@@ -0,0 +1,2 @@
+# Installed via debian/*.udev symbolic link
+lib/udev/rules.d


Bug#1071009: libpoppler-cpp0t64 has an undeclared file conflict

2024-05-12 Thread Helmut Grohne
Package: libpoppler-cpp0t64
Version: 24.02.0-3
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libpoppler-cpp0v5

libpoppler-cpp0t64 has an undeclared file conflict. This may result in
an unpack error from dpkg.

The files
 * /usr/lib/x86_64-linux-gnu/libpoppler-cpp.so.0
 * /usr/lib/x86_64-linux-gnu/libpoppler-cpp.so.0.11.0
are contained in the packages
 * libpoppler-cpp0t64/24.02.0-3 as present in unstable
 * libpoppler-cpp0v5/22.12.0-2+b1 as present in bookworm

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1071007: sherlock has an undeclared file conflict on /usr/lib/python3/dist-packages/__init__.py

2024-05-12 Thread Helmut Grohne
Package: sherlock
Version: 0.14.3+git20240511.b83f5be-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + pycrc

sherlock has an undeclared file conflict. This may result in an unpack
error from dpkg.

The file /usr/lib/python3/dist-packages/__init__.py is contained in the
packages
 * pycrc/0.10.0-2 as present in trixie|unstable
 * sherlock/0.14.3+git20240511.b83f5be-1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1071006: conky-all, conky-cli and conky-std have an undeclared file conflict

2024-05-12 Thread Helmut Grohne
Package: conky-cli,conky-std,conky-all
Version: 1.21.0-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + vc-dev

conky-all, conky-cli and conky-std have an undeclared file conflict.
This may result in an unpack error from dpkg.

The files
 * /usr/lib/cmake/Vc/AddCompilerFlag.cmake
 * /usr/lib/cmake/Vc/CheckCCompilerFlag.cmake
 * /usr/lib/cmake/Vc/CheckCXXCompilerFlag.cmake
 * /usr/lib/cmake/Vc/FindVc.cmake
 * /usr/lib/cmake/Vc/OptimizeForArchitecture.cmake
 * /usr/lib/cmake/Vc/UserWarning.cmake
 * /usr/lib/cmake/Vc/VcConfig.cmake
 * /usr/lib/cmake/Vc/VcConfigVersion.cmake
 * /usr/lib/cmake/Vc/VcMacros.cmake
 * /usr/lib/cmake/Vc/VcTargets.cmake
 * /usr/lib/libVc.a
are contained in the packages
 * conky-all/1.21.0-1 as present in unstable
 * conky-cli/1.21.0-1 as present in unstable
 * conky-std/1.21.0-1 as present in unstable
 * vc-dev
   * 1.4.3-2 as present in bookworm
   * 1.4.4-1 as present in trixie|unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1071005: rust-llvm has an undeclared file conflict

2024-05-12 Thread Helmut Grohne
Package: rust-llvm
Version: 1.71.1+dfsg1-1~exp1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + rustc rustc-mozilla rustc-web

rust-llvm has an undeclared file conflict. This may result in an unpack
error from dpkg.

The files
 * /usr/bin/rust-clang
 * /usr/bin/rust-lld
 * /usr/bin/rust-llvm-dwp
 * /usr/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/ld
 * /usr/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/ld64
are contained in the packages
 * rust-llvm/1.71.1+dfsg1-1~exp1 as present in experimental
 * rustc
   * 1.63.0+dfsg1-2 as present in bookworm
   * 1.70.0+dfsg2-1 as present in trixie|unstable
 * rustc-mozilla/1.63.0+dfsg1-2~deb11u1 as present in bullseye
 * rustc-web/1.70.0+dfsg1-7~deb12u2 as present in bookworm-proposed-updates

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1064003: Bug#1065416: [Cross-toolchain-base-devs] Bug#1065416: linux-libc-dev claims to provide linux-libc-dev-ARCH-cross, but it doesn't do that completely

2024-05-12 Thread Helmut Grohne
Hi,

In this mail, I'll try to summarize my state of knowledge on this
matter while noting that I don't see the full picture.

On Fri, Mar 29, 2024 at 11:17:55AM +0100, Bastian Blank wrote:
> On Thu, Mar 21, 2024 at 08:48:01PM +0100, Helmut Grohne wrote:
> > I was recently working on gcc builds and this disagreement currently
> > makes stuff unbuildable. Hence I looked into solutions and/or
> > workarounds.
> 
> Care to just share what you actually found?  Where is it broken and how
> to see this?
> 
> Because this whole thing started with "it is broken, but I won't tell
> you where or what or how".

Quite clearly, this is not a single problem, but a mesh of problems and
in a few cases it is not obvious where to solve them.

> > As a result, I implemented the proposed change and am attaching it for
> > discussion here. I've implemented it in a way that if there is a sysroot
> > linux header installation, it'll be preferred. Do you see any downsides
> > of this approach?
> 
> I wonder now.  How would that ever work for the native build?  Or does
> the native build already do those symlinks?  Or are native and cross
> configured differently?  Or is that a weird difference in gcc itself?

Native and cross builds work quite differently indeed.

So let me first try to collect all relevant problems that I encountered
here. I vaguely try to list the more important ones earlier. I have
caused some of these problems and don't want to assign any blame but
look for solutions.

1. API expectation of *-$arch-cross packages

   When *-$arch-cross packages were first introduced before multiarch
   was a thing, there was (and still is) and implicit contract saying
   that their functionality is to be provided within the
   /usr/$DEB_HOST_GNU_TYPE hierarchy. In particular, this layout does
   not interfere with multiarch on a filesystem level and hence
   *-$arch-cross packages typically are arch:all m-a:foreign.

   In particular, linux-libc-dev now provides such packages without
   actually providing those paths violating this implicit contract.

2. Violation of Multi-Arch: foreign

   linux-libc-dev was changed from an Arch:any + Multi-Arch:same package
   to an Architecture:all + Multi-Arch:foreign package. It does so by
   providing the headers for all architectures in a single package via
   symlink farms. "all" architectures is debatable though. The set of
   architectures changes rather frequently with new ones being added and
   old ones being removed. Therefore, linux-libc-dev will often look
   like it provides linux-libc-dev:$somearch to dependency resolvers
   while in fact not providing the functionality - thus violating the
   promise of Multi-Arch: foreign. For example, linux-libc-dev is
   currently dysfunctional for arc, but next year it'll be a different
   architecture.

   Moreover, looking at the metadata of linux-libc-dev initially did not
   provide means of figuring out which architectures were actually
   supported and which were not. This has been changed as linux-libc-dev
   now Provides linux-libc-dev-$arch-cross packages (causing the first
   problem), but at least giving bootstrappers a means to figure out
   whether a given linux-libc-dev package is usable to them.

3. linux-libc-dev consumes much space on mirrors and installations

   linux-libc-dev originally was Arch:any and yet much of its content
   was the same across architectures albeit in different paths. Thus,
   the size of the .deb (multiplied by the number of architectures) was
   quite big and also coinstalling linux-libc-dev would result in
   duplicate files being extracted to multiple locations increasing the
   installation size in a multiarch setting.

   As a result, linux-libc-dev now is Arch:all and we only get to have
   one package. It grew from about 1.8MB (times 10 architectures) to
   about 2.2MB and its installed size grew from about 7MB (per
   architecture) to 10MB (for all architectures).

   This change caused the second problem.

4. cross-toolchain-base being bd-uninstallable

   cross-toolchain-base cannot currently be built (FTBFS #1064003 and
   #1067370) and one of the aspects is that it declares Build-Conflicts
   with linux-libc-dev-$arch-cross. The recently added Provides on
   linux-libc-dev satisfy them and thus cause cross-toolchain-base to be
   bd-uninstallable.

   I don't exactly understand why it declares them, but I guess that
   having a different set of kernel headers available in
   /usr/$DEB_HOST_GNU_TYPE would cause them to be picked up by the build
   and potentially cause misbuilds. cross-toolchain-base builds these
   packages and it also uses them during build of glibc.

5. gcc-V-cross not being buildable

   The gcc-V-cross package relies on -$arch-cross packages usually built
   from cross-toolchain-base and expects them to provide their
   functionality in /usr/$DEB_HOST_GNU_TYPE. Th

Bug#1064003: patch for c-t-b build

2024-05-05 Thread Helmut Grohne
Control: tags -1 + patch

Hi Matthias,

I'm attaching a patch for the c-t-b FTBFS. Note that due to the
glibc/2.38 upload c-t-b has become completely uninstallable. Hence, a
timely upload is appreciated. Due to linux-libc-dev currently providing
the -$arch-cross packages, we have to remove the Build-Conflicts or make
rename the Provides on linux-libc-dev. I'm ok with both approaches and
offer dropping the conflict here.

Helmut
diff --minimal -Nru cross-toolchain-base-68/debian/changelog 
cross-toolchain-base-68+nmu1/debian/changelog
--- cross-toolchain-base-68/debian/changelog2023-10-31 09:50:26.0 
+0100
+++ cross-toolchain-base-68+nmu1/debian/changelog   2024-05-04 
09:23:39.0 +0200
@@ -1,3 +1,12 @@
+cross-toolchain-base (68+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Build using linux 6.7. Closes: #1064003, #1067370.
+  * Build using glibc 2.38.
+  * Remove linux-libc-dev-ARCH-cross from GLIBC_BUILD_CONFLICTS.
+
+ -- Helmut Grohne   Sat, 04 May 2024 09:23:39 +0200
+
 cross-toolchain-base (68) unstable; urgency=medium
 
   * Build using linux 6.5.8. Closes: #1042118.
diff --minimal -Nru cross-toolchain-base-68/debian/control 
cross-toolchain-base-68+nmu1/debian/control
--- cross-toolchain-base-68/debian/control  2023-10-31 09:50:26.0 
+0100
+++ cross-toolchain-base-68+nmu1/debian/control 2024-05-04 09:23:39.0 
+0200
@@ -9,9 +9,9 @@
 Build-Depends: binutils-multiarch,
   dpkg (>= 1.21.17), rdfind, symlinks, lsb-release,
   binutils-source (>= 2.41-6~),
-  glibc-source (>= 2.37-3~),
+  glibc-source (>= 2.38),
   gcc-12-source (>= 12.3.0-11~), g++-12 (>= 12.3.0-11~),
-  linux-source-6.5 (>= 6.5.8), linux-libc-dev (>= 6.5.8),
+  linux-source-6.7 (>= 6.7.0), linux-libc-dev (>= 6.7.0),
   autoconf (>= 2.69), autoconf2.69, autogen,
   automake, bison (>= 1:2.3), chrpath, debhelper-compat (= 13),
   dpkg-dev (>= 1.15.3.1), fakeroot, file, flex,
@@ -27,7 +27,7 @@
   libjansson-dev, pkg-config,
 Build-Conflicts: dpkg-cross, libdebian-dpkgcross-perl,
   binutils-x86-64-linux-gnu [!amd64], binutils-i686-linux-gnu [!i386], 
binutils-s390x-linux-gnu [!s390x], binutils-powerpc64le-linux-gnu [!ppc64el], 
binutils-aarch64-linux-gnu [!arm64], binutils-arm-linux-gnueabihf [!armhf], 
binutils-arm-linux-gnueabi [!armel], binutils-riscv64-linux-gnu [!riscv64],
-  libc6-amd64-cross, linux-libc-dev-amd64-cross, libc6-i386-cross, 
linux-libc-dev-i386-cross, libc6-s390x-cross, linux-libc-dev-s390x-cross, 
libc6-ppc64el-cross, linux-libc-dev-ppc64el-cross, libc6-arm64-cross, 
linux-libc-dev-arm64-cross, libc6-armhf-cross, linux-libc-dev-armhf-cross, 
libc6-armel-cross, linux-libc-dev-armel-cross, libc6-riscv64-cross, 
linux-libc-dev-riscv64-cross,
+  libc6-amd64-cross, libc6-i386-cross, libc6-s390x-cross, libc6-ppc64el-cross, 
libc6-arm64-cross, libc6-armhf-cross, libc6-armel-cross, libc6-riscv64-cross,
   libc6-amd64 [i386 x32], libc6-i386 [amd64 x32], libc6-x32 [amd64 i386]
 
 Package: linux-libc-dev-amd64-cross
diff --minimal -Nru cross-toolchain-base-68/debian/rules 
cross-toolchain-base-68+nmu1/debian/rules
--- cross-toolchain-base-68/debian/rules2023-10-31 09:50:26.0 
+0100
+++ cross-toolchain-base-68+nmu1/debian/rules   2024-05-04 09:23:39.0 
+0200
@@ -61,8 +61,8 @@
 CROSS_GNU_TYPE   = $(call _gnu_type,${CROSS_ARCH})
 CROSS_PKG_GNU_TYPE = $(subst _,-,$(call _gnu_type,${CROSS_ARCH}))
 
-MIN_VER_GLIBC  := 2.37-3~
-MIN_VER_LINUX  := 6.5.8
+MIN_VER_GLIBC  := 2.38
+MIN_VER_LINUX  := 6.7.0
 MIN_VER_GCC:= 12.3.0-11~
 MIN_VER_BINUTILS   := 2.41-6~
 VER_GCC_BASE   := 12
@@ -110,7 +110,7 @@
 
 # FIXME: No conflict for the host == cross case ...
 BINUTILS_BUILD_CONFLICTS = $(foreach a,$(CROSS_ARCHS),binutils-$(subst 
_,-,$(call _gnu_type,$(a))) [!$(a)]$(,))
-GLIBC_BUILD_CONFLICTS = $(foreach a,$(CROSS_ARCHS),libc6-$(a)-cross$(,) 
linux-libc-dev-$(a)-cross$(,))
+GLIBC_BUILD_CONFLICTS = $(foreach a,$(CROSS_ARCHS),libc6-$(a)-cross$(,))
 
 # taken from gcc packaging
 define unpack_tarball


Bug#1070327: libauparse0t64 fails piuparts: missing postrm for /usr-move mitigation

2024-05-03 Thread Helmut Grohne
Source: audit
Version: 1:3.1.2-2.1
Severity: serious
Justification: fails piuparts, blocks testing migration
Tags: patch
X-Debbugs-Cc: z...@debian.org

Hi,

I looked into why audit fails to migrate and noticed that it fails
piuparts as it leaves diversions behind after purge. The patch provided
by the /usr-move team failed to account for package removal and lacks
the postrm bit. I'm attaching a patch that fixes this problem. It also
removes the manual interpolation in favour of relying on dh_installdeb's
builtin interpolation. I'd appreciate a timely upload, because audit is
one of the last missing pieces moving forward with the /usr-move. Would
you mind a NMU?

Helmut
diff --minimal -Nru audit-3.1.2/debian/changelog audit-3.1.2/debian/changelog
--- audit-3.1.2/debian/changelog2024-02-28 04:02:13.0 +0100
+++ audit-3.1.2/debian/changelog2024-05-03 07:49:46.0 +0200
@@ -1,3 +1,10 @@
+audit (1:3.1.2-2.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix piuparts failure arising from /usr-move mitigation. (Closes: #-1)
+
+ -- Helmut Grohne   Fri, 03 May 2024 07:49:46 +0200
+
 audit (1:3.1.2-2.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru audit-3.1.2/debian/libauparse0t64.lintian-overrides 
audit-3.1.2/debian/libauparse0t64.lintian-overrides
--- audit-3.1.2/debian/libauparse0t64.lintian-overrides 2024-02-28 
03:58:37.0 +0100
+++ audit-3.1.2/debian/libauparse0t64.lintian-overrides 2024-05-03 
07:49:46.0 +0200
@@ -1 +1,2 @@
 libauparse0t64: package-name-doesnt-match-sonames libauparse0
+libauparse0t64: remove-of-unknown-diversion lib/* [postrm:*]
diff --minimal -Nru audit-3.1.2/debian/libauparse0t64.postrm 
audit-3.1.2/debian/libauparse0t64.postrm
--- audit-3.1.2/debian/libauparse0t64.postrm1970-01-01 01:00:00.0 
+0100
+++ audit-3.1.2/debian/libauparse0t64.postrm2024-05-03 07:49:40.0 
+0200
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+case $1 in
+   remove|disappear)
+   for file in libauparse.so.0 libauparse.so.0.0.0; do
+   dpkg-divert --package libauparse0t64 --no-rename \
+   --remove --divert \
+   "/lib/#DEB_HOST_MULTIARCH#/$file.usr-is-merged" 
\
+   "/lib/#DEB_HOST_MULTIARCH#/$file"
+   done
+   ;;
+esac
+
+#DEBHELPER#
+
diff --minimal -Nru audit-3.1.2/debian/libauparse0t64.preinst 
audit-3.1.2/debian/libauparse0t64.preinst
--- audit-3.1.2/debian/libauparse0t64.preinst   1970-01-01 01:00:00.0 
+0100
+++ audit-3.1.2/debian/libauparse0t64.preinst   2024-05-03 07:49:46.0 
+0200
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+case $1 in
+   install)
+   for file in libauparse.so.0 libauparse.so.0.0.0; do
+   dpkg-divert --package libauparse0t64 --no-rename \
+   --add --divert \
+   "/lib/#DEB_HOST_MULTIARCH#/$file.usr-is-merged" 
\
+   "/lib/#DEB_HOST_MULTIARCH#/$file"
+   done
+   ;;
+esac
+
+#DEBHELPER#
+
diff --minimal -Nru audit-3.1.2/debian/libauparse0t64.preinst.in 
audit-3.1.2/debian/libauparse0t64.preinst.in
--- audit-3.1.2/debian/libauparse0t64.preinst.in2024-02-28 
04:02:11.0 +0100
+++ audit-3.1.2/debian/libauparse0t64.preinst.in1970-01-01 
01:00:00.0 +0100
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case $1 in
-   install)
-   for file in libauparse.so.0 libauparse.so.0.0.0; do
-   dpkg-divert --package libauparse0t64 --no-rename \
-   --divert \
-   /lib/#DEB_HOST_MULTIARCH#/$file.usr-is-merged \
-   /lib/#DEB_HOST_MULTIARCH#/$file
-   done
-   ;;
-esac
-
-#DEBHELPER#
-
diff --minimal -Nru audit-3.1.2/debian/rules audit-3.1.2/debian/rules
--- audit-3.1.2/debian/rules2024-02-28 04:02:11.0 +0100
+++ audit-3.1.2/debian/rules2024-05-03 07:47:04.0 +0200
@@ -109,11 +109,6 @@
chgrp adm debian/auditd/var/log/audit
chmod -R o-rwx debian/auditd/etc/audit debian/audispd-plugins/etc/audit
 
-override_dh_installdeb:
-   sed -e"s/#DEB_HOST_MULTIARCH#/$(DEB_HOST_MULTIARCH)/" \
-   debian/libauparse0t64.preinst.in > debian/libauparse0t64.preinst
-   dh_installdeb
-
 get-orig-source:
-uscan --upstream-version 0
 


Bug#1070256: libcxx-serial FTBFS with the nocheck build profile

2024-05-02 Thread Helmut Grohne
Source: libcxx-serial
Version: 1.2.1-5
Severity: serious
Justification: nocheck ftbfs is rc since trixie
Tags: ftbfs trixie sid

libcxx-serial fails to build from source when enabling the nocheck build
profile. I think the relevant part is:

| -- catkin 0.8.10
| -- BUILD_SHARED_LIBS is on
| CMake Error at /usr/share/catkin/cmake/test/tests.cmake:21 (message):
|   () is not available when tests are not enabled.  The CMake code should only
|   use it inside a conditional block which checks that testing is enabled:
| 
|   if(CATKIN_ENABLE_TESTING)
| 
| (...)
| 
|   endif()
| 
| Call Stack (most recent call first):
|   tests/CMakeLists.txt:20 (catkin_add_gtest)
| 
| 
| -- Configuring incomplete, errors occurred!
| cd obj-x86_64-linux-gnu && tail -v -n \+0 CMakeCache.txt
| ==> CMakeCache.txt <==

Helmut



Bug#1070254: ktp-text-ui FTBFS: undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)'

2024-05-02 Thread Helmut Grohne
Source: ktp-text-ui
Version: 22.12.3-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)

ktp-text-ui fails to build from source in unstable on amd64. The
relevant log probably is:

| [ 76%] Linking CXX executable ktp-text-ui
| cd /<>/obj-x86_64-linux-gnu/app && /usr/bin/cmake -E 
cmake_link_script CMakeFiles/ktp-text-ui.dir/link.txt --verbose=1
| /usr/bin/c++ -g -O2 -ffile-prefix-map=/<>=. 
-fstack-protector-strong -fstack-clash-protection -Wformat 
-Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 
-fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align 
-Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef 
-Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self 
-Wvla -Wdate-time -Wsuggest-override -Wlogical-op -Wl,--enable-new-dtags 
-Wl,-z,relro 
"CMakeFiles/ktp-text-ui.dir/ktp-text-ui_autogen/mocs_compilation.cpp.o" 
"CMakeFiles/ktp-text-ui.dir/main.cpp.o" 
"CMakeFiles/ktp-text-ui.dir/telepathy-chat-ui.cpp.o" 
"CMakeFiles/ktp-text-ui.dir/chat-window.cpp.o" 
"CMakeFiles/ktp-text-ui.dir/chat-tab.cpp.o" 
"CMakeFiles/ktp-text-ui.dir/emoticon-text-edit-action.cpp.o" 
"CMakeFiles/ktp-text-ui.dir/emoticon-text-edit-selector.cpp.o" 
"CMakeFiles/ktp-text-ui.dir/invite-contact-dialog.cpp.o" -o ktp-text-ui  
-Wl,-rpath,/<>/obj-x86_64-linux-gnu/lib:/<>/obj-x86_64-linux-gnu/image-sharer:
 /usr/lib/x86_64-linux-gnu/libQt5WebEngine.so.5.15.15 ../lib/libktpchat.so 
/usr/lib/x86_64-linux-gnu/libKF5PeopleWidgets.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5Emoticons.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKTpWidgets.so.22.12.3 
/usr/lib/x86_64-linux-gnu/libKTpModels.so.22.12.3.abi1 
/usr/lib/x86_64-linux-gnu/libKF5NotifyConfig.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5KCMUtils.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5TextWidgets.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5SonnetUi.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5SonnetCore.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKTpLogger.so.22.12.3.abi1 
/usr/lib/x86_64-linux-gnu/libKTpCommonInternals.so.22.12.3.abi1 
/usr/lib/x86_64-linux-gnu/libKF5Wallet.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5Notifications.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libtelepathy-logger-qt.so.0.9.80.0 
/usr/lib/x86_64-linux-gnu/libtelepathy-qt5.so.0.0.9.8 
/usr/lib/x86_64-linux-gnu/libQt5WebEngineWidgets.so.5.15.15 
/usr/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.15 
/usr/lib/x86_64-linux-gnu/libQt5WebChannel.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5Positioning.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5QmlModels.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5Qml.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so.5.15.10 
../image-sharer/libktpimagesharer.so 
/usr/lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5KIOGui.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5KIOCore.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5JobWidgets.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5Service.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5Solid.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5Completion.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5IconThemes.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5ConfigWidgets.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5ConfigGui.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5ConfigCore.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5Codecs.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5Auth.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5AuthCore.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5Archive.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libX11.so 
/usr/lib/x86_64-linux-gnu/libQt5Concurrent.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libKTpOTR.so.22.12.3 
/usr/lib/x86_64-linux-gnu/libtelepathy-qt5.so.0.0.9.8 
/usr/lib/x86_64-linux-gnu/libQt5Network.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5Xml.so.5.15.10 -fPIC 
/usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5People.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5CoreAddons.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libKF5I18n.so.5.107.0 
/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.15.10 
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.10
| /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.15: 
undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, 
unsigned long*)'
| collect2: error: ld returned 1 exit status
| make[3]: *** [app/CMakeFiles/ktp-text-ui.dir/build.make:220: app/ktp-text-ui] 
Error 1
| make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu'
| make[2]: *** [CMakeFiles/Makefile2:1633: app/CMakeFiles/ktp-text-ui.dir/all] 
Error 2
| make[2]: Leaving directory '/<>/obj-x86_64-linux-gnu'
| make[1]: *** [Makefile:149: all] Error 2
| 

Bug#1070047: python3-django-pipeline: installs files into aliased locations

2024-04-29 Thread Helmut Grohne
Control: tags -1 - patch

Hi Alexandre,

On Mon, Apr 29, 2024 at 12:35:02PM +0200, Alexandre Detiste wrote:
> If I revert the NAME change autodep8 breaks on Salsa

Dang. I was looking for what I could have broken and didn't see this.

> Is there an easy way to have one name for pybuild and another one for
> autodep8 ... ? I ll search.

I looked at man pybuild and https://wiki.debian.org/Python/Pybuild and
neither was particularly enlightening to me. Possibly setting
PYBUILD_NAME=pipeline and PYBUILD_DESTDIR=debian/python3-django-pipeline
works?

Helmut



Bug#1070047: python3-django-pipeline: installs files into aliased locations

2024-04-29 Thread Helmut Grohne
Package: python3-django-pipeline
Version: 3.0.0-1
Severity: serious
Justification: introduces new aliasing
Tags: patch
Control: affects -1 + python3-distutils
User: helm...@debian.org
Usertags: dep17p6

The last upload of python3-django-pipeline moved all of its files from
/usr/lib to /lib. Whils this works somewhat on a /usr-merged
installations, it causes subtle bugs due to dpkg not being prepared with
aliasing. In DEP17, we're resolving this by moving all files out of
aliased locations and python3-django-pipelines has just introduced new.
Hence, I'm filing this at RC severity. I think the move was accidental
and can be fixed by dropping the faulty "mv" command in favour of
setting PYBUILD_NAME to the package name rather than the module name.
I'm attaching a patch for your convenience.

Helmut
diff --minimal -Nru django-pipeline-3.0.0/debian/changelog 
django-pipeline-3.0.0/debian/changelog
--- django-pipeline-3.0.0/debian/changelog  2024-04-28 19:35:05.0 
+0200
+++ django-pipeline-3.0.0/debian/changelog  2024-04-29 10:17:13.0 
+0200
@@ -1,3 +1,10 @@
+django-pipeline (3.0.0-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Do not install into /lib. (Closes: #-1)
+
+ -- Helmut Grohne   Mon, 29 Apr 2024 10:17:13 +0200
+
 django-pipeline (3.0.0-1) unstable; urgency=medium
 
   * Team Upload
diff --minimal -Nru django-pipeline-3.0.0/debian/rules 
django-pipeline-3.0.0/debian/rules
--- django-pipeline-3.0.0/debian/rules  2024-04-28 19:35:05.0 +0200
+++ django-pipeline-3.0.0/debian/rules  2024-04-29 10:17:13.0 +0200
@@ -4,7 +4,7 @@
 include /usr/share/dpkg/pkg-info.mk
 export SETUPTOOLS_SCM_PRETEND_VERSION=${DEB_VERSION_UPSTREAM}
 
-export PYBUILD_NAME=pipeline
+export PYBUILD_NAME=django-pipeline
 export PYBUILD_AFTER_BUILD_python3=PYTHONPATH=. sphinx-build -b html -d 
docs/.build/.doctrees -N docs docs/.build/html
 
 # Uncomment this to turn on verbose mode.
@@ -25,6 +25,5 @@
PYBUILD_SYSTEM=custom PYBUILD_TEST_ARGS="PYTHONPATH=. python{version} 
/usr/bin/django-admin test --settings=tests.settings" dh_auto_test
 
 execute_after_dh_auto_install:
-   mv debian/python3-pipeline/* debian/python3-django-pipeline/
find -type f -name '*.pyc' -delete
find -type d -name __pycache__ -empty -delete


Bug#1069923: util-linux-extra: /usr-move mitigation fails to cover ctrlaltdel

2024-04-27 Thread Helmut Grohne
Package: util-linux-extra
Version: 2.40-7
Severity: serious
Tags: patch
Control: affects -1 + util-linux
User: helm...@debian.org
Usertags: dep17p1

Hi Chris,

in my last patch, I trusted your earlier changes too much and failed to
notice that it didn't cover ctrlaltdel. I'm attaching a patch to also
cover that.

Helmut
diff --minimal -Nru util-linux-2.40/debian/changelog 
util-linux-2.40/debian/changelog
--- util-linux-2.40/debian/changelog2024-04-26 11:41:02.0 +0200
+++ util-linux-2.40/debian/changelog2024-04-27 08:46:20.0 +0200
@@ -1,3 +1,10 @@
+util-linux (2.40-7.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Also cover ctrlaltdel in /usr-move mitigation (Closes: #-1).
+
+ -- Helmut Grohne   Sat, 27 Apr 2024 08:46:20 +0200
+
 util-linux (2.40-7) unstable; urgency=medium
 
   [ Chris Hofstaedtler ]
diff --minimal -Nru util-linux-2.40/debian/util-linux-extra.lintian-overrides 
util-linux-2.40/debian/util-linux-extra.lintian-overrides
--- util-linux-2.40/debian/util-linux-extra.lintian-overrides   2024-04-26 
11:41:02.0 +0200
+++ util-linux-2.40/debian/util-linux-extra.lintian-overrides   1970-01-01 
01:00:00.0 +0100
@@ -1,2 +0,0 @@
-# DEP17 P1 mitigation
-diversion-for-unknown-file sbin/* [preinst:*]
diff --minimal -Nru util-linux-2.40/debian/util-linux-extra.postrm 
util-linux-2.40/debian/util-linux-extra.postrm
--- util-linux-2.40/debian/util-linux-extra.postrm  2024-04-26 
11:41:02.0 +0200
+++ util-linux-2.40/debian/util-linux-extra.postrm  2024-04-27 
08:46:12.0 +0200
@@ -3,11 +3,9 @@
 set -e
 
 if test "$1" = remove || test "$1" = disappear; then
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.cramfs.usr-is-merged --remove /sbin/fsck.cramfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.minix.usr-is-merged --remove /sbin/fsck.minix
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.bfs.usr-is-merged --remove /sbin/mkfs.bfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.cramfs.usr-is-merged --remove /sbin/mkfs.cramfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.minix.usr-is-merged --remove /sbin/mkfs.minix
+  for f in ctrlaltdel fsck.cramfs fsck.minix mkfs.bfs mkfs.cramfs mkfs.minix; 
do
+dpkg-divert --no-rename --package util-linux-extra --divert 
"/sbin/$f.usr-is-merged" --remove "/sbin/$f"
+  done
 fi
 
 #DEBHELPER#
diff --minimal -Nru util-linux-2.40/debian/util-linux-extra.preinst 
util-linux-2.40/debian/util-linux-extra.preinst
--- util-linux-2.40/debian/util-linux-extra.preinst 2024-04-26 
11:41:02.0 +0200
+++ util-linux-2.40/debian/util-linux-extra.preinst 2024-04-27 
08:45:19.0 +0200
@@ -3,11 +3,9 @@
 set -e
 
 if test "$1" = upgrade || test "$1" = install; then
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.cramfs.usr-is-merged --add /sbin/fsck.cramfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.minix.usr-is-merged --add /sbin/fsck.minix
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.bfs.usr-is-merged --add /sbin/mkfs.bfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.cramfs.usr-is-merged --add /sbin/mkfs.cramfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.minix.usr-is-merged --add /sbin/mkfs.minix
+  for f in ctrlaltdel fsck.cramfs fsck.minix mkfs.bfs mkfs.cramfs mkfs.minix; 
do
+dpkg-divert --no-rename --package util-linux-extra --divert 
"/sbin/$f.usr-is-merged" --add "/sbin/$f"
+  done
 fi
 
 #DEBHELPER#


Bug#1069064: util-linux-extra: insufficient Replaces for util-linux due to /usr-move

2024-04-26 Thread Helmut Grohne
Control: tags -1 + patch

Hi Chris,

On Tue, Apr 16, 2024 at 09:44:13AM +0200, Chris Hofstaedtler wrote:
> I think half of 2) exists now, but Conflicts: util-linux will
> probably end badly as you note. I'd welcome a patch implementing 3).
> 
> Initially I favored 1), but then u-l will never make progress on
> moving the non-essential files.

Thanks for pinging me. I observe that util-linux-extra already had
mitigations except that preinst and postinst were swapped. Additionally,
it did not have Conflicts, which allow for unpacking an aliased
util-linux concurrently with a moved util-linux-extra despite the
protective diversions being removed. Since we want to avoid the
Conflicts, I've extended the protective diversions until postrm. In
trixie's postinst we can then remove them for good. Unfortunately, that
also means that we cannot use begin-remove-after magic.

Helmut
diff --minimal -Nru util-linux-2.40/debian/changelog 
util-linux-2.40/debian/changelog
--- util-linux-2.40/debian/changelog2024-04-15 09:51:01.0 +0200
+++ util-linux-2.40/debian/changelog2024-04-26 07:32:56.0 +0200
@@ -1,3 +1,10 @@
+util-linux (2.40-6.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix /usr-move mitigation. (Closes: #1069064)
+
+ -- Helmut Grohne   Fri, 26 Apr 2024 07:32:56 +0200
+
 util-linux (2.40-6) unstable; urgency=medium
 
   * Add upstream patches fixing enosys on m68k, sh and dmesg -H output
diff --minimal -Nru util-linux-2.40/debian/util-linux-extra.lintian-overrides 
util-linux-2.40/debian/util-linux-extra.lintian-overrides
--- util-linux-2.40/debian/util-linux-extra.lintian-overrides   1970-01-01 
01:00:00.0 +0100
+++ util-linux-2.40/debian/util-linux-extra.lintian-overrides   2024-04-26 
07:32:56.0 +0200
@@ -0,0 +1,2 @@
+# DEP17 P1 mitigation
+diversion-for-unknown-file sbin/* [preinst:*]
diff --minimal -Nru util-linux-2.40/debian/util-linux-extra.postinst 
util-linux-2.40/debian/util-linux-extra.postinst
--- util-linux-2.40/debian/util-linux-extra.postinst2024-04-15 
09:51:01.0 +0200
+++ util-linux-2.40/debian/util-linux-extra.postinst1970-01-01 
01:00:00.0 +0100
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-set -e
-
-# begin-remove-after: released:trixie
-if test "$1" = upgrade || test "$1" = install; then
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.cramfs.usr-is-merged --add /sbin/fsck.cramfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.minix.usr-is-merged --add /sbin/fsck.minix
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.bfs.usr-is-merged --add /sbin/mkfs.bfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.cramfs.usr-is-merged --add /sbin/mkfs.cramfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.minix.usr-is-merged --add /sbin/mkfs.minix
-fi
-# end-remove-after
-
-#DEBHELPER#
diff --minimal -Nru util-linux-2.40/debian/util-linux-extra.postrm 
util-linux-2.40/debian/util-linux-extra.postrm
--- util-linux-2.40/debian/util-linux-extra.postrm  1970-01-01 
01:00:00.0 +0100
+++ util-linux-2.40/debian/util-linux-extra.postrm  2024-04-26 
07:32:56.0 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+if test "$1" = remove || test "$1" = disappear; then
+  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.cramfs.usr-is-merged --remove /sbin/fsck.cramfs
+  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.minix.usr-is-merged --remove /sbin/fsck.minix
+  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.bfs.usr-is-merged --remove /sbin/mkfs.bfs
+  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.cramfs.usr-is-merged --remove /sbin/mkfs.cramfs
+  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.minix.usr-is-merged --remove /sbin/mkfs.minix
+fi
+
+#DEBHELPER#
+
diff --minimal -Nru util-linux-2.40/debian/util-linux-extra.preinst 
util-linux-2.40/debian/util-linux-extra.preinst
--- util-linux-2.40/debian/util-linux-extra.preinst 2024-04-15 
09:51:01.0 +0200
+++ util-linux-2.40/debian/util-linux-extra.preinst 2024-04-26 
07:32:56.0 +0200
@@ -2,15 +2,12 @@
 
 set -e
 
-# begin-remove-after: released:trixie
-if test "$1" = configure; then
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.cramfs.usr-is-merged --remove /sbin/fsck.cramfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/fsck.minix.usr-is-merged --remove /sbin/fsck.minix
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.bfs.usr-is-merged --remove /sbin/mkfs.bfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.cramfs.usr-is-merged --remove /sbin/mkfs.cramfs
-  dpkg-divert --no-rename --package util-linux-extra --divert 
/sbin/mkfs.minix.usr-is

Bug#1069815: wesnoth-1.8-server: new package installs systemd unit in aliased location

2024-04-25 Thread Helmut Grohne
Package: wesnoth-1.18-server
Version: 1:1.17.26-1
Severity: serious
Justification: do not introduce aliased files into Debian

Hi,

I noticed that wesnoth-1.18-server is a new package and installs a file
below /lib, which is an aliased location that we try to empty to
complete the /usr-move transition via DEP17. I am filing this bug at
RC-severity to stop it from migrating to trixie and hope you agree with
this. Please downgrade if you disagree though note that this kind of
issue will become an RC-bug for all packages later in the trixie cycle.

The simplest fix to this problem is changing

SYSTEMD_SERVICE = 
debian/wesnoth-$(BRANCH_VERSION)-server/lib/systemd/system/wesnoth-$(BRANCH_VERSION)-server.service

in debian/rules and move the file to /usr/lib. This is mostly safe for
backports, except that bookworm's debhelper will fail to generate
necessary maintainer scripts. Please bump your debhelper dependency to
13.11.6 (available in bookworm-backports).

Alternatively, adding dh-sequence-movetousr to Build-Depends should also
resolve the matter, but for a new package I'd prefer to fix this right
from the start.

Both solutions are likely applicable to other wesnoth versions as well,
though we don't consider those RC-bugs yet.

Helmut



Bug#1069687: librust-bitflags-1-dev: fails to co-install

2024-04-22 Thread Helmut Grohne
Hi Matthias,

On Mon, Apr 22, 2024 at 10:34:11PM +0200, Matthias Geiger wrote:
> This is the same situation as in #1040477. This is an issue wrt how we
> generate the semvers. I image rust-proc-macro-crate-1 would pose the same
> problem. Quoting you from 1040477:

Right!

> Is the only workaround dropping Ma:same here ?

I see very little alternatives. We must choose:

 * Do not combine M-A:same + Provides: foo + Breaks: foo.
 * Fix dose/apt/dpkg to agree on what this means.

If we were to adapt dose and apt, they's simply arrive at the conclusion
that M-A:same would not work here so that really is not what you'd want
here. This amounts to fixing dpkg to allow this very combination in the
same way that apt and dose allow it. So yeah, changing dpkg could be an
option. Ccing dpkg-devel about it.

The first alternative means that we must not combine them at the same
time. As we very much want M-A:same, we must not have this combination
of Provides and Brekas. Keep in mind that they serve slightly different
purposes. We have Breaks + Replaces and you can only replace a real
package but Provides introduce a virtual package. In effect we're
dealing with a package that sometimes is virtual and other times is
real. We can choose different names for these uses. The real package
could be renamed and also provide the virtual facility. All of them
would now provide the virtual one as virtual only and none of them would
have the virtual name. The Breaks and Replaces would be updated to match
the real name.

This may not work for the in-archive situations right now as Breaks and
Replaces may still be necessary for upgrades, but it is something that
may work in future situations of the same kind.

In the mean time, consider that M-A:same presently is a lie. Removing it
is better than continuing to lie. It's not like we must have everything
in perfect multiarch. Even for cross compilation, we often can get away
without M-A:same by only requiring a package for the host architecture.
M-A:same is not the goal. It's a tool and way may consider using other
tools.

Helmut



Bug#1069689: mandos lost mandos.service systemd unit

2024-04-22 Thread Helmut Grohne
Source: mandos
Version: 1.8.16-1.1
Severity: serious
Tags: patch
Justification: prevent testing migration after unintentional deletion of 
systemd unit
X-Debbugs-Cc: Bastian Germann 
User: helm...@debian.org
Usertags: dep17p6

The last mandos upload is the first after systemd.pc having moved
systemdsystemunitdir from /lib to /usr/lib. mandos' upstream Makefile
uses this to see where to install units to, but it also only does that
if the relevant directory exists. Now since the new location wasn't
created, it ceased installing the unit. We need to create the new
location to reinstate the unit. Patch attached. I think the loss of the
unit is unintantional and for that reason file this as rc bug. Please
adjust if you disagree.

This change makes mandos backports-unsafe. I don't expect mandos to be
backported.

Helmut
diff --minimal -Nru mandos-1.8.16/debian/changelog 
mandos-1.8.16/debian/changelog
--- mandos-1.8.16/debian/changelog  2024-04-19 13:08:30.0 +0200
+++ mandos-1.8.16/debian/changelog  2024-04-22 21:13:43.0 +0200
@@ -1,3 +1,10 @@
+mandos (1.8.16-1.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Install mandos.service again. (Closes: #-1)
+
+ -- Helmut Grohne   Mon, 22 Apr 2024 21:13:43 +0200
+
 mandos (1.8.16-1.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru mandos-1.8.16/debian/mandos.dirs 
mandos-1.8.16/debian/mandos.dirs
--- mandos-1.8.16/debian/mandos.dirs2019-08-18 21:51:02.0 +0200
+++ mandos-1.8.16/debian/mandos.dirs2024-04-22 21:13:43.0 +0200
@@ -5,6 +5,6 @@
 etc/dbus-1/system.d
 usr/sbin
 var/lib/mandos
-lib/systemd/system
 usr/lib/tmpfiles.d
 usr/lib/sysusers.d
+usr/lib/systemd/system


Bug#1069688: libsequoia-octopus-librnp has an undeclared file conflict on /usr/lib/thunderbird/librnp.so

2024-04-22 Thread Helmut Grohne
Package: libsequoia-octopus-librnp
Version: 1.8.1-3
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + thunderbird

libsequoia-octopus-librnp has an undeclared file conflict. This may result in
an unpack error from dpkg.

The file /usr/lib/thunderbird/librnp.so is contained in the packages
 * libsequoia-octopus-librnp/1.8.1-3 as present in unstable
 * thunderbird/1:122.0~b2-1 as present in experimental

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1069687: librust-bitflags-1-dev: fails to co-install

2024-04-22 Thread Helmut Grohne
Package: librust-bitflags-1-dev
Version: 1.3.2-5+b1
Severity: serious
Justification: causes an installation failure

Hi,

Attempting to install librust-bitflags-1-dev for multiple architectures
fails, because apt and dpkg disagree about how breaks and provides work.
apt thinks that self-breaks can be ignored, but dpkg thinks that since
librust-bitflags-1-dev breaks+provides librust-bitflags-1.3.2-dev it
cannot be coinstalled and gives up. You cannot combine such
breaks+provides with m-a:same. The simplest workaround here is dropping
m-a:same as it cannot be exercised anyway.

Helmut



Bug#1069630: libcupsfilters-dev and libcupsfilters2-dev have an undeclared file conflict on /usr/lib/x86_64-linux-gnu/libcupsfilters.a, /usr/lib/x86_64-linux-gnu/libcupsfilters.so and /usr/lib/x86_64-

2024-04-21 Thread Helmut Grohne
Package: libcupsfilters2-dev
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libcupsfilters-dev

The files
 * /usr/lib/x86_64-linux-gnu/libcupsfilters.a
 * /usr/lib/x86_64-linux-gnu/libcupsfilters.so
 * /usr/lib/x86_64-linux-gnu/pkgconfig/libcupsfilters.pc
are contained in the packages
 * libcupsfilters-dev/1.28.17-4 as present in unstable
 * libcupsfilters2-dev/2.0.0-1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Please figure out which of these packages should properly own the
affected files and reassign the bug as appropriate. When doing so,
please add the other package to the set of affected packages using
"Control: affects -1 + " to avoid the filing of duplicates.

The other package should stop installing the files. In case the files
are being moved between packages, Breaks and Replaces should be
declared. In this case, please refer to policy section 7.6 for details.
Another useful resource is https://wiki.debian.org/PackageTransition.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1069299: kodi-visualization-waveform FTBFS on arm*: does not agree on gl vs gles

2024-04-19 Thread Helmut Grohne
Source: kodi-visualization-waveform
Version: 20.2.1+ds1-1
Severity: serious
Tags: ftbfs

kodi-visualization-waveform fails to build from source on arm
architectures. A build fails like this:

| CMake Error at 
/usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
|   Could NOT find OpenGLES (missing: OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR)
| Call Stack (most recent call first):
|   /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 
(_FPHSA_FAILURE_MESSAGE)
|   FindOpenGLES.cmake:37 (find_package_handle_standard_args)
|   CMakeLists.txt:41 (find_package)

Looking into CMakeLists.txt, one can see that it takes the
APP_RENDER_SYSTEM=gles path. I guess this is rooted in kodi recently
having changed this for all arm architectures via #1056563. Now
kodi-visualization-waveform does not have any dependency on gles
libraries but happens to pull gl libraries transitively. As a result the
build now fails.

I'm not sure whether this is to be fixed in kodi-visualization-waveform
or kodi. The end result is that this very package FTBFS. Hence filing
here initially, but reassigning may still make sense.

Helmut



Bug#1069064: util-linux-extra: insufficient Replaces for util-linux due to /usr-move

2024-04-15 Thread Helmut Grohne
Package: util-linux-extra
Version: 2.40-6
Severity: serious
User: helm...@debian.org
Usertags: dep17p1
Control: affects -1 + util-linux

Hi Chris,

I think I mentioned this on IRC already and you intended to revert, but
nothing happened, so lets turn this into a bug for tracking purposes at
least.

util-linux-extra gained the utils ctrlaltdel, fsck.cramfs, fsck.minix,
mkfs.bfs, mkfs.cramfs, and mkfs.minix. In util-linux-extra, these now
reside below /usr/sbin while they used to reside in /sbin in util-linux
in bookworm and earlier. Hence upgrading from bookworm to sid can cause
these files to be lost.

I think we have three ways to address this:

 1. Revert the move and retry after trixie. I think you favoured this?
 2. Upgrade Breaks to Conflicts and issue a temporary protective
diversion from u-l-e.preinst to u-l-e.postinst. In theory, apt can
first unpack u-l, then unpack u-l-e and then configure both, so
there is a safe solution. However, there is a risk that apt could
decide to temporarily remove u-l and that would be really bad.
 3. Keep Breaks and issue temporary diversions to be removed in forky's
u-l-e.postinst.

Please let me know your choice and I can do a patch.

Helmut



Bug#1069030: subread FTBFS on 32bit architectures: -Werror=implicit-function-declaration

2024-04-15 Thread Helmut Grohne
Source: subread
Version: 2.0.6+dfsg-2
Severity: serious
Tags: ftbfs

subread fails to build from source on 32bit architectures: A
non-parallel build contains:

| i686-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<>=. -fstack-protector-strong -Wformat 
-Werror=format-security -mtune=generic -msse3 -O3 -fsigned-char -Wall 
-DMAKE_FOR_EXON  -D MAKE_STANDALONE -D SUBREAD_VERSION=\""2.0.6"\"  
-D_FILE_OFFSET_BITS=64  -fmessage-length=0 -ggdb -Wdate-time 
-D_FORTIFY_SOURCE=2  -c -o input-files.o input-files.c
| input-files.c: In function ‘f_subr_open’:
| input-files.c:54:24: error: implicit declaration of function ‘fopen64’; did 
you mean ‘gzopen64’? [-Werror=implicit-function-declaration]
|54 | return fopen64(fname, mode);
|   |^~~
|   |gzopen64

Helmut



Bug#1068808: openmpi-bin has an undeclared file conflict on /usr/bin/pterm

2024-04-11 Thread Helmut Grohne
Package: openmpi-bin
Version: 5.0.3-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + pterm

openmpi-bin has an undeclared file conflict. This may result in an
unpack error from dpkg.

The file /usr/bin/pterm is contained in the packages
 * openmpi-bin/5.0.3-1 as present in experimental
 * pterm
   * 0.74-1+deb11u1 as present in bullseye|bullseye-security
   * 0.78-2+deb12u1 as present in bookworm|bookworm-security
   * 0.80-1 as present in trixie
   * 0.80-1+b1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1068251: glibc: FTBFS on 32-bit architectures due to GCC defaulting to 64-bit time_t

2024-04-09 Thread Helmut Grohne
Hi Aurelien,

On Mon, Apr 08, 2024 at 11:24:40PM +0200, Aurelien Jarno wrote:
> Thanks for you analysis and your patch. In short your proposal is to
> extend the initial patch from Steve to fully hide the fact that the
> compiler default to -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64.
> 
> This indeed works and fixes the FTBFS. However it seems that, at least
> for some of the issues, it just hides them. For instance the wrong type
> for timeval.tv_usec, reported by Simon upstream [1], was detected by the
> conformance tests. Quoting utmpx.h/conform.out:

I think this needs a more nuanced look. From the comments in the
conformance test suite, it is evident that it expects to be run without
_FILE_OFFSET_BITS and _TIME_BITS. Many of the symbols it requires to
exist only exist when these macros are unset. The conformance test suite
has a comment saying that it should be testing the case where
_FILE_OFFSET_BITS is defined, but it currently does not provide
expectations for that case.

Before we can reasonably run the conformance test suite with these
macros set (and really, the test suite should be in control of these
macros), we cannot reasonably use it with them set. Let us now imagine a
future where the conformance test suite has been extended to provide
expectations (which in lots of cases means that *64 symbols disappear
when -D_FILE_OFFSET_BITS=64). Then what still remains is Simon's issue:

> | /tmp/tmp98wzaavx/test.c:4:35: error: conflicting types for ‘b2_10’; have 
> ‘__suseconds64_t’ {aka ‘long long int’}
> | 4 | extern __typeof__ (a2_10.tv_usec) b2_10;
> |   |   ^
> | /tmp/tmp98wzaavx/test.c:3:20: note: previous declaration of ‘b2_10’ with 
> type ‘suseconds_t’ {aka ‘long int’}
> | 3 | extern suseconds_t b2_10;
> |   |^
> | FAIL: Type of member tv_usec

Indeed, this is not something that can easily be fixed and where
upstream is still debating on what the correct solution should be. It
also is an issue that existed for a long time. If you head over to a
bookworm glibc and enable -D_TIME_BITS=64 there, you'll also notice that
tv_usec and suseconds_t have different sizes. So yes, this is a bug, but
it is not one that is directly related to Debian changing the default.
We merely increased the visibility of this problem that existed earlier
already.

Given that
 * the issue is already present in bookworm,
 * there are two mutually exclusive solutions and
 * upstream is still discussing the best solution
I recommend deferring this aspect.

> And we know it is the reason for the FTBFS of libflorist [2], so should
> we just ignore that issue anyway?

The libflorist issue likely is a consequence. It arises from
gnat_to_gnu_field where GNAT verifies that the value (of type
suseconds_t) to be assigned to a field (tv_usec) has the matching size.
This is directly based on the POSIX expectation and will be fixed with
the glibc issue.

How about filing a separate bug with glibc that tracks this POSIX
divergence and mark the libflorist bug as being blocked by this other
glibc bug? It can be RC or not, but since it affects bookworm, it won't
block testing migration.

Helmut



Bug#1068251: glibc: FTBFS on 32-bit architectures due to GCC defaulting to 64-bit time_t

2024-04-08 Thread Helmut Grohne
Control: tags -1 + patch

Hi Aurelien and Canonical folks,

On Tue, Apr 02, 2024 at 08:53:31PM +0200, Aurelien Jarno wrote:
> Starting with gcc-12 version 12.3.0-15, -D_TIME_BITS=64 together with
> -D_FILE_OFFSET_BITS=64 are passed by default on 32-bit architectures
> except i386.
> 
> This has been partially fixed in the 2.37-15.1 NMU by adding
> -U_TIME_BITS to CFLAGS, however it causes failures in the testsuite:

There are two subtleties about -U_TIME_BITS in a moment.

> | +-+
> | | Encountered regressions that don't match expected failures. |
> | +-+
> | FAIL: conform/ISO/stdio.h/linknamespace

The detail for this failure is:

| [initial] fgetpos64
| [initial] fopen64
| [initial] freopen64
| [initial] fsetpos64
| [initial] tmpfile64

What linknamespace.py wants to tell us here is that it expected
fgetpos64, but no fgetpos64 was declared. It was not declared, because
there is no difference between fgetpos and fgetpos64 after defining
-D_FILE_OFFSET_BITS=64 (which is also in the default compiler flags).

The other failures are of very similar kind, but there also is another
kind.

> | FAIL: conform/POSIX/sys/stat.h/conform

The detail for this failure contains:

| /tmp/tmpnzda_r9j/test.c:90:35: error: conflicting types for 'b2_8'; have 
'__time64_t' {aka 'long long int'}
|90 | extern __typeof__ (a2_8.st_atime) b2_8;
|   |   ^~~~
| /tmp/tmpnzda_r9j/test.c:89:17: note: previous declaration of 'b2_8' with type 
'__time_t' {aka 'long int'}
|89 | extern __time_t b2_8;
|   | ^~~~

Here, it tells us that it expected the st_atime field of struct stat to
have type __time_t (the 32 bit one), but it really has __time64_t.

Looking at the invocation of linknamespace.py you can see:

| python3 -B linknamespace.py --cc='arm-linux-gnueabihf-gcc-12' 
--flags='-I../include  
-I/build/reproducible-path/glibc-2.37/build-tree/armhf-libc  
-I../sysdeps/unix/sysv/linux/arm/le  -I../sysdeps/unix/sysv/linux/arm  
-I../sysdeps/arm/nptl  -I../sysdeps/unix/sysv/linux/include 
-I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl  -I../sysdeps/pthread  
-I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv  
-I../sysdeps/unix/arm  -I../sysdeps/unix  -I../sysdeps/posix  
-I../sysdeps/arm/le/armv7/multiarch  -I../sysdeps/arm/armv7/multiarch  
-I../sysdeps/arm/le/armv7  -I../sysdeps/arm/armv7  -I../sysdeps/arm/armv6t2  
-I../sysdeps/arm/armv6  -I../sysdeps/arm/le  -I../sysdeps/arm/include 
-I../sysdeps/arm  -I../sysdeps/wordsize-32  -I../sysdeps/ieee754/flt-32  
-I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754  -I../sysdeps/generic 
-nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/12/include -isystem 
/build/reproducible-path/glibc-2.37/debian/include -I..' ...

In particular, what you do not see is -U_TIME_BITS inside --flags.

> Ubuntu has just ignored those failures for now, but I am just afraid
> that if we do the same, nobody will fix them.

Armed with this knowledge, I think we need two changes. For one thing
debian/sysdeps/linux.mk needs to add -U_FILE_OFFSET_BITS to extra_cflags
to revert any possible ABI changing effects. For another, the
conformance tests use independent compiler flags defined in
conform/Makefile. There, a naive patch seems to be:

-conformtest-cc-flags = -I../include $(+sysdep-includes) $(sysincludes) -I..
+conformtest-cc-flags = -U_FILE_OFFSET_BITS -U_TIME_BITS -I../include 
$(+sysdep-includes) $(sysincludes) -I..

With these two changes, I am able to successfully build glibc on armhf
with the conformance test suite passing.

> In addition it means that upstream glibc does not build anymore by
> default on a 32-bit Debian. Not really a Debian issue, but that is not
> nice either and should probably be fixed.

I think that latter change may be applicable upstream. Running the
conformance test suite with either _FILE_OFFSET_BITS or _TIME_BITS set
is not expected nor supported. This is partially evident from
conform/linknamespace.py in a comment:

| # * Header inclusions should be compiled several times with
| # different options such as -O2, -D_FORTIFY_SOURCE and
| # -D_FILE_OFFSET_BITS=64 to find out what symbols are undefined
| # from such a compilation; this is not yet implemented.

The conformance test suite clearly wants to manage these macros (and its
effects on symbols) explicitly and does not expect them to be
pre-defined.

Hope this helps

Helmut



Bug#1068610: dico: binary-all FTBFS

2024-04-08 Thread Helmut Grohne
Control: tags -1 + patch

Hi Adrian,

On Mon, Apr 08, 2024 at 02:03:01AM +0300, Adrian Bunk wrote:
> Source: dico
> Version: 2.11-4
> Severity: serious
> Tags: ftbfs
> X-Debbugs-Cc: Helmut Grohne 

Thank you for notifying me. Mea culpa. Patch attached.

> https://buildd.debian.org/status/logs.php?pkg=dico=all
> 
> ...
>debian/rules execute_after_dh_installsystemd
> make[1]: Entering directory '/<>'
> ln -s dicod.service debian/dicod/`test -e 
> debian/dicod/lib/systemd/system/dicod.service || echo 
> usr/`lib/systemd/system/dictd.service
> ln: failed to create symbolic link 
> 'debian/dicod/usr/lib/systemd/system/dictd.service': No such file or directory
> make[1]: *** [debian/rules:52: execute_after_dh_installsystemd] Error 1

Helmut
diff --minimal -Nru dico-2.11/debian/changelog dico-2.11/debian/changelog
--- dico-2.11/debian/changelog  2024-03-01 12:57:59.0 +0100
+++ dico-2.11/debian/changelog  2024-04-08 09:21:47.0 +0200
@@ -1,3 +1,10 @@
+dico (2.11-4.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix indep-only FTBFS arising from #1054187. (Closes: #1068610)
+
+ -- Helmut Grohne   Mon, 08 Apr 2024 09:21:47 +0200
+
 dico (2.11-4.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru dico-2.11/debian/rules dico-2.11/debian/rules
--- dico-2.11/debian/rules  2023-11-20 17:26:32.0 +0100
+++ dico-2.11/debian/rules  2024-04-08 09:21:31.0 +0200
@@ -48,5 +48,5 @@
mkdir -p $(TEST_HOME)
HOME=$(TEST_HOME) dh_auto_test || cat dicod/tests/testsuite.log
 
-execute_after_dh_installsystemd:
+execute_after_dh_installsystemd-arch:
ln -s dicod.service debian/dicod/`test -e 
debian/dicod/lib/systemd/system/dicod.service || echo 
usr/`lib/systemd/system/dictd.service


Bug#1068634: libdialog-dev has an undeclared file conflict on /usr/lib/x86_64-linux-gnu/libdialog.a

2024-04-08 Thread Helmut Grohne
Package: libdialog-dev
Version: 1.3-20240307-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + dialog

libdialog-dev has an undeclared file conflict. This may result in an
unpack error from dpkg.

The file /usr/lib/x86_64-linux-gnu/libdialog.a is contained in the
packages
 * dialog
   * 1.3-20201126-1 as present in bullseye
   * 1.3-20230209-1 as present in bookworm
   * 1.3-20240101-1 as present in trixie
 * libdialog-dev/1.3-20240307-1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1067790: nut: move files to /usr (DEP17) and partially revert time64

2024-03-26 Thread Helmut Grohne
Package: libnutclient2t64,libnutscan2t64,libupsclient6t64
Version: 2.8.1-3.1
Severity: serious
Tags: patch
User: helm...@debian.org
Usertags: dep17p1 dep17m2
Control: affects -1 + libnutclient2 libnutscan2 libupsclient6

Hi,

a number of packages from src:nut install files in aliased locations. In
order to finalize the /usr-merge, we want to move all of them below /usr
as doing so removes the bad effects arising from aliasing.
Unfortunately, the time64 transition renamed libraries built from nut,
so we are triggering a file loss scenario (DEP17 P1) - exactly the thing
we want to avoid in future by moving them. To complete this transition
in trixie, we have to add a mitigation (protective diversion) and this
is why I am sending a patch.

Said diversion incurs non-trivial maintainer scripts that are best
avoided if possible. Therefore, I reviewed the time64 transition and
concluded that the ABI of libnutscan did not change. I therefore propose
reverting the time64 transition for libnutscan only. The other two
libraries do change ABI and need to be renamed. In reverting libnutscan,
we also eliminate the need to mitigate the file loss. I have set the
severity of this bug to serious to prevent libnutscan2t64 from
transitioning to trixie. The time64 transition should either be reverted
before it transitions to trixie or not at all. If you think that it
should not be reverted, please lower the severity of this bug and I'll
send an updated patch. I note that having fewer library renames makes
the bookworm -> trixie upgrade easier, so reverting (when correct)
generally is a good thing (and it also reduces maintainer script
complexity).

I have tested this patch using piuparts. This happens to fail, because
some fontconfig files below /etc are not properly removed. I believe
this failure is unrelated to my change. I also tested for the particular
file loss scenario specifically.

mmdebstrap trixie /dev/null --variant=apt --include libnutclient-dev 
--customize-hook='echo "deb http://deb.debian.org/debian sid main" > 
"$1/etc/apt/sources.list.d/sid.list"' --chrooted-customize-hook="apt-get 
update" --customize-hook="upload libnutclient2t64_2.8.1-3.2_amd64.deb /l.deb" 
--customize-hook="upload libnutclient-dev_2.8.1-3.2_amd64.deb /d.deb" 
--chrooted-customize-hook="dpkg --auto-deconfigure --unpack /l.deb /d.deb; 
apt-get -y install /l.deb /d.deb" --chrooted-customize-hook="dpkg --verify"
mmdebstrap trixie /dev/null --variant=apt --include libupsclient-dev 
--customize-hook='echo "deb http://deb.debian.org/debian sid main" > 
"$1/etc/apt/sources.list.d/sid.list"' --chrooted-customize-hook="apt-get 
update" --customize-hook="upload libupsclient6t64_2.8.1-3.2_amd64.deb /l.deb" 
--customize-hook="upload libupsclient-dev_2.8.1-3.2_amd64.deb /d.deb" 
--chrooted-customize-hook="dpkg --auto-deconfigure --unpack /l.deb /d.deb; 
apt-get -y install /l.deb /d.deb" --chrooted-customize-hook="dpkg --verify"

Last but not least, this patch must not be uploaded to
bookworm-backports or earlier as it would violate the file move
moratorium there. If you plan to backport nut, you must revert both the
time64 transition and this patch.

Helmut
diff -Nru nut-2.8.1/debian/changelog nut-2.8.1/debian/changelog
--- nut-2.8.1/debian/changelog  2024-02-29 02:26:20.0 +0100
+++ nut-2.8.1/debian/changelog  2024-03-26 14:40:41.0 +0100
@@ -1,3 +1,11 @@
+nut (2.8.1-3.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Revert unnecessary time64 transition for libnutscan.
+  * Move files to /usr. (Closes: #-1)
+
+ -- Helmut Grohne   Tue, 26 Mar 2024 14:40:41 +0100
+
 nut (2.8.1-3.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru nut-2.8.1/debian/control nut-2.8.1/debian/control
--- nut-2.8.1/debian/control2024-02-29 02:26:20.0 +0100
+++ nut-2.8.1/debian/control2024-03-26 14:40:41.0 +0100
@@ -203,7 +203,7 @@
 Package: libupsclient6t64
 Provides: ${t64:Provides}
 Replaces: libupsclient6
-Breaks: libupsclient6 (<< ${source:Version})
+Conflicts: libupsclient6 (<< ${source:Version})
 Section: libs
 Architecture: any
 Depends: ${misc:Depends}, ${shlibs:Depends}
@@ -238,7 +238,7 @@
 Package: libnutclient2t64
 Provides: ${t64:Provides}
 Replaces: libnutclient2
-Breaks: libnutclient2 (<< ${source:Version})
+Conflicts: libnutclient2 (<< ${source:Version})
 Section: libs
 Architecture: any
 Depends: ${misc:Depends}, ${shlibs:Depends}
@@ -269,10 +269,10 @@
  .
  This package provides the development files for the new client library.
 
-Package: libnutscan2t64
-Provides: ${t64:Provides}
-Replaces: libnutscan2
-Breaks: libnutscan2 (<< ${source:Version})
+Package: libnutscan2
+Provides: libnutscan2t64 (= ${binary:Version})
+Replaces: libnutscan2t64
+Breaks: libnutscan2t64 (<< ${source:Version})
 Section: libs
 Archi

Bug#1067776: openrc: move files to /usr (DEP17) and revert unnecessary time64 transition

2024-03-26 Thread Helmut Grohne
Package: openrc,libeinfo1,libeinfo1t64,librc1t64
Version: 0.53-1.1
Severity: serious
Tags: patch
User: helm...@debian.org
Usertags: dep17p1 dep17m2
Control: affects -1 librc1

Hi,

I am sending you a patch for moving files to /usr for DEP17, because
doing so requires mitigations due to time64 having renamed libraries. In
particular, I verified that libeinfo did not actually break ABI.
Therefore, I am proposing to revert the time64 transition for libeinfo.
As a consequence of the reversion, we need fewer /usr-move mitigations.
We still need the mitigation for librc though. I have set the severity
of this bug to serious to prevent libeinfo1t64 from migrating to trixie.
It should either be reverted before migration or it should not be
reverted. If you disagree with the reversion, please lower the severity
of this bug and I'll send a patch that extends the mitigation to
libeinfo. That said, fewer library renames make upgrades less painful.

I've tested the patch using piuparts and with a manual test case
precisely triggering the DEP17 P1 file loss scenario:

mmdebstrap trixie /dev/null --variant=apt --include librc-dev 
--customize-hook='echo "deb http://deb.debian.org/debian sid main" > 
"$1/etc/apt/sources.list.d/sid.list"' --chrooted-customize-hook="apt-get 
update" --customize-hook="upload librc1t64_0.53-1.2_amd64.deb /l.deb" 
--customize-hook="upload librc-dev_0.53-1.2_amd64.deb /d.deb" 
--chrooted-customize-hook="dpkg --auto-deconfigure --unpack /l.deb /d.deb; 
apt-get -y install /l.deb /d.deb" --chrooted-customize-hook="dpkg --verify"

Do note that this patch must not be backported to bookworm-backports or
earlier. If you intend to backport, you must revert both this patch and
the time64 transition for your backport.

I recommend uploading this sooner rather than later, because the
reversion helps people who have not yet upgraded libeinfo to unstable.

Helmut
diff -Nru openrc-0.53/debian/changelog openrc-0.53/debian/changelog
--- openrc-0.53/debian/changelog2024-02-29 13:48:11.0 +0100
+++ openrc-0.53/debian/changelog2024-03-26 15:56:35.0 +0100
@@ -1,3 +1,11 @@
+openrc (0.53-1.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Revert unnecessary time64 transition for libeinfo
+  * Move files to /usr and mitigate file loss (DEP17) (Closes: #-1).
+
+ -- Helmut Grohne   Tue, 26 Mar 2024 15:56:35 +0100
+
 openrc (0.53-1.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru openrc-0.53/debian/control openrc-0.53/debian/control
--- openrc-0.53/debian/control  2024-02-29 13:48:11.0 +0100
+++ openrc-0.53/debian/control  2024-03-26 15:56:35.0 +0100
@@ -47,7 +47,7 @@
 Package: librc1t64
 Provides: ${t64:Provides}
 Replaces: librc1
-Breaks: librc1 (<< ${source:Version})
+Conflicts: librc1 (<< ${source:Version})
 Architecture: any
 Section: libs
 Depends: ${misc:Depends},
@@ -84,10 +84,10 @@
  .
  This package provides development files for the runtime library.
 
-Package: libeinfo1t64
-Provides: ${t64:Provides}
-Replaces: libeinfo1
-Breaks: libeinfo1 (<< ${source:Version})
+Package: libeinfo1
+Provides: libeinfo1t64
+Replaces: libeinfo1t64
+Breaks: libeinfo1t64 (<< ${source:Version})
 Architecture: any
 Section: libs
 Depends: ${misc:Depends},
@@ -110,7 +110,7 @@
 Package: libeinfo-dev
 Architecture: any
 Section: libdevel
-Depends: libeinfo1t64 (=${binary:Version}),
+Depends: libeinfo1 (=${binary:Version}),
  ${misc:Depends},
 Multi-Arch: same
 Description: dependency based service manager (pretty console display 
development)
diff -Nru openrc-0.53/debian/libeinfo-dev.links 
openrc-0.53/debian/libeinfo-dev.links
--- openrc-0.53/debian/libeinfo-dev.links   2024-01-22 18:18:38.0 
+0100
+++ openrc-0.53/debian/libeinfo-dev.links   2024-03-26 15:56:35.0 
+0100
@@ -1,3 +1,3 @@
 #! /usr/bin/dh-exec
 
-lib/${DEB_HOST_MULTIARCH}/libeinfo.so.1 
usr/lib/${DEB_HOST_MULTIARCH}/libeinfo.so
+usr/lib/${DEB_HOST_MULTIARCH}/libeinfo.so.1 
usr/lib/${DEB_HOST_MULTIARCH}/libeinfo.so
diff -Nru openrc-0.53/debian/libeinfo1.install 
openrc-0.53/debian/libeinfo1.install
--- openrc-0.53/debian/libeinfo1.install1970-01-01 01:00:00.0 
+0100
+++ openrc-0.53/debian/libeinfo1.install2024-03-26 15:56:35.0 
+0100
@@ -0,0 +1 @@
+usr/lib/*/libeinfo.so.*
diff -Nru openrc-0.53/debian/libeinfo1t64.install 
openrc-0.53/debian/libeinfo1t64.install
--- openrc-0.53/debian/libeinfo1t64.install 2024-01-22 18:18:38.0 
+0100
+++ openrc-0.53/debian/libeinfo1t64.install 1970-01-01 01:00:00.0 
+0100
@@ -1 +0,0 @@
-lib/*/libeinfo.so.*
diff -Nru openrc-0.53/debian/libeinfo1t64.lintian-overrides 
openrc-0.53/debian/libeinfo1t64.lintian-overrides
--- openrc-0.53/debian/libeinfo1t64.lintian-overrides   2024-02-29 
13:48:06.0 +0100
+++ openrc-0.53/debian/libeinfo1t64.lintian-overrides   1970-01-01 

Bug#1063664: gcc-13-cross: file conflicts between gnat-13- and gnat-{9,10}-

2024-03-26 Thread Helmut Grohne
user debian...@lists.debian.org
usertags 1063664 + fileconflict
reassign 1063664 
gnat-13-aarch64-linux-gnu,gnat-13-arm-linux-gnueabihf,gnat-13-i686-linux-gnu,gnat-13-powerpc64le-linux-gnu,gnat-13-riscv64-linux-gnu,gnat-13-s390x-linux-gnu
found 1063664 10.5.0-1cross2
affects 1063664 + gnat-10-aarch64-linux-gnu gnat-10-arm-linux-gnueabihf 
gnat-10-i686-linux-gnu gnat-10-powerpc64le-linux-gnu gnat-10-riscv64-linux-gnu 
gnat-10-s390x-linux-gnu gnat-11-aarch64-linux-gnu gnat-11-arm-linux-gnueabihf 
gnat-11-i686-linux-gnu gnat-11-powerpc64le-linux-gnu gnat-11-riscv64-linux-gnu 
gnat-11-s390x-linux-gnu gnat-12-aarch64-linux-gnu gnat-12-arm-linux-gnueabihf 
gnat-12-i686-linux-gnu gnat-12-powerpc64le-linux-gnu gnat-12-riscv64-linux-gnu 
gnat-12-s390x-linux-gnu gnat-9-aarch64-linux-gnu gnat-9-arm-linux-gnueabihf 
gnat-9-i686-linux-gnu gnat-9-powerpc64le-linux-gnu gnat-9-riscv64-linux-gnu 
gnat-9-s390x-linux-gnu
tags 1063664 + patch
thanks

On Sat, Feb 10, 2024 at 07:55:09PM +0100, Andreas Beckmann wrote:
> there are undeclared file conflicts between gnat-13- and
> gnat-{9,10}- in sid. (but not between -9- and -10-).
> Maybe it would be sufficient to rebuild the package against gcc-13
> 13.2.0-13 which had some gnat conflict fixes.

I confirm. Usually, the higher gnat version declares Conflicts for the
lower one. Starting with gcc-14, the unversioned link is no longer
provided and gnat is part of gcc-defaults, so this problem will go away
in future. I also verified that src:gcc-13 already issues these
Conflicts and that a no-change upload of gcc-13-cross adds these
Conflicts to the cross toolchain packages. Hence tagging the issue as
patch.

Matthias, would you do that upload?

Helmut



Bug#1041832: #1041832: libsequoia-octopus-librnp: undeclared file conflict with thunderbird

2024-03-22 Thread Helmut Grohne
Hi Holger,

On Fri, Mar 22, 2024 at 07:36:37PM +, Holger Levsen wrote:
> < h01ger> helmut: re:  #1041832: i just could not reproduce this bug, see
>   https://paste.debian.net/1311659/ - though we "didnt change
>   anything" in sequoia-octopus, so what am i missing? :)
> 
> that paste had basically this content:
> 
> ± dpkg -L libsequoia-octopus-librnp |grep librnp.so
> /usr/lib/sequoia/libsequoia_octopus_librnp.so
> /usr/lib/thunderbird/librnp.so
> ± dpkg -L thunderbird|grep librnp.so
> 1 ±

You're faced with a relatively early dumat-generated report and I see
how the lack of detail makes diagnosing this difficult. Later reports
have been improved to include the missing detail.

Let me paste the machine-readable report and explain it.

libsequoia-octopus-librnp:
  1.4.1-1:
issues:
- bugs:
  - 1041832
  files:
  - /usr/lib/thunderbird/librnp.so
  others:
thunderbird:
  1:115.7.0-1~deb11u1: bullseye
  1:115.7.0-1~deb12u1: bookworm
  1:115.8.0-1~deb12u1: bookworm-proposed-updates
  1:115.9.0-1~deb11u1: bullseye-security
  1:115.9.0-1~deb12u1: bookworm-security
  1:122.0~b2-1: experimental
  what: undeclared file conflict
source: rust-sequoia-octopus-librnp
suites: experimental
  1.8.1-1:
issues:
- bugs:
  - 1041832
  files:
  - /usr/lib/thunderbird/librnp.so
  others:
thunderbird:
  1:115.7.0-1~deb11u1: bullseye
  1:115.7.0-1~deb12u1: bookworm
  1:115.8.0-1~deb12u1: bookworm-proposed-updates
  1:115.9.0-1~deb11u1: bullseye-security
  1:115.9.0-1~deb12u1: bookworm-security
  1:122.0~b2-1: experimental
  what: undeclared file conflict
source: rust-sequoia-octopus-librnp
suites: unstable
thunderbird:
  1:122.0~b2-1:
issues:
- bugs:
  - 1041832
  files:
  - /usr/lib/thunderbird/librnp.so
  others:
libsequoia-octopus-librnp:
  1.4.1-1: experimental
  1.8.1-1: unstable
  what: undeclared file conflict
suites: experimental

Specifically, you need a version of libsequoia-octopus-librnp from
unstable or experimental and combine it with a thunderbird version from
bullseye, bookworm or experimental. If we disregard experimental and
assume that libsequoia-octopus-librnp to trixe, apt could choose to
first install libsequoia-octopus-librnp in a bookworm to trixie upgrade
before upgrading thunderbird to drop the file.

So to reproduce this, I recommend using a bookworm system, install
thunderbird, add unstable to apt sources, install
libsequoia-octopus-librnp.

Helmut



Bug#1064003: Bug#1065416: [Cross-toolchain-base-devs] Bug#1065416: linux-libc-dev claims to provide linux-libc-dev-ARCH-cross, but it doesn't do that completely

2024-03-21 Thread Helmut Grohne
Hi Bastian and Matthias,

I was recently working on gcc builds and this disagreement currently
makes stuff unbuildable. Hence I looked into solutions and/or
workarounds.

On Tue, Mar 05, 2024 at 09:50:27AM +0100, Helmut Grohne wrote:
> > You just said that the search path used during the build of the
> > toolchain and the one for everything else are unrelated.  So you are
> > free to create $BUILD/tmp-include with symlinks for asm, asm-generic,
> > linux.
> > 
> > The toolchain as installed already finds all headers.  So I still don't
> > see why we need this in the final system.
> 
> I find this argument fairly convincing and hope Matthias also does.

As a result, I implemented the proposed change and am attaching it for
discussion here. I've implemented it in a way that if there is a sysroot
linux header installation, it'll be preferred. Do you see any downsides
of this approach?

Helmut
linux-libc-dev now provides linux-libc-dev-$arch-cross without actually
providing /usr//include. Thus we symlink it to where we need it.

See also #1064003.

diff --git a/debian/rules2 b/debian/rules2
index 651d14af..6a486ffe 100644
--- a/debian/rules2
+++ b/debian/rules2
@@ -1266,6 +1266,13 @@ endif
 	  ln -sf /usr/include/$(DEB_HOST_MULTIARCH)/crypt.h \
 	$(builddir)/sys-include/crypt.h; \
 	fi
+	: # Import headers from Multi-Arch:foreign linux-libc-dev
+	set -e; for d in asm-generic linux; do \
+	  if [ -d "/usr/include/$$d" ] && ! [ -d "/usr/$(DEB_TARGET_GNU_TYPE)/include/$$d" ]; then \
+	mkdir -p '$(builddir)/sys-include'; \
+	ln -sf "/usr/include/$$d" "$(builddir)/sys-include/$$d"; \
+	  fi; \
+	done
 
 	touch $(configure_stamp)
 


Bug#1067215: 4 packages from libgdchart-gd2 have an undeclared file conflict

2024-03-20 Thread Helmut Grohne
Package: 
libgdchart-gd2-noxpm-dev,libgdchart-gd2-noxpm,libgdchart-gd2-xpm-dev,libgdchart-gd2-xpm
Version: 0.11.5-11
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict

4 packages from libgdchart-gd2 have an undeclared file conflict. This
may result in an unpack error from dpkg.

The files
 * /usr/lib/libgdc.so.0
 * /usr/lib/libgdc.so.0.11.5
are contained in the packages
 * libgdchart-gd2-noxpm
   * 0.11.5-11 as present in unstable
   * 0.11.5-10 as present in bookworm|bullseye
   * 0.11.5-10+b1 as present in trixie
 * libgdchart-gd2-xpm
   * 0.11.5-10 as present in bookworm|bullseye
   * 0.11.5-10+b1 as present in trixie
   * 0.11.5-11 as present in unstable

The files
 * /usr/lib/libgdc.a
 * /usr/lib/libgdc.so
are contained in the packages
 * libgdchart-gd2-noxpm-dev
   * 0.11.5-11 as present in unstable
   * 0.11.5-10 as present in bookworm|bullseye
   * 0.11.5-10+b1 as present in trixie
 * libgdchart-gd2-xpm-dev
   * 0.11.5-10 as present in bookworm|bullseye
   * 0.11.5-10+b1 as present in trixie
   * 0.11.5-11 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1067134: Try to remove i386 packages

2024-03-19 Thread Helmut Grohne
On Tue, Mar 19, 2024 at 10:45:44AM +0100, Christian Marillat wrote:
> ,
> | $ dpkg -l | grep libcom-err
> | ii  libcom-err2t64:amd64   1.47.0-2.3+b1
>amd64common error description library
> | ii  libcom-err2t64:i3861.47.0-2.3+b1
>i386 common error description library

This is the bumpy unstable state that should never migrate to trixie.

> upgrading libcom-err2 to 1.47.0-2.4 remove all i386 packages

Consider guiding apt by asking it to install both libcom-err2:amd64 and
libcom-err2:i386.

> ,
> | $ dpkg -l |grep libcom-err2  
> | ii  libcom-err2:amd64  1.47.0-2.4   
>amd64common error description library
> `
> 
> but now I can reinstall i386 packages again :
> 
> ,
> | $ dpkg -l |grep libcom-err2
> | ii  libcom-err2:amd64  1.47.0-2.4   
>amd64common error description library
> | ii  libcom-err2:i386   1.47.0-2.4   
>i386 common error description library
> `

I agree that the experience is a little messed up, but this is
resolvable with apt and it only affects unstable users. Do you agree
with closing this bug with no action?

Helmut



Bug#1067134: Try to remove i386 packages

2024-03-19 Thread Helmut Grohne
Control: tags -1 + moreinfo

Hi Christian,

On Tue, Mar 19, 2024 at 10:11:53AM +0100, Christian Marillat wrote:
> I'm unable to install comerr-dev under a multiarch amd64/i386
> machine.
> 
> Here is a simple example :
> 
> ,
> | $ sudo apt-get install comerr-dev 
> | Reading package lists... Done
> | Building dependency tree... Done
> | Reading state information... Done
> | 
> | [...]
> | 
> | The following additional packages will be installed:
> |   libcom-err2
> | Suggested packages:
> |   doc-base
> | The following packages will be REMOVED:
> |   inetutils-telnet:i386
> | The following NEW packages will be installed:
> |   comerr-dev libcom-err2
> | 0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded.
> `

I fear this is not enough information to diagnose the problem. I'm
giving you some context to better understand what we need here.

e2fsprogs was identified as one of the packages whose ABI is affected by
time64. That analsys did not discriminate between individual shared
libraries built from e2fsprogs and hence all libraries including
libcom-err2 were bumped. It turned out that libss2 and libcom-err2
really were not affected and libss2t64 and libcom-err2t64 did not
transition to trixie. Hence, I reverted the transition for these to ease
upgrades knowing that I'd be making upgrades in unstable slightly harder
though those are difficult at best.

So we need to know which libcom-err2 and libcom-err2t64 packages are
installed for which architectures on your system. If there is any
libcom-err2t64, please "upgrade" to libcom-err2. Then retry your
original apt. I fear this is going to be manual in unstable as there is
no sane way to make apt understand that we really don't need
libco-err2t64. I expect that upgrades from bookworm and trixie are
unaffected by this issue. Unless this expectation is wrong, I suggest
that we close this bug as wontfix.

Helmut



Bug#1066910: chromium: downloads non-free component libchromescreenai.so without asking

2024-03-15 Thread Helmut Grohne
Package: chromium
Version: 122.0.6261.128-1
Severity: serious

In recent versions, chromium started downloading a file
~/.config/chromium/screen_ai/*/libchromescreenai.so. Evidently, the
source of this shared object is not in the chromium source package. I
think the chromium package - being in main - should not download a
shared object and run it without user confirmation.

Helmut



Bug#1066190: mtree-netbsd FTBFS due to -Werror=implicit-function-declaration

2024-03-13 Thread Helmut Grohne
Source: mtree-netbsd
Version: 20180822-7
Severity: serious
Tags: ftbfs

As part of the time64 transition, -Werror=implicit-function-declaration
was enabled in default build flags. This makes mtree-netbsd fail to
build from source. A build ends with:

| gcc -DHAVE_CONFIG_H -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DBSD4_4 
-Dst_mtimespec=st_mtim -I. -I. -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c 
getid.c
| getid.c: In function ‘setup_getid’:
| getid.c:163:13: error: implicit declaration of function ‘pwcache_groupdb’ 
[-Werror=implicit-function-declaration]
|   163 | if (pwcache_groupdb(gi_setgroupent, gi_endgrent,
|   | ^~~
| getid.c:165:16: error: implicit declaration of function ‘pwcache_userdb’ 
[-Werror=implicit-function-declaration]
|   165 | || pwcache_userdb(gi_setpassent, gi_endpwent,
|   |^~
| cc1: some warnings being treated as errors
| make[1]: *** [Makefile:30: getid.o] Error 1
| make[1]: Leaving directory '/<>'
| dh_auto_build: error: make -j1 returned exit code 2
| make: *** [debian/rules:18: build] Error 255
| dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

Helmut



Bug#1066183: mate-equake-applet FTBFS due to -Werror=implicit-function-declaration

2024-03-13 Thread Helmut Grohne
Source: mate-equake-applet
Version: 1.3.8.2-1.1
Severity: serious
Tags: ftbfs

Due to the time64 transition -Werror=implicit-function-declaration was
turned on by default in unstable. This change makes mate-equake-applet
fail to build from source. Relevant snippet:

| equake_processdata.c: In function ‘convert_localtime’:
| equake_processdata.c:1105:3: error: implicit declaration of function 
‘strptime’; did you mean ‘strftime’? [-Werror=implicit-function-declaration]
|  1105 |   strptime(datetime, "%Y %m %d %H %M %S %z", tp); /* year month day 
hour minute second */
|   |   ^~~~
|   |   strftime

Helmut



Bug#1065214: NMU iproute2

2024-03-12 Thread Helmut Grohne
Control: tags -1 + pending

Hi Luca,

this bug causes issues to /usr-move. iproute2 pulls libtirpc3 and
nothing pulls libtirpc3t64. Hence, the we still include libtirpc3, which
is aliased rather than libtirpc3t64, which is /usr-moved. To fix this,
I'd need a binNMU of iproute2, but this bug would cause that binNMU to
be broken. Hence, I rather fix this bug.

I used reproducible builds to see that iproute2 really only uses tirpc
and not nsl. Hence I'm uploading the simple fix of explicitly depending
on libtirpc-dev. NMU diff attached. No delay in accordance with DevRef
(rc bug older than 7 days with no maintainer activity).

Helmut
diff -Nru iproute2-6.7.0/debian/changelog iproute2-6.7.0/debian/changelog
--- iproute2-6.7.0/debian/changelog 2024-01-22 13:24:29.0 +0100
+++ iproute2-6.7.0/debian/changelog 2024-03-12 09:03:30.0 +0100
@@ -1,3 +1,10 @@
+iproute2 (6.7.0-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Explicitly depend on libtirpc-dev. (Closes: #1065214)
+
+ -- Helmut Grohne   Tue, 12 Mar 2024 09:03:30 +0100
+
 iproute2 (6.7.0-2) unstable; urgency=medium
 
   * Backport fix for 'ss' output
diff -Nru iproute2-6.7.0/debian/control iproute2-6.7.0/debian/control
--- iproute2-6.7.0/debian/control   2024-01-12 22:09:28.0 +0100
+++ iproute2-6.7.0/debian/control   2024-03-12 09:02:10.0 +0100
@@ -22,6 +22,7 @@
libelf-dev,
libmnl-dev,
libselinux1-dev,
+   libtirpc-dev,
linux-libc-dev,
pkg-config,
po-debconf,


Bug#1066078: vigor FTBFS due to -Werror=implicit-function-declaration

2024-03-12 Thread Helmut Grohne
Source: vigor
Version: 0.016-31
Severity: serious
Tags: ftbfs

Due to time64 and thus enabling -Werror=implicit-function-declaration,
vigor now fails to build from source:

| ../../build/../cl/cl_screen.c: In function ‘cl_screen’:
| ../../build/../cl/cl_screen.c:112:25: error: implicit declaration of function 
‘tputs’; did you mean ‘puts’? [-Werror=implicit-function-declaration]
|   112 | tputs(tgoto(clp->cup,
|   | ^
|   | puts
| ../../build/../cl/cl_screen.c:112:31: error: implicit declaration of function 
‘tgoto’ [-Werror=implicit-function-declaration]
|   112 | tputs(tgoto(clp->cup,
|   |   ^
| ../../build/../cl/cl_funcs.c: In function ‘cl_attr’:
| ../../build/../cl/cl_funcs.c:125:39: error: implicit declaration of function 
‘tputs’; did you mean ‘puts’? [-Werror=implicit-function-declaration]
|   125 | (void)tputs(clp->smcup, 1, 
cl_putchar);
|   |   ^
|   |   puts
| ../../build/../cl/cl_read.c: In function ‘block_for_read’:
| ../../build/../cl/cl_read.c:137:9: error: implicit declaration of function 
‘mega_select’ [-Werror=implicit-function-declaration]
|   137 | mega_select(fd+1, , NULL, NULL, NULL);
|   | ^~~
| ../../build/../cl/cl_funcs.c: In function ‘cl_ex_adjust’:
| ../../build/../cl/cl_funcs.c:350:37: error: implicit declaration of function 
‘tgoto’; did you mean ‘v_lgoto’? [-Werror=implicit-function-declaration]
|   350 | (void)tputs(tgoto(clp->cup,
|   | ^
|   | v_lgoto
| ../../build/../cl/cl_funcs.c: In function ‘cl_bell’:
| ../../build/../cl/cl_funcs.c:214:23: warning: ignoring return value of 
‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
|   214 | (void)write(STDOUT_FILENO, "\07", 1);   /* \a 
*/
|   |   ^~
| ../../build/../cl/cl_bsd.c: In function ‘setupterm’:
| ../../build/../cl/cl_bsd.c:176:22: error: implicit declaration of function 
‘tgetent’; did you mean ‘getenv’? [-Werror=implicit-function-declaration]
|   176 | if ((*errp = tgetent(buf, ttype)) > 0) {
|   |  ^~~
|   |  getenv

Helmut



Bug#1066057: libhalide17-1-dev has an undeclared file conflict

2024-03-11 Thread Helmut Grohne
Package: libhalide17-1-dev
Version: 17.0.1-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libhalide17-0-dev

libhalide17-1-dev has an undeclared file conflict. This may result in an
unpack error from dpkg.

The files
 * /usr/lib/x86_64-linux-gnu/cmake/Halide17/Halide-shared-deps.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/Halide17/Halide-shared-targets-release.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/Halide17/Halide-shared-targets.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/Halide17/HalideConfig.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/Halide17/HalideConfigVersion.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/HalideHelpers17/FindHalide_WebGPU.cmake
 * 
/usr/lib/x86_64-linux-gnu/cmake/HalideHelpers17/Halide-Interfaces-release.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/HalideHelpers17/Halide-Interfaces.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/HalideHelpers17/HalideGeneratorHelpers.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/HalideHelpers17/HalideHelpersConfig.cmake
 * 
/usr/lib/x86_64-linux-gnu/cmake/HalideHelpers17/HalideHelpersConfigVersion.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/HalideHelpers17/HalideTargetHelpers.cmake
 * /usr/lib/x86_64-linux-gnu/cmake/HalideHelpers17/TargetExportScript.cmake
 * /usr/lib/x86_64-linux-gnu/halide17/adams2019_retrain_cost_model
 * /usr/lib/x86_64-linux-gnu/halide17/adams2019_weightsdir_to_weightsfile
 * /usr/lib/x86_64-linux-gnu/halide17/anderson2021_retrain_cost_model
 * /usr/lib/x86_64-linux-gnu/halide17/anderson2021_weightsdir_to_weightsfile
 * /usr/lib/x86_64-linux-gnu/halide17/featurization_to_sample
 * /usr/lib/x86_64-linux-gnu/halide17/get_host_target
 * /usr/lib/x86_64-linux-gnu/halide17/libautoschedule_adams2019.so
 * /usr/lib/x86_64-linux-gnu/halide17/libautoschedule_anderson2021.so
 * /usr/lib/x86_64-linux-gnu/halide17/libautoschedule_li2018.so
 * /usr/lib/x86_64-linux-gnu/halide17/libautoschedule_mullapudi2016.so
 * /usr/lib/x86_64-linux-gnu/libHalide17.so
 * /usr/lib/x86_64-linux-gnu/libHalidePyStubs17.a
are contained in the packages
 * libhalide17-0-dev/17.0.0-2 as present in trixie
 * libhalide17-1-dev/17.0.1-1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1066054: spacearyarya FTBFS due to -Werror=implicit-function-declaration

2024-03-11 Thread Helmut Grohne
Source: spacearyarya
Version: 1.0.2-8
Severity: serious
Tags: ftbfs

Due to the time64 transition, -Werror=-implicit-function-declaration was
enabled in default build flags and this makes spacearyarya FTBFS: Please
include the time.h header.

| gcc -DPACKAGE_NAME=\"SpaceAryarya-KXL\" 
-DPACKAGE_TARNAME=\"spacearyarya-kxl\" -DPACKAGE_VERSION=\"1.0.2\" 
-DPACKAGE_STRING=\"SpaceAryarya-KXL\ 1.0.2\" 
-DPACKAGE_BUGREPORT=\"m...@kxl.hn.or\" -DPACKAGE_URL=\"\" 
-DPACKAGE=\"spacearyarya-kxl\" -DVERSION=\"1.0.2\" -DHAVE_LIBKXL=1 
-DHAVE_LIBKXL=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 
-DDATA_PATH=\"/usr/share/games/spacearyarya/data\" 
-DBMP_PATH=\"/usr/share/games/spacearyarya/bmp\" 
-DWAV_PATH=\"/usr/share/games/spacearyarya/wav\" -DTITLE=\"spacearyarya-kxl\ 
1.0.2\" -I.   -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 
-Werror=implicit-function-declaration -ffile-prefix-map=/<>=. 
-fstack-protector-strong -fstack-clash-protection -Wformat 
-Werror=format-security -fcf-protection -c -o main.o main.c
| main.c: In function ‘options’:
| main.c:144:10: error: implicit declaration of function ‘strcmp’ 
[-Werror=implicit-function-declaration]
|   144 | if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
|   |  ^~
| main.c:7:1: note: include ‘’ or provide a declaration of ‘strcmp’
| 6 | #include "extern.h"
|   +++ |+#include 
| 7 | 
| main.c: In function ‘main’:
| main.c:179:9: error: implicit declaration of function ‘time’ 
[-Werror=implicit-function-declaration]
|   179 |   srand(time(NULL));
|   | ^~~~
| main.c:7:1: note: ‘time’ is defined in header ‘’; did you forget to 
‘#include ’?
| 6 | #include "extern.h"
|   +++ |+#include 
| 7 | 
| misc.c: In function ‘ClearAndGameOver’:
| misc.c:107:5: error: implicit declaration of function ‘ScoreRanking’ 
[-Werror=implicit-function-declaration]
|   107 | ScoreRanking();
|   | ^~~~
| ranking.c: In function ‘ReadScore’:
| ranking.c:41:5: warning: ignoring return value of ‘fscanf’ declared with 
attribute ‘warn_unused_result’ [-Wunused-result]
|41 | fscanf(fp, "%"SCNu32, &(Root->HiScore));
|   | ^~~
| ranking.c:43:7: warning: ignoring return value of ‘fscanf’ declared with 
attribute ‘warn_unused_result’ [-Wunused-result]
|43 |   fscanf(fp, "%"SCNu32" %"SCNu8" %s",
|   |   ^~~
|44 |  &(Ranking[i]->Score),
|   |  ~
|45 |  &(Ranking[i]->Stage),
|   |  ~
|46 |  Ranking[i]->Name);
|   |  ~

Helmut



Bug#1066053: sgrep FTBFS due to -Werror=implicit-function-declaration

2024-03-11 Thread Helmut Grohne
Source: sgrep
Version: 1.94a-5
Severity: serious
Tags: ftbfs

Due to the time64 transition, default build flags now include
-Werror=implicit-function-declaration. This happens to cause a build
failure for sgrep:

| gcc -DHAVE_CONFIG_H -I. -DDATADIR="\"/usr/share/sgrep\"" 
-DSYSCONFDIR="\"/etc\""  -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 
-Werror=implicit-function-declaration -ffile-prefix-map=/<>=. 
-fstack-protector-strong -fstack-clash-protection -Wformat 
-Werror=format-security -fcf-protection -c -o index_main.o index_main.c
| sysdeps.c: In function ‘check_memory_leaks’:
| sysdeps.c:489:49: warning: format ‘%d’ expects argument of type ‘int’, but 
argument 4 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
|   489 | "Memory leak: %d blocks having %d bytes total size\n",
|   |~^
|   | |
|   | int
|   |%ld
| sysdeps.c:496:32: warning: format ‘%d’ expects argument of type ‘int’, but 
argument 5 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
|   496 | "\t%s:%d: %d 
bytes\n",block->file,block->line,block->size);
|   |   ~^  
~~~
|   ||  
 |
|   |int
 size_t {aka long unsigned int}
|   |   %ld
| index_main.c: In function ‘parse_index_options’:
| index_main.c:84:21: error: implicit declaration of function ‘strcmp’ 
[-Werror=implicit-function-declaration]
|84 | if (strcmp(*argv,"--")==0) return i+1;
|   | ^~
| index_main.c:2:1: note: include ‘’ or provide a declaration of 
‘strcmp’
| 1 | #include "sgrep.h"
|   +++ |+#include 
| 2 |
| index_main.c:138:41: warning: macro "__DATE__" might prevent reproducible 
builds [-Wdate-time]
|   138 | VERSION,__DATE__);
|   | ^~~~
| index_main.c: In function ‘index_main’:
| index_main.c:241:13: error: implicit declaration of function ‘index_query’ 
[-Werror=implicit-function-declaration]
|   241 | if (index_query(,argc-end_options,argv+end_options)
|   | ^~~
| cc1: some warnings being treated as errors
| make[2]: *** [Makefile:488: index_main.o] Error 1

Helmut



Bug#1065696: Fwd: E: unsupported command: poweroff.no-molly-guard

2024-03-08 Thread Helmut Grohne
Control: forcemerge 1059691 -1

On Fri, Mar 08, 2024 at 09:37:05PM -0800, Francois Marier wrote:
> Hi Helmut,
> 
> This looks like an unexpected edge case from the recent usr-merge changes:
> 
>   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1065696
> 
> It sounds like a system using sysvinit, instead of systemd, which was
> recently upgraded using usrmerge.

Yes, I think this is a duplicate of #1059691. Could you give feedback on
the contained patch?

Helmut



Bug#1064852: incus: missing depends on iproute2

2024-03-05 Thread Helmut Grohne
On Tue, Mar 05, 2024 at 12:00:15PM +, Mathias Gibbens wrote:
> to add iproute2. I would be interested to know more about what
> environment Incus is being used in that doesn't have the `ip` command
> available.

debvm-create --include=incus
# This should have created a file named rootfs.ext4.
debvm-run

>   My normal testing setup for Incus is a fresh, minimal expert install
> of sid via the netinst iso. During the install of the VM, I only
> install the base system and deselect the "standard system utilities"
> group. I do use DHCP, which looks like that might be responsible for
> pulling in iproute2 for me. If there's a way to create an even more
> minimal install, I'd be happy to incorporate that into my testing
> routine.

Turns out your minimal expert install is not so minimal. debvm tends to
give you a smaller but still functional installation. I think adding
--variant=important to debvm-create roughly gets you the minimal expert
installation, but creating the machine takes slightly longer and uses
more disk space of course.

Rather than adding debvm on top of your testing, I think adding
autopkgtests with isolation-machine should get you more automatic
coverage. Possibly such tests need to be explicitly allowed by debci
folks and currently are only available on amd64.

Helmut



Bug#1065416: [Cross-toolchain-base-devs] Bug#1065416: linux-libc-dev claims to provide linux-libc-dev-ARCH-cross, but it doesn't do that completely

2024-03-05 Thread Helmut Grohne
Hi Bastian,

On Mon, Mar 04, 2024 at 11:04:22PM +0100, Bastian Blank wrote:
> > Arguably, a cross toolchain build should probably search
> > /usr/include/. I went back and forth a bit with Matthias
> > about whether we could add this and did not fully understand his
> > reasons, but there is one technical reason we want to avoid it for now.
> > We can have both libc6-dev:TARGET and libc6-dev-TARGET-cross installed
> > and these packages can have differing versions. When that happens and we
> > search both /usr//include and /usr/include/, we'd
> > mix two glibc versions with usually bad results (been there).
> 
> But this is a search path.  If a file exists in one, the second one is
> not found.  So nothing can happen even from version skew.

The problem arises in the reverse sense. If a file does not exist in
one, it is searched in the second and erroneously may be found. That may
make tests pass that should not pass and typically causes a link failure
later. While I do not have a concrete example at hand, I have seen this
pattern repeatedly and generally favour moving stuff out of /usr/include
to avoid this kind of confusion that causes difficult to debug problems.
This also motivates #798955 (in addition to the problem with file
conflicts).

> > The other aspect here is that it is not sufficient to add
> > /usr/include/ to the search path as you also need
> > /usr/include to get a complete linux kernel headers experience. We
> > definitely do not want to add /usr/include, because that is known to
> > misguide configure tests performed for the target architecture.
> 
> We are talking about the toolchain itself.  What configure tests could
> that be?  Or is that premature optimization of the gcc build?

The one case I really do remember quite well is sanitizers. These should
not be enabled in the earlier toolchain stages and failing to disable
them tends to cause linker failures. I don't think it matches the
concrete situation exactly though. You also make a good case in your
followup reporting that gcc-13-cross actually builds.

> You just said that the search path used during the build of the
> toolchain and the one for everything else are unrelated.  So you are
> free to create $BUILD/tmp-include with symlinks for asm, asm-generic,
> linux.
> 
> The toolchain as installed already finds all headers.  So I still don't
> see why we need this in the final system.

I find this argument fairly convincing and hope Matthias also does.

Thank you

Helmut



Bug#1065416: [Cross-toolchain-base-devs] Bug#1065416: linux-libc-dev claims to provide linux-libc-dev-ARCH-cross, but it doesn't do that completely

2024-03-04 Thread Helmut Grohne
Hi Bastian,

On Mon, Mar 04, 2024 at 12:30:09PM +0100, Bastian Blank wrote:
> On Mon, Mar 04, 2024 at 12:07:15PM +0100, Matthias Klose wrote:
> > On 04.03.24 11:29, Bastian Blank wrote:
> > > On Mon, Mar 04, 2024 at 08:53:11AM +0100, Matthias Klose wrote:
> > > > However the links in /usr/DEB_HOST_GNU_TYPE/include are missing.
> > > 
> > > Please be a bit more precise, there are no symlinks in this directory.
> > > | # dpkg -S /usr/alpha-linux-gnu/include/asm/a.out.h
> > > | linux-libc-dev-alpha-cross: /usr/alpha-linux-gnu/include/asm/a.out.h
> > > | # find /usr/alpha-linux-gnu/include/ -type l
> > > | #
> > yes, that is the problem. the cross gcc expects these headers in
> > /usr/alpha-linux-gnu/include, not in the header location for the host.
> 
> Please show your problem with a log, my crystal ball is broken.

This very much was not obvious to me either. I've now talked to Matthias
and believe I can explain the problem.

The packaged gcc cross toolchain uses a sysroot during its own build
still. As it is implemented now, it searches /usr//include, but
not /usr/include/. So quite fundamentally, the Provides that
we two agreed do break the build of cross toolchains right now.

Arguably, a cross toolchain build should probably search
/usr/include/. I went back and forth a bit with Matthias
about whether we could add this and did not fully understand his
reasons, but there is one technical reason we want to avoid it for now.
We can have both libc6-dev:TARGET and libc6-dev-TARGET-cross installed
and these packages can have differing versions. When that happens and we
search both /usr//include and /usr/include/, we'd
mix two glibc versions with usually bad results (been there).

While we might consider adding /usr/include/ to the cross
toolchain build search path later, it is not something we can do now and
before doing that, we need to better understand Matthias' reasons for
keeping these separate as well.

The other aspect here is that it is not sufficient to add
/usr/include/ to the search path as you also need
/usr/include to get a complete linux kernel headers experience. We
definitely do not want to add /usr/include, because that is known to
misguide configure tests performed for the target architecture. In
principle, we could extend the symlink farm in linux-libc-dev to also
have a lot of /usr/include//linux -> ../linux symlinks
(assuming that no other package ever installs to /usr/include/linux,
which is a property violated by aufs-dev and oss4-dev).

So at least for now, I am convinced that we will need
/usr//include to be provided by the package providing
linux-libc-dev-arch-cross.

As these are only necessary for building the cross toolchains, we
probably don't want these in the main linux-libc-dev package. So how
about adding a linux-libc-dev-cross package with yet more symlinks? Then
we can move the provides over to the linux-libc-dev-cross package and
that way repair the cross toolchain builds.

I requested that linux-libc-dev provides these for bootstrapping to know
which architectures linux-libc-dev actually supports. I don't need these
provides exactly, I just need a mechanism to answer the question "Does
linux-libc-dev work for a particular architecture?" from the binary
package metadata, so we might just change the Provides there to
linux-libc-dev-arch dropping the -cross suffix that traditionally
identified packages putting stuff into /usr/. Does that sound
reasonable to you?

That still leaves the question of which package would have to build that
new linux-libc-dev-cross. The two obvious answers are linux and
cross-toolchain-base. Do you have a preference here?

I hope this all makes more sense now.

Helmut



Bug#1065258: 6 packages from starpu-contrib have an undeclared file conflict

2024-03-02 Thread Helmut Grohne
Package: 
libstarpu-contribrm-1.4-1t64,libstarpu-contribfft-1.4-1t64,libstarpu-contribmpi-1.4-3t64,libstarpu-contrib-openmp-llvm-1.4-1t64,libsocl-contrib-1.4-1t64,libstarpu-contrib-1.4-4t64
Version: 1.4.3+dfsg-3
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libsocl-contrib-1.4-1 libstarpu-contrib-1.4-4 
libstarpu-contrib-openmp-llvm-1.4-1 libstarpu-contribfft-1.4-1 
libstarpu-contribmpi-1.4-3 libstarpu-contribrm-1.4-1

6 packages from starpu-contrib have an undeclared file conflict. This
may result in an unpack error from dpkg.

The files
 * /usr/lib/x86_64-linux-gnu/libsocl-1.4.so.1
 * /usr/lib/x86_64-linux-gnu/libsocl-1.4.so.1.0.1
are contained in the packages
 * libsocl-contrib-1.4-1/1.4.3+dfsg-2 as present in trixie
 * libsocl-contrib-1.4-1t64/1.4.3+dfsg-3 as present in unstable

The files
 * /usr/lib/x86_64-linux-gnu/libstarpu-1.4.so.4
 * /usr/lib/x86_64-linux-gnu/libstarpu-1.4.so.4.0.0
are contained in the packages
 * libstarpu-contrib-1.4-4/1.4.3+dfsg-2 as present in trixie
 * libstarpu-contrib-1.4-4t64/1.4.3+dfsg-3 as present in unstable

The files
 * /usr/lib/x86_64-linux-gnu/libstarpu_openmp_llvm-1.4.so.1
 * /usr/lib/x86_64-linux-gnu/libstarpu_openmp_llvm-1.4.so.1.0.0
are contained in the packages
 * libstarpu-contrib-openmp-llvm-1.4-1/1.4.3+dfsg-2 as present in trixie
 * libstarpu-contrib-openmp-llvm-1.4-1t64/1.4.3+dfsg-3 as present in unstable

The files
 * /usr/lib/x86_64-linux-gnu/libstarpufft-1.4.so.1
 * /usr/lib/x86_64-linux-gnu/libstarpufft-1.4.so.1.0.0
are contained in the packages
 * libstarpu-contribfft-1.4-1/1.4.3+dfsg-2 as present in trixie
 * libstarpu-contribfft-1.4-1t64/1.4.3+dfsg-3 as present in unstable

The files
 * /usr/lib/x86_64-linux-gnu/libstarpumpi-1.4.so.3
 * /usr/lib/x86_64-linux-gnu/libstarpumpi-1.4.so.3.0.0
are contained in the packages
 * libstarpu-contribmpi-1.4-3/1.4.3+dfsg-2 as present in trixie
 * libstarpu-contribmpi-1.4-3t64/1.4.3+dfsg-3 as present in unstable

The files
 * /usr/lib/x86_64-linux-gnu/libstarpurm-1.4.so.1
 * /usr/lib/x86_64-linux-gnu/libstarpurm-1.4.so.1.0.0
are contained in the packages
 * libstarpu-contribrm-1.4-1/1.4.3+dfsg-2 as present in trixie
 * libstarpu-contribrm-1.4-1t64/1.4.3+dfsg-3 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1065146: sysvinit-core: /usr/sbin/halt and others ineffectively diverted (DEP17)

2024-03-01 Thread Helmut Grohne
Control: severity -1 important

Hi Lorenzo,

On Fri, Mar 01, 2024 at 01:18:38PM +0100, Lorenzo wrote:
> I'm missing something for sure here, but sysvinit-core has a conflict
> with systemd-sysv and both bfh-container and progress-linux-container
> depends on systemd-sysv so they already should not be installed at the
> same time in a system regardless of the versioned conflicts you are
> adding.. ?

Thank you for your attention to detail. Your analysis is mostly correct.
In particular, the declared dependencies on systemd-sysv make the
failure mode very unlikely - hence downgrading the bug.

Stil Depends does not impact the unpack phase. In principle, you may
have a system with bfh-container on bookworm (thus having systemd-sysv)
and then upgrade to trixie while at the same time converting to
sysvinit-core (unlikely). When doing that, bfh-container may get into a
deconfigured state, systemd-sysv can be removed and sysvinit-core may be
unpacked before bfh-container is actually removed. In this scenario,
bfh-container.postrm would cause /usr/sbin/halt to vanish. As such, I
think we should apply Conflicts here to avoid the underlying situation.

Helmut



Bug#1065022: libglib2.0-0t64: t64 transition breaks the systems

2024-03-01 Thread Helmut Grohne
On Thu, Feb 29, 2024 at 06:53:56AM +0100, Paul Gevers wrote:
> Well, officially downgrading isn't supported (although it typically works)
> *and* losing files is one of the problems of our merged-/usr solution (see
> [1]). I *suspect* this might be the cause. We're working hard (well, helmut
> is) to protect us and our users from loosing files on upgrades. We don't
> protect against downgrades.

As much as we like blaming all lost files on the /usr-move, this is not
one them. If you are downgrading from to a package that formerly has
been replaced, you always have lost files and you always had to
reinstall the package.

While t64 has quite some interactions with the /usr-move, I am closely
monitoring the situation have have been filing multiple bugs per day
recently about the relevant peculiarities. I don't think any of the
fallout we see here is reasonably attributable to /usr-move. The most
recent practical issues I've seen was related to image building tools
such as live-build and grml. When it comes to lost files, we're not
addressing them based on user reports (as there are practically none),
but on rigid analysis preventing users from experiencing them in the
first place.

Helmut



Bug#1065146: sysvinit-core: /usr/sbin/halt and others ineffectively diverted (DEP17)

2024-02-29 Thread Helmut Grohne
Package: sysvinit-core
Version: 3.08-7
Severity: serious
Tags: patch
User: helm...@debian.org
Usertags: dep17p3
Control: affects -1 + bfh-container progress-linux-container

Hi,

thanks for applying my earlier /usr-move patch #1060139. Since authoring
it, the mitigations for ineffective diversions have been added to
diverters, but one missing piece remains. We must not upgrade
sysvinit-core before the diverters have duplicated their diversions or
we may cause file loss. To achieve this, sysvinit-core needs to gain two
more versioned Conflicts beyond molly-guard to be found in the attached
patch.

Helmut
diff --minimal -Nru sysvinit-3.08/debian/changelog 
sysvinit-3.08/debian/changelog
--- sysvinit-3.08/debian/changelog  2024-02-29 12:22:45.0 +0100
+++ sysvinit-3.08/debian/changelog  2024-03-01 07:53:14.0 +0100
@@ -1,3 +1,11 @@
+sysvinit (3.08-7.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Update versioned Conflicts to handle DEP17 ineffective diversions for more
+diverters. (Closes: #-1)
+
+ -- Helmut Grohne   Fri, 01 Mar 2024 07:53:14 +0100
+
 sysvinit (3.08-7) unstable; urgency=medium
 
   [ Johannes Schauer Marin Rodrigues ]
diff --minimal -Nru sysvinit-3.08/debian/control sysvinit-3.08/debian/control
--- sysvinit-3.08/debian/control2024-02-29 12:22:45.0 +0100
+++ sysvinit-3.08/debian/control2024-03-01 07:53:12.0 +0100
@@ -32,6 +32,8 @@
  systemd-sysv,
  runit-init,
  molly-guard (<< 0.8.3~),
+ bfh-container (<< 20211009-24~),
+ progress-linux-container (<< 20221002-12~),
 Breaks:
  manpages-es (<< 4.15.0-9~),
  manpages-fr (<< 4.15.0-9~),


Bug#1065145: guacd: internal aliasing conflict on guacd.service

2024-02-29 Thread Helmut Grohne
Package: guacd
Version: 1.3.0-1.2
Severity: serious
Tags: patch
User: helm...@debian.org
Usertags: dep17
X-Debbugs-Cc: vor...@debian.org

I changed dh_installsystemd to install systemd units below /usr/lib
rather than /lib a while back. Back then, I rebuilt all possibly
affected packages and guacd happened to FTBFS. Hence, it was ignored in
my analysis. Now the time64 transition fixed the FTBFS and guacd
installs both /lib/systemd/system/guacd.service and
/usr/lib/systemd/system/guacd.service. Doing so is a policy violation
and causes an installation failure on /usr-merged systems:

Unpacking guacd (1.3.0-1.2) ...
dpkg: error processing archive 
/tmp/apt-dpkg-install-JKIS2y/25-guacd_1.3.0-1.2_amd64.deb (--unpack):
 unable to install new version of '/usr/lib/systemd/system/guacd.service': No 
such file or directory

I'm attaching a patch fixing this issue.

Helmut
diff --minimal -Nru guacamole-server-1.3.0/debian/changelog 
guacamole-server-1.3.0/debian/changelog
--- guacamole-server-1.3.0/debian/changelog 2024-02-29 07:18:24.0 
+0100
+++ guacamole-server-1.3.0/debian/changelog 2024-03-01 07:40:03.0 
+0100
@@ -1,3 +1,10 @@
+guacamole-server (1.3.0-1.3) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Install guacd.service only once. (Closes: #-1)
+
+ -- Helmut Grohne   Fri, 01 Mar 2024 07:40:03 +0100
+
 guacamole-server (1.3.0-1.2) unstable; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru guacamole-server-1.3.0/debian/guacd.install 
guacamole-server-1.3.0/debian/guacd.install
--- guacamole-server-1.3.0/debian/guacd.install 2022-02-07 19:02:10.0 
+0100
+++ guacamole-server-1.3.0/debian/guacd.install 2024-03-01 07:39:57.0 
+0100
@@ -1,4 +1,3 @@
 bin/guacctl /usr/bin
 /usr/sbin/guacd
 /usr/share/man/man8/guacd.8
-debian/guacd.service /lib/systemd/system/


Bug#1065126: libelk0t64 has an undeclared file conflict

2024-02-29 Thread Helmut Grohne
Package: libelk0t64
Version: 3.99.8-5
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libelk0

libelk0t64 has an undeclared file conflict. This may result in an unpack
error from dpkg.

The files
 * /usr/lib/x86_64-linux-gnu/libelk-xlib.so.0
 * /usr/lib/x86_64-linux-gnu/libelk-xlib.so.0.0.0
 * /usr/lib/x86_64-linux-gnu/libelk-xt.so.0
 * /usr/lib/x86_64-linux-gnu/libelk-xt.so.0.0.0
 * /usr/lib/x86_64-linux-gnu/libelk.so.0
 * /usr/lib/x86_64-linux-gnu/libelk.so.0.0.0
are contained in the packages
 * libelk0/3.99.8-4.2+b1 as present in bookworm|bullseye|trixie|unstable
 * libelk0t64/3.99.8-5 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1065125: libchipcard8 has an undeclared file conflict

2024-02-29 Thread Helmut Grohne
Package: libchipcard6t64
Version: 5.99.1beta-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libchipcard8
X-Debbugs-Cc: Benjamin Drung , vor...@debian.org

libchipcard6t64 has an undeclared file conflict. This may result in an
unpack error from dpkg.

The files
 * /usr/lib/x86_64-linux-gnu/gwenhywfar/plugins/79/ct/chiptanusb.so
 * /usr/lib/x86_64-linux-gnu/gwenhywfar/plugins/79/ct/chiptanusb.xml
 * /usr/lib/x86_64-linux-gnu/gwenhywfar/plugins/79/ct/ddvcard.so
 * /usr/lib/x86_64-linux-gnu/gwenhywfar/plugins/79/ct/ddvcard.xml
 * /usr/lib/x86_64-linux-gnu/gwenhywfar/plugins/79/ct/starcoscard.so
 * /usr/lib/x86_64-linux-gnu/gwenhywfar/plugins/79/ct/starcoscard.xml
 * /usr/lib/x86_64-linux-gnu/gwenhywfar/plugins/79/ct/zkacard.so
 * /usr/lib/x86_64-linux-gnu/gwenhywfar/plugins/79/ct/zkacard.xml
are contained in the packages
 * libchipcard6t64/5.1.6-1.1 as present in unstable
 * libchipcard8/5.99.1beta-1 as present in experimental

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

This actually is fallout from the time64 transition. Both libchipcard6
and libchipcard8 declared "Provides: libgwenhywfar79-plugins-ct" and
"Conflicts: libgwenhywfar79-plugins-ct". However, libchipcard6t64 has
changed this to libgwenhywfar-plugins-ct. The change in virtual facility
causes the conflicts to no longer take effect. Hence filing this with
libchipcard6t64 rather than libchipcard8.

Kind regards

Helmut



Bug#1065017: unuser: error while loading shared libraries: libpam.so.0

2024-02-29 Thread Helmut Grohne
On Thu, Feb 29, 2024 at 08:14:30AM +0100, Helmut Grohne wrote:
> Ideally, we'd get a reproducer using
> 
>mmdebstrap SOMERELEASE /dev/null --variant=apt --include=SOMEPACKAGES 
> --customize-hook='echo SOURCES_LIST_LINE > "$1/etc/apt/sources.list"' 
> --chrooted-customize-hook="apt-get update" 
> --chrooted-customize-hook="aptitude dist-upgrade"

mmdebstrap trixie /dev/null --variant=apt --include debian-security-support 
--customize-hook='sed -i -e s/trixie/sid/ "$1/etc/apt/sources.list"' 
--chrooted-customize-hook="apt-get update && apt-get install 
debian-security-support libpam0t64"

debian-security-support installs a dpkg.cfg.d snipped that configures a
post-invoke action which calls out to runuser. I think what it does is
policy-compliant.

> Technically speaking, I believe this is a Debian policy 3.8 violation.
> runuser is essential and removing libpam0g causes runuser to no longer
> work. I'm tentatively upgrading severity hoping that we don't get into a
> severity pingpong. Julian Andres Klode also thinks that it is likely to
> affect apt.

Yes, it does affect apt as we can see above. While the consequences are
not really fatal in this case, we still have an essential runuser that
happens to not work briefly.

I believe pam will have to be reverted and implemented as dual ABI
instead.

And I really expect the same to hold for libtirpc. We just haven't seen
the user reports for that yet as it hasn't built.

Helmut



Bug#1064298: closed by Debian FTP Masters (reply to Steve Langasek ) (Bug#1064298: fixed in hamlib 4.5.5-3.1~exp2)

2024-02-28 Thread Helmut Grohne
Control: reopen -1
Control: found -1 4.5.5-3.1

On Wed, Feb 21, 2024 at 04:54:05AM +, Debian Bug Tracking System wrote:
> #1064298: libhamlib4t64: ineffective replaces due to /usr-move
> 
> It has been closed by Debian FTP Masters  
> (reply to Steve Langasek ).

The fix for this bug has gone missing from the 4.5.5-3.1 upload to
unstable.

Helmut



Bug#1064997: tdfsb: fails to trap errors from ./compile.sh

2024-02-28 Thread Helmut Grohne
Source: tdfsb
Version: 0.0.10-3
Severity: serious
Justification: policy 4.6

tdfsb's compile.sh fails to terminate with an error when one of the
invoked build commands fails. This violates Debian policy section 4.6. A
relatively simple counter measure would be adding "set -e" to the
script.

Helmut



Bug#1061984: libboinc-app7t64 and libboinc7t64 have an undeclared file conflict

2024-02-28 Thread Helmut Grohne
Control: reopen -1

On Tue, Jan 30, 2024 at 01:37:42PM -0800, Steve Langasek wrote:
> > libboinc-app7t64 and libboinc7t64 have an undeclared file conflict. This
> > may result in an unpack error from dpkg.
> 
> Sigh.  Thanks for the Cc:.
> 
> That's because boinc has an idiosyncratic debian/control.in that we failed
> to patch, and as a result the successful patching of debian/control was
> clobbered.
> 
> I'm uploading a follow-up NMU to experimental and attaching an updated patch
> for the complete delta from the version in unstable.

Not sure what happened here exactly. The current libboinc7t64 in
unstable version 7.24.1+dfsg-2.1 has the following it is uploaded
debian/control file (from the dsc):

| Package: libboinc7t64
| Architecture: any
| Section: libs
| Provides: libboinc
| Multi-Arch: same
| Pre-Depends: ${misc:Pre-Depends}
| Breaks: boinc-dev (<< 7.0.28+dfsg-3),
| libboinc (<= 7.0.34+dfsg-1)
| Replaces: boinc-dev (<< 7.0.28+dfsg-3),
|   libboinc (<= 7.0.34+dfsg-1)
| Depends: ${misc:Depends}, ${shlibs:Depends}
| Description: libraries of BOINC the client depends on

Notably:
 * There is no t64:Provides.
 * There is no Replaces: libboinc7.
 * There is no Breaks: libboinc7

Hence reopening the bug.

Helmut



Bug#1064852: incus: missing depends on iproute2

2024-02-26 Thread Helmut Grohne
Control: tags -1 + moreinfo

Hi Mathias,

On Tue, Feb 27, 2024 at 01:33:08AM +, Mathias Gibbens wrote:
>   iproute2 is Priority: important, which according to Policy §2.5 means
> that it is generally expected to be present on a Debian system. Do you
> have a specific use case where for some reason you don't have iproute2
> installed?

While that means iproute2 is installed by default, it still does not
mean you can rely on its presence. It is "Essential: yes" that allows
you to skip emitting the dependency. Users are entitled to remove
important packages and often do so.

>   I'm initially reluctant to explicitly list iproute2 as a dependency
> for Incus unless there's some very compelling reason.

I think that it is the failure mode that compells me this to be serious.
When iproute2 is missing all the incus commands hang and you spend a
long time digging why this thing doesn't work at all. If incus were
telling me (on the cli) that iproute2 is missing and offering ways of
working without, I'd see things differently.

Conversely, what is the maintenance cost of having this dependency?

Helmut



Bug#1064852: incus: missing depends on iproute2

2024-02-26 Thread Helmut Grohne
Package: incus
Version: 0.6-1
Severity: serious
Justification: missing dependency

After installing incus any "incus *" command (even incus info) just
hangs with no indication what's wrong. journalctl -u incus eventually
reveals:


Feb 26 16:47:45 testvm incusd[685]: Error: exec: "ip": executable file not 
found in $PATH

After installing iproute2, incus starts and incus commands start
working.

Helmut



Bug#1064851: 4 packages from emacs have an undeclared file conflict on /usr/bin/emacsclient.emacs

2024-02-26 Thread Helmut Grohne
Package: emacs-gtk,emacs-nox,emacs-pgtk,emacs-lucid
Version: 1:29.2+1-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + emacs-bin-common

4 packages from emacs have an undeclared file conflict. This may result
in an unpack error from dpkg.

The file /usr/bin/emacsclient.emacs is contained in the packages
 * emacs-bin-common
   * 1:27.1+1-3.1+deb11u1 as present in bullseye
   * 1:27.1+1-3.1+deb11u2 as present in bullseye-security
   * 1:28.2+1-15 as present in bookworm
   * 1:29.1+1-5 as present in trixie
   * 1:29.1+1-5~bpo12+1 as present in bookworm-backports
 * emacs-gtk/1:29.2+1-1 as present in unstable
 * emacs-lucid/1:29.2+1-1 as present in unstable
 * emacs-nox/1:29.2+1-1 as present in unstable
 * emacs-pgtk/1:29.2+1-1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1064665: ukui-media has an undeclared file conflict on /usr/lib/x86_64-linux-gnu/ukui-control-center/libaudio.so

2024-02-25 Thread Helmut Grohne
Package: ukui-media
Version: 3.1.1.1-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + ukui-control-center

ukui-media has an undeclared file conflict. This may result in an unpack
error from dpkg.

The file /usr/lib/x86_64-linux-gnu/ukui-control-center/libaudio.so is
contained in the packages
 * ukui-control-center
   * 3.0.2-2 as present in bullseye
   * 3.0.5.1-2 as present in bookworm|trixie
 * ukui-media/3.1.1.1-1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1064664: ukui-power-manager has an undeclared file conflict on /usr/lib/x86_64-linux-gnu/ukui-control-center/libpower.so

2024-02-25 Thread Helmut Grohne
Package: ukui-power-manager
Version: 4.0.0.0-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + ukui-control-center

ukui-power-manager has an undeclared file conflict. This may result in
an unpack error from dpkg.

The file /usr/lib/x86_64-linux-gnu/ukui-control-center/libpower.so is
contained in the packages
 * ukui-control-center
   * 3.0.2-2 as present in bullseye
   * 3.0.5.1-2 as present in bookworm|trixie
 * ukui-power-manager/4.0.0.0-1 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1064563: libstd-rust-1.70 has an undeclared file conflict

2024-02-24 Thread Helmut Grohne
Package: libstd-rust-1.70
Version: 1.70.0+dfsg1-7
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libstd-rust-web-1.70

libstd-rust-1.70 has an undeclared file conflict. This may result in an
unpack error from dpkg.

The files
 * /usr/lib/x86_64-linux-gnu/librustc_driver-fccd0c47598ec70b.so
 * /usr/lib/x86_64-linux-gnu/libstd-5aee28526a69a514.so
 * /usr/lib/x86_64-linux-gnu/libtest-ce8cb46549a60304.so
are contained in the packages
 * libstd-rust-1.70/1.70.0+dfsg1-7 as present in trixie|unstable
 * libstd-rust-web-1.70/1.70.0+dfsg1-7~deb12u1 as present in 
bookworm-proposed-updates

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1064564: rustup has an undeclared file conflict

2024-02-24 Thread Helmut Grohne
Package: rustup
Version: 1.26.0-4
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + rust-mozilla-gdb rust-mozilla-lldb rust-web-clippy 
rust-web-gdb rust-web-lldb rustfmt-web

rustup has an undeclared file conflict. This may result in an unpack
error from dpkg.

The files
 * /usr/bin/cargo-clippy
 * /usr/bin/clippy-driver
are contained in the packages
 * rust-web-clippy/1.70.0+dfsg1-7~deb12u1 as present in 
bookworm-proposed-updates
 * rustup/1.26.0-4 as present in trixie|unstable

The files
 * /usr/bin/cargo-fmt
 * /usr/bin/rustfmt
are contained in the packages
 * rustfmt-web/1.70.0+dfsg1-7~deb12u1 as present in bookworm-proposed-updates
 * rustup/1.26.0-4 as present in trixie|unstable

The file /usr/bin/rust-gdb is contained in the packages
 * rust-mozilla-gdb/1.63.0+dfsg1-2~deb11u1 as present in bullseye
 * rust-web-gdb/1.70.0+dfsg1-7~deb12u1 as present in bookworm-proposed-updates
 * rustup/1.26.0-4 as present in trixie|unstable

The file /usr/bin/rust-lldb is contained in the packages
 * rust-mozilla-lldb/1.63.0+dfsg1-2~deb11u1 as present in bullseye
 * rust-web-lldb/1.70.0+dfsg1-7~deb12u1 as present in bookworm-proposed-updates
 * rustup/1.26.0-4 as present in trixie|unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1064562: 4 packages from rustc-web have an undeclared file conflict

2024-02-24 Thread Helmut Grohne
Package: rust-web-gdb,libstd-rust-web-dev-windows,rust-web-src,rust-web-lldb
Version: 1.70.0+dfsg1-7~deb12u1
Severity: serious
Tags: bookworm
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libstd-rust-mozilla-dev-windows rust-mozilla-gdb 
rust-mozilla-lldb rust-mozilla-src

4 packages from rustc-web have an undeclared file conflict. This may
result in an unpack error from dpkg.

The files
 * /usr/lib/rustlib/x86_64-pc-windows-gnu/lib/rsbegin.o
 * /usr/lib/rustlib/x86_64-pc-windows-gnu/lib/rsend.o
 * /usr/lib/rustlib/x86_64-pc-windows-gnu/lib/self-contained/crt2.o
 * /usr/lib/rustlib/x86_64-pc-windows-gnu/lib/self-contained/dllcrt2.o
are contained in the packages
 * libstd-rust-mozilla-dev-windows/1.63.0+dfsg1-2~deb11u1 as present in bullseye
 * libstd-rust-web-dev-windows/1.70.0+dfsg1-7~deb12u1 as present in 
bookworm-proposed-updates

The files
 * /usr/bin/rust-gdb
 * /usr/bin/rust-gdbgui
 * /usr/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
 * /usr/lib/rustlib/etc/gdb_lookup.py
 * /usr/lib/rustlib/etc/gdb_providers.py
are contained in the packages
 * rust-mozilla-gdb/1.63.0+dfsg1-2~deb11u1 as present in bullseye
 * rust-web-gdb/1.70.0+dfsg1-7~deb12u1 as present in bookworm-proposed-updates

The files
 * /usr/bin/rust-lldb
 * /usr/lib/rustlib/etc/lldb_commands
 * /usr/lib/rustlib/etc/lldb_lookup.py
 * /usr/lib/rustlib/etc/lldb_providers.py
are contained in the packages
 * rust-mozilla-lldb/1.63.0+dfsg1-2~deb11u1 as present in bullseye
 * rust-web-lldb/1.70.0+dfsg1-7~deb12u1 as present in bookworm-proposed-updates

The file /usr/lib/rustlib/src/rust is contained in the packages
 * rust-mozilla-src/1.63.0+dfsg1-2~deb11u1 as present in bullseye
 * rust-web-src/1.70.0+dfsg1-7~deb12u1 as present in bookworm-proposed-updates

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1053111: please upload DEP17-related patches

2024-02-23 Thread Helmut Grohne
user helm...@debian.org
severity 1059981 important
tags 1059981 + trixie sid
severity 1061274 important
tags 1061274 + trixie sid
severity 1060269 important
tags 1060269 + trixie sid patch
severity 1060270 important
tags 1060270 + trixie sid patch
severity 106 important
usertags 106 + dep17m2
severity 1059534 important
tags 1059534 + trixie sid
severity 1059533 important
tags 1059533 + trixie sid
severity 1059919 important
tags 1059919 + trixie sid
severity 1060089 important
tags 1060089 + trixie sid
severity 1055959 important
tags 1055959 + trixie sid
severity 1060160 important
tags 1060160 + trixie sid
severity 1060139 important
tags 1060139 + trixie sid
thanks

The number of packages installed by debootstrap containing files in
aliased locations has been shrinking since a while. We're now down to 10
packages and I'd like to get them done by mid March to be able to move
forward with uploading base-files/bash/dash/glibc/util-linux. Please
upload the requested changes or reply to the bugs. In some cases (such
as isc-dhcp, libtirpc and pam) these have been fixed in experimental and
are expected to land in unstable soon. For others, I intend to upload
delayed NMUs in agreement with the developers reference soon. I'm aware
that the time64 transition is in progress, but there is little
intersection except for libtirpc and pam, both of which will be moved as
part of the time64 transition. Please let me know if you have questions
or objections to moving forward.

Helmut



Bug#1064495: sitecopy FTBFS: incompatible neon version

2024-02-23 Thread Helmut Grohne
Source: sitecopy
Version: 1:0.16.6-11
Severity: serious
Tags: ftbfs

sitecopy fails to build from source in unstable. I think the relevant
part of the build log is:

| checking for neon-config... /usr/bin/neon-config
| checking linking against neon... yes
| configure: incompatible neon library version 0.33.0: wanted 0.24 25 26 27 28 
31 32
| configure: error: could not use external neon library
|   tail -v -n \+0 config.log

Apparently, sitecopy is incompatible with neon >= 0.33. This quite
definitely needs a sourceful upload of sitecopy.

Helmut



Bug#1064361: libreadline8t64: file loss due to concurrent /usr-move and package rename (DEP17 P1)

2024-02-20 Thread Helmut Grohne
Package: libreadline8t64
Version: 8.2-3.1~exp1
Severity: serious
Tags: patch
User: helm...@debian.org
Usertags: dep17p1
Control: affects -1 + libreadline8
X-Debbugs-Cc: vor...@debian.org, mwhud...@debian.org, bug-readl...@gnu.org

Hi,

readline upstream: Please skip the next paragraph.

the time64 transition causes a DEP17 P1 problem for the actual shared
libraries contained in libreadline8t64. These were located below /lib in
libreadline8 in bookworm and thus can be lost in an upgrade. I'm
attaching a patch to add protective diversions for this situation. Since
this library is rather close to essential, I'm using the conservative
method of keeping the diversions beyond postinst. In forky, we can
remove the diversions and in forky+1, we can remove the maintainer
scripts introduced here.

Given the proximity of readline to the base system (e.g. fdisk and
python3 depend on it), I also looked into alternatives.
https://adrien.dcln.fr/misc/armhf-time_t/2024-02-01T09:53:00/compat_reports/libreadline-dev/base_to_lfs/compat_report.html
indicates that we are not faced with LFS ABI changes, but
https://adrien.dcln.fr/misc/armhf-time_t/2024-02-01T09:53:00/compat_reports/libreadline-dev/lfs_to_time_t/compat_report.html
indicates that we are faced with history_get_time changing its return
type from 32bit to 64bit. Providing ABI duality here is even easier than
in the case of libselinux and upstream is vaguely active (last commit 3
weeks ago). Also note that this function already handles range errors
and returns 0 in that case. This behaviour could naturally be extended
for 2038. I think providing duality here would reduce the risk of failed
upgrades breaking user systems.

Context:
https://sources.debian.org/src/readline/8.2-3/history.c/?hl=241#L241

Sketch:

// .h
#if time64 changes ABI
typedef time_t time64_t;
typedef int32_t time32_t;
time64_t history_get_time64 (HIST_ENTRY *hist);
time32_t history_get_time (HIST_ENTRY *hist);
#define history_get_time history_get_time64
#else
time_t history_get_time (HIST_ENTRY *hist);
#endif

// .c
time_t
// The earlier #define may change the function name
history_get_time (HIST_ENTRY *hist)
{
  // original function unchanged
}

#if time64 changes ABI
#undef history_get_time
time32_t
history_get_time (HIST_ENTRY *hist)
{
  time64_t ret64 = history_get_time(hist);
  time32_t ret32 = ret64;
  if ((time64_t)ret32 != ret64)
return (time32_t)0;
  return ret32;
}
#endif

I've directly Cced readline upstream to see whether they're interested.

Helmut
diff --minimal -Nru readline-8.2/debian/changelog readline-8.2/debian/changelog
--- readline-8.2/debian/changelog   2024-02-19 23:47:01.0 +0100
+++ readline-8.2/debian/changelog   2024-02-20 09:18:09.0 +0100
@@ -1,3 +1,11 @@
+readline (8.2-3.1~exp1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * DEP17 P1: Mitigate file loss due to package rename with concurrent
+aliasing change. Closes: #-1.
+
+ -- Helmut Grohne   Tue, 20 Feb 2024 09:18:09 +0100
+
 readline (8.2-3.1~exp1) experimental; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru readline-8.2/debian/libreadline8t64.postrm.in 
readline-8.2/debian/libreadline8t64.postrm.in
--- readline-8.2/debian/libreadline8t64.postrm.in   1970-01-01 
01:00:00.0 +0100
+++ readline-8.2/debian/libreadline8t64.postrm.in   2024-02-20 
09:17:54.0 +0100
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+if test "$1" = remove; then
+   # DEP17 P1 mitigation. Remove these diversions via postinst once trixie 
is released.
+   for lib in libhistory.so.8 libhistory.so.8.2 libreadline.so.8 
libreadline.so.8.2; do
+   dpkg-divert --package libreadline8t64 --no-rename --divert 
"/lib/#DEB_HOST_MULTIARCH#/$lib.usr-is-merged" --remove 
"/lib/#DEB_HOST_MULTIARCH#/$lib"
+   done
+fi
+
+#DEBHELPER#
+
+exit 0
diff --minimal -Nru readline-8.2/debian/libreadline8t64.preinst.in 
readline-8.2/debian/libreadline8t64.preinst.in
--- readline-8.2/debian/libreadline8t64.preinst.in  1970-01-01 
01:00:00.0 +0100
+++ readline-8.2/debian/libreadline8t64.preinst.in  2024-02-20 
09:18:03.0 +0100
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+if test "$1" = install -o "$1" = upgrade; then
+   # DEP17 P1 mitigation. Remove these diversions via postinst once trixie 
is released.
+   for lib in libhistory.so.8 libhistory.so.8.2 libreadline.so.8 
libreadline.so.8.2; do
+   dpkg-divert --package libreadline8t64 --no-rename --divert 
"/lib/#DEB_HOST_MULTIARCH#/$lib.usr-is-merged" --add 
"/lib/#DEB_HOST_MULTIARCH#/$lib"
+   done
+fi
+
+#DEBHELPER#
+
+exit 0
diff --minimal -Nru readline-8.2/debian/rules readline-8.2/debian/rules
--- readline-8.2/debian/rules   2024-02-19 23:47:01.0 +0100
+++ readline-8.2/debian/rules   2024-02-20 09:18:09.0 +0100
@@ -154,6 +154,9 @@
 
touch configure-stamp
 
+debian/%:d

Bug#1064298: libhamlib4t64: ineffective replaces due to /usr-move

2024-02-19 Thread Helmut Grohne
Package: libhamlib4t64
Version: 4.5.5-3.1~exp1
Severity: serious
Tags: patch
User: helm...@debian.org
Usertags: dep17p1
Control: affects -1 + libhamlib4
X-Debbugs-Cc: vor...@debian.org, mwhud...@debian.org

libhamlib4t64 introduced Replaces for libhamlib4 to take over its files
and in that process it also takes over
/usr/lib/udev/rules.d/60-libhamlib4.rules. This file also is in
libhamlib4 in an aliased location. Moving a file from / to /usr and
between packages causes file loss (DEP17 P1). Hence, I'm extending the
existing mitigation for DEP17 P7 (M-A:same shared file loss) to cover
the new P1 problem introduced by time64. See my attched patch. The
protective diversion will be kept beyond postinst and stay around. Since
the earlier diversion in libhamlib4 was removed in postinst, there
cannot be any conflict on diversions. I tested the upgrade using
piuparts.

Helmut
diff --minimal -Nru hamlib-4.5.5/debian/changelog hamlib-4.5.5/debian/changelog
--- hamlib-4.5.5/debian/changelog   2024-02-17 04:43:05.0 +0100
+++ hamlib-4.5.5/debian/changelog   2024-02-19 19:50:40.0 +0100
@@ -1,3 +1,11 @@
+hamlib (4.5.5-3.1~exp1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Extend DEP17 P7 mitigation (protective diversion for udev rules) to also
+cover P1 (package rename). (Closes: #-1)
+
+ -- Helmut Grohne   Mon, 19 Feb 2024 19:50:40 +0100
+
 hamlib (4.5.5-3.1~exp1) experimental; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru hamlib-4.5.5/debian/libhamlib4t64.lintian-overrides 
hamlib-4.5.5/debian/libhamlib4t64.lintian-overrides
--- hamlib-4.5.5/debian/libhamlib4t64.lintian-overrides 2024-02-17 
04:43:05.0 +0100
+++ hamlib-4.5.5/debian/libhamlib4t64.lintian-overrides 2024-02-19 
19:50:40.0 +0100
@@ -1,4 +1,4 @@
 # protective diversion for upgrades of files moved from / to /usr
 # see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1056692
-libhamlib4t64: diversion-for-unknown-file 
lib/udev/rules.d/60-libhamlib4t64.rules [preinst:14]
+libhamlib4t64: diversion-for-unknown-file lib/udev/rules.d/60-libhamlib4.rules 
[preinst:*]
 libhamlib4t64: package-name-doesnt-match-sonames libhamlib4
diff --minimal -Nru hamlib-4.5.5/debian/libhamlib4t64.postinst 
hamlib-4.5.5/debian/libhamlib4t64.postinst
--- hamlib-4.5.5/debian/libhamlib4t64.postinst  2024-02-17 04:43:05.0 
+0100
+++ hamlib-4.5.5/debian/libhamlib4t64.postinst  2024-02-19 13:56:14.0 
+0100
@@ -7,17 +7,6 @@
 
 rm -f /etc/udev/rules.d/60-libhamlib4.rules
 
-# begin-remove-after: released:forky
-# protective diversion of files moved from / to /usr, to avoid file loss.
-# Only for upgrades.
-if [ "$1" = "configure" ]; then
-# At this point, the package will have installed the same file in */usr*.
-dpkg-divert --package usr-is-merged --no-rename \
---divert /lib/udev/rules.d/60-libhamlib4.rules.usr-is-merged \
---remove /lib/udev/rules.d/60-libhamlib4.rules
-fi
-# end-remove-after
-
 #DEBHELPER#
 
 exit 0
diff --minimal -Nru hamlib-4.5.5/debian/libhamlib4t64.postrm 
hamlib-4.5.5/debian/libhamlib4t64.postrm
--- hamlib-4.5.5/debian/libhamlib4t64.postrm2024-02-17 04:43:05.0 
+0100
+++ hamlib-4.5.5/debian/libhamlib4t64.postrm2024-02-19 13:56:50.0 
+0100
@@ -5,16 +5,13 @@
 
 dpkg-maintscript-helper rm_conffile /etc/udev/60-libhamlib4.rules -- "$@"
 
-# begin-remove-after: released:forky
 # protective diversion of files moved from / to /usr, to avoid file loss.
 # Only for upgrades.
 if [ "$1" = "remove" ] && [ "$DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT" = "1" ]; then
-# Cleanup in case package is removed before upgrade is finished (postinst 
ran).
 dpkg-divert --package usr-is-merged --no-rename \
 --divert /lib/udev/rules.d/60-libhamlib4.rules.usr-is-merged \
 --remove /lib/udev/rules.d/60-libhamlib4.rules
 fi
-# end-remove-after
 
 #DEBHELPER#
 
diff --minimal -Nru hamlib-4.5.5/debian/libhamlib4t64.preinst 
hamlib-4.5.5/debian/libhamlib4t64.preinst
--- hamlib-4.5.5/debian/libhamlib4t64.preinst   2024-02-17 04:43:05.0 
+0100
+++ hamlib-4.5.5/debian/libhamlib4t64.preinst   2024-02-19 13:55:31.0 
+0100
@@ -5,15 +5,13 @@
 
 dpkg-maintscript-helper rm_conffile /etc/udev/60-libhamlib4.rules -- "$@"
 
-# begin-remove-after: released:forky
 # protective diversion of files moved from / to /usr, to avoid file loss.
-# Only for upgrades.
-if [ "$1" = "upgrade" ]; then
+if [ "$1" = upgrade ] || [ "$1" = install ]; then
+# The diversion should be removed after trixie is released.
 dpkg-divert --package usr-is-merged --no-rename \
 --divert /lib/udev/rules.d/60-libhamlib4.rules.usr-is-merged \
 --add /lib/udev/rules.d/60-libhamlib4.rules
 fi
-# end-remove-after
 
 #DEBHELPER#
 


Bug#1063922: libnfft3-long4 has an undeclared file conflict

2024-02-14 Thread Helmut Grohne
Package: libnfft3-long4
Version: 3.5.3-3
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libnfft3-long2

libnfft3-long4 has an undeclared file conflict. This may result in an
unpack error from dpkg.

The files
 * /usr/lib/x86_64-linux-gnu/libnfft3l.so.4
 * /usr/lib/x86_64-linux-gnu/libnfft3l.so.4.0.3
 * /usr/lib/x86_64-linux-gnu/libnfft3l_threads.so.4
 * /usr/lib/x86_64-linux-gnu/libnfft3l_threads.so.4.0.3
are contained in the packages
 * libnfft3-long2/3.5.3-1 as present in unstable
 * libnfft3-long4/3.5.3-3 as present in unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1063924: libnetplan1 has an undeclared file conflict on /usr/lib/x86_64-linux-gnu/libnetplan.so.0.0

2024-02-14 Thread Helmut Grohne
Package: libnetplan1
Version: 0.107.1-3+exp1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + libnetplan0
X-Debbugs-Cc: Lukas Märdian , vor...@debian.org

libnetplan1 has an undeclared file conflict. This may result in an
unpack error from dpkg.

The file /usr/lib/x86_64-linux-gnu/libnetplan.so.0.0 is contained in the
packages
 * libnetplan0
   * 0.101-4 as present in bullseye
   * 0.106-2+deb12u1 as present in bookworm
   * 0.107.1-3 as present in trixie|unstable
 * libnetplan1/0.107.1-3+exp1 as present in experimental

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1063923: node-shapefile has an undeclared file conflict

2024-02-14 Thread Helmut Grohne
Package: node-shapefile
Version: 0.3.1+~cs14.23.94-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + shapelib

node-shapefile has an undeclared file conflict. This may result in an
unpack error from dpkg.

The files
 * /usr/bin/dbfcat
 * /usr/bin/shpcat
are contained in the packages
 * node-shapefile/0.3.1+~cs14.23.94-1 as present in unstable
 * shapelib
   * 1.5.0-2 as present in bullseye
   * 1.5.0-3+b1 as present in bookworm
   * 1.6.0-1 as present in trixie|unstable

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1063921: gstreamer1.0-plugins-good has an undeclared file conflict

2024-02-14 Thread Helmut Grohne
Package: gstreamer1.0-plugins-good
Version: 1.23.1-1
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + gstreamer1.0-plugins-ugly

gstreamer1.0-plugins-good has an undeclared file conflict. This may
result in an unpack error from dpkg.

The files
 * /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstamrnb.so
 * /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstamrwbdec.so
are contained in the packages
 * gstreamer1.0-plugins-good/1.23.1-1 as present in experimental
 * gstreamer1.0-plugins-ugly
   * 1.22.0-2+deb12u1 as present in bookworm|bookworm-security
   * 1.22.10-1 as present in unstable
   * 1.22.9-1 as present in trixie

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected files.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1063918: geary FTBFS with the nocheck build profile: ../meson.build:226:6: ERROR: Program 'update-desktop-database' not found or not executable

2024-02-14 Thread Helmut Grohne
Source: geary
Version: 44.1-1
Severity: serious
Tags: ftbfs trixie sid

geary fails to build from source in unstable when enabling the nocheck
build profile. Since trixie, such a failure is considered
release-critical. A build ends with:

| ../meson.build:226:6: ERROR: Program 'update-desktop-database' not found or 
not executable
| dh_auto_configure: error: cd obj-x86_64-linux-gnu && 
DEB_PYTHON_INSTALL_LAYOUT=deb LC_ALL=C.UTF-8 meson setup .. 
--wrap-mode=nodownload --buildtype=plain --prefix=/usr --sysconfdir=/etc 
--localstatedir=/var --libdir=lib/x86_64-linux-gnu -Dpython.bytecompile=-1 
-Drevno=Debian/44.1-1 -Dprofile=release returned exit code 1
| make[1]: *** [debian/rules:24: override_dh_auto_configure] Error 25
| make[1]: Leaving directory '/<>'
| make: *** [debian/rules:21: binary] Error 2
| dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 
2

Consider dropping inappropriate  annotations.

Helmut



Bug#1063457: nordugrid-arc and arcstat

2024-02-12 Thread Helmut Grohne
On Mon, Feb 12, 2024 at 04:08:40PM +, 陈 晟祺 wrote:
> As a (tentative) solution, we discussed and decided to move arcstat back to
> sbin on the zfs-linux side. That would leave the current situation untouched
> until maintainers from both sides form a consensus on how to handle this.

While you may move arcstat back to sbin, doing so does not address or
fix this bug. The arcstat command is still being provided (albeit in a
different place) and hence policy is still being violated.

If you want to migrate a zfs-linux upload to testing, you may adjust the
found version to clarify that it already affects trixie and also
periodically update this bug to prevent the autoremover from taking
action.

> We will keep working on this and try to ask for more advice from both users
> and developers.

Yes, please.

Helmut



Bug#1063457: nordugrid-arc and arcstat

2024-02-12 Thread Helmut Grohne
On Mon, Feb 12, 2024 at 09:13:50AM +0100, Mattias Ellert wrote:
> NorduGrid ARC has used the name arcstat since release 1.0. It has been
> in Debian since January 2010 (source package nordugrid-arc-nox, later
> renamed nordugrid-arc in May 2011).
> 
> The command is part of a set of commands, all using the arc prefix:
> arccat arcget arckillarcproxy   arcresume  arcsync
> arcclean   arcls  arcrename  arcrm  arctest
> arccp  arched arcmkdir   arcrenew   arcstat
> arcctl arcinfoarcplugin  arcresub   arcsub 

Thank you for providing background. Given that zfs-linux was first
uploaded to Debian in 2016, it seems quite clear to me that the command
reasonably belongs to nordugrid. Do we all agree to reassign the bug
back to zfs-linux and have it release the name? If not, please discuss
with debian-de...@lists.debian.org.

Given that this issue is quite old and that forky is still quite in
progress, I don't see any reason to rush any action right now. Having a
civilized discussion and consensus on a long-term solution should be
focus from my point of view.

Helmut



Bug#1063525: d-spy FTBFS with nocheck profile: ../meson.build:187:6: ERROR: Program 'update-desktop-database' not found or not executable

2024-02-09 Thread Helmut Grohne
Source: d-spy
Version: 1.8.0-1
Severity: serious
Tags: ftbfs trixie sid

d-spy fails to build from source when built with the nocheck build
profile. Since trixie such a failure is considered release-critical. A
build ends with:

| ../meson.build:187:6: ERROR: Program 'update-desktop-database' not found or 
not executable
| dh_auto_configure: error: cd obj-x86_64-linux-gnu && 
DEB_PYTHON_INSTALL_LAYOUT=deb LC_ALL=C.UTF-8 meson setup .. 
--wrap-mode=nodownload --buildtype=plain --prefix=/usr --sysconfdir=/etc 
--localstatedir=/var --libdir=lib/x86_64-linux-gnu -Dpython.bytecompile=-1 
returned exit code 1
| make: *** [debian/rules:8: binary] Error 25
| dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 
2

Helmut



Bug#958587: lockdown FTBFS due to B-D: dh-systemd

2024-02-09 Thread Helmut Grohne
Control: retitle -1 lockdown FTBFS: Build-Depends on deprecated dh-systemd 
which is no longer available
Control: tags -1 + ftbfs

This bug has become a FTBFS. Tagging as such.

Helmut



Bug#1027889: use of dh_dkms without b-d: dh-dkms is a FTBFS

2024-02-09 Thread Helmut Grohne
Control: retitle -1 kpatch FTBFS: please switch to B-D: dh-sequence-dkms (or 
dh-dkms)
Control: tags -1 + ftbfs

Using dh_dkms without Build-Depends: dh-dkms makes the package ftbfs:

| make[1]: dh_dkms: No such file or directory
| make[1]: *** [debian/rules:23: override_dh_install] Error 127
| make[1]: Leaving directory '/<>'
| make: *** [debian/rules:11: binary] Error 2
| dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned 
exit status 2

Andreas filed the bug at serious severity, but it doesn't yet correctly
identify as FTBFS.

Helmut



Bug#1063498: rust-glib-sys FTBFS with the nocheck build profile: cp: cannot stat '/usr/share/gir-1.0/GLib-2.0.gir': No such file or directory

2024-02-08 Thread Helmut Grohne
Source: rust-glib-sys
Version: 0.18.1-2
Severity: serious
Tags: ftbfs trixie sid

rust-glib-sys fails to build from source in unstable when built with the
nocheck build profile. Since trixie, a nocheck failure is considered
release-critical. A build ends with:

|debian/rules execute_before_dh_auto_build
| make[1]: Entering directory '/<>'
| cp /usr/share/gir-1.0/GLib-2.0.gir /<>
| cp: cannot stat '/usr/share/gir-1.0/GLib-2.0.gir': No such file or directory
| make[1]: *** [debian/rules:9: execute_before_dh_auto_build] Error 1
| make[1]: Leaving directory '/<>'
| make: *** [debian/rules:4: binary] Error 2
| dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 
2

Helmut



Bug#1063457: zfsutils-linux abuses Conflicts in violation of policy 10.1

2024-02-08 Thread Helmut Grohne
Control: reassign -1 zfsutils-linux,nordugrid-arc-client

On Thu, Feb 08, 2024 at 01:49:34PM +, 陈 晟祺 wrote:
> We are aware of this. arcstat is NOT a new binary added in recent versions,
> but is installed into /usr/sbin for several years and versions. I moved it to 
> /usr/bin
> because it does not actually require specific permission to use.

That is a piece of history I was unaware of. Unfortunate.

> Is there any suggestion on such situation? Keeping ours in sbin would cause 
> (the
> long-existing) confusion to user if they install both packages and find that 
> two
> different arcstat exist in bin and sbin. Renaming either one would also make 
> trouble.

We have precedent for similar situations in Debian. Probably the most
prominent is /usr/bin/node. If no agreement can be found over the name,
the typical course of action is to rename both.

In the long term, it would be ideal to get both upstreams talk to each
other and have them to agree that either of them releases the name.

In general, arcstat using update-alternatives is inappropriate, because
they are not different implementations of the same functionality.

Getting advice from debian-de...@lists.debian.org also seems like a
valid approach. We can use feedback to guesstimate the relative uses of
the name.

As you say that this is not a new issue, but was merely hidden by the
sbin vs bin difference, I am reassigning the bug to both packages.

Helmut



Bug#1063499: rust-gobject-sys FTBFS with nocheck build profile: cp: cannot stat '/usr/share/gir-1.0/GObject-2.0.gir': No such file or directory

2024-02-08 Thread Helmut Grohne
Source: rust-gobject-sys
Version: 0.18.0-2
Severity: serious
Tags: ftbfs trixie sid

rust-gobject-sys fails to build from source in unstable when built with
the nocheck build profile. Since trixie, a nocheck build failure is
considered release-critical. A build ends with:

|debian/rules execute_before_dh_auto_build
| make[1]: Entering directory '/<>'
| cp /usr/share/gir-1.0/GObject-2.0.gir /<>
| cp: cannot stat '/usr/share/gir-1.0/GObject-2.0.gir': No such file or 
directory
| make[1]: *** [debian/rules:8: execute_before_dh_auto_build] Error 1
| make[1]: Leaving directory '/<>'
| make: *** [debian/rules:3: binary] Error 2
| dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 
2

Please review the  annotations.

Helmut



Bug#1063457: zfsutils-linux abuses Conflicts in violation of policy 10.1

2024-02-08 Thread Helmut Grohne
Package: zfsutils-linux
Version: 2.2.2-5~exp3
Severity: serious
Justification: Debian policy section 10.1

zfsutils-linux declares Conflicts with nordugrid-arc-client, because
both provide /usr/bin/arcstat. This conflict is in violation of Debian
policy 10.1:

| Two different packages must not install programs with different
| functionality but with the same filenames.

The name arcstat is currently owned by nordugrid-arc-client and cannot
be taken over by zfsutils-linux simply by declaring a conflict.

Helmut



Bug#1063329: libselinux1t64: breaks system in upgrade from unstable

2024-02-07 Thread Helmut Grohne
Hi Andreas,

On Wed, Feb 07, 2024 at 03:47:37PM +0100, Andreas Metzler wrote:
> Package: libselinux1t64
> Replaces: libselinux1
> Provides: libselinux1 (= 3.5-2.1~exp1)
> Breaks: libselinux1 (<< 3.5-2.1~exp1)
> 
> Afaiui libselinux1t64 must not fullfill dpkg 1.22.4's dependency on
> "libselinux1 (>= 3.1~)". dpkg needs to be rebuilt and the rebuilt
> version gets a dep on "libselinux1t64 (>= 3.5)".

The *t64 libraries only break ABI on some architectures. Notably, on all
64bit architectures, i386 and x32, the ABI will not change. On the next
upload after the transition, library dependencies will move to the t64
variants, yes.

> Will ${t64:Provides} stop expanding to "libselinux1 = ${binary:Version
> for real t64-builds? (The ones in experimental are not.) If that is case
> this bug and this way of testing does not make sense.

No, the t64:Provides will remain that way for all architectures that do
not break ABI. In theory, we could have skipped the rename on those
architectures, but having architecture-dependent package names is
annoyingly hard. Hence, we rename them on e.g. amd64 as well even though
nothing changes there.

Hope this explains

Helmut



Bug#1063393: systemd FTBFS with nocheck build profile: ../meson.build:1810:33: ERROR: Feature ukify cannot be enabled: Python >= 3.9 and pefile required

2024-02-07 Thread Helmut Grohne
Source: systemd
Version: 255.3-1
Severity: serious
Tags: ftbfs trixie sid

Hi,

systemd fails to build from source when built with the nocheck build
profile. Since trixie, such a failure is considered release-critical.
The notable message probably is:

| ../meson.build:1810:33: ERROR: Feature ukify cannot be enabled: Python >= 3.9 
and pefile required

I guess your python3-pefile dependency should not be tagged 
and it should probably be annotated :native until it becomes
M-A:foreign.

Helmut



Bug#1063392: zfsutils-linux has an undeclared file conflict on /usr/bin/arcstat

2024-02-07 Thread Helmut Grohne
Package: zfsutils-linux
Version: 2.2.2-5~exp2
Severity: serious
User: debian...@lists.debian.org
Usertags: fileconflict
Control: affects -1 + nordugrid-arc-client

zfsutils-linux has an undeclared file conflict. This may result in an
unpack error from dpkg.

The file /usr/bin/arcstat is contained in the packages
 * nordugrid-arc-client
   * 6.10.2-1 as present in bullseye
   * 6.17.0-3 as present in bookworm
   * 6.18.0-1 as present in trixie|unstable
 * zfsutils-linux/2.2.2-5~exp2 as present in experimental

These packages can be unpacked concurrently, because there is no
relevant Replaces or Conflicts relation. Attempting to unpack these
packages concurrently results in an unpack error from dpkg, because none
of the packages installs a diversion for the affected file.

Kind regards

The Debian Usr Merge Analysis Tool

This bug report has been automatically filed with no human intervention.
The source code is available at https://salsa.debian.org/helmutg/dumat.
If the filing is unclear or in error, don't hesitate to contact
hel...@subdivi.de for assistance.



Bug#1063329: libselinux1t64: breaks system in upgrade from unstable

2024-02-07 Thread Helmut Grohne
Hi Guillem,

On Wed, Feb 07, 2024 at 04:32:45AM +0100, Guillem Jover wrote:
> Yes, I'm not sure I understand either. This is what symbol versioning
> makes possible, even providing different variants for the same symbol,
> see for example glibc or libbsd.

I think symbol versioning is subtly different and glibc does not use
symbol versioning for e.g. gettimeofday selection. With symbol
versioning, you select a default version at release time and stick to
it. In other words, building against the updated libselinux does not
allow you to use the older 32bit variant of the symbol even if you opt
out of lfs and time64 and you always get the 64bit symbol. What glibc
does is a little more fancy than my simplistic #define in that it uses
asm("name") instead. Still this approach allows for selecting which
symbol is being used via macros (e.g. _FILE_OFFSET_BITS). Please correct
me if I am misrepresenting this as my experience with symbol versioning
is fairly limited.

> In any case, if going the bi-ABI path, I think upstream should get
> involved, and the shape of this decided with them. In addition
> the library should also be built with LFS by the upstream build
> system, which it does not currently, to control its ABI.

I agree that involving upstream is a good idea and my understanding is
that someone from Canonical is doing that already, which is why the
schedule was delayed.

My real question here though is what's the downsides of providing two
variants of this symbol (whether with symbol versioning or name
redirection). From my pov, this effectively is your option 3 and what I
sketched is the most stupid implementation of it. My sketch did assume
that libselinux would be built with LFS support everywhere including
i386. Enabling that on the upstream side definitely is even better,
because it gets us to not have a Debian-specific ABI.

> I think there are only three ways to go about this, excluding the t64
> attempt:

Thanks for confirming that I've reported a real problem.

> If you'd like assistance with trying to get a proposal for 3 to
> present upstream I could look into that. But I think they should be
> involved early on to see what they'd like to see and what they might
> outright reject.

>From my naive point of view, this option 3 is the clear winner. Though
it all depends on what upstream says. If upstream cooperates on any
option, that's better still as we avoid ABI deviation.

Going from here, I also looked a bit into whether we could additionally
use an upstream-cooperating approach for other packages central to
Debian to avoid t64 bumps.

pam seems difficult:
| extern time_t pam_misc_conv_warn_time; /* time that we should warn user */
| extern time_t pam_misc_conv_die_time; /* cut-off time for input */

We cannot symbol-version these in a reasonable way. All we could do is
ask upstream for a real soname bump. We have a slight advantage here: On
little endian (such as armhf), we can extend this to 64bit and 32bit
accesses will continue to work for small values. However, doing this to
m68k would break horribly. I also couldn't find any in-Debian users of
these symbols (super merely vendors pam source), so just bumping it and
accepting breakage (Guillems option 1) might be worth a go?

For libaudit1, I fail to understand why we bump it at all. Both reports
look fine to me:
https://adrien.dcln.fr/misc/armhf-time_t/2024-02-01T09:53:00/compat_reports/libaudit-dev/base_to_lfs/compat_report.html
https://adrien.dcln.fr/misc/armhf-time_t/2024-02-01T09:53:00/compat_reports/libaudit-dev/lfs_to_time_t/compat_report.html
This does not extend to libauparse0 where the report gives a reason, but
libaudit1 is the one that interacts with /usr-move and libauparse0 not,
so can we skip the dance for libaudit1?

For libtirpc, it is only about rpcb_gettime, which returns time via a
time_t* and can indicate success/failure via return. It seems fairly
simple to implement ABI duality here and libtirpc already does symbol
versioning. Maybe we can also approach upstream about this?

For libfuse2, I think the ABI analysis is broken. The base-to-lfs report
supposedly is ok
https://adrien.dcln.fr/misc/armhf-time_t/2024-02-01T09:53:00/compat_reports/libfuse-dev/base_to_lfs/compat_report.html
and then going lfs-to-time changes ino_t
https://adrien.dcln.fr/misc/armhf-time_t/2024-02-01T09:53:00/compat_reports/libfuse-dev/lfs_to_time_t/compat_report.html
while I would have expected ino_t to change with lfs already.  Are we
sure about this? In any case, this is more of an academic question as
adding ABI-duality would be more involved here. Moreover, I don't see
any ACC report for libfuse3-dev. Did that fail to analyze?

libiw30 only has one affected symbol:
iw_print_timeval ( char* buffer, int buflen, struct timeval const* time, struct 
timezone const* tz )
Providing ABI duality for this seems doable. Moreover, libiw30 already
has soname 30, so maybe upstream is open to bumping it again? The
resulting library transition is 

Bug#1063329: libselinux1t64: breaks system in upgrade from unstable

2024-02-06 Thread Helmut Grohne
On Tue, Feb 06, 2024 at 11:34:07AM +0100, Adrien Nader wrote:
> Providing two APIs makes me quite uneasy due to having core components
> that would behave differently from the rest of the distribution. It
> sounds like something that will come back to bite for a long time.

Can you elaborate?

Keep in mind that for all the 64bit architectures, there is no abi
difference as the symbol is only added for those architectures, that
currently use a 32bit ino_t.

> I checked on codesearch.d.n and there are very few users on this API;
> actually, none I think. Per
> https://codesearch.debian.net/search?q=matchpathcon_filespec_add=1=1
> - box64 mentions that API but the "code" is commented-out,
> - busybox uses it in the "setfiles" applet which isn't built,
> - android-platform-external-libselinux has it in headers but also has
>   its own implementation
> 
> That should hopefully give more freedom although I'm not sure what would
> be the preferred route.

And here you are arguing that there are no practical users of the added
symbol, so with luck, we'd be adding an unused symbol on armhf. With bad
luck, we'd have some users and for those users we'd be ABI-incompatible
with the rest of the world on armhf.

Helmut



Bug#1063323: libiw30t64: file loss due to /usr-move (DEP17)

2024-02-06 Thread Helmut Grohne
On Tue, Feb 06, 2024 at 07:42:49AM +0100, Helmut Grohne wrote:
> I'm attaching a patch for your convenience. I consider that libiw30 is
> not as central as other packages and hence propose employing Conflicts
> here. Conflicts allow removing the protective diversion in trixie's
> postinst rather than forky's postinst already.

Steve made me aware that such Conflicts and Breaks should be versioned
as they may otherwise interact with Provides and multiarch. Updated
patch attached.

Helmut
diff --minimal -Nru wireless-tools-30~pre9/debian/changelog 
wireless-tools-30~pre9/debian/changelog
--- wireless-tools-30~pre9/debian/changelog 2024-02-04 21:34:45.0 
+0100
+++ wireless-tools-30~pre9/debian/changelog 2024-02-06 07:33:48.0 
+0100
@@ -1,3 +1,9 @@
+wireless-tools (30~pre9-16.1~exp2) UNRELEASED; urgency=medium
+
+  * Fix /usr-move file loss. (Closes: #-1)
+
+ -- Helmut Grohne   Tue, 06 Feb 2024 07:33:48 +0100
+
 wireless-tools (30~pre9-16.1~exp1) experimental; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru wireless-tools-30~pre9/debian/clean 
wireless-tools-30~pre9/debian/clean
--- wireless-tools-30~pre9/debian/clean 1970-01-01 01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/clean 2024-02-06 07:33:30.0 +0100
@@ -0,0 +1,2 @@
+debian/libiw30t64.preinst
+debian/libiw30t64.postinst
diff --minimal -Nru wireless-tools-30~pre9/debian/control 
wireless-tools-30~pre9/debian/control
--- wireless-tools-30~pre9/debian/control   2024-02-04 21:34:45.0 
+0100
+++ wireless-tools-30~pre9/debian/control   2024-02-06 07:31:36.0 
+0100
@@ -31,8 +31,7 @@
 
 Package: libiw30t64
 Provides: ${t64:Provides}
-Replaces: libiw30
-Breaks: libiw30 (<< ${source:Version})
+Conflicts: libiw30 (<< ${source:Version})
 Section: libs
 Architecture: linux-any
 Multi-Arch: same
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides 
wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides
--- wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides  2024-02-04 
21:34:45.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides  2024-02-06 
07:33:48.0 +0100
@@ -1 +1,5 @@
 libiw30t64: package-name-doesnt-match-sonames libiw30
+# begin-remove-after: released:trixie
+# DEP17 protective diversion
+diversion-for-unknown-file lib/x86_64-linux-gnu/libiw.so.30 [preinst:*]
+# end-remove-after
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.postinst.in 
wireless-tools-30~pre9/debian/libiw30t64.postinst.in
--- wireless-tools-30~pre9/debian/libiw30t64.postinst.in1970-01-01 
01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.postinst.in2024-02-06 
07:29:28.0 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if [ "$1" = configure ]; then
+   dpkg-divert --package libiw30t64 --no-rename --remove --divert 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30.usr-is-merged" 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30"
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.preinst.in 
wireless-tools-30~pre9/debian/libiw30t64.preinst.in
--- wireless-tools-30~pre9/debian/libiw30t64.preinst.in 1970-01-01 
01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.preinst.in 2024-02-06 
07:29:30.0 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if [ "$1" = install ]; then
+   dpkg-divert --package libiw30t64 --no-rename --add --divert 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30.usr-is-merged" 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30"
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff --minimal -Nru wireless-tools-30~pre9/debian/rules 
wireless-tools-30~pre9/debian/rules
--- wireless-tools-30~pre9/debian/rules 2023-11-28 01:03:11.0 +0100
+++ wireless-tools-30~pre9/debian/rules 2024-02-06 07:33:39.0 +0100
@@ -19,3 +19,8 @@
 
 override_dh_installudev:
dh_installudev --priority=19
+
+debian/%:debian/%.in
+   sed -e 's/#DEB_HOST_MULTIARCH#/$(DEB_HOST_MULTIARCH)/g' $< > $@
+
+execute_before_dh_installdeb:debian/libiw30t64.preinst 
debian/libiw30t64.postinst


  1   2   3   4   5   6   7   8   9   10   >