Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1056543: isenkram: No new firmware package with requested firmware detected (but firmware files are missing)

38 views
Skip to first unread message

ax...@me.com

unread,
Nov 22, 2023, 11:30:05 AM11/22/23
to
Package: isenkram
Version: 0.51
Severity: normal

Dear Maintainer,

isenkram-autoinstall-firmware reporting no new packages need to be
installed but firmware files are missing. Same as 'isenkram-pkginstall-l'
showing empty list.


admin@m3n:~$ isenkram-autoinstall-firmware
info: some kernel driver requested extra firmware files: e100/d101m_ucode.bin e100/d101s_ucode.bin e100/d102e_ucode.bin i915/adlp_dmc_ver2_16.bin i915/adlp_guc_69.0.3.bin i915/adlp_guc_70.1.1.bin i915/adlp_guc_70.bin i915/adls_dmc_ver2_01.bin i915/bxt_dmc_ver1_07.bin i915/bxt_guc_70.1.1.bin i915/bxt_huc_2.0.0.bin i915/cml_guc_70.1.1.bin i915/cml_huc_4.0.0.bin i915/dg1_dmc_ver2_02.bin i915/dg1_guc_70.bin i915/dg1_huc.bin i915/dg2_dmc_ver2_07.bin i915/dg2_guc_70.bin i915/ehl_guc_70.1.1.bin i915/ehl_huc_9.0.0.bin i915/glk_dmc_ver1_04.bin i915/glk_guc_70.1.1.bin i915/glk_huc_4.0.0.bin i915/icl_dmc_ver1_09.bin i915/icl_guc_70.1.1.bin i915/icl_huc_9.0.0.bin i915/kbl_dmc_ver1_04.bin i915/kbl_guc_70.1.1.bin i915/kbl_huc_4.0.0.bin i915/rkl_dmc_ver2_03.bin i915/skl_dmc_ver1_27.bin i915/skl_guc_70.1.1.bin i915/skl_huc_2.0.0.bin i915/tgl_dmc_ver2_12.bin i915/tgl_guc_69.0.3.bin i915/tgl_guc_70.1.1.bin i915/tgl_guc_70.bin i915/tgl_huc_7.9.3.bin i915/tgl_huc.bin ipw2100-1.3.fw ipw2100-1.3-i.fw ipw2100-1.3-p.fw
info: locating packages with the requested firmware files
info: determining whether enabling other components is required
info: No new firmware package with requested firmware detected.
admin@m3n:~$

# apt-file search ipw2100-1.3.fw
firmware-ipw2x00: /lib/firmware/ipw2100-1.3.fw
#

# dpkg -l | grep firmware-ipw2x00
#

# apt-file search e100/d101m_ucode.bin
firmware-misc-nonfree: /lib/firmware/e100/d101m_ucode.bin
#

# apt-file search i915/adlp_dmc_ver2_16.bin
firmware-misc-nonfree: /lib/firmware/i915/adlp_dmc_ver2_16.bin
#

# dpkg -l | grep firmware-misc-nonfree
#


