FreeBSD ports tree (read-only mirror)
Find a file
Maxim Sobolev 2bdeafee66 Add chkdepschain.py - a tool to address one of the most annoying when it comes
down to user support flaws in the FreeBSD ports system.  The flaw in question
is related to the fact that dependencies are often "chained", which allows to
simplify maintenance of ports with large number of implied dependencies (a la
Evolution, Nautilus, you-name-it). Dependency chaining it's not a problem by
itself, but the fact that when building or installing a port the system doesn't
check chain integrity - it's only checks that dependencies explicitly
specified in port's Makefile are satisfied, which opens wide window for
various hard-trackable problems when one or more links in the middle of the
chain missed.

The idea behind the tool is quite simple - it should be executed right after
main dependency checking procedure, two times for each build - check build-time
chain before building the port (pre-pre-extract) and check run-time chain
before installing the port (pre-pre-install).  When executed, the tool checks
integrity of the specified chain (build-time, run-time or both) and reports all
errors, both fatal (dependency isn't installed) and non-fatal (dependency is
installed, but different version).

I've wrote this tool mostly to simplify maintenance of the GNOME ports, but
it doesn't contain anything GNOME-specific, so that it could be used in the
other parts of tree as well.

As an example I've added GNOME_VALIDATE_DEPS_CHAIN knob into bsd.gnome.mk (off
by default), which enables automatic chain validation for all ports that
USE_GNOMELIBS. This is a bit hackish, because I've used pre-extract and
pre-install targets - what we probably need is a generic way to plug various
custom tasks specified in bsd.xxx.mk (where xxx is kde, gnome, python, etc.)
into various parts of the build process (something like {pre,post}-pre-foo,
{pre,post}-post-foo springs into my mind).

