Bug#1069572: firmware-nonfree: activate update-initramfs trigger declaratively

2024-04-20 Thread Helmut Grohne
Source: firmware-nonfree
Version: 20230625-2
Severity: wishlist
Tags: patch

This is the same bug as #1069571 (firmware-linux-free). The
update-initramfs trigger is activated procedurally and in postinst only.
Hence, removing a firmware package does not update the initramfs. I
propose activating the trigger declaratively to have dpkg figure out
when to activate.

Helmut
diff -Nru firmware-nonfree-20230625/debian/changelog 
firmware-nonfree-20230625/debian/changelog
--- firmware-nonfree-20230625/debian/changelog  2023-12-19 18:01:10.0 
+0100
+++ firmware-nonfree-20230625/debian/changelog  2024-04-20 18:11:28.0 
+0200
@@ -1,3 +1,10 @@
+firmware-nonfree (20230625-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Activate update-initramfs trigger declaratively. (Closes: #-1)
+
+ -- Helmut Grohne   Sat, 20 Apr 2024 18:11:28 +0200
+
 firmware-nonfree (20230625-2) unstable; urgency=medium
 
   [ Diederik de Haas ]
diff -Nru firmware-nonfree-20230625/debian/firmware-amd-graphics.postinst 
firmware-nonfree-20230625/debian/firmware-amd-graphics.postinst
--- firmware-nonfree-20230625/debian/firmware-amd-graphics.postinst 
2023-12-19 18:01:10.0 +0100
+++ firmware-nonfree-20230625/debian/firmware-amd-graphics.postinst 
1970-01-01 01:00:00.0 +0100
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-   configure)
-   dpkg-trigger --no-await update-initramfs
-   ;;
-
-   abort-upgrade|abort-remove|abort-deconfigure)
-   ;;
-
-   *)
-   echo "postinst called with unknown argument \`$1'" 1>&2
-   exit 1
-   ;;
-esac
-
-#DEBHELPER#
diff -Nru firmware-nonfree-20230625/debian/firmware-amd-graphics.triggers 
firmware-nonfree-20230625/debian/firmware-amd-graphics.triggers
--- firmware-nonfree-20230625/debian/firmware-amd-graphics.triggers 
1970-01-01 01:00:00.0 +0100
+++ firmware-nonfree-20230625/debian/firmware-amd-graphics.triggers 
2024-04-20 18:11:28.0 +0200
@@ -0,0 +1 @@
+activate-noawait update-initramfs
diff -Nru firmware-nonfree-20230625/debian/firmware-bnx2.postinst 
firmware-nonfree-20230625/debian/firmware-bnx2.postinst
--- firmware-nonfree-20230625/debian/firmware-bnx2.postinst 2023-12-19 
18:01:10.0 +0100
+++ firmware-nonfree-20230625/debian/firmware-bnx2.postinst 1970-01-01 
01:00:00.0 +0100
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-   configure)
-   dpkg-trigger --no-await update-initramfs
-   ;;
-
-   abort-upgrade|abort-remove|abort-deconfigure)
-   ;;
-
-   *)
-   echo "postinst called with unknown argument \`$1'" 1>&2
-   exit 1
-   ;;
-esac
-
-#DEBHELPER#
diff -Nru firmware-nonfree-20230625/debian/firmware-bnx2.triggers 
firmware-nonfree-20230625/debian/firmware-bnx2.triggers
--- firmware-nonfree-20230625/debian/firmware-bnx2.triggers 1970-01-01 
01:00:00.0 +0100
+++ firmware-nonfree-20230625/debian/firmware-bnx2.triggers 2024-04-20 
18:11:28.0 +0200
@@ -0,0 +1 @@
+activate-noawait update-initramfs
diff -Nru firmware-nonfree-20230625/debian/firmware-bnx2x.postinst 
firmware-nonfree-20230625/debian/firmware-bnx2x.postinst
--- firmware-nonfree-20230625/debian/firmware-bnx2x.postinst2023-12-19 
18:01:10.0 +0100
+++ firmware-nonfree-20230625/debian/firmware-bnx2x.postinst1970-01-01 
01:00:00.0 +0100
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-   configure)
-   dpkg-trigger --no-await update-initramfs
-   ;;
-
-   abort-upgrade|abort-remove|abort-deconfigure)
-   ;;
-
-   *)
-   echo "postinst called with unknown argument \`$1'" 1>&2
-   exit 1
-   ;;
-esac
-
-#DEBHELPER#
diff -Nru firmware-nonfree-20230625/debian/firmware-bnx2x.triggers 
firmware-nonfree-20230625/debian/firmware-bnx2x.triggers
--- firmware-nonfree-20230625/debian/firmware-bnx2x.triggers1970-01-01 
01:00:00.0 +0100
+++ firmware-nonfree-20230625/debian/firmware-bnx2x.triggers2024-04-20 
18:11:28.0 +0200
@@ -0,0 +1 @@
+activate-noawait update-initramfs
diff -Nru firmware-nonfree-20230625/debian/firmware-cavium.postinst 
firmware-nonfree-20230625/debian/firmware-cavium.postinst
--- firmware-nonfree-20230625/debian/firmware-cavium.postinst   2023-12-19 
18:01:10.0 +0100
+++ firmware-nonfree-20230625/debian/firmware-cavium.postinst   1970-01-01 
01:00:00.0 +0100
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-   configure)
-   dpkg-trigger --no-await update-initramfs
-   ;;
-
-   abort-upgrade|abort-remove|abort-deconfigure)
-   ;;
-
-   *)
-   echo "postinst called with unknown argument \`$1'" 1>&2
-   exit 1
-   ;;
-esac
-
-#DEBHELPER#
diff -Nru firmware-nonfree-20230625/debian/firmw

Bug#1069571: firmware-linux-free: activate update-initramfs trigger declaratively

2024-04-20 Thread Helmut Grohne
Package: firmware-linux-free
Version: 20200122-4
Severity: wishlist
Tags: patch

Removing firmware-linux-free does not activate the update-initramfs
trigger. This is due to being done procedurally in postinst without
matching postrm. I propose using declarative activation let dpkg figure
out when to activate the trigger.

Helmut
diff -Nru firmware-free-20200122/debian/changelog 
firmware-free-20200122/debian/changelog
--- firmware-free-20200122/debian/changelog 2024-02-18 20:56:32.0 
+0100
+++ firmware-free-20200122/debian/changelog 2024-04-20 17:27:53.0 
+0200
@@ -1,3 +1,10 @@
+firmware-free (20200122-4.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Activate trigger declaratively. (Closes: #-1)
+
+ -- Helmut Grohne   Sat, 20 Apr 2024 17:27:53 +0200
+
 firmware-free (20200122-4) unstable; urgency=medium
 
   * Update to linux-support 6.6.15
diff -Nru firmware-free-20200122/debian/firmware-linux-free.postinst 
firmware-free-20200122/debian/firmware-linux-free.postinst
--- firmware-free-20200122/debian/firmware-linux-free.postinst  2024-02-18 
20:56:32.0 +0100
+++ firmware-free-20200122/debian/firmware-linux-free.postinst  1970-01-01 
01:00:00.0 +0100
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-   configure)
-   dpkg-trigger --no-await update-initramfs
-   ;;
-
-   abort-upgrade|abort-remove|abort-deconfigure)
-   ;;
-
-   *)
-   echo "postinst called with unknown argument \`$1'" 1>&2
-   exit 1
-   ;;
-esac
-
-#DEBHELPER#
diff -Nru firmware-free-20200122/debian/firmware-linux-free.triggers 
firmware-free-20200122/debian/firmware-linux-free.triggers
--- firmware-free-20200122/debian/firmware-linux-free.triggers  1970-01-01 
01:00:00.0 +0100
+++ firmware-free-20200122/debian/firmware-linux-free.triggers  2024-04-20 
17:27:36.0 +0200
@@ -0,0 +1 @@
+activate-noawait update-initramfs


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#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#1063554: firmware-linux-free: move files to /usr (DEP17)

2024-02-09 Thread Helmut Grohne
Package: firmware-linux-free
Version: 20200122-2
Tags: patch
User: helm...@debian.org
Usertags: dep17m2

Hi,

we want to finalize the /usr-merge transition by moving all aliased
files from / to /usr via DEP17 to avoid any negative effects arising
from aliasing. firmware-linux-free is involved, because it installs
firmware files below /lib/firmware. Since it cannot be converted
automatically using dh-sequence-movetousr, I'm attaching a patch. This
patch should not be uploaded to bookworm-backports or earlier. Also note
that firmware-carl9170 is in the process of taking over firmware from
firmware-linux-free and doing so will cause a file loss (DEP17 P1). This
is tracked as #1050989. I do not expect that firmware-linux-free needs
to support firmware-carl9170 in mitigating this.