-- System Information:
Debian Release: 12.2
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 6.1.0-10-686 (SMP w/1 CPU thread; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages isenkram depends on:
ii gir1.2-gtk-3.0 3.24.38-2~deb12u1
ii gir1.2-gudev-1.0 237-2
ii gir1.2-notify-0.7 0.8.1-1
ii gir1.2-packagekitglib-1.0 1.2.6-5
ii isenkram-cli 0.51
ii packagekit 1.2.6-5
ii python3 3.11.2-1+b1
ii python3-gi 3.42.2-3+b1

isenkram recommends no packages.

isenkram suggests no packages.

-- no debconf information

Petter Reinholdtsen

unread,
Nov 22, 2023, 12:10:05 PM11/22/23
to
[ax...@me.com]
> isenkram-autoinstall-firmware reporting no new packages need to be
> installed but firmware files are missing.

Look like the ipw2100-1.3.fw file was added to the archive after the
last update of the firmware list in isenkram. Thank you for the heads
up. I'll upload an updated edition to unstable.

> Same as 'isenkram-pkginstall-l' showing empty list.

This uses the appstream metadata, but is not mapping loaded kernel
drivers firmware files (only present module and modalias information
mapped to packages using appstream), so this is expected.

--
Happy hacking
Petter Reinholdtsen

Alexey Kuznetsov

unread,
Nov 22, 2023, 12:20:06 PM11/22/23
to
Thanks. In future releases can isenkram also use an apt-file database or similar in addition to build-in database?

-- AK
 

Petter Reinholdtsen

unread,
Nov 22, 2023, 12:50:06 PM11/22/23
to
[Alexey Kuznetsov]
> Thanks. In future releases can isenkram also use an apt-file database
> or similar in addition to build-in database?

It is using the similar appstream, and firmware packages are expected to
populate it with the relevant information. I believe requiring apt-file
in addition will increase the disk foot print too much, and slow down
'apt update' too much to be the default setup.

The 'appstreamcli what-provides firmware:runtime ipw2100-1.3-p.fw'
command is supposed to return the relevant package as registered in
appstream. Is it not working? If so, the fix need to be done in the
firmware package.

Alexey Kuznetsov

unread,
Nov 22, 2023, 1:00:05 PM11/22/23
to
It is working. Huge output https://paste.debian.net/1298974/

Petter Reinholdtsen

unread,
Nov 22, 2023, 2:40:05 PM11/22/23
to
[Alexey Kuznetsov]
> It is working. Huge output https://paste.debian.net/1298974/

I am not convinced. It seem to claim that the file is in several
packages, which can not be correct. Matthias, any idea what is going
wrong with the appstreamcli call? See
<URL: https://bugs.debian.org/1056543 > for the details.

Matthias Klumpp

unread,
Nov 22, 2023, 8:50:05 PM11/22/23
to
Am Mi., 22. Nov. 2023 um 20:35 Uhr schrieb Petter Reinholdtsen
<pe...@hungry.com>:
>
> [Alexey Kuznetsov]
> > It is working. Huge output https://paste.debian.net/1298974/
>
> I am not convinced. It seem to claim that the file is in several
> packages, which can not be correct. Matthias, any idea what is going
> wrong with the appstreamcli call? See
> <URL: https://bugs.debian.org/1056543 > for the details.

Ooof, good find! Looks like this broke with a libxmlb upgrade, but is
actually (as far as I can tell) still an issue in libappstream.
It's fixed now:
https://github.com/ximion/appstream/commit/d2eb316884c3a213e959d40ae9ad18d5f590bd17

There is an AppStream 1.0 transition coming up which will need most
dependencies to be adjusted, including Isenkram. But you'll gain a
much more stable binding interface with 1.0.
I don't know if the timing works out to be quick enough that this fix
would just be in 1.0.1 uploaded to unstable- there's a few things on
the KDE side that need some porting, and Isenkram would too - and
making it work for both versions will be slightly annoying due to a
binding versioning issue in pre-1.0.
But it'll all be doable (from last time I looked, the change will
likely just be a one-liner).

Cheers,
Matthias

--
I welcome VSRE emails. See http://vsre.info/

Petter Reinholdtsen

unread,
Nov 23, 2023, 1:30:05 AM11/23/23
to
[Matthias Klumpp]
> It's fixed now:

Ah, good to know. Should isenkram perhaps conflict with some appstream
versions to avoid the problem?

> But it'll all be doable (from last time I looked, the change will
> likely just be a one-liner).

Perhaps you have time to prepare a patch? I have not had time to study
the changes. I am happy to coordinate a migration any time, but would
prefer the code to be backportable without modifications to Debian
Stable.

Petter Reinholdtsen

unread,
Dec 15, 2023, 5:00:05 AM12/15/23
to
[Petter Reinholdtsen]
>> But it'll all be doable (from last time I looked, the change will
>> likely just be a one-liner).
>
> Perhaps you have time to prepare a patch? I have not had time to
> study the changes. I am happy to coordinate a migration any time, but
> would prefer the code to be backportable without modifications to
> Debian Stable.

Or perhaps you have a link to a description of the changes needed, so I
could have a go myself?

Matthias Klumpp

