To PackageKit or not to PackageKit
...or why offline documentation is so much better
Preface
I wrote this on 23th of May 2023 except this Preface. I ran into the situation that I tried to open a page with information about PackageKit and found it blocked by #uBlock. The page had been abandoned, the documentation of the Debian package not updated to contain the new reference to the online documentation. Upstream had fixed it only a few days before I ran into the issue.
Overall the impression I had looking at the repo of PackageKit and the surrounding doku has been that the project still is not maintained well and is used in a let's say 'proof-of-concept' state.
I didn't publish this, because I thought it not relevant.
Today, 12th of July same year I learned about another reason not to use PackageKit at the time being and deinstalled it together with the Software Store from my #Librem5 running #PureOS.
Still it would be interesting whether Gnome Software or PackageKit made that unhealthy decision inspite of asking the user how to resolve the problem or stick with apt
defaults.
Why I disabled #PackageKit
PackageKit offers an api via d-bus to let users manage their software. I recently disabled it in two PureOS Byzantium/Debian Bullseye notebooks, because it did use system ressources at times when the ressources would have been needed by software ran by the users who complained that suddenly things became slow.
Why I thought about re-enabling it
Today I thought about it again. Generally I think that it is a good idea to stick close to the standards a distribution does offer to make the installation easy to maintain and to make it easy to report issues and get help.
Furthermore I thought I'd have to create some cronjobs to remind the user to look for and install updates and thought it might as well be a configuration option to PackageKit I didn't know about, yet.
I started to look for options I might have to configure PackageKit in a way that would fit better the older notebooks I use - e.g. let it ask the user before doing stuff or restrict it to certain times or system states.
Looking for information
apropos packagekit
gave me two hits pkcon
and pkmon
. Both didn't provide the information I was looking for. The man page references a web page for further information:
someuser@pureos:~$ man pkcon | grep http The programs are documented fully on http://www.packagekit.org.
I'm a big fan of offline documentation, because I carry it on my system independent of networks that might or might not work. But anyway…
Finding - uhm, what?
Opening the the packagekit webpage in Firefox I got the appended uBlock message.
Looking at the URL:
someuser@pureos:~$ wget -S -O tmp/suspicious_page http://www.packagekit.org --2023-05-23 08:58:29-- http://www.packagekit.org/ Auflösen des Hostnamens www.packagekit.org (www.packagekit.org)… 170.178.168.203 Verbindungsaufbau zu www.packagekit.org (www.packagekit.org)|170.178.168.203|:80 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … HTTP/1.1 302 Found date: Tue, 23 May 2023 06:58:29 GMT server: Apache set-cookie: __tad=1684825109.5947090; expires=Fri, 20-May-2033 06:58:29 GMT; Max-Age=315360000 location: http://ww25.packagekit.org/?subid1=20230523-1658-29be-aafe-13eea2f43a92 content-length: 0 content-type: text/html; charset=UTF-8 connection: close Platz: http://ww25.packagekit.org/?subid1=20230523-1658-29be-aafe-13eea2f43a92 [folgend] --2023-05-23 08:58:30-- http://ww25.packagekit.org/?subid1=20230523-1658-29be-aafe-13eea2f43a92 Auflösen des Hostnamens ww25.packagekit.org (ww25.packagekit.org)… 199.59.243.223 Verbindungsaufbau zu ww25.packagekit.org (ww25.packagekit.org)|199.59.243.223|:80 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … HTTP/1.1 200 OK Server: openresty Date: Tue, 23 May 2023 06:58:30 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Set-Cookie: parking_session=9731c084-3e85-710d-a2af-9981d0d4136d; expires=Tue, 23-May-2023 07:13:30 GMT; Max-Age=900; path=/; HttpOnly X-Adblock-Key: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANDrp2lz7AOmADaN8tA50LsWcjLFyQFcb/P2Txc58oYOeILb3vBw7J6f4pamkAQVSQuqYsKx3YzdUHCvbVZvFUsCAwEAAQ==_OBy8FiAQrgM0+xFiH+faCrq55q9AQSP/cxRmvHxDlyqHDJ0xY4hDLevMJaYHkrAvXifQT0fm6roRXSqNT75QFA== Cache-Control: no-cache Accept-CH: sec-ch-prefers-color-scheme Critical-CH: sec-ch-prefers-color-scheme Vary: sec-ch-prefers-color-scheme Expires: Thu, 01 Jan 1970 00:00:01 GMT Cache-Control: no-store, must-revalidate Cache-Control: post-check=0, pre-check=0 Pragma: no-cache Länge: nicht spezifiziert [text/html] Wird in »tmp/suspicious_page« gespeichert. tmp/suspicious_page [ <=> ] 983 --.-KB/s in 0s 2023-05-23 08:58:30 (36,5 MB/s) - »tmp/suspicious_page« gespeichert [983]
There is a redirect to a sub domain, but no sign of redirecting to iyfbodn.com as uBlock shows.
The html looks like this:
someuser@pureos:~$ tidy -qi tmp/suspicious_page line 1 column 258 - Warning: inserting missing 'title' element window.park = "eyJ1dWlkIjoiOTczMWMwODQtM2U4NS03MTBkLWEyYWYtOTk4MWQwZDQxMzZkIiwicGFnZV90aW1lIjoxNjg0ODI1MTEwLCJwYWdlX3VybCI6Imh0dHA6XC9cL3d3MjUucGFja2FnZWtpdC5vcmdcLz9zdWJpZDE9MjAyMzA1MjMtMTY1OC0yOWJlLWFhZmUtMTNlZWEyZjQzYTkyIiwicGFnZV9tZXRob2QiOiJHRVQiLCJwYWdlX3JlcXVlc3QiOnsic3ViaWQxIjoiMjAyMzA1MjMtMTY1OC0yOWJlLWFhZmUtMTNlZWEyZjQzYTkyIn0sInBhZ2VfaGVhZGVycyI6W10sImhvc3QiOiJ3dzI1LnBhY2thZ2VraXQub3JnIiwiaXAiOiI4OC4xMzAuMTEzLjE4MCJ9";
Let's see what the javascript contains:
someuser@pureos:~$ wget -q -O- http://ww25.packagekit.org/js/parking.2.105.3.js | js-beautify - | head -n 20 ! function(e) { var t = {}; function n(r) { if (t[r]) return t[r].exports; var o = t[r] = { i: r, l: !1, exports: {} }; return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports } n.m = e, n.c = t, n.d = function(e, t, r) { n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: r }) }, n.r = function(e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" [Errno 32] Broken pipe
I gave up. The domain seems to be misused to do something that I'm not supposed to understand and that I probably do not want.
Upstream fixed it already
Looking at the repository I found that the issue is already fixed by this commit.
To PackageKit or not to PackageKit?
Looking at what documentation I found and at /etc/ files I decided I couldn't use it and left it disabled.
@me Yep. PackageKit is one of the first things I disable on my systems. It eats CPU like crazy, even when no-one asks it for anything. And when it's asked, it's slow and cumbersome.