git-svn-id: https://svn.code.sf.net/p/porg/code/trunk@110 8854956c-c02d-4db9-8198-7e99b8e08f37
This commit is contained in:
davidrr 2015-04-09 10:09:02 +00:00
parent 235c1a115f
commit 657eb202f4
12 changed files with 873 additions and 0 deletions

78
doc/Makefile.am Normal file
View File

@ -0,0 +1,78 @@
.PHONY: \
logme
EXTRA_DIST = \
grop.desktop \
faq.txt \
porg.png \
porg.spec \
download.png \
index.html \
grop.png
man_MANS = \
porg.8 \
porgball.8 \
porgrc.5
pkgdata_DATA = \
porgrc \
index.html \
porg.png \
download.png \
faq.txt
logme_files = \
$(DESTDIR)$(man5dir)/porgrc.5 \
$(DESTDIR)$(man8dir)/porg.8 \
$(DESTDIR)$(man8dir)/porgball.8 \
$(DESTDIR)$(sysconfdir)/porgrc \
$(DESTDIR)$(pkgdatadir)/porgrc \
$(DESTDIR)$(pkgdatadir)/index.html \
$(DESTDIR)$(pkgdatadir)/porg.png \
$(DESTDIR)$(pkgdatadir)/download.png \
$(DESTDIR)$(pkgdatadir)/faq.txt
if ENABLE_GROP
grop_apps_DATA = \
grop.desktop
grop_appsdir = \
$(DESTDIR)$(datadir)/applications
grop_icons_DATA = \
grop.png
grop_iconsdir = \
$(DESTDIR)$(datadir)/pixmaps
logme_files += \
$(grop_appsdir)/grop.desktop \
$(grop_iconsdir)/grop.png
porg_icon_path = \
$(grop_iconsdir)/grop.png
else
porg_icon_path = \
$(DESTDIR)$(pkgdatadir)/porg.png
endif
logdir = \
$(DESTDIR)@LOGDIR@
install-data-local: porgrc
rc_dir="$(DESTDIR)$(sysconfdir)"; \
( test -d $$rc_dir || $(mkinstalldirs) $$rc_dir ); \
( test -f $$rc_dir/porgrc || $(INSTALL_DATA) porgrc $$rc_dir/porgrc )
logme:
ls $(logme_files) | porg -lp+ porg-$(PACKAGE_VERSION) && \
$(SED) -i "s|^#i:.*|#i:$(porg_icon_path)|" $(logdir)/porg-$(PACKAGE_VERSION)
web: index.html
scp $< davidrr,porg@web.sourceforge.net:htdocs/

BIN
doc/download.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

53
doc/faq.txt Normal file
View File

@ -0,0 +1,53 @@
OooooooooooooooooooooooooooooO
Frequently Asked Questions
OooooooooooooooooooooooooooooO
Q1: I can't use porg to log it's own installation: "error while loading shared
libraries: /usr/lib/libporg-log.so: cannot open shared object file: No such
file or directory"
R1: To log the own porg's installation, type "make logme" after "make install".
Q2: When building LFS, porg does not properly log the installation of glibc
in chapter 6 (some files are not logged)
R2: This is because in the chapter 6 some of glibc files are installed
using statically linked sln. To have a proper glibc log you can run the
following in chroot after installing glibc:
find /lib -type l | while read name
do
if [ "$(porg -f glibc | grep "$(readlink $name)")" != "" ]
then
echo $name
fi
done | porg -lp+ glibc-<GLIBC_VERSION>
Or the following simpler command, if you run it right after installing
glibc, and before installing any other package:
find /lib | porg -lp+ glibc-<GLIBC_VERSION>
Q3: Is it safe to launch porg with sudo?
R3: Yes. Here you can see a thread in the paco mailing list that discusses this
issue:
http://sourceforge.net/mailarchive/message.php?msg_name=op.s0crq8an4bwnuy%40slack.homenet
Q4: Is it safe to launch sudo with porg?
R4: No. For example the command:
porg -lp foobar-1.0 "sudo make install"
would not produce any error message, and the package would be actually
installed, but porg would not be able to monitor the installation and no
files would be logged.
This is due to LD_PRELOAD limitations on suid programs like sudo.

10
doc/grop.desktop Normal file
View File