unread,
Dec 15, 2023, 7:50:05 AM12/15/23
to
Am Fr., 15. Dez. 2023 um 10:53 Uhr schrieb Petter Reinholdtsen
<pe...@hungry.com>:
>
There is no official list, you would need to run it and see if there
are any issues (which is why I don't want to make these changes
(besides having very little time) because I don't know the software
well and can't test it properly).
There have been no behavior changes without function renames, and the
changes are also not that radical - it is extremely likely that all
you will need to do is to add a ".asArray()" to the result of your
search calls you made on AsPool, and that would be it to make things
work as before :-) (and with the improved language binding support,
this should no longer break, with me having to choose between breaking
it for Vala users and breaking it for Python users).

Matthias Klumpp

unread,
Dec 16, 2023, 2:10:06 PM12/16/23
to
This patch is probably all you need:

diff --git a/appstream2modaliases b/appstream2modaliases
index 1c3e6a2..7408107 100755
--- a/appstream2modaliases
+++ b/appstream2modaliases
@@ -14,7 +14,7 @@ import re
try:
pool = AppStream.Pool()
pool.load()
- cpts = pool.get_components()
+ cpts = pool.get_components().asArray()
except AttributeError:
# Handle old API too (before version 0.10)
db = AppStream.Database()
diff --git a/isenkram/lookup.py b/isenkram/lookup.py
index e10a999..ee13c1b 100644
--- a/isenkram/lookup.py
+++ b/isenkram/lookup.py
@@ -74,7 +74,7 @@ def pkgs_handling_appstream_modaliases(modaliaslist):
try:
pool = AppStream.Pool()
pool.load()
- cpts = pool.get_components()
+ cpts = pool.get_components().asArray()
except AttributeError:
# Handle old API too (before version 0.10)
db = AppStream.Database()

The queries are very inefficient though, those can likely be optimized
a lot. I'll look into that at a later time.

Matthias Klumpp

unread,
Dec 16, 2023, 2:20:05 PM12/16/23
to
Actually, this would even have backwards compatibility - but I haven't
tested anything, so not sure if this works:

diff --git a/appstream2modaliases b/appstream2modaliases
index 1c3e6a2..f7077c9 100755
--- a/appstream2modaliases
+++ b/appstream2modaliases
@@ -11,15 +11,13 @@ gi.require_version('AppStream', '1.0')
from gi.repository import AppStream
import re

+pool = AppStream.Pool()
+pool.load()
try:
- pool = AppStream.Pool()
- pool.load()
- cpts = pool.get_components()
+ cpts = pool.get_components().asArray()
except AttributeError:
- # Handle old API too (before version 0.10)
- db = AppStream.Database()
- db.open()
- cpts = db.get_all_components()
+ # Handle old API too (before version 1.0)
+ cpts = pool.get_components()

ma_cpts = list()
fwr_cpts = list()
diff --git a/isenkram/lookup.py b/isenkram/lookup.py
index e10a999..eb3e4f6 100644
--- a/isenkram/lookup.py
+++ b/isenkram/lookup.py
@@ -71,15 +71,14 @@ def pkgs_handling_appstream_modaliases(modaliaslist):
from gi.repository import AppStream
except ValueError:
return []
+
+ pool = AppStream.Pool()
+ pool.load()
try:
- pool = AppStream.Pool()
- pool.load()
- cpts = pool.get_components()
+ cpts = pool.get_components().asArray()
except AttributeError:
- # Handle old API too (before version 0.10)
- db = AppStream.Database()
- db.open()
- cpts = db.get_all_components()
+ # Handle old API too (before version 1.0)
+ cpts = pool.get_components()
ma_cpts = list()
for cpt in cpts:
provided = cpt.get_provided_for_kind(AppStream.ProvidedKind.MODALIAS)
as1.0.patch

Petter Reinholdtsen

unread,
Dec 17, 2023, 4:50:04 AM12/17/23
to
[Matthias Klumpp]
> Actually, this would even have backwards compatibility - but I haven't
> tested anything, so not sure if this works:

I tested it, and besides a simple asArray() -> as_array(), it seem to
work just fine. Thank you very much.

I'm preparing a new upload with the fix.
0 new messages