
Slackles pkgtools version 1.0.0
2005-05-18
http://slackles.slackware.fi/pkgtools/
Lasse Collin <lasse.collin@slackware.fi> [IRC-nick: Larhzu]

INTRODUCTION

  Slackles pkgtools are an enhanced version of the Slackware pkgtools.
  Pkgtools are a collection of ash/bash compatible scripts which handle
  creating, installing, upgrading and removing software packages. Slackles
  pkgtools also include network support. Slackles pkgtools replace the
  original Slackware pkgtools; you cannot easily have both installed,
  although it might be possible. Then again, when you get to know all the
  features of the Slackles pkgtools, you will not feel the need to have the
  old pkgtools installed.

  There is also a revised installation program which is based on Slackware
  installation scripts and Slackles pkgtools. It has HTTP and FTP support.
  At the time of writing it is in alpha stage, but the stable version will
  hopefully be released within a few weeks. The Slackles installation program 
  will be able to install both Slackles Linux and Slackware Linux 10.0 and
  later (including -current).

REQUIREMENTS

  In short, Slackles pkgtools work on Slackware 10.0 and newer without
  any other third party packages. If you want to use the LZMA packages (.tlz)
  you will need to also install LZMA. LZMA offers a tremendously better
  compression ratio than any other current compression algorithm. Although
  it is slower in uncompressing and even slower in compressing than gzip,
  the difference in compressed package size is nearly always over 30%.
  Note that LZMA is considerably faster than bzip2.

  The following packages are needed on an ordinary GNU/Linux system:
    * tar version 1.13 (included in pkgtools)
    * dialog 1.0-20050306 (needs a patch, see CHANGES) (included in pkgtools)
    * GNU glibc 2.3.2 or later
    * GNU bash 2.05b or 3.xx
    * GNU coreutils 5.2.1
    * GNU sed 4.xx (pkgtools do not work with sed 3.xx)
    * GNU grep 2.5
    * mktemp
    * gzip 1.3.3
    * bzip2 1.0.2 (only needed for .tbz support)
    * LZMA 4.xx from LZMA-SDK http://7-zip.org/ (only needed for .tlz support)
    * GNU wget 1.9.1 (only needed if you want to install packages from network)

  If you are using BusyBox, you will need:
    * BusyBox snapshot 20050412 or later. Release 1.00 does not work.
    * 'paste' and 'comm' from the GNU coreutils
    * GNU sed 4.xx (pkgtools do not work with the BusyBox version of 'sed')
    * bzip2 if you want to create bzip2 compressed packages. bunzip2 of
      BusyBox can be used if only decompression is needed.
    * LZMA (linking statically might be a good idea)

  Also note that	
    * View and Remove commands in 'pkgtool' and 'installpkg --warn' do not
      work with the BusyBox 'grep'. Everything else should work with the 'grep'
      provided by BusyBox.
    * You may need to edit /etc/pkgtools/config for compatibility with
      BusyBox wget.

INSTALLATION

  SLACKWARE 10.0 AND NEWER

  Download pkgtools-slackles_1.0.0-i486-1.tgz and install it using
  'upgradepkg'. Do not install/upgrade any other packages at the same time!

      upgradepkg pkgtools-slackles_1.0.0-i486-1.tgz

  Should you need for some reason to get back the original Slackware pkgtools,
  download the original Slackware pkgtools and use these commands to downgrade
  cleanly and to remove all unneeded configuration files:

      installpkg pkgtools-10.1.0-i486-4.tgz
      upgradepkg --reinstall pkgtools-10.1.0-i486-4.tgz
      rm -r /etc/pkgtools /var/log/setup/repositories

  LINUX FROM SCRATCH

  First make sure that you have the basic requirements installed. Assuming
  that you do not have any package management software installed, you can
  install the Slackles pkgtools using the following commands:

      cd /   *OR*   cd /mnt/root
      tar xzf /path/to/pkgtools-slackles_1.0.0-i486-1.tgz
      bash install/doinst.sh
      rm -r install

  Now you have the pkgtools extracted to the filesystem. The pacakage database
  is still empty. Provided that you have the required utils installed you
  can now reinstall pkgtools; this time the package will be stored in
  the package database as well:

      installpkg /path/to/pkgtools-slackles_1.0.0-i486-1.tgz

  If you installed to a chroot'd directory, you can define the root directory 
  using --root:

      installpkg --root /mnt/root /path/to/pkgtools-slackles_1.0.0-i486-1.tgz

  Now you can make packages of your software using 'makepkg', for example:

      coreutils-5.2.1$ make DESTDIR=/tmp/pkg install
      coreutils-5.2.1$ cd /tmp/pkg
      pkg$ makepkg coreutils-5.2.1-i686-1barney.tgz

  Note that all steps in adding the final polish to the package are omitted
  here, details such as adding description, stripping binaries, gzipping the 
  man pages, etc.

COMPATIBILITY

  The enhanced Slackles pkgtools are and will be as compatible as possible 
  with official Slackware pkgtools. There are still two unavoidable things
  which break the otherwise (hopefully) perfect compatibility.

  There is a workaround for a fundamental limitation of how symlinks
  having special characters are stored in packages. See makepkg(1),
  section 'Compatibility', for more information.

  Other package formats than .tgz (gzip compressed) are not supported by the 
  official Slackware pkgtools. However, the tar file format is identical 
  (we use the same tar-1.13 as Slackware does). If you need to exchange 
  packages with systems where you cannot use Slackles pkgtools, you can 
  easily convert your packages using the 'convertpkg' utility.

LEGAL

  Slackware(R) is a registered trademark of Slackware Linux, Inc.