@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Name=Package Organizer
GenericName=Package Organizer
Comment=Manages software installed from source code
Exec=grop
Icon=/usr/share/pixmaps/grop.png
StartupNotify=true
Terminal=false
Categories=System;PackageManager;Settings;GTK;

BIN
doc/grop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1014 B

203
doc/index.html Normal file
View File

@ -0,0 +1,203 @@
<!-- vim:ts=2
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>porg - a source code package organizer</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="keywords" content="porg,package manager,source code,ubuntu,linux,grop,paco,gpaco">
<link rel="shortcut ico" href="grop.png">
<link rel="icon" href="grop.png">
</head>
<body style="
margin: 4%;
font-family: monospace,courier;
font-size: small;
background-color: black;
color: white;"
>
<img
src="porg.png"
alt="p*org"
border="3"
style="border-color: #8fbc8f;"
/>
<br/><br/><br/>
<font color="#336666" size="+2"><b>&ast;</b></font>
<font size="+1" color="#8fbc8f">What's porg?</font>
<font color="#336666" size="+2"><b>&ast;</b></font>
<br/><br/>
Porg (formerly known as <i>paco</i>), is a program to aid management of software
packages installed from source code.
<br/><br/>
After the installation of such packages, 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.
Porg was written to solve this problem in a quite simple fashion.
<br/><br/>
When installing a package from sources, porg wraps the install command (e.g. "make
install"), and saves installation information into a text database.
<br/><br/>
The following sequence of commands exemplify a typical installation of a package
named foo-1.3:
<br/><br/>
<font color="lightgreen"><i>
&nbsp;&nbsp;&nbsp;&nbsp;<b>$</b> tar xvf foo-1.3.tar.gz<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<b>$</b> cd foo-1.3<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<b>$</b> ./configure<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<b>$</b> make<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<b>$</b> sudo porg -lp foo-1.3 "make install"
</i></font>
<br/><br/>
After the above commands, and provided that everything went fine, the program
foo-1.3 will be installed into the system, and registered into the porg database.
One can check it by simply typing the following command, which would list the
files installed by the package:
<br/><br/>
<font color="lightgreen"><i>
&nbsp;&nbsp;&nbsp;&nbsp;<b>$</b> porg -f foo-1.3
</i></font>
<br/><br/>
Porg also provides options for listing packages, sizes, file counts, missing files,
removing packages or printing package information. For more information just
<br/><br/>
<a href="https://sourceforge.net/projects/porg/files/"><img src="download.png" width="100%" border="0" alt="DOWNLOAD IT!"></a>
<br/><br/><br/>
<font color="#336666" size="+2"><b>&ast;</b></font>
<font size="+1" color="#8fbc8f">Changes from the last version of paco</font>
<font color="#336666" size="+2"><b>&ast;</b></font>
<br/>
<ul><li>
Disabled the options for removing shared files when uninstalling a
package, both in porg and grop. Now shared files are never removed,
as it ougth to be.
</li><li>
Disabled listing of shared files.
</li><li>
Simplification of the GUI.
</li><li>
Simplification of the package database. No need to update it anymore.
</li><li>
Major code enhancements and cleanup.
</li><li>
Additionally, all changes documented in the Changelog.
</li></ul>
Paco users can import old paco logs into the porg database with the script
paco2porg included in the porg distribution.
<br/><br/><br/>
<font color="#336666" size="+2"><b>&ast;</b></font>
<font size="+1" color="#8fbc8f">Technichal details</font>
<font color="#336666" size="+2"><b>&ast;</b></font>
<br/><br/>
To keep track of the files installed by the packages, porg loads a shared library
before installation by using the environment variable LD_PRELOAD
(or DYLD_INSERT_LIBRARIES in MacOS). During
the installation, this library catches the system calls that cause filesystem alterations
(like open, link, rename, ...), and logs the created files into a text file.
<br/><br/>
Since the preloaded library is used only by the specific installation process, the
created logs are not contaminated with files created by any other process.
Thus porg can be used to track parallel installations.
<br/><br/>
Please note that porg does not work on systems in which the executables involved in the
installation of the packages (mv, cp, install...)
are statically linked against libc, like FreeBSD and OpenBSD.
<br/><br/><br/>
<font color="#336666" size="+2"><b>&ast;</b></font>
<font size="+1" color="#8fbc8f">Grop</font>
<font color="#336666" size="+2"><b>&ast;</b></font>
<br/><br/>
Grop is the graphic interface of porg. It uses and depends on the GTKMM
library (version 3.4.0 or later).
It's not meant to be a replacement of porg, since it lacks some
important features like logging package installations, but it allows for
manipulating the installed packages in a more comfortable way.
<br/><br/>
Grop is installed by default, unless option "--disable-grop" is pased to
configure.
<br/><br/><br/>
<font color="#336666" size="+2"><b>&ast;</b></font>
<font size="+1" color="#8fbc8f">Auxiliary scripts</font>
<font color="#336666" size="+2"><b>&ast;</b></font>
<br/><br/>
The porg distribution provides the following auxiliary scripts:
<br/><br/>
<ul><li>
<b>paco2porg</b>
<br/><br/>
A shell script that imports paco logs into the porg database.
<br/><br/>
</li><li>
<b>porgball</b>
<br/><br/>
A shell script that creates binary tarballs (or "porgballs") from
packages that are logged in the porg database.
It can be used also to reinstall packages by extracting the files from
previously created porgballs.
<br/><br/>
</li><li>
<b>porg_bash_completion</b>
<br/><br/>
This file, written by Christian Schneider, provides bash completion support
for porg, in systems that have programmable bash completion enabled.
</li></ul>
<br/><br/>
<font color="#336666" size="+2"><b>&ast;</b></font>
<font size="+1" color="#8fbc8f">License</font>
<font color="#336666" size="+2"><b>&ast;</b></font>
<br/><br/>
Copyright &copy; 2015 David Ricart.
<br/>
Porg is protected by the GNU General Public License.
<br/>
Look at the COPYING file for more details.
<br/><br/><br/>
<font color="#336666" size="+2"><b>&ast;</b></font>
<font size="+1" color="#8fbc8f">Authors</font>
<font color="#336666" size="+2"><b>&ast;</b></font>
<br/><br/>
The creator and maintainer of porg is David Ricart &lt;<i>icnelis@&ast;</i>&gt;
(where <i>&ast; = gmail.com</i>).
<br/><br/>
I'd like to thank all the males that have contributed to the
development of porg. A complete list of them can be found in the AUTHORS file.
<br/><br/><br/>
<hr size="3" color="#336666">
<br/>
<table width="100%">
<td>
<a href="http://sourceforge.net/"><b>sourceforge.net</b></a>
</td><td align="right">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="4CA2KC8D6FMWW">
<input type="image" src="https://www.paypalobjects.com/en_GB/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="DONATE">
<img alt="" border="0" src="https://www.paypalobjects.com/es_ES/i/scr/pixel.gif" width="1" height="1">
</form>
</td>
</table>
<br/>
</body>
</html>

301
doc/porg.8.in Normal file
View File

@ -0,0 +1,301 @@
.\"----------------------------------------------------------------
.\" porg.8 - porg man page
.\"----------------------------------------------------------------
.\" Copyright (C) 2015 David Ricart <@PACKAGE_BUGREPORT@>
.\"----------------------------------------------------------------
.\"
.TH PORG "8" "@RELEASEDATE@" "porg @PACKAGE_VERSION@" "System"
.SH NAME
porg - a source code package organizer
.SH SYNOPSIS
\fBporg\fR [OPTIONS] <packages>
.br
\fBporg\fR -l [OPTIONS] <package> <command>
.br
\fBporg\fR -q <files>
.SH DESCRIPTION
.PP
Porg is a program to aid package management when installing packages from source
code.
.PP
When installing a package, porg may be used in log mode (with option \fB-l\fR)
to wrap the installation command (e.g. "make install"), and log the created
files into a text database.
.PP
Porg also provides options for printing package information, package files,
removing packages or querying for the owner of files.
.PP
The special option '\fB--\fR' forces and end of option-scanning. This is
specially useful when entering the install command in log mode.
.PP
Mandatory arguments to long options are mandatory to short options too.
.SH GENERAL OPTIONS
.TP
\fB-a, --all\fR
Apply to all installed packages (not with \fB-r\fR).
.TP
\fB-L, --logdir\fR=\fIDIR\fR
Base log directory. The logs for the installed packages are saved in this
directory. Default is '@LOGDIR@', unless variable LOGDIR is set
in the configuration file (type 'man porgrc' for more information).
.TP
\fB-v, --verbose\fR
Verbose output. \fB-vv\fR prints also debugging messages.
.TP
\fB-x, --exact-version\fR
Disable expansion of package version (not with \fB-l\fR).
.br
By default, porg automatically expands the package names given as arguments,
by adding all the versions of the package that are registered in the porg
database. For instance, if foo-1.0 and foo-2.0 are installed, the
command 'porg -r foo' would remove both packages, and 'porg -r foo-1'
would remove only foo-1.0.
.br
The option \fB-x\fR inhibits this expansion, so that package names must match
the basename and the whole version of a registered package.
.TP
\fB-h, --help\fR
Display a help message and exit.
.TP
\fB-V, --version\fR
Display version information and exit.
.SH GENERAL LIST OPTIONS
These options can be used to list packages or files.
.TP
\fB-R, --reverse\fR
Reverse order while sorting.
.TP
\fB-t, --total\fR
Print totals at the bottom of the list, when appliable.
When printing total sizes, the sizes of hardlinks to installed files are counted
only once.
.TP
\fB-z, --no-package-name\fR
Do not print the name of the package when listing. Useful for scripts.
.SH PACKAGE LIST OPTIONS
.TP
\fB-s, --size\fR
Print the currently installed size of the package. Sizes of hardlinks to installed
files are counted only once.
.TP
\fB-F, --nfiles\fR
Print the number of currently installed files.
.TP
\fB-M, --nfiles-miss\fR
Print the number of missing files, in parenthesis.
.TP
\fB-d, --date\fR
Print the installation date of the package. Double it ('\fB-dd\fR') to print
also the hour.
.TP
\fB-S, --sort\fR=\fIWORD\fR
Sort the list by WORD: 'name', 'size', 'files', 'files-miss' or 'date'.
.SH FILE LIST OPTIONS
.TP
\fB-f, --files\fR
List the files currently installed by the package.
.TP
\fB-m, --files-miss\fR
List the missing files of the package (original - current). Use along with \fB-f\fR
to list all files (installed and missing).
.TP
\fB-s, --size\fR
Print the size of each file.
.TP
\fB-y, --symlinks\fR
Print the contents of symbolic links.
.TP
\fB-S, --sort\fR=\fIWORD\fR
Sort the list by WORD: 'name' or 'size'.
.SH PACKAGE INFORMATION OPTIONS
Only one of these options may be used at once.
.TP
\fB-i, --info\fR
Print package information (like summary, author, URL...), if available.
.TP
\fB-o, --configure-options\fR
Print the arguments (command line options and environment variables) passed
to the 'configure' script when the package was built.
.TP
\fB-q, --query\fR
Query for the packages that own the files specified as arguments.
.SH PACKAGE LOG OPTIONS
.TP
\fB-l, --log\fR
Enable log mode. If a shell command is given as argument, execute
and monitor it, logging the created files; otherwise the list of files
to be logged is read from the standard input. In either case, the relative
paths are automatically resolved.
.br
The list of logged files is printed to the standard output, unless
any of \fB-p\fR or \fB-D\fR options is used, in which case it is assumed
that a package is to be registered into the porg database.
.br
See \fIEXAMPLES\fR and \fIFILE NAMES WITH SPACES\fR below.
.TP
\fB-p, --package\fR=\fIPKG\fR
Specify the name of the package to be logged. With \fB-v\fR, the list of logged
files is also printed to the standard error stream. With \fB-vv\fR, porg prints
detailed information about the install process. This holds for option \fB-D\fR
too.
.TP
\fB-D, --dirname\fR
Use the name of the current directory as the name of the package to be logged.
.TP
\fB-E, --exclude\fR=\fIPATH1:PATH2:...\fR
Colon-separated list of paths to skip when logging the installed files. Default
is '@EXCLUDE@', unless variable EXCLUDE is set in the configuration file
(type 'man porgrc' for more information).
.br
Shell wildcards are allowed in the PATHs. See \fIPATH MATCHING\fR below for
more details.
.TP
\fB-I, --include\fR=\fIPATH1:PATH2:...\fR
Colon-separated list of paths to scan when logging the installed files. Default
is '/', unless variable INCLUDE is set in the configuration file
(type 'man porgrc' for more information).
.br
Shell wildcards are allowed in the PATHs. See \fIPATH MATCHING\fR below for
more details.
.TP
\fB-j, --log-missing\fR
By default, when installing a package porg registers only those files
that exist in the filesystem right after the installation. With this
option porg registers also the missing files.
.TP
\fB-+, --append\fR
With \fB-p\fR or \fB-D\fR, if the package is already registered, append the list
of created files to its log.
.SH PACKAGE REMOVE OPTIONS
.TP
\fB-r, --remove\fR
Remove a package, keeping the shared files and asking for confirmation by
default.
.TP
\fB-U, --unlog\fR
Unregister the package from the database, without removing any file.
.TP
\fB-b, --batch\fR
Don't prompt for confirmation when removing or unlogging (and assume yes
to all questions).
.TP
\fB-e, --skip\fR=\fIPATH1:PATH2:...\fR
Colon-separated list of paths to skip when removing a package. Default is ''
(all logged files are removed), unless variable REMOVE_SKIP is set in the
configuration file (type 'man porgrc' for more information).
.br
Shell wildcards are allowed in the PATHs. See \fIPATH MATCHING\fR for
more details.
.SH PATH MATCHING
Options \fB-I\fR, \fB-E\fR and \fB-e\fR accept a colon-separated list of
paths, each of which may contain shell-like wildcards (*, ? and [..]).
Files are matched against each of those paths, following the standard
shell-like expansion, but with the following exception: If a path in the list
does not contain any wildcard, and it is a directory, it matches any file
within that directory.
.br
Note that if wildcards are to be used, the whole list of paths must be enclosed
in single quotes (') to protect it from being expanded by the shell.
.SH FILE NAMES WITH SPACES
As of version \fB0.3\fR, porg accepts filenames with spaces when logging
package installations. Although IMHO this should be seen as an improvement in
general terms, it may cause problems when trying to feed 'porg -l' with a list
of files separated by spaces. For example, the following command:
.PP
echo /bin/foo /bin/bar | porg -l
.PP
would try to log the file "/bin/foo /bin/bar" instead of logging /bin/foo and
/bin/bar separately. To fix this, one may use newlines to separate file names,
and pass option \fB-e\fR to echo so it honours escape characters, like this:
.PP
echo -e "/bin/foo\\n/bin/bar" | porg -l
.PP
or either write the list of files separated by newlines into a temporary file,
and run:
.PP
cat tmpfile | porg -l
.SH EXAMPLES
To log the installation of the package 'foo-1.0', which is installed
with the command 'make -C src install':
.PP
porg -lp foo-1.0 "make -C src install"
.PP
Note that in this example the quotes are required to prevent
porg to consider '-C' as a command line option.
The special end-of-option argument '--' may be used for the same purpose:
.PP
porg -lp foo-1.0 -- make -C src install
.PP
Use single quotes if the command already contains double quotes:
.PP
porg -lp foo-1.0 'echo "hello world" > /var/log/foo.log'
.PP
Alternatively, we can use the basename of the current directory as the name of
the package to be logged, using the option \fB-D\fR instead of \fB-p\fR:
.PP
porg -lD "make install && make install.man"
.PP
If we have forgotten to install a file, it can be added to a previously
created log with the option \fB-+\fR:
.PP
porg -lp+ foo-1.0 "install bar /bin/bar"
.PP
Note that the option \fB-+\fR cannot be used to remove a file from the
log. For instance, the following command:
.PP
porg -lp+ foo-1.0 "rm /bin/bar"
.PP
would not remove the file /bin/bar from the log of foo-1.0.
.PP
To avoid such behaviour it is sometimes useful to join up composed
install commands into one single command and run porg once. For instance,
imagine that a package installs the file /bin/bar, but we want it to
be installed in /usr/bin/bar instead. If one runs this:
.PP
porg -lp foo-1.0 make install
.br
porg -lp+ foo-1.0 "mv /bin/bar /usr/bin/bar"
.PP
Both files, /bin/bar and /usr/bin/bar remain in the log. This is
usually not the desired behaviour. As a workaround one can join up
both commands in one single porg run:
.PP
porg -lp foo-1.0 "make install && mv /bin/bar /usr/bin/bar"
.PP
In this case only /usr/bin/bar is logged.
.PP
To remove the package foo-3.3, keeping the files in /etc and the files
ending with ".conf":
.PP
porg -r -e '/etc:*.conf' foo-3.3
.PP
You have installed the package 'boo-1.9' in prefix '/opt/boo-1.9', but
you haven't logged the installation with porg. No problem! Just create a log
for it thusly:
.PP
find /opt/boo-1.9 | porg -lp boo-1.9
.PP
By the way, porg internally converts all package names to lower case; 'FooBar'
and 'foobar' are the same package.
.SH BUGS
Due to LD_PRELOAD limitations, porg can't follow the trace of suid programs.
.br
For the same reason, porg does not work with programs that statically link libc.
.SH FILES
.PP
\fI@sysconfdir@/porgrc\fR - configuration file
.br
\fI@LOGDIR@\fR - default log directory
.SH AUTHOR
Written by David Ricart (@PACKAGE_BUGREPORT@)
.SH SEE ALSO
porgrc(5), porgball(8)

BIN
doc/porg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

16
doc/porg.spec Normal file
View File

@ -0,0 +1,16 @@
Name: porg
Summary: Source code package organizer
License: GPLv2
URL: http://porg.sourceforge.net
Packager: David Ricart
%description
Porg (formerly known as paco), is a program to aid management of software
packages installed from source code.
After the installation of such packages, 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. Porg was written to solve this problem in a quite
simple fashion.

112
doc/porgball.8.in Normal file
View File

@ -0,0 +1,112 @@
.\"----------------------------------------------------------------
.\" porgball.8 - porgball man page
.\"----------------------------------------------------------------
.\" Copyright (C) 2015 David Ricart <@PACKAGE_BUGREPORT@>
.\"----------------------------------------------------------------
.\"
.TH PORGBALL "8" "@RELEASEDATE@" "porg @PACKAGE_VERSION@" "System"
.SH NAME
porgball - Binary package support for porg(8).
.SH SYNOPSIS
\fBporgball\fR [OPTIONS] [-a|<packages>]
.br
\fBporgball\fR -e [OPTIONS] <porgballs>
.SH DESCRIPTION
.PP
By default, \fBporgball\fR may be given one or more
package names as arguments, and for each of those packages it creates
a binary tarball containing all the currently
installed files. For this to work the packages have to be
registered in the porg database.
.br
Leading slashes ('/') are stripped from the paths of the files in the
tarballs, so they can be extracted into user-defined directories.
.PP
With option \fB-e\fR, \fBporgball\fR admits one or more previously
created tarballs ("porgballs") as arguments, and installs them into the
system, optionally logging the installation with porg(8).
.PP
\fBNote\fR: Options cannot be joined up, for instance: '\fB-af\fR' is not correct,
type '\fB-a -f\fR' instead.
.PP
Mandatory arguments to long options are mandatory for short options too.
.SH GENERAL OPTIONS
.TP
\fB-h, --help\fR
Show usage information and exit.
.TP
\fB-v, --verbose\fR
Explain what is being done.
.TP
\fB-V, --version\fR
Print version information and exit.
.TP
\fB-L, --logdir\fR=\fIDIR\fR
Porg log directory. Default is '@LOGDIR@', unless option LOGDIR is set
in \fBporgrc(5)\fR.
.SH PORGBALL CREATION OPTIONS
.TP
\fB-a, --all\fR
Create a porgball for each package logged in the porg database.
.TP
\fB-X, --exact-version\fR
Disable expansion of package version.
.br
By default, porgball automatically expands the package names given as arguments,
by adding all the versions of the package that are registered in the porg
database.
.br
The option \fB-X\fR inhibits this expansion, so that package names must match
the basename and the whole version of a registered package.
.TP
\fB-d, --directory\fR=\fIDIR\fR
Create the porgballs in directory DIR (default is '.').
.TP
\fB-g, --gzip\fR
Compress with gzip (default).
.TP
\fB-b, --bzip2\fR
Compress with bzip2.
.TP
\fB-x, --xz\fR
Compress with xz.
.TP
\fB-#\fR
Set the compression level (speed/quality balance). '#' is a number between 1
(faster compression) and 9 (best compression). Default is 9.
.TP
\fB--fast\fR
An alias for -1.
.TP
\fB--best\fR
An alias for -9.
.TP
\fB-f, --force\fR
Force overwrite of existing output files.
.TP
\fB-t, --test\fR
Test intergity of the porgball after creating it.
.TP
\fB-n, --no-porg-suffix\fR
Do not append '.porg' suffix to the name of the porgballs.
For instance, create 'foo-1.0.tar.gz' instead of 'foo-1.0.porg.tar.gz'.
.SH PORGBALL EXTRACTION OPTIONS
.TP
\fB-e, --extract\fR
Extract (install) the given porgballs, in directory '/' by default.
.TP
\fB-l, --log\fR
Log the file extraction with porg, retrieving the appropiate
package name from the name of the porgball.
.TP
\fB-d, --directory\fR=\fIDIR\fR
Extract the files into directory DIR (as the option -C in tar).
.SH FILES
.PP
\fI@sysconfdir@/porgrc\fR - porg configuration file
.br
\fI@LOGDIR@\fR - default porg log directory
.SH AUTHOR
Written by David Ricart (@PACKAGE_BUGREPORT@)
.SH SEE ALSO
porg(8), porgrc(5)

74
doc/porgrc.5.in Normal file
View File

@ -0,0 +1,74 @@
.\"----------------------------------------------------------------
.\" porgrc.8 - porgrc man page
.\"----------------------------------------------------------------
.\" Copyright (C) 2015 David Ricart <@PACKAGE_BUGREPORT@>
.\"----------------------------------------------------------------
.TH porgrc "5" "@RELEASEDATE@" "porg @PACKAGE_VERSION@" "System"
.SH NAME
porgrc - configuration file for porg
.SH SYNOPSIS
\fB@sysconfdir@/porgrc\fR
.SH DESCRIPTION
.PP
\fBporgrc\fR is the system-wide configuration file for \fBporg(8)\fR,
the source code package organizer.
.SH SYNTAX
.PP
The file consists of comments and key-value pairs. Comments are on separate
lines that start with a \fB#\fR symbol. The key-value pairs are on the form:
.PP
\fBkey=value\fR
.PP
where \fBkey\fR contains no whitespace and no equal signs, and
\fBvalue\fR will be all of the text after the equal sign until (but not
including) the ending newline.
.SH OPTIONS
The following options can be set. The equivalent command line options (if any),
are listed in brackets:
.TP
\fBLOGDIR\fR [-L|--logdir]
.br
Base porg logs directory. Default is '@LOGDIR@'. Environment variables like
$HOME are expanded at runtime.
.TP
\fBINCLUDE\fR [-I|--include]
.br
Colon-separated list of paths to scan when logging the installation of a
package. Default is '/'.
.br
Shell wildcards are allowed in the paths. See \fIPATH MATCHING\fR below for
more details.
.TP
\fBEXCLUDE\fR [-E|--exclude]
.br
Colon-separated list of paths to skip when logging the installation of a
package. Default is '@EXCLUDE@'.
.br
Shell wildcards are allowed in the paths. See \fIPATH MATCHING\fR below for
more details.
.TP
\fBREMOVE_SKIP\fR [-e|--skip]
.br
Colon-separated list of paths to skip when removing a
package. Default is '' (all logged files are removed).
.br
Shell wildcards are allowed in the paths. See \fIPATH MATCHING\fR below for
more details.
.SH PATH MATCHING
Variables \fB\INCLUDE\fR, \fBEXCLUDE\fR and \fBREMOVE_SKIP\fR accept a
colon-separated list of
paths, each of which may contain shell-like wildcards (*, ? and [..]).
Files are matched against each of those paths, following the standard
shell-like expansion, but with the following exception: If a path in the list
does not contain any wildcard, and it is a directory, it matches any file
within that directory.
.SH FILES
.PP
\fI@sysconfdir@/porgrc\fR - active configuration file
.br
\fI@prefix@/share/porg/porgrc\fR - sample configuration file
.SH AUTHOR
Written by David Ricart (@PACKAGE_BUGREPORT@)
.SH SEE ALSO
porg(8), porgball(8)

26
doc/porgrc.in Normal file
View File

@ -0,0 +1,26 @@
##----------------------------------------------------------------------
## @sysconfdir@/porgrc: configuration file for porg.
##
## Copyright (C) 2015 David Ricart <@PACKAGE_BUGREPORT@>
##
## See the man page of porgrc(5) for more information.
##
## Equivalent command line options are specified in brackets.
##----------------------------------------------------------------------
# Log directory.
# [-L|--logdir]
#LOGDIR=@LOGDIR@
# Paths to scan when logging installations.
# [-I|--include]
#INCLUDE=/
# Paths to exclude when logging installations.
# [-E|--exclude]
#EXCLUDE=@EXCLUDE@
# Paths to skip when removing packages.
# [-e|--skip]
#REMOVE_SKIP=