** Description changed:

+ [ Impact ]
+ 
  While attempting to play a video on Ubuntu noble desktop for raspberry
  pi, totem attempts to locate a package for the H.264 codec but cannot
  find a service providing org.freedesktop.PackageKit. This is strange
  given that packagekit is installed, provides packagekit.service, which
  declares that it provides that name over DBus. Specifically, the
  following is output by totem:
  
-     ** Message: 21:13:39.000: Missing plugin: gstreamer|1.0|totem|MPEG-4 AAC 
decoder|decoder-audio/mpeg, mpegversion=(int)4, level=(string)4, 
base-profile=(string)lc, profile=(string)lc (MPEG-4 AAC decoder)
-     ** Message: 21:13:39.000: Missing plugin: gstreamer|1.0|totem|H.264 (Main 
Profile) decoder|decoder-video/x-h264, level=(string)3.1, profile=(string)main 
(H.264 (Main Profile) decoder)
-     ** Message: 21:13:39.414: PackageKit: xid = 0
-     ** Message: 21:13:39.414: PackageKit: desktop_id = org.gnome.Totem.desktop
-     ** Message: 21:13:39.414: PackageKit: Codec nice name: MPEG-4 AAC decoder
-     ** Message: 21:13:39.414: PackageKit: ignoring field named level
-     ** Message: 21:13:39.414: PackageKit: ignoring field named base-profile
-     ** Message: 21:13:39.414: PackageKit: ignoring field named profile
-     ** Message: 21:13:39.414: PackageKit: field is: mpegversion, type: gint
-     ** Message: 21:13:39.414: PackageKit: structure: 
gstreamer1(decoder-audio/mpeg)(mpegversion=4)()(64bit)
-     ** Message: 21:13:39.414: PackageKit: Codec nice name: H.264 (Main 
Profile) decoder
-     ** Message: 21:13:39.414: PackageKit: ignoring field named level
-     ** Message: 21:13:39.414: PackageKit: ignoring field named profile
-     ** Message: 21:13:39.414: PackageKit: structure: 
gstreamer1(decoder-video/x-h264)()(64bit)
-     ** Message: 21:13:39.434: PackageKit: Did not install codec: 
GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name 
org.freedesktop.PackageKit was not provided by any .service files
-     ** Message: 21:13:39.441: No installation candidate for missing plugins 
found.
+     ** Message: 21:13:39.000: Missing plugin: gstreamer|1.0|totem|MPEG-4 AAC 
decoder|decoder-audio/mpeg, mpegversion=(int)4, level=(string)4, 
base-profile=(string)lc, profile=(string)lc (MPEG-4 AAC decoder)
+     ** Message: 21:13:39.000: Missing plugin: gstreamer|1.0|totem|H.264 (Main 
Profile) decoder|decoder-video/x-h264, level=(string)3.1, profile=(string)main 
(H.264 (Main Profile) decoder)
+     ** Message: 21:13:39.414: PackageKit: xid = 0
+     ** Message: 21:13:39.414: PackageKit: desktop_id = org.gnome.Totem.desktop
+     ** Message: 21:13:39.414: PackageKit: Codec nice name: MPEG-4 AAC decoder
+     ** Message: 21:13:39.414: PackageKit: ignoring field named level
+     ** Message: 21:13:39.414: PackageKit: ignoring field named base-profile
+     ** Message: 21:13:39.414: PackageKit: ignoring field named profile
+     ** Message: 21:13:39.414: PackageKit: field is: mpegversion, type: gint
+     ** Message: 21:13:39.414: PackageKit: structure: 
gstreamer1(decoder-audio/mpeg)(mpegversion=4)()(64bit)
+     ** Message: 21:13:39.414: PackageKit: Codec nice name: H.264 (Main 
Profile) decoder
+     ** Message: 21:13:39.414: PackageKit: ignoring field named level
+     ** Message: 21:13:39.414: PackageKit: ignoring field named profile
+     ** Message: 21:13:39.414: PackageKit: structure: 
gstreamer1(decoder-video/x-h264)()(64bit)
+     ** Message: 21:13:39.434: PackageKit: Did not install codec: 
GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name 
org.freedesktop.PackageKit was not provided by any .service files
+     ** Message: 21:13:39.441: No installation candidate for missing plugins 
found.
  
- The packagekit.service is defined as:
  
