|  | tools useful for A-A-P
The intention for A-A-P is to use existing tools as much as possible.  To find
out which tools can be used this overview has been compiled.
Some tools cannot be used directly, but function as an example or can be
invoked by A-A-P (e.g., commercial tools and programs which are not portable).
Unless noted otherwise, tools are open-source.
 If you find a tool that would be useful for A-A-P but is not listed here, or
when information is incorrect, send a message to
Bram AT a-a-p.org.
 Note: this list is not intended to be complete.  Information that is
irrelevant for A-A-P is omitted.
 
Script languages
     
Build
     
Install
     
Issue Tracking
     
Version control
     
Browse
     
IDEs
     
Various
 
 Installing and package managementMany systems already exist for installing and managing packages.  A-A-P
intents to support the existing systems.  Additionally, a preference is given
for future projects.
This is only about installing from compiled binaries.  Before sources can be
installed they need to be compiled, see Build
for that.
Included here are tools for deployment, e.g., to update a web site.
 
The preferred installer should have these properties:
 
   Overview (more interesting first):Portable over many operating systemsFit in with the "normal" way to install programs on each systemHandle updating to a new versionHandle keeping several versions of one programCan update a remote systemCan be run both by the administrator and a userCache downloaded files for repeated installationClean up temporary files when done 
   Fink
   Looks like a very good example of how A-A-P could work (including format
   for recipes).  Unfortunately, it's specific for Mac OS X.Inspired by FreeBSD ports system.
   Based on Debian dpkg and apt-get.
   Written in Perl, doesn't depend on BSD Make.
   Suports both binary and source packages (thus you might call this a build
   tool as well).
   Supports upgrading.
 This project is working together with DarwinPorts in
   Metapkg.
RPM
   Package system used on many Linux systems.  Only works on Unix, although
   MS-Windows ports do exist.
   Can contain binaries and sources.
   Can download the whole package, but doesn't do downloading of individual
   items.
   Maintains a database of installed packages and individual files.It's widely used, thus A-A-P should support it.
   It does have limitations though.  Perhaps the "embrace and extend" approuch
   can be used.
 Related items:
 
      gnorpm
      Gnome app for handling RPM packages.  Used by RedHat.  Looks nice.
      krpm
      KDE app for handling RPM packages.  Still unstable. Also see kpackage.
      xrpm
      Python/Tk app for handling RPM packages.  A bit simplistic.
      rpmfind
      RPM finder.  Appears to be useful, it search for packages on the
      Internet and checks dependencies.
      grab
      RPM installation tool used for searching, downloading, and dependancy
      resolution of RPM packages residing on FTP servers. GRAB will read a
      config file and cache a database of all the available RPMS on the net.
      rpmsearch
      RPM finder.  Requires Perl and Oracle.  Not in production, use rpmfind.
      rust
      RPM creation with sandbox.  Both GUI and command-line versions.The sandbox idea is worth looking into for A-A-P.
Yup
      Yellowdog Update Program. Designed to be similar in function to apt-get.
      Uses RPM files.
      Also on sourceforge.
      rpm-pkgbuild
      RPM package builder; GUI for creating and testing spec files.
      Development appears to have stopped Jan 2001.
      rpmproc
      RPM package builder with uploading.  Sends an e-mail when making an
      update.  Written in Perl.The uploading part may be interesting for A-A-P.
harvester
      Python script to search for newer RPM files.  By Eric S. Raymond.
      swup
      SoftWare UPdater, base on ideas from Debian apt.  No web page...
      Debian APT
   Advanced Packaging Tool.
   Most people say it's better than RPM, and the attempts to make apt work
   with RPM files and ports to other systems confirms this.
   Downloads packages (but not individual files or patches).
   Handles dependencies.  Supports upgrading.
   Uses a private database to keep track of which packages are installed.A-A-P should be able to use APT on Debian systems.  Otherwise, it contains
   good ideas.  But it requires reading the manual to make it work.
APT-RPM
   Port of Debian APT for using RPM files instead of dpkg.  By Connectiva.
   Synaptic
   GUI frontend for APT.  Easy to use.  By Connectiva.
   kpackage
   KDE tool for installing, viewing and uninstalling packages. The formats
   supported include RPM, Debian, Slackware and BSD package manager.For A-A-P it's interesting to see how they managed to support several
   package formats.  Unfortunately it's not very portable.
