*========================================*
|  paco - source code pacKAGE oRGANIZER  |
*========================================*


Motivation
==========

After the installation of a source package with "./configure && make && make
install", one is usually left with having no idea of what it was installed and
where it all went, making it difficult to uninstall the package in the future.

Paco was written to solve this problem in a quite simple fashion.


Description
===========

When installing a package from sources, paco wraps the "make install" command
(or whatever command or group of commands are needed to install the files 
into the system), and saves installation information into a text database.

How does it perform this magic? It is accomplished using the LD_PRELOAD method,
which preloads a shared library before installation using the environment
variable LD_PRELOAD. During installation, this library catches the system calls
that cause filesystem alterations (such as open, link, rename, ...), and logs
the created files.

This method is very simple to use and it does not require a "pre-install" phase
because it monitors processes while they run.

Since the preloaded library is used by the specific installation process, the
created logs are not contaminated with any file created by other processes
making filesystem alteration calls. Thus you can even use paco to track parallel
installations.

Paco has many usage options for removing packages, looking at package files,
file counts, sorting, missing files, etc. Run "paco -h" on the command line,
or "man paco" for more information.

The system-wide configuration file for paco is /etc/pacorc. Type "man pacorc"
for more details.


Usage
=====

Typical usage of paco is as follows:

1) Unpack the tarball of the package you want to install from sources, 
   configure and build it as usual:

	$ tar xjf foo.tar.bz2
	$ cd foo
	$ ./configure
	$ make

Become superuser and install the package with paco:

	$ sudo paco -lp foo "make install"

See the man page for more information.


GPaco
=====

GPaco is the graphic interface of paco. GPaco uses and depends on the GTKMM
library. It's not meant to be a replacement of paco, since it lacks some 
important features like logging package installations, but it allows for 
manipulating the installed packages in a more comfortable way.

GPaco requires GTKMM >= 2.12


Supported architectures and operative systems
=============================================

Paco has been successfully tested on the following platforms:

    -------------------------------
    OS      Version   Architectures
    -------------------------------
    Linux   2.6       x86, x86_64

	--> your system here! (please send me feedback)
    -------------------------------

Note: Paco does not work on systems in which binaries are linked statically, 
      like FreeBSD or OpenBSD.


Scripts
=======

The paco distribution provides the following auxiliary scripts. Except 
paco_bash_completion, which has to be installed by hand, all scripts are 
automatically installed, unless the option '--disable-scripts' is passed to 
configure.

pacoball
--------
Pacoball is a PERL script that creates binary tarballs (or "pacoballs") from
packages that are logged in the paco database.
It can be used also to reinstall packages by extracting the files from
previously created pacoballs.

superpaco
---------
Superpaco is a shell script that installs Debian, RPM or Slackware binary
packages without requiring dpkg, rpm or pkgtool, and optionally logs their
installation with paco.
To install RPM packages, cpio and ( rpm2cpio or rpmunpack ) are required.

rpm2paco
--------
A bourne shell script that converts RPM databases into paco ones. Either
the whole local RPM database or only a given number of RPM packages may be
converted.

ocap
----
Ocap is a PERL script that scans the system looking for all files that are not
logged in the paco database. Ocap may be given one or more directories as
arguments, thus limiting the search to those directories.

paco_bash_completion
--------------------
This file provides bash completion support for paco, in systems that have
programmable bash completion enabled.
Look at the header of the file for more information.


License
=======
Copyright (C) 2004-2010 David Ricart
Paco is protected by the GNU General Public License.
Look at the COPYING file for more details.


URLs
====
Home page:          http://paco.sourceforge.net
Mailing list:       http://lists.sourceforge.net/lists/listinfo/paco-general
At Freshmeat.net:   http://freshmeat.net/projects/paco
At SourceForge.net: http://sourceforge.net/projects/paco
At GnomeFiles.org:  http://www.gnomefiles.org/app.php?soft_id=447

