aboutsummaryrefslogtreecommitdiff

Unofficial Client for slackware.com

A minimalistic tool for interfacing with Slackware's mirrors and website from the command line. Use at your own risk.

Note: Currently this project is pre-release and may be vulnerable to downgrade attacks.

slackware.com is an unofficial command line interface to Slackware's website.

The commands are:

    changelog
         - show changes described in the Changelog since the last update
    download
         - download the given packages
    list
         - list Slackware mirrors
    sync
         - update knowledge about mirror's content
    updates
         - print all new and updated packages on mirror

Examples

Download all updates:

slackware.com updates | xargs slackware.com download

Cron script to download updates and email changes to root:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/sh
set -e

export QUIET=true
export SLACKWARE_MIRROR=https://mirrors.kernel.org/slackware/slackware64-15.0/
export PATH=$PATH:/usr/local/sbin

TO_UPDATE="$(slackware.com updates)"
if [ -n "$TO_UPDATE" ]; then
    slackware.com updates | xargs slackware.com download
    slackware.com changelog | mail -s "updates" root
fi

Verifying integrity

The commmits to the repository will be signed by the GPG Key.

git commit --verify HEAD
# gpg: Signature made Fri Nov 24 11:20:19 2023 EST
# gpg:                using EDDSA key D0CFFD1075CAB8DA329975078D147EEA19EFF029
# ...
# gpg: Good signature from "Slack Coder <slackcoder@server.ky>" [ultimate]
# Primary key fingerprint: D0CF FD10 75CA B8DA 3299  7507 8D14 7EEA 19EF F029

Installation

Follow Golang's standard process for installing. It will install the command into the location pointed to by the GOBIN environment variable or its default value.

On Slackware , you want to install programs from third parties under the '/usr/local' location.

As root:

GOBIN=/usr/local/bin \
    go install -tags=netcgo ./cmd/slackware.com

'-tags=netcgo' makes DNS resolution much more reliable by using the systems native DNS resolver.