-     $ systemctl cat packagekit.service
-     # /usr/lib/systemd/system/packagekit.service
-     [Unit]
-     Description=PackageKit Daemon
-     # PK doesn't know how to do anything on ostree-managed systems;
-     # currently the design is to have dedicated daemons like
-     # eos-updater and rpm-ostree, and gnome-software talks to those.
-     ConditionPathExists=!/run/ostree-booted
-     Wants=network-online.target
-     
-     [Service]
-     Type=dbus
-     BusName=org.freedesktop.PackageKit
-     User=root
-     ExecStart=/usr/libexec/packagekitd
+ The main source of the bug is that App Center does not implement 
org.freedesktop.PackageKit.Modify2 on the session bus, which would prompt the 
user to install the missing codecs. This is being worked on and will be 
delivered as a snap update.
  
- And just to demonstrate packagekit is actually running:
+ But a fix to PackageKit itself is also necessary in order to correctly
+ resolve the codec providers.
  
-     $ systemctl status packagekit.service
-     ● packagekit.service - PackageKit Daemon
-          Loaded: loaded (/usr/lib/systemd/system/packagekit.service; static)
-          Active: active (running) since Tue 2024-04-09 21:11:35 BST; 2min 23s 
ago
-        Main PID: 1565 (packagekitd)
-           Tasks: 4 (limit: 3864)
-          Memory: 6.2M (peak: 6.7M)
-             CPU: 180ms
-          CGroup: /system.slice/packagekit.service
-                  └─1565 /usr/libexec/packagekitd
-     
-     Apr 09 21:11:34 fozzie systemd[1]: Starting packagekit.service - 
PackageKit Daemon...
-     Apr 09 21:11:34 fozzie PackageKit[1565]: daemon start
-     Apr 09 21:11:35 fozzie systemd[1]: Started packagekit.service - 
PackageKit Daemon.
+ 
+ [ Test Plan ]
+ 
+ For the purpose of the SRU, we're only going to verify the PackageKit fix.
+ Verify the output of the following commands:
+ 
+ 1. $ pkcon what-provides 
"gstreamer1(decoder-audio/mpeg)(mpegversion=4)()(64bit)"
+    -> gstreamer1.0-fdkaac-*.amd64
+    -> gstreamer1.0-libav-*.amd64
+    -> gstreamer1.0-plugins-bad-*.amd64
+    -> gstreamer1.0-plugins-good-*.amd64
+ 
+ 2. $ pkcon what-provides "gstreamer1(decoder-audio/mpeg)(mpegversion=4)"
+    -> gstreamer1.0-fdkaac-*.amd64
+    -> gstreamer1.0-libav-*.amd64
+    -> gstreamer1.0-plugins-bad-*.amd64
+    -> gstreamer1.0-plugins-good-*.amd64
+    Additionally, if you have enabled the i386 dpkg architecture on amd64:
+    -> gstreamer1.0-libav-*.i386
+    -> gstreamer1.0-plugins-bad-*.i386
+    -> gstreamer1.0-plugins-good-*.i386
+ 
+ 3. $ pkcon what-provides "gstreamer1(decoder-video/x-h265)()(64bit)"
+    -> gstreamer1.0-libav-*.amd64
+    -> gstreamer1.0-plugins-bad-*.amd64
+ 
+ 4. $ pkcon what-provides "gstreamer1(decoder-video/x-h265)"
+    -> gstreamer1.0-libav-*.amd64
+    -> gstreamer1.0-plugins-bad-*.amd64
+    Additionally, if you have enabled the i386 dpkg architecture on amd64:
+    -> gstreamer1.0-libav-*.i386
+    -> gstreamer1.0-plugins-bad-*.i386
+ 
+ [ Where problems could occur ]
+ 
+ The patch can only affect the behaviour of matching GStreamer capabilities.
+ No other packagekit features are affected.
+ Problems could manifest with `pkcon what-provides gstreamer1(...)` queries 
returning the wrong package names. This is verified in the test plan.

** Changed in: packagekit (Ubuntu Noble)
       Status: Triaged => In Progress

** Changed in: packagekit (Ubuntu Plucky)
       Status: Triaged => In Progress

** Merge proposal linked:
   
https://code.launchpad.net/~aleasto/ubuntu/+source/packagekit/+git/packagekit/+merge/488069

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2060730

Title:
  totem cannot install codecs via packagekit

To manage notifications about this bug go to:
https://bugs.launchpad.net/app-center/+bug/2060730/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to