mkslack - a SlackBuild generator script

(C) David Woodfall 2010-2016
(C) modifications by slakmagic 2010

This slackbuild generator uses templates stored in
/usr/share/mkslack/templates and a config file
/etc/mkslack/mkslack.conf which you must edit for name, email, tag and
a few options.

Idea for use:

The initial slackbuild and info file are built by this script, and
when a test build/install is done and working, the files should be
tweaked by hand. Especially don't forget to fill in the rest of the
details in the .info. One thing to point out is that mkslack will
overwrite these files if run again unless you set KEEPBACKUPS="YES" in
the conf (default).

This is only a starter kit! You ARE expected to edit the created files
by hand afterwards to remove unnecesary parts and add extra options!


mkslack [options] archive

-h --help Usage.
-b --build Run SlackBuild after creation. Got root?
-i --install Install the package after running.
-l --list Pipe archive contents to /usr/bin/most and exit.
-v --version Version of mkslack.
-V --ckver Check for new version.

With no option set, mkslack will generate the SlackBuild and other
files, print out a small message, and then quit.

Config options:

NAME, EMAIL as they should appear in .SlackBuild and .info
TAG should be your custom tag and defaults to _SBo
KEEPBACKUPS="YES|NO" up to 5 backups of .SlackBuild and other files
are kept. The higher the number, the older they are.
ERRORACTION="PROMPT|AUTO|EXIT" what to do on build errors. Using AUTO
or answering 'y' to the prompt will have the slackbuild adjusted for
man and info pages and then rebuilt.
Waf scripts don't exit on a '1' return code so it scans the end of the
to see if there is an unrecognised configure option (the most frequent
error with waf).

CLI Options:

The documents list in top level of source tree can be adjusted by command:
DOCS="SomeFile" mkslack archive
This will add 'SomeFile' to the list. You can also edit the DOCS list
in this script. Any that it doesn't find will be removed from the

Build can be specified by:
BUILD=2 mkslack archive
Otherwise it defaults to 1.

ARCH can be specified by:
ARCH=xxx mkslack archive
It defaults to whatever is set in the system, or what the SlackBuild
finds or sets.

TAG can also be specified.