Fix multiple entries in woof-installed-packages
File /root/.packages/woof-installed-packages is a list of all the packages builtin to easy.sfs, in the "Puppy Standard" database format. I noticed an anomaly in this file:
chromium-common_139.0.7258.154-1|chromium-common|139.0.7258.154-1||Internet;browser|59105K|pool/DEBIAN/main/c/chromium|chromium-common_139.0.7258.154-1~deb13u1_amd64.deb|+libc6&ge2.39,+libgcc-s1&ge4.2,+libx11-6,+libxcb1,+libxnvctrl0,+zlib1g&ge1.2.11,+x11-utils,+xdg-utils|web browser - common resources used by the chromium packages|devuan|excalibur|1894723acdb300bd26af3e8d43e617f3||
chromium-common_142.0.7444.59-1|chromium-common|142.0.7444.59-1||Internet;browser|60632K|pool/DEBIAN-SECURITY/updates/main/c/chromium|chromium-common_142.0.7444.59-1~deb13u1_amd64.deb|+libc6&ge2.39,+libgcc-s1&ge4.2,+libx11-6,+libxcb1,+libxnvctrl0,+zlib1g&ge1.2.11,+x11-utils,+xdg-utils|web browser - common resources used by the chromium packages|devuan|excalibur|||
chromium-l10n_139.0.7258.154-1|chromium-l10n|139.0.7258.154-1||Internet;browser|111741K|pool/DEBIAN/main/c/chromium|chromium-l10n_139.0.7258.154-1~deb13u1_all.deb|+chromium&ge139.0.7258.154-1<139.0.7258.154-1|web browser - language packs|devuan|excalibur|f80aa4329e550f694289d7dd01b83b65||
chromium-l10n_142.0.7444.59-1|chromium-l10n|142.0.7444.59-1||Internet;browser|114057K|pool/DEBIAN-SECURITY/updates/main/c/chromium|chromium-l10n_142.0.7444.59-1~deb13u1_all.deb|+chromium&ge142.0.7444.59-1<142.0.7444.59-1|web browser - language packs|devuan|excalibur|||
chromium_139.0.7258.154-1|chromium|139.0.7258.154-1||Internet;browser|276132K|pool/DEBIAN/main/c/chromium|chromium_139.0.7258.154-1~deb13u1_amd64.deb|+libasound2t64&ge1.0.17,+libatk-bridge2.0-0t64&ge2.5.3,+libatk1.0-0t64&ge2.32.0,+libatspi2.0-0t64&ge2.9.90,+libc6&ge2.38,+libcairo2&ge1.6.0,+libcups2t64&ge1.7.0,+libdav1d7&ge0.1.0,+libdbus-1-3&ge1.10,+libdouble-conversion3&ge2.0.0,+libexpat1&ge2.1,+libflac14&ge1.5.0,+libfontconfig1&ge2.12.6,+libfreetype6&ge2.11.1,+libgbm1&ge17.1.0~rc2,+libgcc-s1&ge4.2,+libglib2.0-0t64&ge2.40.0,+libharfbuzz-subset0&ge6.0.0,+libharfbuzz0b&ge2.6.0,+libjpeg62-turbo&ge1.5.0,+liblcms2-2&ge2.2,+libminizip1t64,+libnspr4&ge4.9-2,+libnss3&ge3.30,+libopenh264-8&ge2.6.0,+libopenjp2-7&ge2.5.0,+libopus0&ge1.1,+libpango-1.0-0&ge1.14.0,+libpng16-16t64&ge1.6.46,+libpulse0&ge0.99.1,+libudev1&ge183,+libx11-6,+libxcb1&ge1.9.2,+libxcomposite1&ge0.4.6,+libxdamage1&ge1.1,+libxext6,+libxfixes3,+libxkbcommon0&ge0.5.0,+libxml2&ge2.10,+libxnvctrl0,+libxrandr2,+libxslt1.1&ge1.1.27,+libzstd1&ge1.5.5,+zlib1g&ge1.2.11,+libgtk-3-0t64,+chromium-common&eq139.0.7258.154-1|web browser|devuan|excalibur|df4adceddd1d3d9c4d2a6858a0f333c4||
chromium_142.0.7444.59-1|chromium|142.0.7444.59-1||Internet;browser|279013K|pool/DEBIAN-SECURITY/updates/main/c/chromium|chromium_142.0.7444.59-1~deb13u1_amd64.deb|+libasound2t64&ge1.0.17,+libatk-bridge2.0-0t64&ge2.5.3,+libatk1.0-0t64&ge2.32.0,+libatspi2.0-0t64&ge2.9.90,+libc6&ge2.38,+libcairo2&ge1.6.0,+libcups2t64&ge1.7.0,+libdav1d7&ge0.1.0,+libdbus-1-3&ge1.10,+libdouble-conversion3&ge2.0.0,+libexpat1&ge2.1,+libflac14&ge1.5.0,+libfontconfig1&ge2.12.6,+libfreetype6&ge2.11.1,+libgbm1&ge21.1.0,+libgcc-s1&ge4.2,+libglib2.0-0t64&ge2.40.0,+libharfbuzz-subset0&ge6.0.0,+libharfbuzz0b&ge2.6.0,+libjpeg62-turbo&ge1.5.0,+liblcms2-2&ge2.2,+libminizip1t64,+libnspr4&ge4.9-2,+libnss3&ge3.30,+libopenh264-8&ge2.6.0,+libopenjp2-7&ge2.5.0,+libopus0&ge1.1,+libpango-1.0-0&ge1.14.0,+libpng16-16t64&ge1.6.46,+libpulse0&ge0.99.1,+libudev1&ge183,+libx11-6,+libxcb1&ge1.9.2,+libxcomposite1&ge0.4.6,+libxdamage1&ge1.1,+libxext6,+libxfixes3,+libxkbcommon0&ge0.5.0,+libxml2&ge2.10,+libxnvctrl0,+libxrandr2,+libxslt1.1&ge1.1.27,+libzstd1&ge1.5.5,+zlib1g&ge1.2.11,+libgtk-3-0t64,+chromium-common&eq142.0.7444.59-1|web browser|devuan|excalibur|||
This has come about because there are two different versions of Chromium in the Devuan repository. The higher version number is a security release, and this is what is actually in easy.sfs
So, the lower-version entry should not be in that file. I found the cause, in script '3post-populate-rootfs' in woofQ2. Modified it so that it picks out the correct version:
#1create-rootfs has created pkgs-installed.txt (.deb pkgs)...
#ex: chromium/stable-security,now 142.0.7444.59-1~deb13u1 amd64 [installed]
#20251107 chromium is in two different Packages-devuan-* files...
#for aINST in $(cut -f 1 -d '/' pkgs-installed.txt)
while IFS='' read -r aL
do
aN="${aL%%/*}"
aV="$(echo -n "$aL" | tr -s ' ' | cut -f 2 -d ' ')"
grep -m 1 -h -F "|${aL}_${aV}_" ${L1}/configure/${xARCH}/Packages-${DISTRO_BINARY_COMPAT}-* >> woof-installed-packages
done <pkgs-installed.txt
The files Packages-${DISTRO_BINARY_COMPAT}-* are all of the
Devuan packages, converted to Puppy-Standard format. What the
script does now is find a match for both the name and version and
write to woof-installed-packages.
Tags: easy