Download CruxPorts4Slack


Version: 20120729

What is it?
===========
In the BSD Unix World a ports system means a directory hierarchy (ususally under /usr/ports)
where you can automatically build your own binary packages from source.

The advantage of a ports system is, that the built packages are optimized for your
computer. Second advantage is: ports are faster available then binary packages.

In the last years ports systems became popular on Linux, too.
A well-known Linux distro with a ports system is Gentoo, another one is
Crux (www.crux.nu) and another one Arch Linux (www.archlinux.org)

Being a Slackware fan, I decided to switch to Crux, because
Slackware hadn't alls the packages I wanted and using
./configure && make && make install (or even checkinstall) wasn't the optimum for me.

At first I was impressed with the ports system of Crux. But building every single
package, even the most basic software (e.g. util-linux), was getting on my nerves.
And I didn't like the  system layout of Crux as much as I liked
Slackware's.

I thought "Why don't use a mix of the two". Slackware with the Crux ports system
- that would be it. Crux binary packages are based on tarballs, so are Slackware packages.
So I switched back to Slack and ported the Crux port system to Slackware.

Here is the result: With cruxports4slack you can use the crux ports system
with Slackware.

Installing
==========

Depends on: curl

Installation with:  installpkg cruxports4slack-20120729-noarch-1.tgz


Running
=======

pkginfo
-------
usage: pkginfo [-i|-i package]
options:
-i, --installed        list installed packages and their version.
-l, --list package     list  files  owned  by  the  specified package
-h                     print help and exit



ports
-----
usage: ports [options] [collection ...]
options:
-u, --update    update ports
-l, --list      list available ports
-d, --diff      list differences between installed packages and availabe ports
-v, --version   print version and exit
-h, --help      print help and exit


pkgmk
-----
usage: pkgmk [options]
options:
-i,   --install             build and install package
-u,   --upgrade             build and install package (as upgrade)
-r,   --recursive           search for and build packages recursively
-d,   --download            download missing source file(s)
-do,  --download-only       do not build, only download missing source file(s)
-utd, --up-to-date          do not build, only check if package is up to date
-um,  --update-md5sum       update md5sum
-im,  --ignore-md5sum       build package without checking md5sum
-cm,  --check-md5sum        do not build, only check md5sum
-ns,  --no-strip            do not strip executable binaries or libraries
-f,   --force               build package even if it appears to be up to date
-c,   --clean               remove package and downloaded files
-kw,  --keep-work           keep temporary working directory
-a2c, --arch2crux          convert Arch Linux PKGBUILD to Crux Pkgfile
-cf,  --config-file   use alternative configuration file
-v,   --version             print version and exit
-h,   --help                print help and exit


Example for building and installing a package

cd /usr/ports/contrib/antiword
pkgmk -i

Enjoy!


How it works
============
With cruxports4slack you will be able to use Pkgfile files from http://crux.nu/portdb/ .

The ports command can checkout ports from port repositories. Support for *.rsync
files is included.

If you want to use *.httpup files you have to build and install httpup first (available
at Crux's "core" repo)

The pkgmk command  is a modified pkgmk from Crux's pkgutils which uses Slackware tools
(e.g. "makepkg") to build a Slackware package.



Where can I get ports?
======================
At http://crux.nu/portdb/ is a huge collection of port repositories. With this you
can easily build Slackware packages for almost every Free Software
available.


What about Arch Linux PKGBUILD files?
=====================================
Beginning from 20120729 the "pkgmk -a2c" can convert an Arch PKGBUILD to a
Crux Pkgfile to some extent. Arch's PKGBUILD files are much more complex then
Crux's Pkgfile files. So it is better to check the created Pkgfile.



BUGS
====
.footprint files aren't supported in this version of pkgmk, they are
simply ignored.


WARNING
=======
Not every Crux port is 100% compatible with Slackware, especially
where it has influence on the system layout. For example don't install
Crux's port of "base/filesystem", "base/rc" or "base/pkgutils" on Slackware.
You have been warned.


Changelog
=========
20120729 - Added -a2c/--arch2crux option to pkgmk for converting Arch Linux's PKGBUILD to Crux Pkgfile
         - Removed httpup and Crux's Repo file
         - Replaced httpup driver with rsync driver

20061113 - Added -p/--pkgfile option to pkgmk for using alternative Pkgfiles. This comes in handy
           if you have a modified Pkgfile which will not be overwritten by a ports -u
         - Modified contrib and opt repository to match the new URL

20060822 - Added pkginfo, a script to print information about installed packages
         - Removed base repository

20050612 - pkgmk makes install/slack-desc from "# Description:" in Pkgfile
         - pkgmk guesses arch in pkgname-version-arch-release.tgz from CFLAGS in /etc/pkgmk.conf
         - re-packed the wohle thing in one package

20050606 - Initial release