Skip to content

Releases: rizitis/slacker

0.10.3_beta.4

0.10.3_beta.4 Pre-release
Pre-release

Choose a tag to compare

@rizitis rizitis released this 07 Jul 18:00

Full Changelog: 0.10.2...0.10.3

Version Beta 0.10.3

  • Updates: Thanks to danix !!!
    • New: bash tab-completion for all 38 subcommands. Completes flags,
      installed package names, repo names, @ repo / @_tag selectors,
      template names, and pin's repo: prefix. Installed by the package
      to /usr/share/bash-completion/completions/slacker and loaded
      automatically in new shells. First external contribution — thanks
      to danix! (PR #3)
    • Completion ignores leftover -upgraded-<timestamp> records in
      /var/adm/packages, so an interrupted upgradepkg never produces
      phantom names or garbage tags at the prompt.
    • Developer tooling: contrib/check-completion-drift.sh verifies the
      completion's command list against the live slacker --help; the
      SlackBuild now runs it after the tests, so a stale completion
      fails the build instead of shipping. (repo-only, not installed)
    • New: zsh and fish completions alongside bash — all three now
      generated from a single source of truth (contrib/completions.json,
      rendered by contrib/gen-completions.py; python3 at build time only,
      nothing at runtime). Fixes two arg-type bugs of the hand-written
      bash: install-new now completes bare repo names (not @ repo), and
      upgrade-all no longer offers selectors (it takes no argument).
      Installed to /usr/share/zsh/site-functions/_slacker and
      /usr/share/fish/vendor_completions.d/slacker.fish. (PR #4)
    • The SlackBuild now also runs gen-completions.py --check, so a
      generated completion that doesn't match its JSON source fails the
      build; together with the drift-check this means completions can
      never silently drift from the binary.
  • Note: bash requires the bash-completion package (Slackware extra/) for automatic loading - install it with slacker install bash-completion from an extras subtree repo, or source the file from your shell rc. zsh and fish need nothing extra. If you have in use the old style "complete -cf sudo" sudo dont follow correctly you must disable it.

0.10.2_beta.4

0.10.2_beta.4 Pre-release
Pre-release

Choose a tag to compare

@rizitis rizitis released this 06 Jul 13:08

Version Beta 0.10.2

Fix: bug arch guard: accept fw and x86 packages, like the available-list filter

  • upgrade | kernel-headers | 6.18.37-x86-1 -> 6.18.38-x86-1 | slackware
  • is valid and should escape from checks.
    Fix: bug in pin: store the pin name verbatim, not as a compiled pattern, thanks to Claude Fable 5
  • dotted/'+' pin names were silently inert

Full Changelog: 0.10.1...0.10.2

0.10.1_beta.4

0.10.1_beta.4 Pre-release
Pre-release

Choose a tag to compare

@rizitis rizitis released this 03 Jul 16:09

Version Beta 0.10.1

Fix: bug for upgrade @some_slackware command, was not correctly filtering pakcage list, thanks to @danix

Full Changelog: 0.10.0...0.10.1

0.10.0_beta.4

0.10.0_beta.4 Pre-release
Pre-release

Choose a tag to compare

@rizitis rizitis released this 02 Jul 12:56

Version Beta 0.10.0

Fresh bump release, binaries for current (x86_64 and i686) builded with new shipped rust 1.96.1

Add: Credentials system — zypper-modeled

  • HTTP Basic authentication for repos that require login:
    Named sets: /etc/slacker/credentials.d/NAME (username/password), referenced with flag credentials=NAME in repos line.
    Global catalogue: /etc/slacker/credentials.cat with [url-prefix] sections.
    Order: credentials= flag → longest catalogue prefix → anonymous.
    Permissions enforced: root-owned 0600, otherwise refuse+warn+anonymous (fail-safe).
    Zero leak: secret only in Authorization: Basic header — never in repos file, URL, or logs.
    New module credentials.rs with inline base64 (no new dependencies).
    https-only + insecure flag (new)
    Credentials only go over https (like apt). For http:
    add-repo with credentials= on http → refuse (with clear message).
    Explicit alternative: per-repo flag insecure → sends to http, at your own risk (and vetting no longer freezes it for http, since you accepted it).
    The status finds it: new Credentials row (red withheld / yellow insecure).
    The list-repos now shows the (credentials=NAME) and (insecure) flags.

Add: User-Agent: slacker/0.10.0 (rustls) Slackware-version-arch

  • slacker isn not anonymous bot it has id

Fix: Accept-Encoding: identity (fix)

  • All request paths now send explicit identities
    Fix: bug with install-new thanks to @conraid
  • now install new will not skip testing/extras/patches/pasture IF having priority higher than slackware repo else keep looking only slackware repo.

Update: cosmetic fix: add space between install-new,installs, new-config headers
Update: slacker new-config command to escape blocking if a mirror is not set up already as it should be
Update: slacker status command to check slacker cache for forgotten (old, huge) packages
Update: Wiki and man pages.

Full Changelog: 0.9.4...0.10.0

0.9.4_beta.3

0.9.4_beta.3 Pre-release
Pre-release

Choose a tag to compare

@rizitis rizitis released this 01 Jul 09:55

Full Changelog: 0.9.3...0.9.4

Version Beta 0.9.4

freeze-fallback: a frozen candidate is treated as absent

WHAT CHANGES (semantic change to frozen):
A blacklist (frozen) rule no longer means "hold this package, never touch it".
It now means "do not take THIS candidate". A frozen candidate is treated as if
its repo did not offer the package at all; resolution then proceeds normally by
priority. A package is "held" (left unchanged) ONLY when EVERY candidate it would
consider is frozen.

This makes the three rule shapes behave as one would expect:

frozen xf86-.* (unscoped) -> matches the candidate in EVERY repo,
so all are frozen -> package held
everywhere (hard freeze, as before).
frozen "@testing xf86-.*" (repo) -> freezes ONLY the testing candidate ->
resolution falls through to slackware
by priority -> official updates flow.
frozen "@_SBo foo" (build tag) -> freezes the _SBo build wherever served;
@scope now matches a build tag too.

A pin repo:name still wins: it restricts the candidate set FIRST, then the
freeze excludes within it (so a pinned-but-frozen candidate is held).

The priority invariant is preserved: the fallback only considers candidates whose
priority is >= the installed source's priority (the existing direction rule), so
it never silently downgrades or migrates to a lower-priority repo.

WHY (reported by conraid):
conraid runs testing ABOVE slackware (105 > 100) and wants the new xf86/Xlibre
testing snapshots frozen while still getting official updates. Under the old
"hold the package" semantics that was impossible: freezing the testing winner left
the package stuck at the installed version with no fallback. Now @testing xf86-.*
(or the date rule xf86-.*-202.*) freezes only the testing build and slackware's
official update flows.

IMPLEMENTATION:

  • repo.rs: AvailPkg gains frozen: bool.
  • pkgdb.rs: mark_frozen sets it once on load (blacklist_hit per candidate;
    pins are never frozen). New resolve_unfrozen = highest-priority non-frozen
    candidate. match_pattern / search winner-selection prefers non-frozen, then
    priority. upgrades_for uses resolve_unfrozen and returns (ups, held).
  • pkgdb.rs: installed_priority now EXCLUDES frozen candidates from the floor.
    This is essential: a tagless package installed from slackware (100) is ALSO
    served tagless by the higher-priority testing subtree (105); without excluding
    the frozen testing candidate the floor would read 105 and the slackware
    fallback (100) would look like a downgrade and be refused. (This was caught by
    the scoped-fallback test — it is the crux that makes conraid's real case work.)
  • config.rs: a @scope blacklist rule matches the candidate's REPO name OR its
    build TAG, enabling @_SBo, @cf, etc.
  • main.rs: candidate freeze checks read the precomputed p.frozen; upgrade-all
    consumes (ups, held) and reports held via note_frozen_excluded;
    install-template falls through too. Dead bl_frozen/bl_avail removed;
    bl_installed kept for remove / clean-system / remove-template (no candidate
    there to fall through to). upgrade-dist is unchanged (it deliberately bypasses
    the blacklist).

Fix: file-search

  • marks only the exact build as installed (not every build of the same name)
    Add: pinnded repo:pkg are not frozen it only means give me updates for this pkg ONLY from the repo is pinned, but user might want to keep pkg on clean-system command
  • add question and let user to decide, keep or remove ONLY if pkg is installed from the pinned repo.

Update: man.8

0.9.3_beta.3

0.9.3_beta.3 Pre-release
Pre-release

Choose a tag to compare

@rizitis rizitis released this 30 Jun 21:28
Fix bug, bump 0.9.3

Signed-off-by: Anagnostakis Ioannis <[email protected]>