project: d.r.e.a.m

News

CHANGELOG

What is sw-utils?

sw-utils is a set of tools to provide an easy way to build packages for your operating system. It's intention is to provide the same interface (and easy) to an administrator who wants to create site local software packages.

While sw-utils tends to be much simpler than the OS native package tools, you can still use most of the packaging systems features.

Why should i use sw-utils?

Simplicity. Creating a package with sw-utils is nearly same on all supported platforms. This makes it easy for a sysadmin to reuse his packages on a different platform.

Why packaging?

Most people don't package the software on systems they maintain. At first, this is not really a problem. But if you have to do an update on lots of machines (security fixes or similar), you will run into problems if you didn't package the software you use.

Why site local packages?

Most current operating systems ship with awful lot of prepackaged software. The BSD OSs have their ports system, debian has packages for nearly everything, and for gentoo there are lots of ebuilds. But after all, these packages may not suit your specific needs. This is the reason i have started creating site local packages of software.

How to use sw-utils?

The first drawback of sw-utils is, that the only supported platform at the moment is Debian. This will change in the future, but currently i only do daily work with Debian, so i don't really feel like writing converters for other packaging systems (like RPM, or Solaris packages).

Bootstrapping sw-utils

Bootstrapping sw-utils is pretty easy. You can either checkout trunk using a subversion client, download the nightly tarball, or stick to a release. You can find all of them here.

Get into the top of the source tree, and have a look at the Makefile. Adjust all Paths to suit your needs, and then run make install. This will install sw-utils directly into your filesystem, bypassing the package managment. You can overwrite these files later using your sw-utils package.

Creating your first package

Your first step should be to create a package of sw-utils itself. An example can be found here. If you want to get familiar with how to build packages with sw-utils, you can read the packaging howto.

Daily use

I've put all my site local packages in a repository, which i can use wherever i am. You may want to do the same. Check out Subversion, CVS, Arch etc. on how to do this.

Using with Debians apt

sw-utils can be used to generate apt-get compatible source directories. See the swmk_deb(8) and sw-utils.conf(5) Documentation on how to enable generation of the needed Packages.gz files. After creating those files, and making them available through http or ftp, you can use them in apt-get. If you're not running stable, you might run into clashes of version numbers, and thus need to create an /etc/apt/preferences file. Mine looks like this:

Package: *
Pin: origin projectdream.org
Pin-Priority: 900

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 500
With a corresponding sources.list:
deb http://projectdream.org/debian/ testing main
deb http://debian.ethz.ch/mirror/debian sarge main non-free contrib
deb http://non-us.debian.org/debian-non-US sarge/non-US main

deb http://security.debian.org/ sarge/updates main
This gives you site local packages a higher preference.

Give feedback

I've been using sw-utils for about a year now, and never ran into a grave bug. Thanks to the feedback i received, i found several smaller bugs, which i've fixed. Its possible that there are still bugs inside sw-utils. If so, please give me feedback by sending mail to lb-web@projectdream.org.