1 Blacklist
Anagnostakis Ioannis edited this page 2026-06-25 03:12:30 +03:00

Blacklist

The blacklist freezes packages you do not want touched, and hides ones you do not want offered. Rules live in /etc/slacker/blacklist (one per line, # for comments), or are added for you by the frozen command.

The blacklist is different from command-line PATTERN matching. PATTERNs are substring + series + exact; blacklist rules are unanchored regular expressions (plus series/ and @repo scoping) matched against the full package id name-version-arch-build, exactly like slackpkg.


Rule syntax

[@repo] PATTERN
  • PATTERN is a Slackware series when it ends in / (e.g. kde/), otherwise an unanchored regex matched against the full id. So xf86-.*-202.* catches a 202x build, and a bare vlc matches any id containing vlc. Anchor with ^...$ for an exact match.
  • The optional @repo prefix scopes the rule to one repository: for an available package, its candidate repo; for an installed one, its source.

Frozen vs hidden

The match is… Effect
installed frozen — never installed, upgraded, reinstalled, or removed, and never listed by clean-system
not installed hidden from install-new, upgrades, and check-updates, but still shown by search/info marked [blacklisted]

The blacklist is honoured by every mutating command (including reinstall).


The frozen command

frozen validates rules and appends them to the blacklist for you.

slacker frozen "@alienbob vlc-[0-9]"     # freeze only alienbob's vlc
slacker frozen kde/                       # freeze the whole kde series
slacker frozen "xf86-.*-202.*"            # a regex rule
slacker frozen "@conraid ^ffmpeg-"        # exact-ish, scoped to conraid
  • Each argument is one rule; quote any rule that contains spaces (an @repo rule, for instance).
  • slacker flags a likely mistake — an @repo that names no active repo, or a regex containing whitespace (no package id has spaces, so that is usually a forgotten @ or a quoting slip) — and asks whether to declare it anyway.
  • It prints what each rule will freeze and asks for confirmation. --yes skips the prompts. Rules already present are skipped.

A worked example: freeze just one repo's vlc

Say you keep vlc from alienbob and never want it replaced or removed:

slacker frozen "@alienbob vlc-[0-9]"

Why vlc-[0-9] and not just vlc? The rule is an unanchored regex over the full id. vlc alone would also match vlc-plugin-foo or anything containing the letters; vlc-[0-9] anchors to the version boundary so it matches the vlc package itself. For a strict match you could write ^vlc-[0-9].


Blacklist vs repo quarantine

These solve different problems:

Blacklist (frozen) Quarantine (distrust-repo)
Scope specific packages (by regex/series) a whole repository
Effect freeze / hide those packages the repo provides no packages at all
Use it for "never touch this package" "do not trust this source right now"

See Security for the quarantine model.