💾 Archived View for perso.pw › blog › articles › openbsd-package-update-report.gmi captured on 2024-07-09 at 00:20:43. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-05-24)
-=-=-=-=-=-=-
You use OpenBSD and when you upgrade your packages you often wonder which one is a rebuild and which one is a real version update? The packages updates are logged in /var/log/messages and using awk it's easy to achieve some kind of report.
The typical update line will display the package name, its version, a "->" and the newer version of the installed package. By verifying if the newer version is different from the original version, we can report updated packages.
awk is already installed in OpenBSD, so you can run this command in your terminal without any other requirement.
awk -F '-' '/Added/ && /->/ { sub(">","",$0) ; if( $(NF-1) != $NF ) { $NF=" => "$NF ; print }}' /var/log/messages
The output should look like this (after a pkg_add -u):
Dec 4 12:27:45 daru pkg_add: Added quirks 4.86 => 4.87 Dec 4 13:01:01 daru pkg_add: Added cataclysm dda 0.F.2v0 => 0.F.3p0v0 Dec 4 13:01:05 daru pkg_add: Added ccache 4.5 => 4.5.1 Dec 4 13:04:47 daru pkg_add: Added nss 3.72 => 3.73 Dec 4 13:07:43 daru pkg_add: Added libexif 0.6.23p0 => 0.6.24 Dec 4 13:40:41 daru pkg_add: Added kakoune 2021.08.28 => 2021.11.08 Dec 4 13:43:27 daru pkg_add: Added kdeconnect kde 1.4.1 => 21.08.3 Dec 4 13:46:16 daru pkg_add: Added libinotify 20180201 => 20211018 Dec 4 13:51:42 daru pkg_add: Added libreoffice 7.2.2.2p0v0 => 7.2.3.2v0 Dec 4 13:52:37 daru pkg_add: Added mousepad 0.5.7 => 0.5.8 Dec 4 13:52:50 daru pkg_add: Added munin node 2.0.68 => 2.0.69 Dec 4 13:53:01 daru pkg_add: Added munin server 2.0.68 => 2.0.69 Dec 4 13:53:14 daru pkg_add: Added neomutt 20211029p0 gpgme sasl 20211029p0 gpgme => sasl Dec 4 13:53:20 daru pkg_add: Added nethack 3.6.6p0 no_x11 3.6.6p0 => no_x11 Dec 4 13:58:53 daru pkg_add: Added ristretto 0.12.0 => 0.12.1 Dec 4 14:01:07 daru pkg_add: Added rust 1.56.1 => 1.57.0 Dec 4 14:02:33 daru pkg_add: Added sysclean 2.9 => 3.0 Dec 4 14:03:57 daru pkg_add: Added uget 2.0.11p4 => 2.2.2p0 Dec 4 14:04:35 daru pkg_add: Added w3m 0.5.3pl20210102p0 image 0.5.3pl20210102p0 => image Dec 4 14:05:49 daru pkg_add: Added yt dlp 2021.11.10.1 => 2021.12.01
The command seems to mangle the separators when displaying the result and doesn't work well with flavors packages that will always be shown as updated.
At least it's a good start, it requires a bit more polishing but that's already useful enough for me.