aboutsummaryrefslogtreecommitdiffstats
path: root/compat32ctl.8
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-19 12:12:00 +0200
committerDanilo M. <danix@danix.xyz>2026-09-19 12:12:00 +0200
commit3b58f17a3fc7f6aa50cfb8bdba14b2321abb4679 (patch)
treef57fb6a4a98ad8e263b4522de9ceb97a91108481 /compat32ctl.8
downloadinstall-compat32-3b58f17a3fc7f6aa50cfb8bdba14b2321abb4679.tar.gz
install-compat32-3b58f17a3fc7f6aa50cfb8bdba14b2321abb4679.zip
feat: add compat32ctl for Slackware64 -currentHEADmaster
Manage AlienBOB's compat32 package collection: mirror the -current tree with lftp, verify it against CHECKSUMS.md5, and install/update/remove the 32-bit layer with upgradepkg/removepkg. Includes a man page and a dry-run self-check.
Diffstat (limited to 'compat32ctl.8')
-rw-r--r--compat32ctl.8192
1 files changed, 192 insertions, 0 deletions
diff --git a/compat32ctl.8 b/compat32ctl.8
new file mode 100644
index 0000000..e16387a
--- /dev/null
+++ b/compat32ctl.8
@@ -0,0 +1,192 @@
+.\" compat32ctl.8 - manual page for compat32ctl
+.\" Copyright (C) 2026 Danilo M. <danix@danix.xyz>
+.\" SPDX-License-Identifier: GPL-2.0-only
+.TH COMPAT32CTL 8 "2026-09-19" "compat32ctl" "System Administration"
+.SH NAME
+compat32ctl \- manage AlienBOB's compat32 packages on Slackware64 \-current
+.SH SYNOPSIS
+.B compat32ctl
+.I command
+.RI [ options ]
+.SH DESCRIPTION
+.B compat32ctl
+installs, updates and removes AlienBOB's collection of 32\-bit
+compatibility packages (the
+.B \-compat32
+packages) on a Slackware64
+.B \-current
+system.
+.PP
+On
+.B \-current
+the multilib capability is provided by Slackware's own
+.BR gcc (1)
+and
+.BR glibc ,
+so no third\-party toolchain replacement is required; only the 32\-bit
+compatibility library layer is managed. Packages are sourced from
+.IR https://slackware.nl/people/alien/multilib/current .
+.PP
+The package tree is mirrored into a local cache, verified against the
+repository's
+.B CHECKSUMS.md5
+file, and installed with
+.BR upgradepkg (8).
+.SH COMMANDS
+.TP
+.B sync
+Mirror the remote package tree into
+.I MIRROR_DIR
+using
+.BR lftp (1)
+with
+.BR "mirror \-c \-e" ,
+then verify every downloaded file against
+.BR CHECKSUMS.md5 .
+.TP
+.B install
+Run
+.B sync
+and then install or upgrade
+.B compat32\-tools
+and every
+.B \-compat32
+package with
+.BR "upgradepkg \-\-install\-new" .
+.TP
+.B update
+Identical to
+.BR install .
+Provided as a distinct verb for intent; the underlying command is
+idempotent, upgrading packages that are already installed and adding new
+ones.
+.TP
+.B remove
+Remove every installed package whose name contains
+.BR compat32 ,
+covering both the
+.B \-compat32
+libraries and
+.BR compat32\-tools .
+Does not touch the network and does not roll back
+.BR gcc / glibc ,
+which are Slackware's own packages on
+.BR \-current .
+.TP
+.BR help ", " \-h ", " \-\-help
+Show the usage message.
+.SH OPTIONS
+.TP
+.BR \-n ", " \-\-dry\-run
+Print the commands that would be executed without running them. With
+this option the root and dependency checks are skipped, so the preview
+can be run as an unprivileged user.
+.TP
+.BR \-h ", " \-\-help
+Show the usage message.
+.SH ENVIRONMENT
+.TP
+.B REPO_URL
+Remote package tree to mirror. Default:
+.IR https://slackware.nl/people/alien/multilib/current .
+.TP
+.B MIRROR_DIR
+Local package cache. Default:
+.IR /var/cache/compat32 .
+.TP
+.B PKGDIR
+Directory holding installed\-package metadata, used by
+.BR remove .
+Default:
+.IR /var/log/packages .
+.SH FILES
+.TP
+.I /var/cache/compat32
+Default local mirror (see
+.BR MIRROR_DIR ).
+.TP
+.I /var/log/packages
+Installed\-package database (see
+.BR PKGDIR ).
+.TP
+.I /etc/slackpkg/blacklist
+When
+.BR slackpkg (8)
+is used, the entries
+.B [0\-9]+alien
+and
+.B [0\-9]+compat32
+should be present so slackpkg does not remove or replace the multilib
+packages.
+.SH EXIT STATUS
+.TP
+.B 0
+Success.
+.TP
+.B 1
+A usage error, a missing dependency, insufficient privileges, or a
+failing
+.BR upgradepkg (8)
+or
+.BR removepkg (8)
+invocation. The script runs with
+.BR "set \-e" ,
+so any failing step aborts the run.
+.SH NOTES
+.SS Progress
+When run on a terminal,
+.BR lftp (1)
+displays a live status line for the file being transferred, including
+bytes transferred, percentage, transfer rate and estimated time. The
+.B \-v
+option passed to
+.B mirror
+also prints a
+.B "Transferring file"
+line for each file. When the output is not a terminal (for example under
+cron), no progress is shown.
+.SS Requirements
+.BR lftp (1)
+and
+.B md5sum
+are required for
+.BR sync ;
+.BR upgradepkg (8)
+and
+.BR removepkg (8)
+are required for the respective commands. Root is required for any
+command that modifies the system.
+.SH EXAMPLES
+Preview a sync without changing anything:
+.PP
+.RS 4
+compat32ctl sync \-n
+.RE
+.PP
+Install or update the compat32 layer:
+.PP
+.RS 4
+compat32ctl install
+.RE
+.PP
+Remove the compat32 layer:
+.PP
+.RS 4
+compat32ctl remove
+.RE
+.PP
+Mirror into a staging directory instead of the system cache:
+.PP
+.RS 4
+MIRROR_DIR=/srv/compat32 compat32ctl sync
+.RE
+.SH SEE ALSO
+.BR lftp (1),
+.BR upgradepkg (8),
+.BR removepkg (8),
+.BR installpkg (8),
+.BR slackpkg (8)
+.SH LICENSE
+GNU General Public License, version 2 only.
+.SH AUTHOR
+Written by Danilo M. <danix@danix.xyz>.