gnupdate
   Package management for Linux.
   Supports Debian and RPM packages, but uses its own database.
   Automatic updating of packages.
   Can update a local CVS.
   Converts package files to other formats.
   Not stable yet, the database format is being rewritten.Looks interesting.  Should provide ideas and perhaps some code for A-A-P.
DarwinPorts
   Ports and packaging system for Darwin, Mac OS X.
   Providing a package system is not done yet.
   Based on TCL.  Examples show that shell script is also used, which
   restricts the portability despite the use of TCL.
   Jordan Hubbard, the "father of BSD ports", is one of the developers.
   Currently only works on Mac OS X 10.2 (Jaguar).  A port to FreeBSD is under
   way.
   Very interesting for A-A-P, well thought out.
   Still under development.
 This project is working together with Fink in
   Metapkg.
Open Packages
   Ports and packaging system for Unix, replacement for FreeBSD ports system
   and similar *BSD systems.
   Interesting for A-A-P, has a few goals in common.
   Still under development.  Did not make much progress since July 2001.
   In October 2002 decided to team up with DarwinPorts.
   openPKG
   Packaging system for Unix, RPM based.  Supports installing on multiple
   systemsInteresting for A-A-P, has a few goals in common.
nsbd - Not So Bad Distribution
   Secure system for distribution.  Uses signatures and restricts which files
   can be updated.  Unix only.  Written in Tcl/Tk and C.The security features could be insteresting for A-A-P.
Alien
   Package converter, converts between the rpm, dpkg, stampede slp, and
   slackware tgz file formats.  Perl script.  Still in an experimental stage.
   vainstall
   Installer in Java.  Looks nice and also supports console install.
   Runs on MS-Windows, Unix and any system that has Java 1.3.  Basically
   gathers files into a package and unpacks them in various places on the
   destination system.
   chimpinstall
   Creates and edits Microsoft Installer (msi) files.
   relink
   Package management system.  Uses Perl.  Unix only.
   Meta packager - mpkg
   Generate different types of packages from one description file.
   MPKG
   Appears to be different from Meta packager.
   Similar to the *BSD ports systems, but with more features.
   It was reported to be NetBSD's pkgsrc, ported to GNU make and changed to
   install each version of each application in its own directory. 
   Therefore it cannot be used mixed with the native ports/package system.
   Does make it easy to uninstall a package.
   Does not appear to be actively developed or used.
   Encap package manager - epkg
   Packaging, supports running multiple versions of the same package.
   Uses symlinks to point from /usr/local to where the package was actually
   installed.
   Unix only.  Uses Perl.
   slaktool
   Slackware package management tools.  Better than pkgadd.  Unix shell
   script, not portable.  Still very new, not widely used.
   pkgadd
   Slackware package system.  Does not handle dependencies, not as useful as
   RPM.  Solaris has a similar program.
   sf-upload
   Sourceforge release system.  Written in Perl.
   CheckInstall
   Keeps track of files installed by a "make install".
   Generates a package (RPM, Slackware, Debian) from this and adds it to the
   installed pacakage database.Can perhaps be used for ideas.
stow
   GNU package program.  Implemented in Perl.  Uses symbolic links to keep
   installed files in one place (thus Unix only).Not interesting for A-A-P.
 Related:
 
      stowES
      Perl script which tries to easy the use of Stow.Not interesting for A-A-P.
graft
   Manage multiple packages.
   Inspired by Stow and Depot.Not interesting for A-A-P.
sfsetup
   Sourceforge installer for Win32.  Sets up SSH and CVS.Not interesting for A-A-P.
python-apt
   Python binding for Debian apt-get.  Still very new.
   sourcer
   Install a package using sources.Could be interesting.  Not very advanced though.
buildpkg
   Generate a package in several formats from a template.
   Shell script.
   spoon installer
   Creates install .exe.  Easy to use, with compression.
   NSIS
   Uses a script to create a small installable .exe file.  Works well.
   This is used to create the installer for Vim.
   coolsetup
   Multiplatform installation system for MS-Windows and Linux.
   Can't find relevant info in English.
   autoinstaller
   Automatic install and uninstall. MS-DOS and Linux.  Written in C and C++.
   Uses plugins.
    |  |