mk-slack64-multilib
Presentation
============
mk-slack64-multilib is a simple script to create, from a Slackware64
tree and a multilib mirror, a Slackware64+multilib tree, and optionaly,
a Slackware64+multilib ISO image.
Usage
=====
mk-slack64-multilib --input <slackware64-dir>
--mirror <multilib-mirror-addr>
[ --exclude <filename,...> ]
[ --build-iso ]
-i|--input <slackware64-dir>
This required parameter defines the location of the pure Slackware64
tree that will be used, as source, to build the Slackware64+multilib
tree. This can be, for instance, the mount point of a pure Slackware64
DVD/ISO-image.
-m|--mirror <multilib-mirror-addr>
This required parameter defines the location of the mirror that provides
multilib packages for Slackware64. This can be :
+ A local directory that contains a copy, in whole or part, of a
multilib mirror. Inside this directory there should be, at least
the directory of the multilib-packages for the input Slackware64.
For instance, 14.0/ when the input is Slackware64-14.0.
+ The URL of an ftp/http multilib mirror, like one of the following :
http://connie.slackware.com/~alien/multilib
http://taper.alienbase.nl/mirrors/people/alien/multilib
http://slackware.org.uk/people/alien/multilib
http://scw.net.br/alien/multilib
http://repo.ukdw.ac.id/alien-multilib
http://alien.slackbook.org/multilib
-x|--exclude <filename,...>
This optional parameter allows to defines the files and/or directories
from the pure Slackware64 tree to exclude, that must not be included
into the Slackware64+multilib tree.
The excluded files/directories must be given as a comma separated list
of relative pathnames. For instance, to exclude the "testing" directory
and the "source" from extra, the list "testing,extra/source" has to be
passed in argument.
To save space, the directory "/source" is automatically excluded. The
files /CHECKSUMS.md5 and slackware64/CHECKSUMS.md5.asc are also
excluded since the files /CHECKSUMS.md5 and slackware64/CHECKSUMS.md5
are re-computed after integration of the multilib packages.
-b|--build-iso
When this optional parameter is used, an ISO image will be created when
the Slackware64+multilib tree is ready.
Environment variables
=====================
mk-slack64-multilib uses the following environment variable which can be
redefined at runtime.
WORKDIR
-------
This environment variable defines the location of the working directory
used by mk-slack64-multilib. By default, this is set to ~/mk-slack64-multilib.
This can be redefined at runtime as below :
WORKDIR=/my/new/location mk-slack64-multilib
The structure of the working directory is as below :
WORKDIR
!--/multilib-data
!
!--/slackware64-multilib
!
!-- mk-slack64-multilib.log
!-- mkisofs.log
!
!
-- unofficial-slackware64-XX.Y_multilib-install-dvd.iso
/multilib-data is the directory used by mk-slack64-multilib to store
the multilib packages downloaded from an ftp/http multilib mirror.
/slackware64-multilib is the location of the output Slackware64+multilib
tree. Keep in mind that this directory is automatically cleaned each
time mk-slack64-multilib is ran.
mk-slack64-multilib.log is the file used by mk-slack64-multilib to log
its activities.
mkisofs.log is the file in which logs from mkisofs are redirected when
mk-slack64-multilib is started with optional parameter --build-iso.
unofficial-slackware64-XX.X_multilib-install-dvd.iso is the name of any
ISO image built using by mk-slack64-multilib when started with optional
parameter --build-iso.
SLACKVER
--------
This environment variable defines the version number of the pure Slackware64
used to build the multilib tree. Defaults to "auto" which means the script
must auto-detect this information. However, in case of Slackware64-current,
this must be redefined at runtime, otherwise, mk-slack64-multilib could
integrate the wrong version of the multilib packages. So, in that case,
SLACKVER must be specified at runtime as below :
$ SLACKVER=current mk-slack64-multilib ...
LAYER32_SERIE
-------------
This environment variable defines the serie in which the 32-bit multilib
packages will be integrated. Defaults to "l", which means that all of
32-bit multilib packages will be integrated into the serie "l" of the
Slackware64+multilib tree.
When set to "native", the 32-bit multilib packages will be integrated
according to their respective series. This mean that the 32-bit multilib
packages from serie "a" will be integrated into the serie "a" of the
Slackware64+multilib tree, the 32-bit multilib packages from serie "ap"
will be integrated into the serie "ap" of the Slackware64+multilib tree,
and so on ...
ADD_3RDPARTYTOOLS
-----------------
This environment variable allows to control integration of 3rd party
tools compat32pkg, multilibpkg and slackpkg+ into the serie "ap" of
Slackware64+multilib tree.
To include all these tools, this must be set to "all". To include
compat32pkg and multilibpkg only, this must be set to "dedicated".
To include slackpkg+ only, this must be set to "slackpkg+". To fully
disable integration of 3rd party tools, this must be set to "off".
Default to "all".
README.multilib
===============
mk-slack64-multilib adds the file README.multilib at the root of the
Slackware64+multilib tree.
Integration of 3rd party tools compat32pkg, multilibpkg and slackpkg+
=====================================================================
To help user to keep the multilib packages up to date, mk-slack64-multilib
automatically adds 3rd party tools compat32pkg, multilibpkg and slackpkg+
into the serie "ap" of Slackware64+multilib tree.
This can be changed at runtime through the variable ADD_3RDPARTYTOOLS which
can be set to "all", "dedicated", "slackpkg+", or "off". For instance, to
only integrate slackpkg+, mk-slackpkg-multilib must be run as below :
$ ADD_3RDPARTYTOOLS=slackpkg+ mk-slack64-multilib ...
Updated files
=============
mk-slack64-multilib automatically updates the "tagfile" and rebuilds the
"maketag" and "maketag.ez" of all series in which packages have been
integrated.
Sample usage
============
Before using mk-slack64-multilib, you need to have a pure Slackware64
tree available. The simplest is to use a pre-mounted Slackware64 DVD or
an ISO image :
$ mount /path/to/slackware-iso-image /mnt/slackiso
Once this is done, you can launch mk-slack64-multilib as below :
$ mk-slack64-multilib --input /mnt/slackiso \
--mirror http://taper.alienbase.nl/mirrors/people/alien/multilib \
--build-iso
In the example below, mk-slack64-multilib will use the pure Slackware64
tree in /mnt/slackiso and the multilib-mirror given in argument of the
parameter --mirror, to build a Slackware64+multilib tree. Furthermore,
once the multilib tree will be ready, an ISO image is generated, since
the optional parameter --build-iso is used.
+ The multilib from the given mirror will be stored into the directory
~/mk-slack64-multilib/multilib-data
+ The Slackware64+multilib tree will be stored into the directory
~/mk-slack64-multilib/slackware64-multilib
+ The output ISO image will be stored into the directory ~/mk-slack64-multilib
with the name unofficial-slackware64-XX.Y_multilib-install-dvd.iso.