From 532b90838ee3e93c799464b4a35d77593dcafeb6 Mon Sep 17 00:00:00 2001 From: Dave Woodfall Date: Mon, 19 Nov 2018 01:49:21 -0600 Subject: Fix (hopefully) blacklisting of specific packages In short, it seems impossible to blacklist some packages without catching other undesirable packages. As an example, blacklisting glibc will also catch glibc-zoneinfo (and the other glibc-*) packages. It would be good to have the ability to blacklist only the glibc package without it catching the others. With this change, if sysadmin wants the blacklist to be "greedy," then adding "glibc.*" to the blacklist will do that. Reported-by: Peter Hyman Signed-off-by: Robby Workman --- files/ChangeLog | 8 ++++++++ files/core-functions.sh | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'files') diff --git a/files/ChangeLog b/files/ChangeLog index 29ed27d..1d023a5 100644 --- a/files/ChangeLog +++ b/files/ChangeLog @@ -1,6 +1,14 @@ For Next Release --------------- + - Allow blacklisting of individual packages without collateral + damage (e.g. glibc ---> glibc-*). This changes the prior behavior + of the blacklist function; previously, adding "glibc" to the + blacklist would cause glibc, glibc-profile, glibc-zoneinfo, et al + to be ignored by slackpkg. The new behavior is that *only* the + glibc package is ignored. If you want to blacklist all packages + whose names begin with glibc, you would need to add "glibc.*" to + the blacklist now. (David Woodfall) - Add support for listing .new files without PAGER (David Woodfall) - Remove switch.ch mirrors - Add config option to allow *not* saving .orig configs (Darren Austin) diff --git a/files/core-functions.sh b/files/core-functions.sh index a976df6..d8756d3 100644 --- a/files/core-functions.sh +++ b/files/core-functions.sh @@ -572,7 +572,7 @@ function listpkgname() { } function applyblacklist() { - grep -vEw -f ${TMPDIR}/blacklist + grep -vE -f ${TMPDIR}/blacklist } # Function to make install/reinstall/upgrade lists @@ -584,7 +584,10 @@ function makelist() { INPUTLIST=$@ - grep -vE "(^#|^[[:blank:]]*$)" ${CONF}/blacklist > ${TMPDIR}/blacklist + grep -vE "(^#|^[[:blank:]]*$)" ${CONF}/blacklist | \ + sed -E "s,^, ,;s,$, ,;s,^\s(extra|pasture|patches|slackware(|64)|testing|txz)\s,\1," \ + > ${TMPDIR}/blacklist + if echo $CMD | grep -q install ; then ls -1 $ROOT/var/log/packages/* | awk -f /usr/libexec/slackpkg/pkglist.awk > ${TMPDIR}/tmplist else -- cgit v1.2.3