The code is quite raw, so that I would appreciate any bug reports, patches,
suggestions, constructive critiquie and so on.
2002-01-13 12:05:07 +00:00
accessibility/atk Backout previous change - it seems that new revision of the patch doesn't 2001-12-20 06:19:02 +00:00
arabic Add WWW. 2001-12-27 21:08:44 +00:00
archivers Bring in a few changes to the KDE ports infrastructure, and some fixes. 2002-01-11 06:17:04 +00:00
astro Fix MASTER_SITES 2002-01-10 14:53:19 +00:00
audio <bsd.cpu.mk> was MFCed quite some time ago, so that adjust OSVERSION check 2002-01-13 10:53:44 +00:00
benchmarks Correct stale URLs. 2001-12-25 04:34:10 +00:00
biology Update to 0.2. 2001-12-29 06:36:25 +00:00
cad Add message explaining that after installation the user have to run the program 2001-12-29 10:25:54 +00:00
chinese Update to 4.44 2002-01-11 22:27:53 +00:00
comms Bring in a few changes to the KDE ports infrastructure, and some fixes. 2002-01-11 06:17:04 +00:00
converters Remove tcs. 2002-01-08 14:10:00 +00:00
databases Update to 0.2.5. 2002-01-12 17:52:17 +00:00
deskutils Add port misc/tuxcards A small Application, which organizes your notes 2002-01-11 23:36:07 +00:00
devel upgrade to 1.2.5 2002-01-13 06:09:55 +00:00
dns Update to 0.9.01 2002-01-11 22:31:42 +00:00
editors Update to 1.2.0. 2002-01-11 12:51:41 +00:00
emulators Oops. Add missing entry to plist 2002-01-11 06:28:32 +00:00
finance Update to 1.6.5. 2002-01-10 12:10:07 +00:00
french include pre.mk for XFREE86_VERSION usage. 2002-01-07 14:08:24 +00:00
ftp o update to 1.8.1. 2002-01-05 10:41:15 +00:00
games Updated to 7.1.1. 2002-01-13 06:07:46 +00:00
german - make portlint happier 2002-01-05 23:43:13 +00:00
graphics Fix autoconf/automake issue. 2002-01-12 16:40:23 +00:00
hebrew Add WWW. 2001-12-27 21:08:44 +00:00
hungarian Add WWW. 2001-12-27 21:08:44 +00:00
irc Fix MASTER_SITES. 2002-01-13 09:04:50 +00:00
japanese Ooops, forgot to add another location to MASTER_SITES in previous commit. 2002-01-12 23:32:42 +00:00
java Add JDE, Java Development Environment for Emacs. 2002-01-10 11:42:21 +00:00
korean First round of auto* cleanups: 2002-01-06 06:20:22 +00:00
lang Commit after maintainer timeout: 2002-01-12 01:20:02 +00:00
mail - moved chroot dir from /var/empty to ${PREFIX}/empty 2002-01-13 10:39:01 +00:00
math Fix configure (bento) 2002-01-11 23:43:09 +00:00
mbone Fix for -CURRENT, malloc.h->stdlib.h 2002-01-02 04:16:51 +00:00
misc add p5-Chatbot-Eliza 0.97 2002-01-12 15:58:28 +00:00
Mk Add chkdepschain.py - a tool to address one of the most annoying when it comes 2002-01-13 12:05:07 +00:00
multimedia Fix autoconf/automake issue. 2002-01-12 16:40:23 +00:00
net add py-jabber 0.2 2002-01-13 09:21:34 +00:00
net-im add py-jabber 0.2 2002-01-13 09:21:34 +00:00
net-mgmt Update to 1.8. 2002-01-09 21:19:39 +00:00
net-p2p o Fix bug: do not incorrectly use shift from sh(1). First command 2002-01-06 03:05:49 +00:00
news Update to 0.11.1.90. 2002-01-09 11:31:34 +00:00
palm - Don't install useless now ${PREFIX}/etc/rc.d/pilot-link.sh. Bump 2002-01-08 21:18:33 +00:00
picobsd If the program is called as ssh1, invoke ssh_main(). 2001-09-30 17:33:59 +00:00
polish Add WWW. 2001-12-27 21:08:44 +00:00
ports-mgmt portupgrade(1): 2002-01-03 20:17:05 +00:00
portuguese o New port frontpage-de version 5.0.2.2623: Microsoft Frontpage 2001-12-28 00:21:39 +00:00
print Update apsfilter port to 7.2.1 2002-01-11 23:41:21 +00:00
russian Add WWW. 2001-12-27 21:08:44 +00:00
science add vis5d+ 1.2.1 2002-01-09 14:51:38 +00:00
security Update to version 0.3.2 2002-01-12 16:57:26 +00:00
shells Use '::' as an dependency operator for pre-everything target. This is 2001-12-31 10:20:19 +00:00
sysutils Add ruby-log4r, a flexible logging library written in Ruby. 2002-01-12 18:20:18 +00:00
Templates Fix COMMENT handling -- it was incorrectly using the fixed string 2000-10-14 11:03:19 +00:00
textproc Update to 1.2.5. 2002-01-12 17:46:46 +00:00
Tools Add chkdepschain.py - a tool to address one of the most annoying when it comes 2002-01-13 12:05:07 +00:00
ukrainian Change "PNG" to "image", as this library can generate different formats 2002-01-12 18:45:25 +00:00
vietnamese Add WWW. 2001-12-27 21:08:44 +00:00
www Update to adzap-20020110, and correct the path to squid_redirect in 2002-01-13 09:04:55 +00:00
x11 Add missing dependency 2002-01-13 08:41:13 +00:00
x11-clocks Bring in a few changes to the KDE ports infrastructure, and some fixes. 2002-01-11 06:17:04 +00:00
x11-fm Update to version 2.3.1 2002-01-10 14:04:49 +00:00
x11-fonts Update to 4.5.1 2002-01-05 09:18:43 +00:00
x11-servers Pass maintainership to submitter 2002-01-09 02:11:49 +00:00
x11-themes Bring in a few changes to the KDE ports infrastructure, and some fixes. 2002-01-11 06:17:04 +00:00
x11-toolkits Add missing dependency for xpm 2002-01-11 02:29:24 +00:00
x11-wm Add missing dependency 2002-01-13 08:41:13 +00:00
.cvsignore ckages/ is also useful to ignore, while we are about it. 1997-07-14 21:35:25 +00:00
INDEX It's been a long time 2002-01-06 18:43:47 +00:00
LEGAL - Add LEGAL notice 2001-12-27 16:27:15 +00:00
Makefile Don't use cat(1) needlessly -- pipe the INDEX to awk(1). 2001-12-23 10:58:42 +00:00
README Document search target. 1997-06-11 09:06:37 +00:00

This is the FreeBSD Ports Collection.  For an easy to use
WEB-based interface to it, please see:

        http://www.freebsd.org/ports

For general information on the ports collection, please see the
FreeBSD Handbook which is available from:

        file://localhost/usr/share/doc/handbook/handbook.html

(if you installed the doc distribution on your machine)

Or:

        http://www.freebsd.org/handbook/handbook.html

for the latest official version from FreeBSD-current.

The section "The Ports Collection" will tell you how to use the
ports and packages and the "Porting Applications" section
describes how one can contribute to the ports collection.

If you would like to search for a given port, you can do so easily
by saying:

	make search key="<keyword>"

Which will generate a list of all ports matching <keyword>.

NOTE:  This tree can GROW significantly in size during normal usage!
The distribution tar files can and do accumulate in /usr/ports/distfiles,
and the individual ports will also use up lots of space in their work
subdirectories unless you remember to "make clean" after you're done
building a given port.  /usr/ports/distfiles can also be periodically
cleaned without ill-effect, though if you don't have the original
distribution tarball(s) for something on CDROM then you will need to pull
it all over your network connection again if you ever try to build the
associated port.