Download CruxPorts4Slack
Version: 20061113
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).
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 (they are using devfs) 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 tar.gz, so are Slackware packages.
So I switched back to Slack and ported the Crux port system to Slackware. Another reason
for making this is, that I will use this system in the next version of DeLi Linux
(www.delilinux.de).
Here is the result: With cruxports4slack you can use the crux ports system
with Slackware.
Installing
==========
Depends on: curl (slackware/n/curl-7.12.2-i486-1.tgz in Slackware 10.2)
Installation with: installpkg cruxports4slack-20060822-i486-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
-p, --pkgfile use alternative Pkgfile
-kw, --keep-work keep temporary working directory
-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 worked
=============
With cruxports4slack (and installed curl from Slackware)
you will be able to use httpup files from http://crux.nu/portdb/ . The ports command
uses the httpup system to checkout ports from port repositories. 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?
======================
httpup files from the Crux contrib and opt "series"
are in the package.
At http://crux.nu/portdb/ is a huge collection
of other port repositories. With this you can easily build
Slackware packages for almost every Open Source Software
available.
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 "core/filesystem", "core/rc" or "core/pkgutils" on Slackware.
You have been warned.