Helmut
diff --minimal -Nru firmware-free-20200122/debian/changelog 
firmware-free-20200122/debian/changelog
--- firmware-free-20200122/debian/changelog 2023-08-20 21:56:54.0 
+0200
+++ firmware-free-20200122/debian/changelog 2024-02-09 15:42:17.0 
+0100
@@ -1,3 +1,10 @@
+firmware-free (20200122-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Move files to /usr (DEP17). (Closes: #-1)
+
+ -- Helmut Grohne   Fri, 09 Feb 2024 15:42:17 +0100
+
 firmware-free (20200122-2) unstable; urgency=medium
 
   [ Ben Hutchings ]
diff --minimal -Nru firmware-free-20200122/debian/rules.real 
firmware-free-20200122/debian/rules.real
--- firmware-free-20200122/debian/rules.real2023-08-20 21:39:29.0 
+0200
+++ firmware-free-20200122/debian/rules.real2024-02-09 15:42:07.0 
+0100
@@ -15,7 +15,7 @@
dh_prep
@for i in $(FILES); do \
  s="$${i%:*}"; \
- d=/lib/firmware/"$${i#*:}"; \
+ d=/usr/lib/firmware/"$${i#*:}"; \
  echo install -m644 -D "$$s" debian/$(PACKAGE_NAME)"$$d"; \
  install -m644 -D "$$s" debian/$(PACKAGE_NAME)"$$d"; \
done


Bug#1058937: Bug#1060700: Requesting advice regarding the impact of problems caused by aliasing on declared Conflicts

2024-01-17 Thread Helmut Grohne
On Fri, Jan 12, 2024 at 01:31:18PM +0100, Helmut Grohne wrote:
> The relevant situation is not entirely trivial to construct:
> 
>  * Package $first contains an aliased file $file and this is moved to
>package $second in an update.
>OR
>Package $first diverts aliased location $file normally owned by
>package $second.
> 
>  * An update to package $second moves $file to its physical location
>below /usr.
> 
>  * Package $second declares a versioned conflict for package $first with
>any version that contains or diverts the aliased $file.
> 
> Then we can construct a file loss scenario:
> 
>  * Install package $first.
>  * Schedule $first for removal:
>echo "$first remove" | dpkg --set-selections
>  * Install the updated $second:
>dpkg --unpack $second.deb

I somehow missed how Ben's libnfsidmap bug #1058937 works slightly
simpler. Given that $second has a conflict with the installed version of
$first, one can skip that second step and instead install $second
directly with dpkg -i. So no, this weird selections stuff is not
technically necessary.

In general, when doing these dances there are two outcomes. Either,
$first is unpacked (or removed) before $second is unpacked or the other
way round. The latter case always shows a message like this:

dpkg: considering removing $first in favour of $second ...
dpkg: yes, will remove $first in favour of $second

It is these cases that exhibit the buggy behaviour.

> In most upgrade scenarios, apt will remove/upgrade package $first before
> performing the unpack of $second. In these cases, no loss happens.

I tried to get an idea of what "most" means precisely. For one thing, I
constructed various bullseye->bookworm and bookworm->unstable upgrades
followed by dpkg --verify. This included large installations such as
task-gnome-desktop with recommends and targeted cases where I hoped to
find problems such as upgrading molly-guard or nfs-ganesha or and a few
more. In none of the cases (where doing plain apt-get dist-upgrade), I
was able to make dpkg --verify unhappy.

Another route was searching for existing evidence. piuparts has lots of
logs of upgrading packages and in >= bookworm, I found exactly one
having that "yes, will remove" content. It was
https://piuparts.debian.org/testing2sid/pass/rubber_1.6.0-2.log and
that's due to texlive-base declaring a versioned Conflict with
texlive-latex-base and texlive-latex-base declaring versioned Breaks
with texlive-base. This is the mutual Conflicts case that also broke
stuff in a draft patch for molly-guard. This data point confirms what
David Kalnischkies said about this earlier: In the absence of mutual
conflicts, apt removes $first before unpacking $second.

I also tried a web search for "yes, will remove" and really most of logs
I found, dpkg was used directly (though without --set-selections). That
texlive mutual conflict was an exception. Evidently, this is rarely
happening on real installations.

> Therefore, I hope that the loss cannot be experienced when upgrading
> with apt or frontends using apt such as aptitude, but there is no proof
> of this.

So all the evidence I found confirms the guess that the problem cannot
be observed with apt unless mutual conflicts exist. On the flip side,
simply installing a package that declares Conflicts occasionally
triggers this and if you happen to do this to a package that replaces
aliased files, then your files vanish.

In particular, this raises the question whether we consider the upgrade
that Ben describes in #1058937 as supported or whether we can close the
bug. In effect, that's the question to ask here.

I note that netplan.io/0.107.1-2/#1060661 just opted for not doing
Conflicts and instead employed protective diversions (M8). In principle,
we could generally prefer M8 (for P1, but not for P7) and thereby reduce
the problem at the cost of making the mitigation more complex. At least
for the essential set, there is not much choice as employing Conflicts
is known to lead to bad things.

> One takeaway from the CTTE meeting was that this loss should be
> mitigated when it may make a system unbootable. That is a property that
> is difficult to capture and would likely require mitigating half of the
> conflicts.

While this may seem like an obvious rule-of-thumb, it very much is
not. For many of the packages, one can plausibly construct crazy boot
schemes involving them. Though cryptsetup quite clearly falls within
scope.

> The way of mitigation also is non-trivial. In the window between unpack
> of files that will be lost and actual loss, no maintainer script is run
> reliably. Hence, copies of affected files have to be installed
> elsewhere:
>  * systemd-sysv looses only symlinks whose target is specified in
>postinst.
>  * gzip looses shell scripts that 

Re: consolidate linux-libc-dev headers

2023-12-23 Thread Helmut Grohne
Hi Dimitri and Bastian,

On Thu, Nov 16, 2023 at 06:28:13PM +, Dimitri John Ledkov wrote:
> Currently in both Debian and Ubuntu we ship like close to 40 .deb packages
> that have linux-libc-dev (for native/multiarch, cross, ports, mipses).
> 
> Each one of them is like 1.5MB, however they actually all have the same and
> repeated content.
> 
> the bulk of headers are the same on all arches (and enforced via
> multi-arch:same), asm-generic is also the same for all of them, and then
> kernel-arch asm headers are unique - but only for given kernel arches (not
> all of the debian arch names).
> 
> Currently there are only 13 kernel archs for unique asm-arch headers, but
> in Debian we have multiple reuses of the same kernel archs with different
> userspace abi properties (arm = armel armhf, mips = 12 mips archs, powerpc
> = 4, x86 = 3, and so on).
> 
> It seems wasteful on disk, build-time, and derivative build time to package
> all of these separately. Especially since there is a chain of src:linux
> building native ones + linux-source as a .deb; which is then used by
> cross-toolchain-base{,-ports,-mips} to unpack and rebuild linux headers
> again, and publish. When in practice src:linux itself could build an
> efficient libc-dev packages for all arches as an arch:all package and
> Multi-Arch:foreign.

Thanks for working on this. I would have appreciated copying
debian-cr...@lists.debian.org as I am not following d-kernel@l.d.o.

> The linux-libc-dev is native & multiarch uapi headers for all arches. The
> linux-libc-dev-alpha-cross is all debian arch crosses. It is implemented
> using hardlinks to maintain all the same paths that are currently being
> used by all the arch:any linux-libc-dev packages, and the
> linux-libc-dev-*-cross packages. In total they provide equivalent
> functionality as 40+ linux-libc-dev* current debs in either Debian or
> Ubuntu.

> Is this something that the debian kernel team could consider supporting /
> building as either standalone source package, or out of src:linux directly?
> as this would reduce 40+ .deb duplication in the mirror pools of the same
> content; and will eliminate build-depends on linux-source (and thus
> built-using) from src:cross-toolchain-base* and will actually ensure that
> all kernel headers for native / multiarch / cross arches are updated
> simultaneously, without need to wait for all arch:any builds to catch up
> first. It also gives ability to trivially create freestanding toolchains to
> any of the arches without actually building a full debian port for or
> having a working kernel for a given port.

I agree with this in principle, but I see a number of shortcomings and
hope you can address them.

When creating a new port, linux is one the pieces that comes first.
Hence building a new linux-lib-dev package was a natural with custom
changes was a very natural thing to do. Until now, we never needed to
build architecture-independent packages, so this is a noticeable
deviation. I'll be looking to support this in rebootstrap.

An example where this kinda fails is musl-linux-any. I'm still vaguely
trying to bootstrap this even though it kinda is stuck really hard on
musl vs systemd being unable to cooperate in any meaningful way. I'm not
sure it is reasonable to add these links the regular linux-libc-dev
package as 99% of people will never use them.

The same goes for esoteric architectures such as sh3, s390 (without x),
arc, loong64, and others.

I guess that the list of architectures will always be incomplete for
some, so we probably still need a process for building a modified
linux-libc-dev package only. This probably requires some build profiles.
Is pkg.linux.nokernel pkg.linux.notools pkg.linux.quick a sensible set
of profiles for this? Is there an easily patchable way to add an
architecture?

Let me also summarize how I see this change affecting various
infrastructure.

Bootstrapping will have to branch on whether the default linux-libc-dev
is usable and for many architectures it will be usable thus speeding up
bootstrap there.

For cross building we completely eliminate multi-arch skews of
linux-libc-dev that used to happen every so often. Cool.

For c-t-b, I guess that we can simply cut out linux-libc-dev and remove
all the -cross packages. I hope there is no devil in the detail.

So if the shortcomings end up having viable solutions, this seems like a
rather positive change to me.

Helmut



Bug#1058937: /usr-move: Do we support upgrades without apt?

2023-12-22 Thread Helmut Grohne
Hi Matthew,

On Thu, Dec 21, 2023 at 02:42:56PM +, Matthew Vernon wrote:
> On 21/12/2023 09:41, Helmut Grohne wrote:
> 
> > Is it ok to call upgrade scenarios failures that cannot be reproduced
> > using apt unsupported until we no longer deal with aliasing?

Let me thank David for clarifying what "using apt" means in exactly the
way I intended it.

As a result, I think the only "no" reply, I've seen thus far is from
Matthew here.

> I incline towards "no"; if an upgrade has failed part-way (as does happen),
> people may then reasonably use dpkg directly to try and un-wedge the upgrade
> (e.g. to try and configure some part-installed packages, or try installing
> some already-downloaded packages).

I incline to agreeing with the scenario you depict. This can reasonably
happen. I also think that David made a good case for it being unlikely
to manage oneself into the buggy situation that way. And then the
consequence is that you lost some possibly important files. If you ended
up fiddling with dpkg in a failed upgrade, would it be too much to ask
for running dpkg --verify? In the event you see missing files, you may
reinstall affected packages and thus have cured the symptoms for your
installation.

Say we extended release-notes saying that you should dpkg --verify after
the upgrade and more so if you happened to use dpkg directly in the
process and review the output. Would that address your concern?

> It may be that the mitigations necessary are worse than the risk, but I
> think the behaviour as described in #1058937 is definitely buggy.

I hope we all agree this is buggy. That's not the question. The question
at hand is whether this is a bug worth fixing or mitigating. We face a
lot of bugs in Debian and assign different severities. Here, the
preliminary analysis assigned a rc-severity which generally means it is
worth fixing. That's the thing I'm questioning here.

Also keep in mind that probably the majority of bullseye -> bookworm
upgrades have been performed already. In all those upgrades, nobody ran
into the issue and reported it. As David pointed out, it was encountered
by actively trying to make it break. It's the silent kind of failure, so
it may just have happened without people noticing.

Maybe we can all run dpkg --verify on our installations (in particular
those upgraded to bookworm or later) and report if they show anything
suspicious. Then we can better quantify how likely these issues happen
in practice.

I note that dpkg --verify does not currently work with --path-exclude.
I'm not sure whether that's a bug. Being a user of --path-exclude, I
note that I ran dpkg --verify on 5 very different systems and didn't
spot unusual things. This is anecdotal evidence and cannot prove the
absence of problems though. I'd be very keen to see at least one user
reporting such problems in a real upgrade rather than me trying to find
problems.

Helmut



Bug#1058937: /usr-move: Do we support upgrades without apt?

2023-12-21 Thread Helmut Grohne
Hi,

this installment serves a dual purpose. Let me first give an update of
the status quo and then pose a consensus question on how we want to deal
with a particular problem.

I Cc d-release@l.d.o as upgrades are an integral part of releases.
I Cc d-ctte@l.d.o for advisory feedback with experience due to earlier
decisions on merged-/usr.

# Status

As I detailed earlier, diversions have been proving more difficult than
anticipated. I spent significant time on molly-guard to get to a working
mitigation and thanks to Francois and Daniel, all of the diverters of
/sbin/halt and others have been updated in experimental for wider
testing. This is looking promising and passing all testing that has been
performed thus far.

Meanwhile Chris Hofstaedler and kind folks in Cambridge worked a lot on
M-A:same shared file loss (DEP17 P7) and got us down to one
(reintroduced) issue.  Pending further reintroductions, this aspect is
done. Cool! I've since uploaded debhelper and dh_installudev will now
also install to /usr. udevdir in udev.pc has been changed in a NEW
upload to experimental as well and is expected to hit unstable before
too long (thanks Michael and Luca).

Earlier, I requested a pause of /usr merges. Since we have a better
understanding and solutions that seem to be working now, I am happy for
you to move stuff again more widely. For moves involving diversions in
any way, consider having me review your change ahead of upload.

At the time of this writing, there are 1237 source packages in unstable
that still ship something aliased. This is the number we need to get
down to 0 for trixie. Of these 860 involve a systemd unit and of these
761 only have systemd units aliased many of which can be converted by a
no-change upload due to changed debhelper and systemd.pc behaviour.

# The problem with conflicts

The idea in DEP17 was to use Conflicts as a mitigation strategy in
agreement with a naive reading of Debian policy. As it turns out, that
doesn't exactly match reality (#1057199 debian-policy) and there are
situations where files can be lost despite Conflicts having been
declared. In theory, this subtlety should be irrelevant and
unobservable, but aliasing (which breaks dpkg's assumptions) makes this
observable.

We move a file from / to /usr in $PKGA.

AND one of

The file is also being moved to a different package (causing DEP17 P1).

OR

The file is being diverted (causing DEP17 P3).

AND

The mitigation involves declaring a Conflict for unpack ordering (i.e.
M7 for P1 or M18 for P3).

AND one of

The upgrade is being performed using a direct dpkg invocation
without apt in a way that unpacks the package declaring the conflict
before the conflicted package is removed. Example: #1058937 (Ben's
libnfsidmap1 bug)

OR

The involved packages declare a mutual conflict (or mutual conflicts
+ breaks) and therefore apt invokes dpkg as in the earlier point.
Example: An earlier version of the molly-guard mitigation declared
versioned Breaks for systemd-sysv.

This condition is complex, so let me try to break it down into something
simpler. We'll have somewhere between 20 and 100 instances of P1 + P3 I
guess and we aimed for mitigating most of them using Conflicts (i.e.
first two conditions). The horny part is the last one. It basically says
that as long as we only ever use apt and avoid mutual conflicts, the
issue is not practically observable.

That mutual conflict condition is delicate on its own. There are
basically two ways to trigger it. The way my molly-guard patch did it
was having two versioned Conflicts or Breaks declarations. I checked the
archive and there is no instance of any package combination doing this.
Hypothetically, another way to trigger this is unversioned Conflicts
combined with a package that drops Provides in a later version (thanks
David), but we haven't seen any practical instance and I haven't figured
a good way to gauge this problem yet.

## Options (combinations possible)

When mitigating P1, we can opt for protective diversions (M8) instead of
Conflicts (M7), though that is more fragile.

When mitigating P3, we can avoid the mutual conflicts. For molly-guard
that has been more involved, but it seems manageable. For other
packages (that do not need to access diverted files), it becomes
simpler.

We can restore lost files in a postinst. For this to work, we must
duplicate (e.g. hard link) affected files in the data.tar.
Example: #1057220 (systemd-sysv upgrade file loss)
Note that this approach is not policy compliant for essential packages
as they must work when unpacked and this is relevant for gzip being
diverted by zutils for instance.

We can introduce "barrier" packages (one or more) and have them enforce
conflicting packages removed before the conflictor being unpacked
(thanks Julian).

We can - and this is the crux of the matter - argue that upgrading with
bare dpkg is unsupported and you get to keep the pieces if you do so
anyway.


Bug#1057121: dpkg: warning: unable to delete old directory '/lib/firmware/...

2023-11-29 Thread Helmut Grohne
Control: reassign -1 release-notes
Control: retitle -1 document expected warnings for the bookworm to trixie 
upgrade

On Thu, Nov 30, 2023 at 02:26:07PM +0800, Dan Jacobson wrote:
> Package: firmware-misc-nonfree
> Version: 20230625-1
> 
> Saw tons of these.
> Unpacking firmware-misc-nonfree (20230625-1) over (20230515-3) ...
> dpkg: warning: unable to delete old directory '/lib/firmware/wfx': Directory 
> not empty
> dpkg: warning: unable to delete old directory '/lib/firmware/ueagle-atm': 
> Directory not empty
> dpkg: warning: unable to delete old directory '/lib/firmware/tigon': 
> Directory not empty
> dpkg: warning: unable to delete old directory '/lib/firmware/tehuti': 
> Directory not empty
> 
> Due to
> /lib/firmware/tehuti/bdx.bin etc.

I fear these warnings are to be expected when upgrading from bookworm to
trixie or within development releases as trixie is being prepared. This
is a result of the way we choose to finalize the /usr-merge transition
and the only way to not have such warnings would have been to spread the
transition to forky. Consensus has been to accept the warnings in favour
of finishing sooner rather than later.

That said, I see how these warnings cause confusion. We should document
them in the release-notes as being specifically expected in a bookworm
to trixie upgrade, but not beyond.

Helmut



Bug#1051824: linux-patch-VER-rt.patch.xz went missing

2023-09-12 Thread Helmut Grohne
Package: linux-source-6.1
Version: 6.1~rc3-1~exp1
X-Debbugs-Cc: wa...@debian.org

Hi,

I noticed that linux-patch-VER-rt.patch.xz is missing from
linux-source-VER lately. I tracked this down to having gone missing
exactly when we moved from 6.0 to 6.1, i.e. all 6.0 builds include it
and all 6.1 builds lack it. Digging deeper, I couldn't identify a
regressing git commit, but Bastian's work on restructuring makefile
targets stands out. If looking at build logs, you can see that in
current builds ALL_FEATURESETS is no longer set and this is why the
relevant dependency is skipped.

gencontrol.py def do_main_makefile is probably relevant here. It ends
with:

makeflags = makeflags.copy()
makeflags['ALL_FEATURESETS'] = ' '.join(iter_featuresets(self.config))
super().do_main_makefile(makeflags, extra)

In former kernels, the super method was non-empty and consumed the
updated makeflags, but this is no longer the case, the super method now
simply says "pass", so this code block has effectively become a no-op.

On the flip side, I tried to see what would happen if we'd update the
global makeflags with ALL_FEATURESETS (e.g. by deleting the dict copy).
And indeed, once doing that the rt patch is included in the -source
package again. This probably is not the right solution, but I hope this
bit helps pin down the cause.

In any case, it seems evident that the deletion of
linux-patch-VER-rt.patch.xz is accidental rather than intentional. Would
you be able to restore its presence?

Helmut



Bug#1051365: linux: drop stage1 profile?

2023-09-06 Thread Helmut Grohne
Source: linux
Severity: wishlist
User: helm...@debian.org
Usertags: rebootstrap

Hi,

I recently captured a conversation involving Bastain saying that the
stage1 build profile was deprecated. He's right!

So I went searching for users of this profile. The most obvious user to
me is rebootstrap. It turns out that stage1 is sufficiently similar to
pkg.linux.nokernel,pkg.linux.nosource,pkg.linux.notools that I can just
use that profile combination instead and changed rebootstrap.

Another obvious candidate is cross-toolchain-base as it also produces
packages that resemble a linux-libc-dev. Looking into it, I found that
it doesn't use linux' packaging at all and just does make
headers_install, so it does not use stage1 either.

And with that I'm lost locating users of linux' stage1 profile.

Is it time to delete it?

If your answer is "no", please close this bug without further action.

Helmut



Bug#1037938: linux FTCBFS: perf builds a python extension for the build architecture

2023-06-14 Thread Helmut Grohne
Source: linux
Version: 6.3.7-1
Tags: patch
User: debian-cr...@lists.debian.org
Usertags: ftcbfs

linux fails to cross build from source again. It seems like the perf
build gained a python extension and that extension happens to be built
for the build architecture, which doesn't go well. Please export the
magic python cross building environment variable to make this work. I'm
attaching a patch for your convenience.

Helmut
--- linux-6.3.7/debian/changelog2023-06-12 08:25:26.0 +0200
+++ linux-6.3.7/debian/changelog2023-06-14 16:09:09.0 +0200
@@ -1,3 +1,11 @@
+linux (6.3.7-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: Pass _PYTHON_SYSCONFIGDATA_NAME to the perf build.
+(Closes: #-1)
+
+ -- Helmut Grohne   Wed, 14 Jun 2023 16:09:09 +0200
+
 linux (6.3.7-1) unstable; urgency=medium
 
   * New upstream stable update:
--- linux-6.3.7/debian/rules.real   2023-06-12 08:25:16.0 +0200
+++ linux-6.3.7/debian/rules.real   2023-06-14 16:09:09.0 +0200
@@ -632,6 +632,10 @@
dh_md5sums
dh_builddeb -- $(BUILDDEB_ARGS)
 
+ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+binary_perf build_perf: export 
_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__$(DEB_HOST_MULTIARCH)
+endif
+
 build_perf: $(STAMPS_DIR)/build-tools-headers
$(call make-tools,tools/perf)
 


Bug#1019118: patch for rtla regression

2023-02-07 Thread Helmut Grohne
Control: tags -1 + patch
Control: forwarded -1 
https://lore.kernel.org/all/20230120070809.6169-1-jo...@mister-muffin.de/

Hi,

Johannes tried upstreaming the necessary change and that was rejected
with a note that this is the responsibility of the builder. I'm
attaching the appropriate Debian patch as requested. Please consider
applying it.

Helmut
diff --minimal -Nru linux-6.1.8/debian/changelog linux-6.1.8/debian/changelog
--- linux-6.1.8/debian/changelog2023-01-29 13:33:36.0 +0100
+++ linux-6.1.8/debian/changelog2023-02-07 07:55:34.0 +0100
@@ -1,3 +1,10 @@
+linux (6.1.8-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: Supply the host pkg-config to the rtla build. (Closes: 
#1019118)
+
+ -- Helmut Grohne   Tue, 07 Feb 2023 07:55:34 +0100
+
 linux (6.1.8-1) unstable; urgency=medium
 
   * New upstream stable update:
diff --minimal -Nru linux-6.1.8/debian/rules.d/Makefile.inc 
linux-6.1.8/debian/rules.d/Makefile.inc
--- linux-6.1.8/debian/rules.d/Makefile.inc 2022-11-20 16:33:47.0 
+0100
+++ linux-6.1.8/debian/rules.d/Makefile.inc 2023-02-07 07:55:34.0 
+0100
@@ -7,6 +7,7 @@
 
 CC = $(CROSS_COMPILE)gcc
 CXX = $(CROSS_COMPILE)g++
+PKG_CONFIG = $(CROSS_COMPILE)pkg-config
 CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall
 CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) \
-I$(top_srcdir)/$(OUTDIR) \
diff --minimal -Nru linux-6.1.8/debian/rules.d/tools/tracing/rtla/Makefile 
linux-6.1.8/debian/rules.d/tools/tracing/rtla/Makefile
--- linux-6.1.8/debian/rules.d/tools/tracing/rtla/Makefile  2023-01-28 
14:24:06.0 +0100
+++ linux-6.1.8/debian/rules.d/tools/tracing/rtla/Makefile  2023-02-07 
07:55:34.0 +0100
@@ -5,7 +5,7 @@
echo '$(UPSTREAMVERSION)' >VERSION
rsync -a $(top_srcdir)/tools/tracing/rtla/ .
rsync -a $(top_srcdir)/Documentation/tools/rtla/ Documentation/
-   $(MAKE) EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' EXTRA_LDFLAGS='$(LDFLAGS)'
+   $(MAKE) EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' EXTRA_LDFLAGS='$(LDFLAGS)' 
PKG_CONFIG='$(PKG_CONFIG)'
 
 install:
$(MAKE) install


Bug#1027915: systemd requires /run to be mounted with a minimum size of 20MB

2023-01-24 Thread Helmut Grohne
Hi Helge,

On Tue, Jan 24, 2023 at 10:30:37PM +0100, Helge Deller wrote:
> On 1/24/23 06:27, Helmut Grohne wrote:
> > On Mon, Jan 23, 2023 at 10:48:27PM +0100, Helge Deller wrote:
> > > --- ./init.org2023-01-23 21:40:33.079738389 +
> > > +++ ./init2023-01-23 21:40:45.983861851 +
> > > @@ -205,6 +205,15 @@ else
> > >   resume=${RESUME:-}
> > >   fi
> > > 
> > > +if [ -z "${RUNSIZE}" ] || [[ "${RUNSIZE}" \< "20" ]]; then
> > 
> > This is as bashism and init runs with dash as far as I can see.
> 
> Hmm... I did tested it, at it seemed to work...
> Which part of that line exactly do you think is problematic?
> I'm open for any other idea how to code it.

The lexicographic comparison is outside the realm of POSIX shell, but to
my surprise this actually is supported by dash. So fixing this would be
academic.

> Both will work, because I assume that on such systems you probably have more 
> than 200MB RAM
> and thus my patch won't touch the user-provided value at all.

Fair enough.

> > > + read MemTotal mem_kb rest < /proc/meminfo
> > > + # systemd requires at minumum 16MB for /run, so reserve
> > > + # 20MB for machines which have less than 200MB RAM
> > > + if [ "$mem_kb" -lt "20" ]; then
> > > + RUNSIZE=20M # for machines <= 200MB RAM

else
: "${RUNSIZE:=10%}"

> > 
> > Given that you initialize a default here, I think it would make the code
> > more obvious if you pulled the 10% default 4 lines later into an else
> > branch.
> 
> Not sure I understand this...?
> 
> > > + fi
> > > +fi
> > > +
> > >   mount -t tmpfs -o "nodev,noexec,nosuid,size=${RUNSIZE:-10%},mode=0755" 
> > > tmpfs /run

This is the other line that contains a default. I suggested moving this
default up to make it more obvious, but this is really only a cosmetic
improvement.

As such LGTM, but I am not an initramfs maintainer.

Helmut



Bug#1027915: systemd requires /run to be mounted with a minimum size of 20MB

2023-01-24 Thread Helmut Grohne
Hi Helge,

On Mon, Jan 23, 2023 at 10:48:27PM +0100, Helge Deller wrote:
> --- ./init.org2023-01-23 21:40:33.079738389 +
> +++ ./init2023-01-23 21:40:45.983861851 +
> @@ -205,6 +205,15 @@ else
>   resume=${RESUME:-}
>  fi
>  
> +if [ -z "${RUNSIZE}" ] || [[ "${RUNSIZE}" \< "20" ]]; then

This is as bashism and init runs with dash as far as I can see.

Also note that RUNSIZE may legitimately be given as "1g" or "19%", both
of which should work. I suggest just not handling the case where RUNSIZE
is set by the user and letting them break their system however they
like rather than risk breaking legitimate configuration.

> + read MemTotal mem_kb rest < /proc/meminfo
> + # systemd requires at minumum 16MB for /run, so reserve
> + # 20MB for machines which have less than 200MB RAM
> + if [ "$mem_kb" -lt "20" ]; then
> + RUNSIZE=20M # for machines <= 200MB RAM

Given that you initialize a default here, I think it would make the code
more obvious if you pulled the 10% default 4 lines later into an else
branch.

> + fi
> +fi
> +
>  mount -t tmpfs -o "nodev,noexec,nosuid,size=${RUNSIZE:-10%},mode=0755" tmpfs 
> /run
>  mkdir -m 0700 /run/initramfs

Helmut



Bug#1029270: linux-image-6.1.0-2-686-pae fails to boot in qemu

2023-01-20 Thread Helmut Grohne
Control: severity -1 normal

On Fri, Jan 20, 2023 at 03:55:53PM +0100, Helmut Grohne wrote:
> A CI job of debvm started failing. debvm creates a minimalistic virtual
> machine based on Debian unstable i386 and tries to run it in qemu. With
> the previous kernel package that worked. Once updating to 6.1.7-1, it
> fails to boot:

I have one more data point. If you pass -enable-kvm to qemu, it actually
boots. It only fails to boot when disabling kvm. That shouldn't affect
that many users. It's still unclear what causes the issue.

I'm also pulling qemu maintainer mjt into the discussion for possible
input.

Helmut



Bug#1029270: linux-image-6.1.0-2-686-pae fails to boot in qemu

2023-01-20 Thread Helmut Grohne
Package: linux-image-6.1.0-2-686-pae
Version: 6.1.7-1
Severity: important
Control: affects -1 + debvm

A CI job of debvm started failing. debvm creates a minimalistic virtual
machine based on Debian unstable i386 and tries to run it in qemu. With
the previous kernel package that worked. Once updating to 6.1.7-1, it
fails to boot:

https://salsa.debian.org/helmutg/debvm/-/jobs/3824112
| [1.158184] traps: PANIC: double fault, error_code: 0x0
| [1.158184] double fault:  [#1] PREEMPT SMP PTI
| [1.158184] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.1.0-2-686-pae #1  
Debian 6.1.7-1
| [1.158184] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 
1.16.0-debian-1.16.0-5 04/01/2014
| [1.158184] EIP: __kmem_cache_alloc_node+0xc4/0x350
| [1.158184] Code: 85 c9 0f 84 6e 02 00 00 8b 75 f0 8b 47 1c 01 f0 89 c1 8b 
00 33 47 78 0f c9 31 c8 8d 4a 20 89 c3 89 f0 8b 37 64 0f c7 0e 75 ba <8b> 75 e8 
8b 47 1c 8d 74 26 00 3e 8d 74 26 00 3e 8d 74 26 00 8b 47
| [1.158184] EAX: c11ed0c0 EBX: c11ed300 ECX: 0301 EDX: 02e1
| [1.158184] ESI: d6e1e978 EDI: c10013c0 EBP: c1145e4c ESP: c1145e30
| [1.158184] DS: 007b ES: 007b FS: 00d8 GS:  SS: 0068 EFLAGS: c11ed2c2
| [1.158184] CR0: 80050033 CR2:  CR3: 16e2c000 CR4: 06b0
| [1.158184] Call Trace:
| [1.158184]  __kmalloc+0x42/0x140
| [1.158184]  ? cache_random_seq_create+0x81/0x130
| [1.158184]  ? cache_random_seq_create+0x81/0x130
| [1.158184]  cache_random_seq_create+0x81/0x130
| [1.158184]  init_cache_random_seq+0x39/0x80
| [1.158184]  __kmem_cache_create+0x10f/0x470
| [1.158184]  kmem_cache_create_usercopy+0x158/0x2a0
| [1.158184]  kmem_cache_create+0x17/0x20
| [1.158184]  proto_register+0x183/0x240
| [1.158184]  ? ipv4_offload_init+0x6e/0x6e
| [1.158184]  inet_init+0x37/0x261
| [1.158184]  do_one_initcall+0x4b/0x1e0
| [1.158184]  kernel_init_freeable+0x1a5/0x1e5
| [1.158184]  ? rest_init+0xb0/0xb0
| [1.158184]  kernel_init+0x17/0x100
| [1.158184]  ret_from_fork+0x1c/0x28
| [1.158184] Modules linked in:
| [1.158184] ---[ end trace  ]---
| [1.158184] EIP: __kmem_cache_alloc_node+0xc4/0x350
| [1.158184] Code: 85 c9 0f 84 6e 02 00 00 8b 75 f0 8b 47 1c 01 f0 89 c1 8b 
00 33 47 78 0f c9 31 c8 8d 4a 20 89 c3 89 f0 8b 37 64 0f c7 0e 75 ba <8b> 75 e8 
8b 47 1c 8d 74 26 00 3e 8d 74 26 00 3e 8d 74 26 00 8b 47
| [1.158184] EAX: c11ed0c0 EBX: c11ed300 ECX: 0301 EDX: 02e1
| [1.158184] ESI: d6e1e978 EDI: c10013c0 EBP: c1145e4c ESP: c1145e30
| [1.158184] DS: 007b ES: 007b FS: 00d8 GS:  SS: 0068 EFLAGS: c11ed2c2
| [1.158184] CR0: 80050033 CR2:  CR3: 16e2c000 CR4: 06b0
| [1.158184] Kernel panic - not syncing: Fatal exception in interrupt

You can easily reproduce this by installing debvm, running `debvm-create
-a i386` (which will create a rootfs.ext4) and then `debvm-run`.

The only other packages changed since the last successful run are:
 * openssl
 * glib2.0
 * mmdebstrap

We can rule out mmdebstrap as a cause by adding `-r bookworm` to the
invocation and seeing that things boot. The other packages shouldn't be
able to cause a kernel panic.

Let me know if you need anything else.

Helmut



Bug#1028184: unsatisfiable cross Build-Depends: python3-jinja2

2023-01-07 Thread Helmut Grohne
Source: linux
Version: 6.1.4-1
Tags: patch
Severity: important
Justification: breaks architecture bootstrap
User: helm...@debian.org
Usertags: rebootstrap
User: debian-cr...@lists.debian.org
Usertags: cross-satisfiability

Hi,

the addition of the python3-jinja2 build dependency happens to break
architecture bootstrap. It's not as bad as it may sound initially
though.

python3-jinja2 is an architecture-dependent package due to being a C
extension. As such it is installed for the host architecture by default.
Thus apt tries to install the whole python stack for the host
architecture and that doesn't go well. We cannot make python3-jinja2
Multi-Arch: foreign, because it really isn't, so consumers (like linux)
have to choose how they use it instead. In this case, it's meant to be
run during build and that means it should be annotated :native. While at
it, I think that it is more honest to also apply this to python3 as well
in order to disallow a host architecture Python interpreter.

This happens to be easy to work around in rebootstrap, so don't upload
linux just for this bug, but please include the patch in your next
regular upload to unstable.

Helmut
diff --minimal -Nru linux-6.1.4/debian/changelog linux-6.1.4/debian/changelog
--- linux-6.1.4/debian/changelog2023-01-07 14:53:00.0 +0100
+++ linux-6.1.4/debian/changelog2023-01-08 07:29:36.0 +0100
@@ -1,3 +1,11 @@
+linux (6.1.4-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix cross Build-Depends: Annotate python3 and python3-jinja2
+dependencies :native. (Closes: #-1)
+
+ -- Helmut Grohne   Sun, 08 Jan 2023 07:29:36 +0100
+
 linux (6.1.4-1) unstable; urgency=medium
 
   * New upstream stable update:
diff --minimal -Nru linux-6.1.4/debian/control linux-6.1.4/debian/control
--- linux-6.1.4/debian/control  2023-01-07 14:53:00.0 +0100
+++ linux-6.1.4/debian/control  2023-01-08 07:29:33.0 +0100
@@ -4,7 +4,7 @@
 Maintainer: Debian Kernel Team 
 Uploaders: Bastian Blank , maximilian attems 
, Ben Hutchings , Salvatore Bonaccorso 

 Standards-Version: 4.2.0
-Build-Depends: debhelper-compat (= 12), dh-exec, python3:any, python3-jinja2, 
quilt, cpio , xz-utils , dh-python , bison 
, flex (>= 2.6.1-1.1~) 
+Build-Depends: debhelper-compat (= 12), dh-exec, python3:native, 
python3-jinja2:native, quilt, cpio , xz-utils , dh-python 
, bison , flex (>= 2.6.1-1.1~) 
 Build-Depends-Arch: kernel-wedge (>= 2.102~) , 
kmod , bc , 
libssl-dev:native , libssl-dev , openssl (>= 1.1.0-1~) , 
libelf-dev:native , libelf-dev , rsync, lz4 [amd64 arm64] , pahole 
 | dwarves:native (>= 1.16~) , gcc-12 [alpha amd64 arm64 armel armhf hppa i386 ia64 m68k mips mips64 
mips64el mips64r6 mips64r6el mipsel mipsr6 mipsr6el powerpc ppc64 ppc64el 
riscv64 s390x sh4 sparc64] , 
gcc-12-alpha-linux-gnu [alpha] , 
gcc-12-x86-64-linux-gnu [amd64] , 
gcc-12-aarch64-linux-gnu [arm64] , 
gcc-arm-linux-gnueabihf [arm64] , 
gcc-12-arm-linux-gnueabi [armel] , 
gcc-12-arm-linux-gnueabihf [armhf] , 
gcc-12-hppa-linux-gnu [hppa] , 
binutils-hppa64-linux-gnu [hppa] , 
gcc-12-hppa64-linux-gnu [hppa] , 
gcc-12-i686-linux-gnu [i386] , 
gcc-12-ia64-linux-gnu [ia64] , 
gcc-12-m68k-linux-gnu [m68k] , 
gcc-12-mips-linux-gnu [mips] , 
gcc-12-mips64-linux-gnuabi64 [mips64] , 
gcc-12-mips64el-linux-gnuabi64 [mips64el] , 
gcc-12-mipsisa64r6-linux-gnuabi64 [mips64r6] , gcc-12-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gcc-12-mipsel-linux-gnu [mipsel] , gcc-12-mipsisa32r6-linux-gnu [mipsr6] , gcc-12-mipsisa32r6el-linux-gnu [mipsr6el] , gcc-12-powerpc-linux-gnu [powerpc] , gcc-12-powerpc64-linux-gnu [ppc64] , gcc-12-powerpc64le-linux-gnu [ppc64el] , gcc-12-riscv64-linux-gnu [riscv64] , gcc-12-s390x-linux-gnu [s390x] , gcc-12-sh4-linux-gnu [sh4] , gcc-12-sparc64-linux-gnu [sparc64] , python3-docutils [linux-any] , zlib1g-dev [linux-any] , libcap-dev [linux-any] , libpci-dev 
[linux-any] , asciidoctor [alpha amd64 arm64 armel 
armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 
mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el riscv64 
s390 s390x sh4 sparc sparc64] , 
gcc-multilib [amd64 mips64 mips64el mips64r6 mips64r6el ppc64 s390x sparc64] 
, libaudit-dev [alpha amd64 arm64 armel 
armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 
mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el riscv64 
s390 s390x sh4 sparc sparc64] , 
libbabeltrace-dev [alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el 
mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 
mipsr6el powerpc ppc64 ppc64el riscv64 s390 s390x sh4 sparc sparc64] , libdw-dev [alpha amd64 arm64 armel armhf hppa i386 
mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 
mipsn32r6el mipsr6 mipsr6el powerpc ppc64 ppc64el riscv64 s390 s390x sh4 sparc 
sparc64] , libiberty-dev [alpha amd64 
arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mi

Bug#1027174: linux-image-*-cloud-amd64: please add support for the 9p filesystem

2022-12-28 Thread Helmut Grohne
Package: linux-image-6.0.0-6-cloud-amd64
Version: 6.0.12-1
Severity: wishlist
X-Debbugs-Cc: jo...@debian.org

Hi,

I already talked with Bastian on #debian-devel about this, but that was
inconclusive, so I'm taking it to email.

I request adding support for the 9p filesystem to the cloud image. While
Bastian pointed out that the primary use case of cloud kernels is AWS,
Azure and GCE, I think that these kernels should be generally useful in
virtualisation environments such as kvm. As far as I understand it, they
significantly reduce the size by removing hardware drivers that are not
usually available in virtualised environments.

While none of the mentioned cloud providers provide 9p filesystems to
their guests, the -virtfs option to kvm/qemu is by far the simplest way
to share a host filesystem with a virtual machine. The cloud kernel
image already covers virtiofs, but virtiofsd comes with significant
additional complexity on the host - most significant is the requirement
for being run as root. Given the similarity of virtiofs and 9p, the
latter should be included as well.

Adding 9p would increase the Installed-Size by about 600kb, i.e. less
than 0.5%.

Of course, one can always install the non-cloud kernel to use 9p.

Helmut



Re: Dependencies of linux-headers- packages

2022-03-14 Thread Helmut Grohne
Hi Felix,

On Mon, Mar 14, 2022 at 10:33:22AM +, Moessbauer, Felix wrote:
> In general I agree, but here the situation is a bit different:
> The dependency to the host compiler (e.g. arm64) is too narrow.

Wrong. It certainly is not and beyond that, this aspect is not weakened.
It still requires a particular version of gcc for the relevant
architecture.

> In general, any gcc compiler in the correct version should do.

Wrong. Ben explained why this is not desired and his patch does not
relax this aspect.

> As discussed earlier the linux-headers -> compiler dependency is just a 
> convenience dep.
> I proposed to remove it or move it to the "recommends" section.

Yes, you proposed that. But it was not an accepted solution and it is
not what Ben's patch does.

> But the proposed solution might be better as it maintains backwards 
> compatibility.

Ben's solution is a workaround. The linux packaging is already complex
in this regard. We need to reduce complexity, not add to it.

> For users that just want to cross-compile a module, there is simply no reason 
> why the have to install the compiler for the host architecture (e.g. arm64).

The essence of cross compilation is a compiler that targets the host
architecture. Of course, you do need it for cross compiling a kernel
module.

> And this use-case is perfectly solved in the patch from Ben.

We seem to be in disagreement of what "perfect" means. Any time, you
iterate over architectures in your dependencies, things are certainly
not perfect as every new architecture will require manual work. Manual
per-architecture work does not qualify as "perfect" to me. While it
solves your use case, it incurs a maintenance cost where a solution with
less cost is available.

Helmut



Re: Dependencies of linux-headers- packages

2022-03-13 Thread Helmut Grohne
Hi,

On Thu, Mar 10, 2022 at 02:13:34PM +, Moessbauer, Felix wrote:
> Many thanks for the patch.
> I just (manually) backported that to Debian bullseye, tested it for arm64 and 
> it worked like a charm.

Can we please stop piling up workarounds and instead fix this once and
for all?

I see us mirroring the "LTS problem" here: Everyone maintains their own
stuff with local patches and it barely works. LTS now has a solution in
the form of freexian where the effort is centralized and made available
for the benefit of everyone.

Helmut



Bug#996906: klibc FTBFS on armhf: cc1: error: '-mfloat-abi=hard': selected architecture lacks an FPU

2021-10-20 Thread Helmut Grohne
Source: klibc
Version: 2.0.8-6.1
Severity: serious
Tags: ftbfs

klibc fails to build from source in unstable on armhf. I suppose this is
fallout from gcc-11.

Reproduced by reproducible builds:
https://tests.reproducible-builds.org/debian/rbuild/unstable/armhf/klibc_2.0.8-6.1.rbuild.log.gz
| /usr/bin/make all INSTALLROOT=debian/tmp ARCH=arm CONFIG_AEABI=y 
CPU_ARCH=armv7-a CPU_TUNE=cortex-a8 CONFIG_KLIBC_THUMB=y KBUILD_VERBOSE=1 
CONFIG_DEBUG_INFO=y
| make[2]: Entering directory '/build/1st/klibc-2.0.8'
| /usr/bin/make -f /build/1st/klibc-2.0.8/scripts/Kbuild.klibc obj=klcc
| rm -f klcc/klibc.config
| echo 'ARCH=arm' >> klcc/klibc.config
| echo 'ARCHDIR=arm' >> klcc/klibc.config
| echo 'CROSS=' >> klcc/klibc.config
| echo 'KCROSS=' >> klcc/klibc.config
| echo 'CC=gcc' >> klcc/klibc.config
| echo 'LD=ld' >> klcc/klibc.config
| echo 'REQFLAGS=-D__KLIBC__=2 -D__KLIBC_MINOR__=0 -D_BITSIZE=32 
-fno-stack-protector -fwrapv -fno-PIE -fno-builtin-bcmp -fcommon -ggdb 
-fno-exceptions -mthumb -mabi=aapcs-linux -nostdinc -iwithprefix include 
-D__KLIBC__=2 -D__KLIBC_MINOR__=0 -D_BITSIZE=32' >> klcc/klibc.config
| echo 'OPTFLAGS=-Os -march=armv7-a -mtune=cortex-a8' >> klcc/klibc.config
| echo 'LDFLAGS=--thumb-entry _start --build-id=sha1' >> klcc/klibc.config
| echo 'STRIP=strip' >> klcc/klibc.config
| echo 'STRIPFLAGS=-R .ARM.exidx --strip-all -R .comment -R .note' >> 
klcc/klibc.config
| echo 'EMAIN=--thumb-entry main' >> klcc/klibc.config
| echo 'BITSIZE=32' >> klcc/klibc.config
| echo 'VERSION=2.0.8' >> klcc/klibc.config
| echo 'prefix=/usr/lib/klibc' >> klcc/klibc.config
| echo 'bindir=/usr/lib/klibc/bin' >> klcc/klibc.config
| echo 'libdir=/usr/lib/klibc/lib' >> klcc/klibc.config
| echo 'includedir=/usr/lib/klibc/include' >> klcc/klibc.config
|   perl klcc/makeklcc.pl /build/1st/klibc-2.0.8/klcc/klcc.in klcc/klibc.config 
/usr/bin/perl > klcc/klcc || ( rm -f klcc/klcc ; exit 1 ) && chmod a+x klcc/klcc
| :
| /usr/bin/make -f /build/1st/klibc-2.0.8/scripts/Kbuild.klibc obj=.
| /usr/bin/make -rR -f /build/1st/klibc-2.0.8/scripts/Kbuild.klibc 
obj=scripts/basic
|   gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 
-fomit-frame-pointer   -o scripts/basic/fixdep scripts/basic/fixdep.c
| :
| /usr/bin/make -rR -f /build/1st/klibc-2.0.8/scripts/Kbuild.klibc obj=usr/klibc
|   gcc -Wp,-MD,usr/klibc/.__static_init.o.d  -nostdinc -iwithprefix include 
-I/build/1st/klibc-2.0.8/usr/include/arch/arm -Iusr/include/arch/arm 
-I/build/1st/klibc-2.0.8/usr/include/bits32 -Iusr/include/bits32 
-I/build/1st/klibc-2.0.8/usr/klibc/../include -Iusr/klibc/../include 
-I/build/1st/klibc-2.0.8/usr/include -Iusr/include 
-I/build/1st/klibc-2.0.8/linux/include -Ilinux/include -D__KLIBC__=2 
-D__KLIBC_MINOR__=0 -D_BITSIZE=32 -fno-stack-protector -fwrapv -fno-PIE 
-fno-builtin-bcmp -fcommon -ggdb -fno-exceptions -mthumb -mabi=aapcs-linux -Os 
-march=armv7-a -mtune=cortex-a8 -W -Wall -Wno-sign-compare 
-Wno-unused-parameter -c -o usr/klibc/__static_init.o usr/klibc/__static_init.c
| cc1: error: '-mfloat-abi=hard': selected architecture lacks an FPU
| make[4]: *** [/build/1st/klibc-2.0.8/scripts/Kbuild.klibc:261: 
usr/klibc/__static_init.o] Error 1
| make[3]: *** [/build/1st/klibc-2.0.8/./Kbuild:9: all] Error 2
| make[2]: *** [Makefile:121: klibc] Error 2
| make[2]: Leaving directory '/build/1st/klibc-2.0.8'
| make[1]: *** [debian/rules:51: override_dh_auto_build] Error 2
| make[1]: Leaving directory '/build/1st/klibc-2.0.8'
| make: *** [debian/rules:45: build] Error 2
| dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

Also seen by crossqa:
http://crossqa.debian.net/build/klibc_2.0.8-6.1_armhf_20211019164552.log

Helmut



Bug#994798: util-linux FTBFS: configure: error: raw selected, but required raw.h header file not available

2021-09-20 Thread Helmut Grohne
Source: util-linux
Version: 2.37.2-2
Severity: serious
Tags: ftbfs
X-Debbugs-Cc: debian-kernel@lists.debian.org

util-linux fails to build from source in unstable on amd64. I think the
relevant bits are:


| dh_auto_configure -- --enable-raw --with-selinux --with-smack --enable-partx 
--with-systemd --with-udev --with-audit --with-cryptsetup=dlopen --enable-write 
--enable-static-programs=fdisk,sfdisk,blkid --without-python --disable-login 
--disable-nologin --disable-kill --disable-chfn-chsh --disable-cal 
--disable-hwclock-gplv3
|   ./configure --build=x86_64-linux-gnu --prefix=/usr 
--includedir=\${prefix}/include --mandir=\${prefix}/share/man 
--infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var 
--disable-option-checking --disable-silent-rules 
--libdir=\${prefix}/lib/x86_64-linux-gnu --runstatedir=/run 
--disable-maintainer-mode --disable-dependency-tracking --enable-raw 
--with-selinux --with-smack --enable-partx --with-systemd --with-udev 
--with-audit --with-cryptsetup=dlopen --enable-write 
--enable-static-programs=fdisk,sfdisk,blkid --without-python --disable-login 
--disable-nologin --disable-kill --disable-chfn-chsh --disable-cal 
--disable-hwclock-gplv3
...
| checking for linux/raw.h... no
...
| configure: error: raw selected, but required raw.h header file not available

I suspect that linux dropped the header and that way makes util-linux
FTBFS.

Helmut



Bug#970011: linux: missing build dependency on kernel-wedge in stage1 build

2020-09-09 Thread Helmut Grohne
Source: linux
Version: 5.8.7-1
Severity: important
User: helm...@debian.org
Usertags: rebootstrap

Hi,

I'm run into a bootstrap failure caused by linux:
https://jenkins.debian.net/job/rebootstrap_hppa_gcc10/9/
| dh_prep
| dh_prep: warning: All requested packages have been excluded (e.g. via a 
Build-Profile or due to architecture restrictions).
| kernel-wedge install-files 5.8.0-1
| bash: kernel-wedge: command not found
| make[2]: Leaving directory '/tmp/buildd/linux/linux-5.8.7'
| make[2]: *** [debian/rules.real:573: install-udeb_hppa] Error 127
| make[1]: Leaving directory '/tmp/buildd/linux/linux-5.8.7'
| make[1]: *** [debian/rules.gen:89: binary-arch_hppa] Error 2
| make: *** [debian/rules:43: binary-arch] Error 2
| dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit 
status 2

What we see here is that kernel-wedge is not found while cross building
linux with the stage1 profile for hppa. This seems to be a recent thing.
It used to work earlier. I'm not sure yet, how many other architectures
are affected.

A kernel-wedge dependency is there, but it is tagged . That
used to be true.

Do note that the failing target is install-udeb_hppa and that in a
stage1 build, we don't produce any udebs. So in reality it seems more
likely that the whole target should be skipped, but isn't. The target
seems to be pulled in by debian/rules.gen, but that's about where I
stopped understanding the logic. Can I ask you to look into this?

In the mean time, I guess installing kernel-wedge is a viable
workaround.

While looking into linux' build profiles I was wondering whether we
still need stage1. linux gained a number of functional profiles
including pkg.linux.nokernel, pkg.linux.notools and pkg.linux.nosource.
Their combination does not exactly reproduce stage1, but it is close.
I'm wondering whether we can simply switch any stage1 user to using the
combination of these three and be done. I haven't tried whether this
actually works yet, but I believe it is feasible and you get the idea.

Helmut



Bug#959225: libcap-ng FTBFS: Build-Depends: linux-kernel-headers is no longer provided

2020-05-01 Thread Helmut Grohne
Source: libcap-ng
Version: 0.7.9-2.1
Severity: serious
Tags: ftbfs patch
User: helm...@debian.org
Usertags: rebootstrap

libcap-ng fails to build from source, because linux-libc-dev no longer
provides linux-kernel-headers, which is what libcap-ng Build-Depends on.
Please transition your dependency to linux-libc-dev:

sed -i -e 's/linux-kernel-headers/linux-libc-dev/' debian/control

Helmut



Bug#908438: [PATCH resend] ARM: dts: sun7i: Disable OOB IRQ for brcm wifi on Cubietruck and Banana Pro

2019-12-18 Thread Helmut Grohne
Control: tags -1 + patch

Hi,

On Sun, Sep 30, 2018 at 04:58:52PM +0200, Hans de Goede wrote:
> While doing some brcmfmac driver work I needed to test this also on some
> devicetree based boards. So I fired up the good old Cubietruck and when
> that would not work a Banana Pro.
> 
> With an unmodified 4.17 kernel both boards intermittently would come up
> with non working wifi with the following errors:
> 
>  brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
>  brcmfmac: brcmf_bus_started: failed: -110
>  brcmfmac: brcmf_attach: dongle is not responding: err=-110
>  brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed

I confirm the observation on a Banana Pro booting the buster 4.19
kernel. The problem happend reliably for me. I also confirm that your
workaround solves the symptoms on my board.

> Using an OOB IRQ instead of the sdio-IRQ mechanism is mostly important to
> allow the MMC controller to go into runtime-suspend which is not really an
> issue on these boards since they are (usually) not battery powered.

I agree that this is a reasonable trade-off (power saving vs working
device).

Helmut



Re: Bug#920286: gcc-8: Missing conflict/break with binutils-x86-64-linux-gnu:i386 can lead to broken compiler

2019-03-19 Thread Helmut Grohne
On Thu, Jan 24, 2019 at 04:38:19PM +0100, Helmut Grohne wrote:
> Ultimately, this means that marking binutils- M-A:foreign was
> wrong. It means that binutils plays the same role as ruby, perl, python
> and even make: you can load shared objects into it, but much of the time
> you don't. All of the other examples are M-A:allowed, so I guess
> binutils- needs to become M-A:allowed as well. Given that gcc
> Depends on binutils, binutils is M-A:no, and binutils Depends:
> binutils- without :any, the switch from M-A:foreign to
> M-A:allowed should fix this this bug, but at the same time it would
> break a fair number of use cases. We specifically have binutils-for-host
> to allow using foreign binutils. Likely binutils-for-host should
> Depends: binutils-:any then. On the flip side, that means that
> whenever you need plugins, you cannot use binutils-for-host.
> 
> Now marking anything M-A:allowed is basically irreversible, because
> people are going to use :any and all those deps break when removing
> M-A:allowed. Therefore we should think hard about whether this is the
> right route. I've added debian-cross@l.d.o to Cc to elicit some
> feedback.

You can find the patch for binutils attached. binutils- will
become Multi-Arch: allowed. With this patch applied there are the
following ways to depend on binutils:

 A Source package.
   A.A You want binutils for the host architecture -> binutils-for-host
   A.A You want binutils for the build architecture -> binutils-for-build
 B Binary package of architecture $ARCH.
   B.A You want binutils targeting the $ARCH.
 B.A.A Your package contains a plugin to load into binutils ->
   binutils-$ARCH
 B.A.B No plugin -> binutils-$ARCH:any
   B.B You want binutils targeting some executable architecture.
 B.B.A Your package contains a plugin to load into binutils ->
   binutils
 B.B.B No plugin -> binutils-for-build

In #895251, I requested that gcc use triplet-prefixed tools to allow
coinstalling binutils. It also made the architecture of binutils opaque
(which is what this bug is about). After causing repeated problems, the
relevant change was finally reverted via #915194. Now gcc uses
unprefixed tools again. But it still prefers prefixed tools in
/usr/ (which is what this bug is about). We'll should change
that using triplet-prefixed tools explicitly at some point.  gcc-8
presently Depends on "binutils". gcc-8- will have to Depends
binutils- without a :any. With the patch, binutils will Depends:
binutils- without :any, so using gcc-8:amd64 with
binutils-x86-64-linux-gnu:i386 will no longer be possible. So on the gcc
side, the attached patch will work.

src:arch-test uses binutils-, but it is Architecure: all, so it
pretty much doesn't matter whether the dependencies are annotated or
not.

src:cross-toolchain-base{,-port} conflicts with a number of
binutils-. That will continue to work.

src:gcc-8-cross (and similar packages) Build-Depends binutils-.
The binutils patch will render these dependencies cross-unsatisfiable.
They will need to be annotated :any or switched to binutils-for-host if
we want to cross build gcc-8-cross. Matthias, will you handle these?

src:linux Build-Depends binutils-. The binutils patch will
render these dependencies cross-unsatisfiable. They will need to be
switched to binutils-for-host or annotated with :any (after checking
that it doesn't use plugins). Maintainers Cced.

So the attached patch will break cross building of gcc and linux.  It
won't break any native stuff and it'll fix the bug at hand.

Helmut
diff --minimal -Nru binutils-2.31.1/debian/changelog 
binutils-2.31.1/debian/changelog
--- binutils-2.31.1/debian/changelog2019-02-27 22:30:21.0 +0100
+++ binutils-2.31.1/debian/changelog2019-03-19 14:25:35.0 +0100
@@ -1,3 +1,13 @@
+binutils (2.31.1-15.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+
+  * Demote binutils- from Multi-Arch: foreign to Multi-Arch: allowed.
+    (Closes: #920286)
+  * Let binutil-for-host Depends: binutils-:any.
+
+ -- Helmut Grohne   Tue, 19 Mar 2019 14:25:35 +0100
+
 binutils (2.31.1-15) unstable; urgency=high
 
   * Fix PR ld/24276, taken from the trunk. Closes: #923246.
diff --minimal -Nru binutils-2.31.1/debian/control 
binutils-2.31.1/debian/control
--- binutils-2.31.1/debian/control  2019-02-19 13:39:31.0 +0100
+++ binutils-2.31.1/debian/control  2019-03-19 14:25:22.0 +0100
@@ -34,7 +34,7 @@
 
 Package: binutils-for-host
 Architecture: any
-Depends: ${binutils:native} (>= ${binutils:minver}),
+Depends: ${binutils:native}:any (>= ${binutils:minver}),
   binutils-common (= ${binary:Version}),
 Multi-Arch: same
 Description: GNU assembler, linker and binary utilities for the host 
architecture
@@ -192,7 +192,7 @@
 Package: binutils-x86-64-linux-gnu
 Priority: optional
 Architecture: amd64 arm64 i386 ppc64el x32

Bug#898743: breaks when #included after

2018-05-15 Thread Helmut Grohne
Package: linux-libc-dev,libc6-dev
Severity: serious
Justification: makes systemd ftbfs
User: helm...@debian.org
Usertags: rebootstrap
Control: affects -1 + src:systemd libmount-dev

systemd FTBFS here, because compiling load-fragment.c fails. I spent a while
minimizing that file and it boils down to:

$ cat test.c
#include 
#include 
$ gcc -c test.c
In file included from test.c:1:0:
/usr/include/x86_64-linux-gnu/sys/mount.h:35:3: error: expected identifier 
before numeric constant
   MS_RDONLY = 1,  /* Mount read-only.  */
   ^
$

linux/fs.h #defines MS_RDONLY and then sys/mount.h tries to create an
enum containing MS_RDONLY. That's a problem.

This is also known in fedora:
https://bugzilla.redhat.com/show_bug.cgi?id=1497501

That bug hints that sometimes headers need to #included in a certain
order. If that is the case, this bug should be reassigned to src:systemd
asking that  or  must be #included before
. It also means that  should #include
 before defining its own copies of these macros.

Helmut

PS: Let me briefly curse systemd for their use of cyclic #includes
(unit.h <-> cgroup.h) and #pragma once as that works pretty badly
with creduce. Thank you.



Bug#873176: linux-image-armmp-lpae: Please add module for DHT11/DHT22 sensors

2018-04-15 Thread Helmut Grohne
Hi Ben,

On Mon, Sep 25, 2017 at 04:14:43PM +0200, Harald Geyer wrote:
> Ben Hutchings writes:
> > Control: reassign -1 src:linux tag -1 moreinfo
> > This driver appears to depend on Device Tree properties, but none of the
> > DTBs we build set those properties. It's not clear to me how it would be
> > usable.

The situation is quite similar to #858975 where I asked for enabling
CONFIG_W1_MASTER_GPIO. In both cases, a device tree needs to supply the
information.

> That's a fair point. The user will need to either add a node to the DTB on
> his system or have the bootloader apply a device tree fragment on top of
> the DTB installed by debian, which would work well with automatic updates
> of the kernel. (Or load a device tree fragment from userspace once
> debian supports dynamic DT.)

I am actually using such a system and my present method is to update
Debian's device tree after installing kernels. It's not pretty, but good
enough for me.

> Since updating the DTB is a lot easier then compiling the module for
> every update of the debian linux package (and security updates usually
> don't change the DTB anyway), I still feel providing the module would
> be useful.

I fully agree here and second the request for CONFIG_DHT11. Enabling
this driver is another piece to shrinking the gap with Raspbian and
making Debian a viable alternative on these devices.

If you disagree here, you should revert #858975 for consistency's sake.

Helmut



Bug#887211: initramfs-tools-core should depend on e2fsprogs explicitly

2018-01-14 Thread Helmut Grohne
Package: initramfs-tools-core
Version: 0.130
User: helm...@debian.org
Usertags: nonessentiale2fsprogs

Dear maintainer,

We want to make removing e2fsprogs from installations possible. For standard
installations this is not useful, but embedded applications and chroots benefit
from such an option.  For getting there all packages that use e2fsprogs must be
identified and gain a dependency on it as e2fsprogs currently is essential.

initramfs-tools-core was identified as potentially needing such a dependency,
because it mentions tool names from e2fsprogs in the following files:

/usr/share/initramfs-tools/hooks/fsck contains logsave. According to file it is 
a POSIX shell script, ASCII text executable
/usr/share/initramfs-tools/scripts/functions contains logsave. According to 
file it is a ASCII text

Please investigate whether these cases are actually uses of a tool from
e2fsprogs. Care has been taken to shrink the number of candidates as much as
possible, but a few false positives will remain. After doing so, do one of the
following:

 * Add e2fsprogs to Depends.
 * Add e2fsprogs to Recommends.
 * Close this bug explaining why e2fsprogs is not used by this package.

Once e2fsprogs drops the "Essential: yes" flag, this bug will be upgraded to RC
severity. Please note that lintian will warn about such a dependency before
lintian 2.5.56.

Thanks for your help

Helmut



Bug#887198: linux-kbuild-4.14 should depend on e2fsprogs explicitly

2018-01-14 Thread Helmut Grohne
Package: linux-kbuild-4.14
Version: 4.14.12-2
User: helm...@debian.org
Usertags: nonessentiale2fsprogs

Dear maintainer,

We want to make removing e2fsprogs from installations possible. For standard
installations this is not useful, but embedded applications and chroots benefit
from such an option.  For getting there all packages that use e2fsprogs must be
identified and gain a dependency on it as e2fsprogs currently is essential.

linux-kbuild-4.14 was identified as potentially needing such a dependency,
because it mentions tool names from e2fsprogs in the following files:

/usr/lib/linux-kbuild-4.14/scripts/ver_linux contains tune2fs. According to 
file it is a awk script, ASCII text executable

Please investigate whether these cases are actually uses of a tool from
e2fsprogs. Care has been taken to shrink the number of candidates as much as
possible, but a few false positives will remain. After doing so, do one of the
following:

 * Add e2fsprogs to Depends.
 * Add e2fsprogs to Recommends.
 * Close this bug explaining why e2fsprogs is not used by this package.

Once e2fsprogs drops the "Essential: yes" flag, this bug will be upgraded to RC
severity. Please note that lintian will warn about such a dependency before
lintian 2.5.56.

Thanks for your help

Helmut



Bug#858975: enable CONFIG_W1_MASTER_GPIO for arm kernels?

2017-03-29 Thread Helmut Grohne
Source: linux
Severity: wishlist

Would it be reasonable to enable CONFIG_W1_MASTER_GPIO as a module for
arm kernels? I understand that the w1-gpio module can only be used with
a suitable device tree, that device tree overlays (CONFIG_OF_CONFIGFS)
are not yet mainline and that none of the precompiled device trees
contain configuration for w1-gpio. Thus it is only useable with a
handcrafted device tree at the moment. Still enabling the module helps
closing the gap to derivatives such as Raspbian and makes Debian an
easier choice on such systems.

Together with the already enabled modules (wire, w1-therm) this can be
used drive e.g. the popular DS18B20 from a stock Debian without
requiring custom kernels or like that.

Thanks for considering.

Helmut



Bug#836542: nfs-utils FTCBFS: uses build architecture compiler, uses pre-built ELF object files

2016-09-03 Thread Helmut Grohne
Source: nfs-utils
Version: 1:1.2.8-9.2
Severity: important
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

nfs-utils fails to cross build from source, because it doesn't pass
--host to ./configure and thus uses the build architecture compiler. The
attached patch uses dh_auto_configure, which automatically supplies
those flags as needed. Then I found that the build would reuse existing
ELF object files (e.g. exportfs.o) instead of building them from source,
which is why I mark this bug as important. Reusing those objects causes
the build to fail for any host architecture that is not amd64.

Helmut
diff --minimal -Nru nfs-utils-1.2.8/debian/changelog 
nfs-utils-1.2.8/debian/changelog
--- nfs-utils-1.2.8/debian/changelog2016-08-11 18:50:24.0 +0200
+++ nfs-utils-1.2.8/debian/changelog2016-09-03 22:30:39.0 +0200
@@ -1,3 +1,12 @@
+nfs-utils (1:1.2.8-9.3) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: (Closes: #-1)
++ Let dh_auto_configure provide cross flags.
++ Remove pre-built object files.
+
+ -- Helmut Grohne <hel...@subdivi.de>  Sat, 03 Sep 2016 22:26:25 +0200
+
 nfs-utils (1:1.2.8-9.2) unstable; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru nfs-utils-1.2.8/debian/rules nfs-utils-1.2.8/debian/rules
--- nfs-utils-1.2.8/debian/rules2016-06-27 23:13:41.0 +0200
+++ nfs-utils-1.2.8/debian/rules2016-09-03 22:35:23.0 +0200
@@ -24,8 +24,7 @@
 build-stamp:
dh_testdir
dh_autoreconf
-   CFLAGS="$(CFLAGS)" ./configure \
-   --mandir='$${prefix}/share/man' \
+   CFLAGS="$(CFLAGS)" dh_auto_configure -- \
--enable-nfsv41 \
--enable-ipv6 \
--enable-libmount-mount \
@@ -41,6 +40,7 @@
[ ! -f Makefile ] || $(MAKE) distclean
dh_autoreconf_clean
dh_clean
+   find . -name "*.o" -delete
 
 binary-indep: build
 binary-arch: build


Bug#824524: please support building linux-libc-dev for the tilegx architecture

2016-05-16 Thread Helmut Grohne
Source: linux
Version: 4.5.3-2
Severity: wishlist
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Hi Ben et al,

could you carry the attached patch adding minimla support for the tilegx
architecture to the linux source package? The architecture is pending
inclusion into dpkg (#823167), but thus far the prospective port looks
good as it is upstreamed in many places (binutils/gcc/glibc/linux/...)
already.

After applying the patch debian/control needs to be regenerated. If you
prefer having dpkg add the architecture before linux, we can block the
bug.

For a fully working linux-libc-dev:tilegx, I'd also need #823632 fixed.

Helmut
diff --minimal -Nru linux-4.5.3/debian/changelog linux-4.5.3/debian/changelog
--- linux-4.5.3/debian/changelog2016-05-08 16:03:45.0 +0200
+++ linux-4.5.3/debian/changelog2016-05-17 06:21:11.0 +0200
@@ -1,3 +1,10 @@
+linux (4.5.3-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Enable building linux-libc-dev for tilegx. (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 17 May 2016 06:20:55 +0200
+
 linux (4.5.3-2) unstable; urgency=medium
 
   * [s390x] PCI: Ignore zpci ABI changes; these functions are not used by
diff --minimal -Nru linux-4.5.3/debian/config/defines 
linux-4.5.3/debian/config/defines
--- linux-4.5.3/debian/config/defines   2016-05-08 12:56:03.0 +0200
+++ linux-4.5.3/debian/config/defines   2016-05-17 06:22:27.0 +0200
@@ -30,6 +30,7 @@
  sh4
  sparc
  sparc64
+ tilegx
  x32
 compiler: gcc-5
 featuresets:
diff --minimal -Nru linux-4.5.3/debian/config/tilegx/defines 
linux-4.5.3/debian/config/tilegx/defines
--- linux-4.5.3/debian/config/tilegx/defines1970-01-01 01:00:00.0 
+0100
+++ linux-4.5.3/debian/config/tilegx/defines2016-05-17 06:22:08.0 
+0200
@@ -0,0 +1,4 @@
+[base]
+kernel-arch: tile
+featuresets:
+# empty; just building headers yet


Bug#823632: linux-libc-dev: architecture-dependent header in non-multiarch directory

2016-05-06 Thread Helmut Grohne
Package: linux-libc-dev
Severity: wishlist
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Hi Ben et al,

While looking into bootstrapping tilegx (#823167), I noticed that linux
installs some architecture dependent headers directly into /usr/include.
Exampes include:

/usr/include/arch/abi.h
/usr/include/arch/opcode.h

These should be moved to /usr/include/tilegx-linux-gnu. I am attaching
an architecture-generic patch. Please consider applying it.

Helmut
--- a/debian/rules.real
+++ b/debian/rules.real
@@ -341,6 +341,8 @@
 # Move include/asm to arch-specific directory
 	mkdir -p $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)
 	mv $(OUT_DIR)/include/asm $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
+	test -d $(OUT_DIR)/include/arch && \
+		mv $(OUT_DIR)/include/arch $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/

 	+$(MAKE_SELF) install-base



Bug#718297: linux-source-3.10: broken binary package contains uncompressed member data.tar.gz

2013-07-29 Thread Helmut Grohne
Package: linux-source-3.10
Version: 3.10.3-1
Severity: important

The binary package linux-source-3.10 does not comply to man 5 deb. It
contains a data.tar.gz, that is not a valid gzip file. While the cause
is in dpkg (see #718295). I ask you to work around this issue, by
passing -z1 instead of -z0.

Helmut


-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130729194117.ga26...@alf.mars



Bug#707583: initramfs-tools: clarify documentation on break parameter

2013-05-09 Thread Helmut Grohne
Package: initramfs-tools
Version: 0.112
Severity: minor
Tags: patch

When reading man 8 initramfs-tools I was wondering whether the shell
spawned due to break=something would be spawned before or after the
corresponding scripts. I suggest to apply the attached patch to clarify
this.

Helmut
--- initramfs-tools.8.orig	2013-05-09 16:09:38.0 +0200
+++ initramfs-tools.8	2013-05-09 16:28:07.0 +0200
@@ -107,7 +107,9 @@
 .TP
 \fB\fI break
 spawns a shell in the initramfs image at chosen run-time
-(top, modules, premount, mount, mountroot, bottom, init).
+(top, modules, premount, mount, mountroot, bottom, init)
+before actually executing the corresponding scripts
+(see section boot scripts) or action.
 The default is premount without any arg.
 Beware that if both panic and break are present,
 initramfs will not spawn any shells but reboot instead.


Re: fix for #682964 is incomplete, maybe related to #630581

2012-11-10 Thread Helmut Grohne
On Thu, Nov 08, 2012 at 10:13:59AM +0100, Uwe Kleine-König wrote:
 So copy_exec behaves like cp(1). Maybe introduce a warning for wheezy if
 the 2nd argument is a directory in /? This isn't 100% fail-safe but
 should catch most cases (among them all of the above instances).

No, copy_exec does not behave like cp. If I give cp a destination where
directory components are missing, cp will not create them, but copy_exec
will.

Given that the documentation of copy_exec clearly says that the second
parameter must be a filename I am all for emitting that warning (after
wheezy).

 Maybe also keep the cp semantics for copy_exec and only warn in the
 failing cases? (i.e. test -d $2  test ! -d $pathtoinitramfs/$2)

I tend to prefer the original semantics.
 + They are easy to understand.
 + They are already documented.
 + The suggested warning can cause false positives which calls for more
   workarounds.
On the other hand I am not maintaining that stuff, so this is not my
call.

Helmut


-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20121109120807.ga30...@alf.mars



Re: fix for #682964 is incomplete, maybe related to #630581

2012-11-08 Thread Helmut Grohne
So I had a further look into the dropbear initramfs issue. The code
where the breakage occurs is dropbear's hook:

| LIBC_DIR=$(ldd /usr/sbin/dropbear | sed -n -e 's,.* = 
\(/lib.*\)/libc\.so\..*,\1,p')
| for so in $(find ${LIBC_DIR} -name 'libnss_compat*'); do
|   copy_exec ${so} ${LIBC_DIR}
| done

The error lies in the innocent looking copy_exec line. The target is a
directory here, but the documentation of copy_exec says it should be a
file:

| # $1 = file to copy to ramdisk
| # $2 (optional) Name for the file on the ramdisk
| # Location of the image dir is assumed to be $DESTDIR
| # We never overwrite the target if it exists.
| copy_exec() {

So if the target directory happens to not exist which is the case for
LIBC_DIR=/lib/i386-linux-gnu/i686/cmov in my case, the source will be
copied to that name. So cmov ends up being a regular file and not a
directory containing the file.

Now really whose bug is this? Let us have a look at other users that
pass a second parameter to copy_exec.

Those that pass a directory:
/usr/share/initramfs-tools/hooks/keymap:copy_exec /bin/loadkeys /bin
/usr/share/initramfs-tools/hooks/keymap:copy_exec /usr/bin/kbd_mode /bin
/usr/share/initramfs-tools/hooks/dropbear:  copy_exec 
/usr/sbin/dropbear /sbin/
/usr/share/initramfs-tools/hooks/dropbear:  copy_exec 
${so} ${LIBC_DIR}
/usr/share/initramfs-tools/hooks/udev:copy_exec /sbin/udevd  /sbin
/usr/share/initramfs-tools/hooks/udev:copy_exec /sbin/udevadm/sbin
/usr/share/initramfs-tools/hooks/udev:  copy_exec /lib/udev/$program /lib/udev
/usr/share/initramfs-tools/hooks/udev:copy_exec /sbin/blkid /sbin
/usr/share/initramfs-tools/hooks/udev:  copy_exec /lib/udev/vio_type /lib/udev
/usr/share/initramfs-tools/hooks/mdadm:copy_exec $MDADM /sbin
/usr/share/initramfs-tools/hooks/cryptroot: 
copy_exec /lib/cryptsetup/scripts/$KEYSCRIPT /lib/cryptsetup/scripts 2
/usr/share/initramfs-tools/hooks/cryptroot: 
copy_exec $KEYSCRIPT /lib/cryptsetup/scripts 2
/usr/share/initramfs-tools/hooks/cryptroot: 
copy_exec ${KSTYPE#$KEYSCRIPT is } /lib/cryptsetup/scripts 2

The one gets it right:
/usr/share/initramfs-tools/hooks/busybox:   copy_exec ${BUSYBOXDIR}/busybox 
/bin/busybox

It seems like most users actually get this wrong. Out of sheer (bad)
luck this has not been discovered thus far.

How do we proceed now? The current API of copy_exec is bad, because it
relies on auxiliary state (the target being a directory or not). It
should be fixed, but this is likely too late for wheezy, given the
number of packages that need to be changed as well.

The particular dropbear issue can be avoided by actually omitting the
second parameter and letting copy_exec sort it out correctly. I believe
that this change should fix both bugs #682964 and #630581.

Thanks to Tino Keitel for assisting in sorting this out.

Helmut


-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20121108085157.GA19423@localhost



Bug#627669: linux-image-2.6.38-2-amd64: [brcm80211] oops on iwlist wlan0 scanning

2011-05-24 Thread Helmut Grohne
Hi Moritz,

On Tue, May 24, 2011 at 06:46:58PM +0200, Moritz Mühlenhoff wrote:
 Please retest with 2.6.39-1 from unstable.

I just did that while you wrote this mail and it at least no longer
oopses on either iwlist wlan0 scanning or iwlist wlan0 essid something.

Thanks for the work (or forward those thanks to the proper people).

Helmut



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110524164921.ga28...@alf.mars



Bug#627669: linux-image-2.6.38-2-amd64: [brcm80211] oops on iwlist wlan0 scanning

2011-05-23 Thread Helmut Grohne
Package: linux-image-2.6.38-2-amd64
Version: 2.6.38-5
Severity: normal

I do know that brcm80211 comes from the staging tree. Nevertheless I
hereby document one of its problems.

firmware-brcm80211 version is 0.29

# lspci -v -s 05:00.0
05:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless 
LAN Controller (rev 01)
Subsystem: Askey Computer Corp. Device 7179
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at f010 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [58] Vendor Specific Information: Len=78 ?
Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [d0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Virtual Channel
Capabilities: [160] Device Serial Number 00-00-de-ff-ff-66-4c-ed
Capabilities: [16c] Power Budgeting ?
Kernel driver in use: brcm80211
#

[  153.268345] netconsole: network logging started

# ifconfig wlan0 up

[  168.843577] wl0: wlc_wme_setparams : no-clock
[  168.845719] wl0: wlc_wme_setparams : no-clock
[  168.847818] wl0: wlc_wme_setparams : no-clock
[  168.849889] wl0: wlc_wme_setparams : no-clock
[  168.851577] ADDRCONF(NETDEV_UP): wlan0: link is not ready

# iwlist wlan0 scanning

[  181.504059] ops-tx called while down
[  181.506653] ops-tx called while down
[  181.509277] ops-tx called while down
[  181.511893] ops-tx called while down
[  181.514525] ops-tx called while down
[  181.517167] ops-tx called while down
[  181.519790] ops-tx called while down
[  181.522330] ops-tx called while down
[  181.524748] ops-tx called while down
[  181.527045] ops-tx called while down
[  181.529250] ops-tx called while down
[  181.531412] [ cut here ]
[  181.533725] WARNING: at 
/build/buildd-linux-2.6_2.6.38-5-amd64-MAWrSr/linux-2.6-2.6.38/debian/build/source_amd64_none/net/mac80211/tx.c:1506
 ieee80211_tx+0x1b3/0x1d9 [mac80211]()
[  181.539044] Hardware name: N150P/N210P/N220P  
[  181.541798] tx refused but queue active
[  181.544501] Modules linked in: netconsole configfs acpi_cpufreq mperf 
cpufreq_conservative cpufreq_powersave cpufreq_userspace cpufreq_stats btusb 
bluetooth snd_hda_codec_realtek uvcvideo option videodev usb_wwan usbserial 
usb_storage v4l2_compat_ioctl32 uas snd_hda_intel snd_hda_codec arc4 i915 ecb 
brcm80211(C) snd_hwdep drm_kms_helper snd_pcm drm uhci_hcd mac80211 tpm_tis 
ehci_hcd joydev tpm i2c_algo_bit cfg80211 i2c_i801 tpm_bios usbcore snd_timer 
i2c_core snd pcspkr rfkill psmouse evdev soundcore ac battery snd_page_alloc 
serio_raw power_supply sky2 nls_base processor button video ext3 jbd mbcache 
sha256_generic aes_x86_64 aes_generic cbc dm_crypt dm_mod sd_mod crc_t10dif 
ahci libahci libata scsi_mod thermal thermal_sys
[  181.567949] Pid: 167, comm: kworker/u:3 Tainted: G C   
2.6.38-2-amd64 #1
[  181.572210] Call Trace:
[  181.576409]  [81046e10] ? warn_slowpath_common+0x78/0x8c
[  181.580741]  [81046ec3] ? warn_slowpath_fmt+0x45/0x4a
[  181.585044]  [a026041d] ? ieee80211_tx+0x1b3/0x1d9 [mac80211]
[  181.589346]  [810ec250] ? virt_to_head_page+0x9/0x2d
[  181.593751]  [a02605c7] ? ieee80211_xmit+0x184/0x193 [mac80211]
[  181.598286]  [a026061e] ? ieee80211_tx_skb+0x48/0x51 [mac80211]
[  181.602889]  [a024e85e] ? ieee80211_scan_work+0x35e/0x47f 
[mac80211]
[  181.607437]  [81325adb] ? schedule+0x55b/0x588
[  181.611944]  [a024e500] ? ieee80211_scan_work+0x0/0x47f [mac80211]
[  181.616498]  [8105b17a] ? process_one_work+0x1d1/0x2ee
[  181.621058]  [8105d0c0] ? worker_thread+0x12d/0x247
[  181.625604]  [8105cf93] ? worker_thread+0x0/0x247
[  181.630110]  [8105cf93] ? worker_thread+0x0/0x247
[  181.634538]  [8105fef7] ? kthread+0x7a/0x82
[  181.639015]  [8100a764] ? kernel_thread_helper+0x4/0x10

The machine goes unresponsive at this point.

If I can help with debugging the issue, please let me know.

Helmut



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110523130006.ga20...@alf.mars



Bug#472409: mkinitramfs: please mention that -d config_dir option requires an absolute path

2008-03-24 Thread Helmut Grohne
Package: initramfs-tools
Version: 0.91e
Severity: normal

Invoking mkinitramfs using -d conf where conf is a relative path results
in cpio bailing out:

cpoio: ./conf/initramfs.conf: Cannot stat: No such file or directory

Providing an absolute path makes this go away. I therefore suggest
adding a note to the mkinitramfs manpage or internally finding the real
path.

Helmut



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#445510: initramfs-tools: please fail gracefully for ENOSPC

2007-10-06 Thread Helmut Grohne
Package: initramfs-tools
Version: 0.85h
Severity: wishlist

I recently set up a system with /boot being too small. While this is my
fault update-initramfs could handle this in a better way than backup the
old (working) initramfs and leave a truncated one for the next reboot
will fail. (Yes, it told me that my initramfs was broken afterwards!)

(According to my understanding of the scripts the bug also applies to
0.91b.)

I therefore suggest not creating the new initramfs directly, but create
a new file with a different name and then in the last step rename the
stuff if and only if no error occurred. By doing so the system will more
often be in a bootable state. Furthermore this will prevent making a
system unbootable by suspending the machine while updating the initramfs
(a DD reported this on planet.d.o).

Helmut

[extra info wiped as this bug occurred on a different system]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]