Slackware Global Tagfile
========================

Are you an expert Slackware user looking for a way to specify your
list of packages to install in a single file? Well, you're in luck!
Support has been added for a global tagfile in the Slackware installer.
Of course, we caution that this feature is intended for experts who are
used to managing their own custom package lists. Slackware does not do
any automatic package dependency resolution, so if you leave out something
important, you'll have to figure out how to fix that.

The installer looks for a global tagfile in this order:

  1. /tmp/global_tagfile
  2. slackware{,64}/global_tagfile at the root of the package tree in the ISO
     as a fallback. This might be the one you usually want to use if you have
     included it on your installer image, but that might be read-only.
     By prioritizing /tmp/global_tagfile it's possible to run the installer,
     copy slackware{,64}/global_tagfile to /tmp/global_tagfile and then make
     some last minute edits if you need to.

The global tagfile uses one package per line in the form:

  series/package

Example:

a/aaa_base
a/aaa_glibc-solibs
a/bash
a/coreutils
a/kbd
a/kmscon
a/less
ap/htop
ap/mc
ap/slackpkg
d/git
d/make
d/perl
d/python3
l/glib2
l/glibc
l/ncurses
n/ca-certificates
n/curl
n/dhcpcd
n/gnupg
n/openssh
n/wget

If the global_tagfile doesn't contain any uncommented lines with '/' then the
global_tagfile will be ignored and the regular tagfiles are used.
Only uncommented lines that contain '/' are meaningful in the global_tagfile.
All unlisted packages will be skipped.

If you have a global_tagfile containing some active lines but you don't want to
use it, export this variable before running setup:

export IGNORE_GLOBAL_TAGFILE=1

This will cause any global_tagfile to be skipped regardless of its content.

Additional options for global_tagfile
=====================================

There are a couple of extra options that you can use in your global_tagfile.

The SKIP option
===============

If the global_tagfile has a line containing only SKIP, then we invert the
meaning of the listed packages/patterns. Anything listed in the global_tagfile
will be skipped, and all other packages will be installed.

For example, to skip the kernel-source package and install all others, the
global_tagfile would be as follows:

SKIP
k/kernel-source

The REGEXP option
=================

Normally the series/package must exactly match one of the lines in the
global_tagfile. However, if the global_tagfile has a line containing only
REGEXP, then the list consists of extended regular expressions that match
the series/package. For example, to install only packages with "glibc" in
the name, you would use this global_tagfile:

REGEXP
.*/.*glibc.*

The lines are automatically bounded by ^ and $.

Note that you will need to escape any regexp metacharacters in your patterns.
Here are some examples of affected packages:

l/gtk\+2
l/gtk\+3
l/vid\.stab

