[csw-devel] SF.net SVN: gar:[2334] csw/mgar

dmichelsen at users.sourceforge.net dmichelsen at users.sourceforge.net
Fri Nov 21 14:54:39 CET 2008


Revision: 2334
          http://gar.svn.sourceforge.net/gar/?rev=2334&view=rev
Author:   dmichelsen
Date:     2008-11-21 13:54:37 +0000 (Fri, 21 Nov 2008)

Log Message:
-----------
mgar: Directory restructuring

Added Paths:
-----------
    csw/mgar/gar/
    csw/mgar/gar/v1/
    csw/mgar/gar/v1/Makefile
    csw/mgar/gar/v1/README
    csw/mgar/gar/v1/bin/
    csw/mgar/gar/v1/categories/
    csw/mgar/gar/v1/categories/apps/
    csw/mgar/gar/v1/categories/apps/category.mk
    csw/mgar/gar/v1/categories/cpan/
    csw/mgar/gar/v1/categories/cpan/category.mk
    csw/mgar/gar/v1/categories/devel/
    csw/mgar/gar/v1/categories/devel/category.mk
    csw/mgar/gar/v1/categories/gnome/
    csw/mgar/gar/v1/categories/gnome/category.mk
    csw/mgar/gar/v1/categories/kde/
    csw/mgar/gar/v1/categories/kde/category.mk
    csw/mgar/gar/v1/categories/lang/
    csw/mgar/gar/v1/categories/lang/category.mk
    csw/mgar/gar/v1/categories/lib/
    csw/mgar/gar/v1/categories/lib/category.mk
    csw/mgar/gar/v1/categories/meta/
    csw/mgar/gar/v1/categories/meta/category.mk
    csw/mgar/gar/v1/categories/net/
    csw/mgar/gar/v1/categories/net/category.mk
    csw/mgar/gar/v1/categories/server/
    csw/mgar/gar/v1/categories/server/category.mk
    csw/mgar/gar/v1/categories/utils/
    csw/mgar/gar/v1/categories/utils/category.mk
    csw/mgar/gar/v1/categories/xfce/
    csw/mgar/gar/v1/categories/xfce/category.mk
    csw/mgar/gar/v1/categories/xorg/
    csw/mgar/gar/v1/categories/xorg/category.mk
    csw/mgar/gar/v1/categories/xtra/
    csw/mgar/gar/v1/categories/xtra/category.mk
    csw/mgar/gar/v1/category.mk
    csw/mgar/gar/v1/gar.common.mk
    csw/mgar/gar/v1/gar.conf.mk
    csw/mgar/gar/v1/gar.lib.mk
    csw/mgar/gar/v1/gar.mk
    csw/mgar/gar/v1/gar.pkg.mk
    csw/mgar/gar/v1/garrc.sample
    csw/mgar/gar/v1/pkg.db
    csw/mgar/gar/v1/pkglib/
    csw/mgar/gar/v2/
    csw/mgar/pkgs/
    csw/mgar/pkgs/ImageMagick/
    csw/mgar/pkgs/a52dec/
    csw/mgar/pkgs/amarok/
    csw/mgar/pkgs/amavisd-new/
    csw/mgar/pkgs/apache/
    csw/mgar/pkgs/apache2/
    csw/mgar/pkgs/apache2-worker/
    csw/mgar/pkgs/apcupsd/
    csw/mgar/pkgs/apg/
    csw/mgar/pkgs/apr/
    csw/mgar/pkgs/apr-util/
    csw/mgar/pkgs/arpwatch/
    csw/mgar/pkgs/arts/
    csw/mgar/pkgs/asciidoc/
    csw/mgar/pkgs/atk/
    csw/mgar/pkgs/audiofile/
    csw/mgar/pkgs/authz-tools/
    csw/mgar/pkgs/autoconf/
    csw/mgar/pkgs/automake/
    csw/mgar/pkgs/avantfax/
    csw/mgar/pkgs/balance/
    csw/mgar/pkgs/bash/
    csw/mgar/pkgs/bash_completion/
    csw/mgar/pkgs/bdb4/
    csw/mgar/pkgs/bdb43/
    csw/mgar/pkgs/bdb44/
    csw/mgar/pkgs/bdb46/
    csw/mgar/pkgs/bind/
    csw/mgar/pkgs/bison/
    csw/mgar/pkgs/boost/
    csw/mgar/pkgs/bugzilla/
    csw/mgar/pkgs/cabextract/
    csw/mgar/pkgs/cadaver/
    csw/mgar/pkgs/cfengine/
    csw/mgar/pkgs/clearsilver/
    csw/mgar/pkgs/climm/
    csw/mgar/pkgs/clusterit/
    csw/mgar/pkgs/clusterssh/
    csw/mgar/pkgs/cmake/
    csw/mgar/pkgs/coreutils/
    csw/mgar/pkgs/cpan/
    csw/mgar/pkgs/cronolog/
    csw/mgar/pkgs/ctags/
    csw/mgar/pkgs/cups/
    csw/mgar/pkgs/curl/
    csw/mgar/pkgs/cvs/
    csw/mgar/pkgs/cyrus_imapd/
    csw/mgar/pkgs/daemontools/
    csw/mgar/pkgs/daimonin/
    csw/mgar/pkgs/dbus/
    csw/mgar/pkgs/dbus-glib/
    csw/mgar/pkgs/dcraw/
    csw/mgar/pkgs/ddd/
    csw/mgar/pkgs/diffutils/
    csw/mgar/pkgs/distcc/
    csw/mgar/pkgs/docbook/
    csw/mgar/pkgs/dtracetoolkit/
    csw/mgar/pkgs/easytag/
    csw/mgar/pkgs/elinks/
    csw/mgar/pkgs/emacs/
    csw/mgar/pkgs/esvn/
    csw/mgar/pkgs/ethereal/
    csw/mgar/pkgs/eventlog/
    csw/mgar/pkgs/exim/
    csw/mgar/pkgs/expat/
    csw/mgar/pkgs/fastcgi/
    csw/mgar/pkgs/fax2png/
    csw/mgar/pkgs/figlet/
    csw/mgar/pkgs/fileutils/
    csw/mgar/pkgs/findutils/
    csw/mgar/pkgs/firefox/
    csw/mgar/pkgs/flac/
    csw/mgar/pkgs/flex/
    csw/mgar/pkgs/flex-2.5.4a/
    csw/mgar/pkgs/flphoto/
    csw/mgar/pkgs/fltk/
    csw/mgar/pkgs/fontconfig/
    csw/mgar/pkgs/fox/
    csw/mgar/pkgs/freeciv/
    csw/mgar/pkgs/freetype/
    csw/mgar/pkgs/gaim/
    csw/mgar/pkgs/ganglia/
    csw/mgar/pkgs/gawk/
    csw/mgar/pkgs/gd/
    csw/mgar/pkgs/gdbm/
    csw/mgar/pkgs/geolitedb/
    csw/mgar/pkgs/gettext/
    csw/mgar/pkgs/gforth/
    csw/mgar/pkgs/gftp/
    csw/mgar/pkgs/gimp/
    csw/mgar/pkgs/git/
    csw/mgar/pkgs/gkrellm/
    csw/mgar/pkgs/glib2/
    csw/mgar/pkgs/gmp/
    csw/mgar/pkgs/gnulinks/
    csw/mgar/pkgs/gperf/
    csw/mgar/pkgs/gphoto2/
    csw/mgar/pkgs/graphviz/
    csw/mgar/pkgs/graphviz2/
    csw/mgar/pkgs/grep/
    csw/mgar/pkgs/groff/
    csw/mgar/pkgs/gtar/
    csw/mgar/pkgs/gtk2/
    csw/mgar/pkgs/gtkpod/
    csw/mgar/pkgs/guile/
    csw/mgar/pkgs/gvim/
    csw/mgar/pkgs/help2man/
    csw/mgar/pkgs/hicolor-icon-theme/
    csw/mgar/pkgs/htmltidy/
    csw/mgar/pkgs/hylafax/
    csw/mgar/pkgs/hypermail/
    csw/mgar/pkgs/imap-c-client/
    csw/mgar/pkgs/imapfilter/
    csw/mgar/pkgs/imapproxy/
    csw/mgar/pkgs/inputproto/
    csw/mgar/pkgs/iozone/
    csw/mgar/pkgs/irssi/
    csw/mgar/pkgs/jboss4/
    csw/mgar/pkgs/jdk14/
    csw/mgar/pkgs/jdk5/
    csw/mgar/pkgs/jdk6/
    csw/mgar/pkgs/jetty6/
    csw/mgar/pkgs/jhead/
    csw/mgar/pkgs/jicmp/
    csw/mgar/pkgs/joe/
    csw/mgar/pkgs/jre14/
    csw/mgar/pkgs/jre5/
    csw/mgar/pkgs/jre6/
    csw/mgar/pkgs/jrrd/
    csw/mgar/pkgs/kbproto/
    csw/mgar/pkgs/kde/
    csw/mgar/pkgs/kdeaccessibility/
    csw/mgar/pkgs/kdeaddons/
    csw/mgar/pkgs/kdeadmin/
    csw/mgar/pkgs/kdeartwork/
    csw/mgar/pkgs/kdebase/
    csw/mgar/pkgs/kdebindings/
    csw/mgar/pkgs/kdeedu/
    csw/mgar/pkgs/kdegames/
    csw/mgar/pkgs/kdegraphics/
    csw/mgar/pkgs/kdelibs/
    csw/mgar/pkgs/kdemultimedia/
    csw/mgar/pkgs/kdenetwork/
    csw/mgar/pkgs/kdepim/
    csw/mgar/pkgs/kdesdk/
    csw/mgar/pkgs/kdesvn/
    csw/mgar/pkgs/kdetoys/
    csw/mgar/pkgs/kdeutils/
    csw/mgar/pkgs/kdevelop/
    csw/mgar/pkgs/kile/
    csw/mgar/pkgs/koffice/
    csw/mgar/pkgs/krb5/
    csw/mgar/pkgs/ksh/
    csw/mgar/pkgs/ldapvi/
    csw/mgar/pkgs/less/
    csw/mgar/pkgs/lftp/
    csw/mgar/pkgs/libX11/
    csw/mgar/pkgs/libXau/
    csw/mgar/pkgs/libXdmcp/
    csw/mgar/pkgs/libao/
    csw/mgar/pkgs/libart/
    csw/mgar/pkgs/libcairo/
    csw/mgar/pkgs/libdvdcss/
    csw/mgar/pkgs/libdvdread/
    csw/mgar/pkgs/libevent/
    csw/mgar/pkgs/libglade/
    csw/mgar/pkgs/libgphoto2/
    csw/mgar/pkgs/libgpod/
    csw/mgar/pkgs/libgsasl/
    csw/mgar/pkgs/libmp4v2/
    csw/mgar/pkgs/libntlm/
    csw/mgar/pkgs/libogg/
    csw/mgar/pkgs/libpcap/
    csw/mgar/pkgs/libpopt/
    csw/mgar/pkgs/libpthread-stubs/
    csw/mgar/pkgs/libsamplerate/
    csw/mgar/pkgs/libsdl/
    csw/mgar/pkgs/libtool/
    csw/mgar/pkgs/libvorbis/
    csw/mgar/pkgs/libxcb/
    csw/mgar/pkgs/libxine/
    csw/mgar/pkgs/listadmin/
    csw/mgar/pkgs/lsof/
    csw/mgar/pkgs/lua/
    csw/mgar/pkgs/lynx/
    csw/mgar/pkgs/lyx/
    csw/mgar/pkgs/m4/
    csw/mgar/pkgs/make/
    csw/mgar/pkgs/mantis/
    csw/mgar/pkgs/maven2/
    csw/mgar/pkgs/memcached/
    csw/mgar/pkgs/memconf/
    csw/mgar/pkgs/mercurial/
    csw/mgar/pkgs/mharc/
    csw/mgar/pkgs/mhonarc/
    csw/mgar/pkgs/micq/
    csw/mgar/pkgs/mkpackage/
    csw/mgar/pkgs/mktemp/
    csw/mgar/pkgs/mm/
    csw/mgar/pkgs/mod_auth_mysql/
    csw/mgar/pkgs/mod_auth_pam/
    csw/mgar/pkgs/mod_evasive/
    csw/mgar/pkgs/mod_fastcgi/
    csw/mgar/pkgs/mod_geoip/
    csw/mgar/pkgs/mod_highlight/
    csw/mgar/pkgs/mod_jk/
    csw/mgar/pkgs/mod_proxy_html/
    csw/mgar/pkgs/mod_python/
    csw/mgar/pkgs/mod_ruby/
    csw/mgar/pkgs/mod_svn_view/
    csw/mgar/pkgs/mod_transform/
    csw/mgar/pkgs/mono/
    csw/mgar/pkgs/mpd/
    csw/mgar/pkgs/mplayer/
    csw/mgar/pkgs/mrtg/
    csw/mgar/pkgs/msmtp/
    csw/mgar/pkgs/mysql-python/
    csw/mgar/pkgs/mysql-ruby/
    csw/mgar/pkgs/mysql4/
    csw/mgar/pkgs/namazu/
    csw/mgar/pkgs/ncftp/
    csw/mgar/pkgs/ncmpc/
    csw/mgar/pkgs/ncurses/
    csw/mgar/pkgs/neon/
    csw/mgar/pkgs/netpbm/
    csw/mgar/pkgs/ngrep/
    csw/mgar/pkgs/nmap/
    csw/mgar/pkgs/nspr/
    csw/mgar/pkgs/ntop/
    csw/mgar/pkgs/ogle/
    csw/mgar/pkgs/ogle_gui/
    csw/mgar/pkgs/openal/
    csw/mgar/pkgs/openexr/
    csw/mgar/pkgs/opengrok/
    csw/mgar/pkgs/openldap/
    csw/mgar/pkgs/openoffice/
    csw/mgar/pkgs/openssh/
    csw/mgar/pkgs/openssl/
    csw/mgar/pkgs/openvpn/
    csw/mgar/pkgs/opera/
    csw/mgar/pkgs/orca/
    csw/mgar/pkgs/pango/
    csw/mgar/pkgs/pari/
    csw/mgar/pkgs/patch/
    csw/mgar/pkgs/pca/
    csw/mgar/pkgs/pcre/
    csw/mgar/pkgs/perl/
    csw/mgar/pkgs/php4/
    csw/mgar/pkgs/php5/
    csw/mgar/pkgs/php5-apache/
    csw/mgar/pkgs/php5-apache2/
    csw/mgar/pkgs/phpldapadmin/
    csw/mgar/pkgs/pixman/
    csw/mgar/pkgs/pkg_update_watch/
    csw/mgar/pkgs/pkgconfig/
    csw/mgar/pkgs/pkgutil/
    csw/mgar/pkgs/postfix/
    csw/mgar/pkgs/pound/
    csw/mgar/pkgs/ppkg_get/
    csw/mgar/pkgs/proftpd/
    csw/mgar/pkgs/pth/
    csw/mgar/pkgs/pubcookie/
    csw/mgar/pkgs/pv/
    csw/mgar/pkgs/pwsafe/
    csw/mgar/pkgs/pydocutils/
    csw/mgar/pkgs/pysetuptools/
    csw/mgar/pkgs/pysqlite/
    csw/mgar/pkgs/pysqlite2/
    csw/mgar/pkgs/python/
    csw/mgar/pkgs/python25/
    csw/mgar/pkgs/qt-gcc/
    csw/mgar/pkgs/qt4/
    csw/mgar/pkgs/qt4-gcc/
    csw/mgar/pkgs/quanta/
    csw/mgar/pkgs/rails/
    csw/mgar/pkgs/rake/
    csw/mgar/pkgs/rapidsvn/
    csw/mgar/pkgs/readline/
    csw/mgar/pkgs/recode/
    csw/mgar/pkgs/render/
    csw/mgar/pkgs/renderproto/
    csw/mgar/pkgs/resin/
    csw/mgar/pkgs/rl/
    csw/mgar/pkgs/rlwrap/
    csw/mgar/pkgs/rrdtool/
    csw/mgar/pkgs/ruby/
    csw/mgar/pkgs/rubygems/
    csw/mgar/pkgs/sasl/
    csw/mgar/pkgs/screen/
    csw/mgar/pkgs/sdlimage/
    csw/mgar/pkgs/sdlmixer/
    csw/mgar/pkgs/sdlnet/
    csw/mgar/pkgs/sdlsound/
    csw/mgar/pkgs/sdlttf/
    csw/mgar/pkgs/sed/
    csw/mgar/pkgs/setoolkit/
    csw/mgar/pkgs/sh-utils/
    csw/mgar/pkgs/silvercity/
    csw/mgar/pkgs/sloccount/
    csw/mgar/pkgs/slrn/
    csw/mgar/pkgs/smbldap-tools/
    csw/mgar/pkgs/snort/
    csw/mgar/pkgs/socat/
    csw/mgar/pkgs/spamassassin/
    csw/mgar/pkgs/spidermonkey/
    csw/mgar/pkgs/sqlite3/
    csw/mgar/pkgs/squid/
    csw/mgar/pkgs/squidpurge/
    csw/mgar/pkgs/subversion/
    csw/mgar/pkgs/sudo/
    csw/mgar/pkgs/sudo-ldap/
    csw/mgar/pkgs/svnmailer/
    csw/mgar/pkgs/swaks/
    csw/mgar/pkgs/swig/
    csw/mgar/pkgs/sword/
    csw/mgar/pkgs/swtlibs/
    csw/mgar/pkgs/synergy/
    csw/mgar/pkgs/sysbench/
    csw/mgar/pkgs/syslog_ng/
    csw/mgar/pkgs/system-tray-applet/
    csw/mgar/pkgs/tcp_wrappers/
    csw/mgar/pkgs/texinfo/
    csw/mgar/pkgs/textutils/
    csw/mgar/pkgs/tin/
    csw/mgar/pkgs/tme/
    csw/mgar/pkgs/tnef/
    csw/mgar/pkgs/tomcat4/
    csw/mgar/pkgs/tomcat5/
    csw/mgar/pkgs/tomcat6/
    csw/mgar/pkgs/trac/
    csw/mgar/pkgs/tsclient/
    csw/mgar/pkgs/vim/
    csw/mgar/pkgs/vorbis-tools/
    csw/mgar/pkgs/vsftpd/
    csw/mgar/pkgs/websvn/
    csw/mgar/pkgs/wesnoth/
    csw/mgar/pkgs/wget/
    csw/mgar/pkgs/xcb-proto/
    csw/mgar/pkgs/xchat/
    csw/mgar/pkgs/xextproto/
    csw/mgar/pkgs/xfce/
    csw/mgar/pkgs/xft/
    csw/mgar/pkgs/xine-ui/
    csw/mgar/pkgs/xinetd/
    csw/mgar/pkgs/xmlstarlet/
    csw/mgar/pkgs/xmlto/
    csw/mgar/pkgs/xmms/
    csw/mgar/pkgs/xproto/
    csw/mgar/pkgs/xrender/
    csw/mgar/pkgs/xrestop/
    csw/mgar/pkgs/xtrans/
    csw/mgar/pkgs/zsh/

Removed Paths:
-------------
    csw/mgar/Makefile
    csw/mgar/README
    csw/mgar/Xorg/Makefile
    csw/mgar/Xorg/category.mk
    csw/mgar/Xorg/inputproto/
    csw/mgar/Xorg/kbproto/
    csw/mgar/Xorg/renderproto/
    csw/mgar/Xorg/xcb-proto/
    csw/mgar/Xorg/xextproto/
    csw/mgar/Xorg/xproto/
    csw/mgar/apps/
    csw/mgar/bin/
    csw/mgar/category.mk
    csw/mgar/cpan/
    csw/mgar/devel/
    csw/mgar/gar.common.mk
    csw/mgar/gar.conf.mk
    csw/mgar/gar.lib.mk
    csw/mgar/gar.mk
    csw/mgar/gar.pkg.mk
    csw/mgar/garrc.sample
    csw/mgar/gnome/Makefile
    csw/mgar/gnome/category.mk
    csw/mgar/gnome/gaim/
    csw/mgar/gnome/gftp/
    csw/mgar/gnome/gimp/
    csw/mgar/gnome/gkrellm/
    csw/mgar/gnome/ogle_gui/
    csw/mgar/gnome/system-tray-applet/
    csw/mgar/gnome/xchat/
    csw/mgar/gnome/xine-ui/
    csw/mgar/gnome/xmms/
    csw/mgar/kde/
    csw/mgar/lang/
    csw/mgar/lib/
    csw/mgar/meta/Makefile
    csw/mgar/meta/category.mk
    csw/mgar/net/
    csw/mgar/pkg.db
    csw/mgar/pkglib/
    csw/mgar/pkgs/cpan/Makefile
    csw/mgar/pkgs/cpan/category.mk
    csw/mgar/pkgs/xfce/Makefile
    csw/mgar/pkgs/xfce/category.mk
    csw/mgar/server/
    csw/mgar/utils/
    csw/mgar/xfce/
    csw/mgar/xtra/

Deleted: csw/mgar/Makefile
===================================================================
--- csw/mgar/Makefile	2008-11-21 12:10:29 UTC (rev 2333)
+++ csw/mgar/Makefile	2008-11-21 13:54:37 UTC (rev 2334)
@@ -1,51 +0,0 @@
-FILTER_DIRS = CVS/ bin/ meta/
-# top-level Makefile for the entire tree.
-%:
-	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
-		$(MAKE) -C $$i $* ; \
-	done
-
-paranoid-%:
-	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
-		$(MAKE) -C $$i $@ || exit 2; \
-	done
-
-unbuilt:
-	@(gfind . -mindepth 3 -maxdepth 3 -name work | cut -d/ -f 3; gfind . -mindepth 2 -maxdepth 2 | cut -d/ -f3) | sort | uniq -u
-
-export BUILDLOG ?= $(shell pwd)/buildlog.txt
-
-report-%:
-	@echo "$@ started at $$(date)" >> $(BUILDLOG)
-	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
-		$(MAKE) -C $$i $@ || echo "	make $@ in category $$i failed" >> $(BUILDLOG); \
-	done
-	@echo "$@ completed at $$(date)" >> $(BUILDLOG)
-
-pkgdesc = `/bin/perl -ne '/DESCRIPTION\s+=\s+(.+)$$/ && print $$1' $(1)/Makefile`
-
-# Rebuild the package database
-rebuildpkgdb:
-	@echo " ==> Rebuilding package database"
-	- at rm -f pkg.db
-	@bin/build_pkgdb > pkg.db
-
-cvsdesc:
-	@for package in $(shell gfind . -type d -mindepth 2 -maxdepth 2 -not -name 'CVS' -a -not -name '00CPAN_Module_Template' | gsed -e 's/^\.\///') ; do \
-		printf "%-36s%s\n" sunx/$$package "$(call pkgdesc,$$package)" ; \
-	done
-
-GARDIR=$(CURDIR)
-include gar.mk
-
-pkgclean:
-	@if test -d "$(DESTBUILD)" ; then \
-		echo " ==> Removing $(DESTBUILD)" ; \
-		rm -rf $(DESTBUILD) ; \
-	fi
-	@if test -d "$(SPKG_SPOOLDIR)" ; then \
-		echo " ==> Removing $(SPKG_SPOOLDIR)" ; \
-		rm -rf $(SPKG_SPOOLDIR) ; \
-	fi
-
-.PHONY: unbuilt

Deleted: csw/mgar/README
===================================================================
--- csw/mgar/README	2008-11-21 12:10:29 UTC (rev 2333)
+++ csw/mgar/README	2008-11-21 13:54:37 UTC (rev 2334)
@@ -1,18 +0,0 @@
-Introduction
---
-
-Welcome to the CSW build system.  Please visit:
-
-    http://sourceforge.net/projects/gar
-
-For instructions on how to use this system.
-
-Copyrights
---
-
-Copyright 2001 Nick Moffitt: GAR ports system
-Copyright 2006 Cory Omand: Scripts and add-on make modules, except where otherwise noted.
-Copyright 2006 Blastwave.org: Packaging content, except where otherwise noted.
-Copyright 2008 Dagobert Michelsen (OpenCSW): Enhancements to the CSW GAR system
-
-Patches and source code are Copyright by their original authors.

Deleted: csw/mgar/Xorg/Makefile
===================================================================
--- csw/mgar/Xorg/Makefile	2008-11-21 12:10:29 UTC (rev 2333)
+++ csw/mgar/Xorg/Makefile	2008-11-21 13:54:37 UTC (rev 2334)
@@ -1,2 +0,0 @@
-include ../category.mk
-

Deleted: csw/mgar/Xorg/category.mk
===================================================================
--- csw/mgar/Xorg/category.mk	2008-11-21 12:10:29 UTC (rev 2333)
+++ csw/mgar/Xorg/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -1 +0,0 @@
-include ../../gar.mk

Deleted: csw/mgar/category.mk
===================================================================
--- csw/mgar/category.mk	2008-11-21 12:10:29 UTC (rev 2333)
+++ csw/mgar/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -1,19 +0,0 @@
-# vim: ft=make ts=4 sw=4 noet
-# This makefile is to be included from Makefiles in each category
-# directory.
-%:
-	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
-		$(MAKE) -C $$i $* ; \
-	done
-
-paranoid-%:
-	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
-		$(MAKE) -C $$i $* || exit 2; \
-	done
-
-export BUILDLOG ?= $(shell pwd)/buildlog.txt
-
-report-%:
-	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
-		$(MAKE) -C $$i $* || echo "	*** make $* in $$i failed ***" >> $(BUILDLOG); \
-	done

Copied: csw/mgar/gar/v1/Makefile (from rev 2333, csw/mgar/Makefile)
===================================================================
--- csw/mgar/gar/v1/Makefile	                        (rev 0)
+++ csw/mgar/gar/v1/Makefile	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,51 @@
+FILTER_DIRS = CVS/ bin/ meta/
+# top-level Makefile for the entire tree.
+%:
+	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
+		$(MAKE) -C $$i $* ; \
+	done
+
+paranoid-%:
+	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
+		$(MAKE) -C $$i $@ || exit 2; \
+	done
+
+unbuilt:
+	@(gfind . -mindepth 3 -maxdepth 3 -name work | cut -d/ -f 3; gfind . -mindepth 2 -maxdepth 2 | cut -d/ -f3) | sort | uniq -u
+
+export BUILDLOG ?= $(shell pwd)/buildlog.txt
+
+report-%:
+	@echo "$@ started at $$(date)" >> $(BUILDLOG)
+	@for i in $(filter-out $(FILTER_DIRS),$(wildcard */)) ; do \
+		$(MAKE) -C $$i $@ || echo "	make $@ in category $$i failed" >> $(BUILDLOG); \
+	done
+	@echo "$@ completed at $$(date)" >> $(BUILDLOG)
+
+pkgdesc = `/bin/perl -ne '/DESCRIPTION\s+=\s+(.+)$$/ && print $$1' $(1)/Makefile`
+
+# Rebuild the package database
+rebuildpkgdb:
+	@echo " ==> Rebuilding package database"
+	- at rm -f pkg.db
+	@bin/build_pkgdb > pkg.db
+
+cvsdesc:
+	@for package in $(shell gfind . -type d -mindepth 2 -maxdepth 2 -not -name 'CVS' -a -not -name '00CPAN_Module_Template' | gsed -e 's/^\.\///') ; do \
+		printf "%-36s%s\n" sunx/$$package "$(call pkgdesc,$$package)" ; \
+	done
+
+GARDIR=$(CURDIR)
+include gar.mk
+
+pkgclean:
+	@if test -d "$(DESTBUILD)" ; then \
+		echo " ==> Removing $(DESTBUILD)" ; \
+		rm -rf $(DESTBUILD) ; \
+	fi
+	@if test -d "$(SPKG_SPOOLDIR)" ; then \
+		echo " ==> Removing $(SPKG_SPOOLDIR)" ; \
+		rm -rf $(SPKG_SPOOLDIR) ; \
+	fi
+
+.PHONY: unbuilt

Copied: csw/mgar/gar/v1/README (from rev 2333, csw/mgar/README)
===================================================================
--- csw/mgar/gar/v1/README	                        (rev 0)
+++ csw/mgar/gar/v1/README	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,18 @@
+Introduction
+--
+
+Welcome to the CSW build system.  Please visit:
+
+    http://sourceforge.net/projects/gar
+
+For instructions on how to use this system.
+
+Copyrights
+--
+
+Copyright 2001 Nick Moffitt: GAR ports system
+Copyright 2006 Cory Omand: Scripts and add-on make modules, except where otherwise noted.
+Copyright 2006 Blastwave.org: Packaging content, except where otherwise noted.
+Copyright 2008 Dagobert Michelsen (OpenCSW): Enhancements to the CSW GAR system
+
+Patches and source code are Copyright by their original authors.

Copied: csw/mgar/gar/v1/categories/apps/category.mk (from rev 2333, csw/mgar/apps/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/apps/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/apps/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/cpan/category.mk (from rev 2333, csw/mgar/cpan/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/cpan/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/cpan/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,111 @@
+
+# Set the CPAN mirror in gar.conf.mk
+MASTER_SITES ?= $(CPAN_MIRRORS)
+
+# This is common to most modules - override in module makefile if different
+MODDIST   ?= $(GARNAME)-$(GARVERSION).tar.gz
+DISTFILES += $(MODDIST)
+CHECKPATH ?= $(firstword $(CPAN_MIRRORS))
+
+# Tests are enabled by default, unless overridden at the test level
+ENABLE_TEST ?= 1
+
+# Every CPAN module depends on Perl
+#DEPENDS += lang/perl
+
+# Standard Perl module configuration script
+CONFIGURE_SCRIPTS ?= $(WORKSRC)/Makefile.PL
+
+# Calculate the CPAN author id
+GEN_AUTHOR_ID  = $(shell echo ${AUTHOR} | cut -c1)
+GEN_AUTHOR_ID := $(GEN_AUTHOR_ID)/$(shell echo ${AUTHOR} | cut -c1,2)
+GEN_AUTHOR_ID := $(GEN_AUTHOR_ID)/$(AUTHOR)
+AUTHOR_ID ?= $(GEN_AUTHOR_ID)
+
+# Source URL
+TOLOWER = $(shell echo $(1) | tr '[A-Z]' '[a-z]')
+SPKG_SOURCEURL  = http://search.cpan.org
+SPKG_SOURCEURL := $(SPKG_SOURCEURL)/~$(call TOLOWER,$(AUTHOR))
+SPKG_SOURCEURL := $(SPKG_SOURCEURL)/$(GARNAME)
+
+_PREREQUISITE_BASE_PKGS += CSWperl
+
+include ../../gar.mk
+
+# Canned commands for finding packlist files
+find_packlist = $(shell find $(1) -type f -name .packlist | head -1)
+find_newest_packlist = $(shell find $(1) -type f -name .packlist -cnewer $(TIMESTAMP))
+
+# Fix package packlist for installation
+PERL_PACKLIST ?= $(call find_newest_packlist $(DESTDIR)$(perlpackroot))
+pre-package:
+	@if test -n "$(PERL_PACKLIST)" && test -f "$(PERL_PACKLIST)" ; then \
+		echo " ==> Fixing Perl Packlist: $(PERL_PACKLIST)" ; \
+		gsed -i -e s,$(DESTDIR),,g $(PERL_PACKLIST) ; \
+	fi
+	@$(MAKECOOKIE)
+
+# Enable scripts to see prereqs
+PERL5LIB  = $(DESTDIR)$(libdir)/perl/csw
+PERL5LIB := $(PERL5LIB):$(DESTDIR)$(datadir)/perl/csw
+export PERL5LIB
+
+CONFIGURE_ENV += PERL5LIB=$(PERL5LIB)
+BUILD_ENV     += PERL5LIB=$(PERL5LIB)
+TEST_ENV      += PERL5LIB=$(PERL5LIB)
+INSTALL_ENV   += PERL5LIB=$(PERL5LIB)
+
+# Configure a target using Makefile.PL
+PERL_CONFIGURE_ARGS ?= INSTALLDIRS=vendor
+configure-%/Makefile.PL:
+	@echo " ==> Running Makefile.PL in $*"
+	@( cd $* ; \
+	    $(CONFIGURE_ENV) $(bindir)/perl Makefile.PL \
+	        $(CONFIGURE_ARGS) $(PERL_CONFIGURE_ARGS) )
+	@$(MAKECOOKIE)
+
+PERLBUILD_CONFIGURE_ARGS ?= installdirs=vendor
+configure-%/Build.PL:
+	@echo " ==> Running Build.PL in $*"
+	@( cd $* ; \
+	    $(CONFIGURE_ENV) $(bindir)/perl Build.PL \
+	        $(PERLBUILD_CONFIGURE_ARGS) $(CONFIGURE_ARGS) )
+	@$(MAKECOOKIE)
+
+build-%/Build:
+	@echo " ==> Running Build in $*"
+	@( cd $* ; $(BUILD_ENV) ./Build )
+	@$(MAKECOOKIE)
+
+test-%/Build:
+	@echo " ==> Running Build test in $*"
+	@( cd $* ; $(TEST_ENV) ./Build test )
+	@$(MAKECOOKIE)
+
+install-%/Build:
+	@echo " ==> Running Build install in $*"
+	@( cd $* ; $(INSTALL_ENV) ./Build install destdir=$(DESTDIR) )
+	@$(MAKECOOKIE)
+
+# Check for a CPAN module version update
+update-check:
+	@echo " ==> Update Check: $(GARNAME) $(GARVERSION)"
+	@if test "x$(MANUAL_UPDATE)" != "x0" ; then \
+	    cpan_check $(CHECKPATH)$(MODDIST) \
+	               $(CURDIR)/../update_results.txt ; \
+	else \
+	    echo " ==> AUTO UPDATE CHECK FOR $(GARNAME) IS DISABLED" ; \
+	fi
+	
+# Print HTML info for modules
+module-info:
+	@echo " ==> Generating module info for $(GARNAME) $(GARVERSION)"
+	@printf "<a href=\"http://search.cpan.org/" \
+		>> ../module_info.html
+	@printf "~$(shell echo $(AUTHOR) | tr '[A-Z]' '[a-z]')/" \
+		>> ../module_info.html
+	@printf "$(GARNAME)-$(GARVERSION)" \
+		>> ../module_info.html
+	@printf "\">$(GARNAME)-$(GARVERSION)</a><br/>\n" \
+		>> ../module_info.html
+

Copied: csw/mgar/gar/v1/categories/devel/category.mk (from rev 2333, csw/mgar/devel/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/devel/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/devel/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/gnome/category.mk (from rev 2333, csw/mgar/gnome/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/gnome/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/gnome/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/kde/category.mk (from rev 2333, csw/mgar/kde/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/kde/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/kde/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,16 @@
+
+# KDE
+KDE_ROOT      = http://download.kde.org
+KDE_VERSION   = 3.5.2
+KDE_DIST      = stable
+KDE_MIRROR    = $(KDE_ROOT)/$(KDE_DIST)/$(KDE_VERSION)/src/
+
+MASTER_SITES ?= $(KDE_MIRROR)
+GARVERSION   ?= $(KDE_VERSION)
+PKGDIST      ?= $(GARNAME)-$(GARVERSION).tar.bz2
+DISTFILES    += $(PKGDIST)
+
+# Compiler
+GARCOMPILER = GNU
+
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/lang/category.mk (from rev 2333, csw/mgar/lang/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/lang/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/lang/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/lib/category.mk (from rev 2333, csw/mgar/lib/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/lib/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/lib/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/meta/category.mk (from rev 2333, csw/mgar/meta/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/meta/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/meta/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,8 @@
+# No scripts for meta targets by default
+CONFIGURE_SCRIPTS ?=
+BUILD_SCRIPTS ?=
+TEST_SCRIPTS ?=
+INSTALL_SCRIPTS ?=
+
+include ../../gar.mk
+

Copied: csw/mgar/gar/v1/categories/net/category.mk (from rev 2333, csw/mgar/net/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/net/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/net/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/server/category.mk (from rev 2333, csw/mgar/server/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/server/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/server/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/utils/category.mk (from rev 2333, csw/mgar/utils/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/utils/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/utils/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/xfce/category.mk (from rev 2333, csw/mgar/xfce/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/xfce/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/xfce/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,31 @@
+# XFCE
+# XFCE_ROOT      = http://www.us.xfce.org
+XFCE_VERSION   = 4.4.2
+# XFCE_MIRROR    = $(XFCE_ROOT)/archive/xfce-$(XFCE_VERSION)/src/
+XFCE_MIRROR    = http://mocha.xfce.org/archive/xfce-4.4.2/src/
+
+MASTER_SITES ?= $(XFCE_MIRROR)
+GARVERSION   ?= $(XFCE_VERSION)
+PKGDIST      ?= $(GARNAME)-$(GARVERSION).tar.bz2
+DISTFILES    += $(PKGDIST)
+
+include ../../gar.mk
+
+# Compiler options
+# Compiler options
+CFLAGS   += -xlibmil -errtags=yes -erroff=E_EMPTY_DECLARATION
+CXXFLAGS += -xlibmil -xlibmopt -features=tmplife -norunpath
+CPPFLAGS += -I$(DESTDIR)/opt/csw/include/xfce4 
+LDFLAGS  += -L/opt/csw/lib -R/opt/csw/lib
+
+# pkg-config options
+PKG_CONFIG_PATH += $(DESTDIR)/opt/csw/lib/pkgconfig
+
+# Configure common options
+CONFIGURE_ARGS  = $(DIRPATHS)
+# CONFIGURE_ARGS += --prefix=/opt/csw
+CONFIGURE_ARGS += --disable-debug
+CONFIGURE_ARGS += --enable-final
+CONFIGURE_ARGS += --enable-xinerama
+CONFIGURE_ARGS += --enable-dbus
+# CONFIGURE_ARGS += --mandir=/opt/csw/share/man

Copied: csw/mgar/gar/v1/categories/xorg/category.mk (from rev 2333, csw/mgar/Xorg/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/xorg/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/xorg/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/categories/xtra/category.mk (from rev 2333, csw/mgar/xtra/category.mk)
===================================================================
--- csw/mgar/gar/v1/categories/xtra/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/categories/xtra/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1 @@
+include ../../gar.mk

Copied: csw/mgar/gar/v1/category.mk (from rev 2333, csw/mgar/category.mk)
===================================================================
--- csw/mgar/gar/v1/category.mk	                        (rev 0)
+++ csw/mgar/gar/v1/category.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,19 @@
+# vim: ft=make ts=4 sw=4 noet
+# This makefile is to be included from Makefiles in each category
+# directory.
+%:
+	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
+		$(MAKE) -C $$i $* ; \
+	done
+
+paranoid-%:
+	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
+		$(MAKE) -C $$i $* || exit 2; \
+	done
+
+export BUILDLOG ?= $(shell pwd)/buildlog.txt
+
+report-%:
+	@for i in $(filter-out CVS/,$(wildcard */)) ; do \
+		$(MAKE) -C $$i $* || echo "	*** make $* in $$i failed ***" >> $(BUILDLOG); \
+	done

Copied: csw/mgar/gar/v1/gar.common.mk (from rev 2333, csw/mgar/gar.common.mk)
===================================================================
--- csw/mgar/gar/v1/gar.common.mk	                        (rev 0)
+++ csw/mgar/gar/v1/gar.common.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,49 @@
+# vim: ft=make ts=4 sw=4 noet
+#
+# $Id$
+#
+# Copyright 2006 Cory Omand
+#
+# Redistribution and/or use, with or without modification, is
+# permitted.  This software is without warranty of any kind.  The
+# author(s) shall not be liable in the event that use of the
+# software causes damage.
+#
+# gar.common.mk - General routines used by multiple packages.  For instance,
+#                 setting up server instances prior to testing.
+#
+
+#
+# Power up MySQL for testing purposes (used by DBI/DBD CPAN modules)
+#
+mysql-powerup:
+	@echo " ==> Cleaning up mysql directory"
+	@( $(DESTDIR)$(sharedstatedir)/mysql/mysql.server stop || true )
+	@rm -rf $(DESTDIR)$(localstatedir)
+	@echo " ==> Configuring mysql db for tests"
+	@$(DESTDIR)$(bindir)/mysql_install_db
+	@echo " ==> Adding $(DB_USER) user"
+	@if test "X$(shell getent group $(DB_GROUP))" = "X"; then \
+		groupadd $(DB_GROUP) ; \
+	fi
+	@if test "X$(shell getent passwd $(DB_USER))" = "X"; then \
+		useradd -g $(DB_GROUP) \
+				-d $(DESTDIR)$(localstatedir) \
+				-s /bin/false $(DB_USER) ; \
+		passwd -l $(DB_USER) ; \
+	fi
+	@chown -R $(DB_USER):$(DB_GROUP) $(DESTDIR)$(localstatedir)
+	@$(DESTDIR)$(sharedstatedir)/mysql/mysql.server start
+	@echo " ==> Mysql started and ready for testing"
+
+#
+# Power down MySQL after testing (used by DBI/DBD CPAN modules)
+#
+mysql-powerdown:
+	@echo " ==> Cleaning up mysql directory"
+	@( $(DESTDIR)$(sharedstatedir)/mysql/mysql.server stop || true )
+	@echo " ==> Removing $(DB_USER) user"
+	@( userdel $(DB_USER)  || true )
+	@( userdel $(DB_GROUP) || true )
+	@rm -rf $(DESTDIR)$(localstatedir)
+

Copied: csw/mgar/gar/v1/gar.conf.mk (from rev 2333, csw/mgar/gar.conf.mk)
===================================================================
--- csw/mgar/gar/v1/gar.conf.mk	                        (rev 0)
+++ csw/mgar/gar/v1/gar.conf.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,305 @@
+# vim: ft=make ts=4 sw=4 noet
+#
+# $Id$
+#
+
+# This file contains configuration variables that are global to
+# the GAR system.  Users wishing to make a change on a
+# per-package basis should edit the category/package/Makefile, or
+# specify environment variables on the make command-line.
+
+# Pick up user information
+-include $(HOME)/.garrc
+
+# Outbound proxies
+http_proxy ?=
+ftp_proxy  ?=
+export http_proxy ftp_proxy
+
+# Don't do full-dependency builds by default
+SKIPDEPEND ?= 1
+
+# A directory containing cached files. It can be created
+# manually, or with 'make garchive' once you've started
+# downloading required files (say with 'make paranoid-checksum'.
+GARCHIVEDIR ?= /home/src
+
+# Space separated list of paths to search for DISTFILES.
+GARCHIVEPATH ?= $(GARCHIVEDIR)
+
+# Select compiler (GNU/SUN)
+GARCOMPILER ?= SUN
+
+# Build flavor (OPT/DBG/...)
+GARFLAVOR ?= OPT
+
+# Architecture
+GARCH    ?= $(shell uname -p)
+GAROSREL ?= $(shell uname -r)
+
+# These are the standard directory name variables from all GNU
+# makefiles.  They're also used by autoconf, and can be adapted
+# for a variety of build systems.
+
+DESTIMG ?= $(LOGNAME)-$(shell hostname)
+
+# Directory config
+prefix ?= /opt/csw
+exec_prefix ?= $(prefix)
+bindir ?= $(exec_prefix)/bin
+gnudir ?= $(exec_prefix)/gnu
+sbindir ?= $(exec_prefix)/sbin
+libexecdir ?= $(exec_prefix)/libexec
+datadir ?= $(prefix)/share
+sysconfdir ?= $(prefix)/etc
+sharedstatedir ?= $(prefix)/share
+localstatedir ?= $(prefix)/var
+libdir ?= $(exec_prefix)/lib
+infodir ?= $(sharedstatedir)/info
+lispdir ?= $(sharedstatedir)/emacs/site-lisp
+includedir ?= $(prefix)/include
+mandir ?= $(sharedstatedir)/man
+docdir ?= $(sharedstatedir)/doc
+sourcedir ?= $(prefix)/src
+licensedir ?= $(prefix)/licenses
+sharedperl ?= $(sharedstatedir)/perl
+perllib ?= $(libdir)/perl
+perlcswlib ?= $(perllib)/csw
+perlpackroot ?= $(perlcswlib)/auto
+
+# DESTDIR is used at INSTALL TIME ONLY to determine what the
+# filesystem root should be.
+DESTROOT ?= $(HOME)
+DESTBUILD ?= $(DESTROOT)/build.$(GAROSREL)-$(GARCH)
+DESTDIR  ?= $(DESTBUILD)
+
+BUILD_PREFIX ?= /opt/csw
+
+# These are the core packages which must be installed for GAR to function correctly
+_PREREQUISITE_BASE_PKGS += CSWgmake CSWgtar CSWggrep CSWdiffutils CSWgfile CSWtextutils CSWwget CSWfindutils CSWgsed CSWgawk CSWbzip2 CSWlftp
+PREREQUISITE_BASE_PKGS ?= $(_PREREQUISITE_BASE_PKGS)
+
+# Optimization Architecture
+GNU_ARCHLIST_i386   ?= pentium pentium_pro pentium_pro+mmx
+GNU_OPTARCH_i386    ?= pentium
+GNU_OPTTARGET_i386  ?=
+GNU_ARCHLIST_sparc  ?=
+GNU_OPTARCH_sparc   ?= $(SUN_OPTARCH_sparc)
+GNU_OPTTARGET_sparc ?= $(SUN_OPTTARGET_sparc)
+
+SUN_ARCHLIST_i386   ?= generic $(GNU_ARCHLIST_i386)
+SUN_OPTARCH_i386    ?= generic
+SUN_OPTTARGET_i386  ?= generic
+SUN_ARCHLIST_sparc  ?= v8 v9
+SUN_OPTARCH_sparc   ?= v8
+SUN_OPTTARGET_sparc ?= ultra
+
+OPTARCH := $($(GARCOMPILER)_OPTARCH_$(GARCH))
+OPTTARGET := $($(GARCOMPILER)_OPTTARGET_$(GARCH))
+OPTDIR = $(shell $(GARBIN)/isadir $(OPTARCH))
+ifneq ($(OPTDIR),)
+optbindir := $(bindir)/$(OPTDIR)
+optlibdir := $(libdir)/$(OPTDIR)
+endif
+
+#
+# Forte Compiler Configuration
+#
+
+SUN_CC_PKG   ?= SOS11
+SUN_CC_HOME  ?= /opt/studio/$(SUN_CC_PKG)/SUNWspro
+SUN_CC        = cc
+SUN_CXX       = CC
+
+# Optimized
+ifdef MIN_ARCH_SUN4U
+SUN_CC_OPT   ?= -xO4 -xtarget=generic
+SUN_CXX_OPT  ?= -xO4 -xtarget=generic
+SUN_AS_OPT   ?= -xtarget=generic
+SUN_LD_OPT   ?=
+else
+SUN_CC_OPT   ?= -xO3 -xtarget=$(OPTTARGET) -xarch=$(OPTARCH)
+SUN_CXX_OPT  ?= -xO3 -xtarget=$(OPTTARGET) -xarch=$(OPTARCH)
+SUN_AS_OPT   ?=
+SUN_LD_OPT   ?=
+endif
+
+# Debug
+SUN_CC_DBG   ?= -g
+SUN_CXX_DBG  ?= -g
+SUN_AS_DBG   ?=
+SUN_LD_DBG   ?=
+
+#
+# GNU Compiler Configuration
+#
+
+GNU_CC_HOME  ?= /opt/csw/gcc4
+GNU_CC       ?= gcc
+GNU_CXX      ?= g++
+
+# Optimized
+ifeq ($(OPTARCH),386)
+GNU_CC_OPT   ?= -O2 -pipe -mtune=i686
+else
+GNU_CC_OPT   ?= -O2 -pipe -mtune=$(OPTARCH)
+endif
+GNU_CXX_OPT  ?= $(GNU_CC_OPT)
+GNU_AS_OPT   ?=
+
+# Debug
+GNU_CC_DBG   ?= -g
+GNU_CXX_DBG  ?= -g
+GNU_AS_DBG   ?=
+
+#
+# Construct compiler options
+#
+
+CC_HOME  = $($(GARCOMPILER)_CC_HOME)
+CC       = $($(GARCOMPILER)_CC)
+CXX      = $($(GARCOMPILER)_CXX)
+CFLAGS   = $($(GARCOMPILER)_CC_$(GARFLAVOR))
+CXXFLAGS = $($(GARCOMPILER)_CXX_$(GARFLAVOR))
+CPPFLAGS = $($(GARCOMPILER)_CPP_FLAGS)
+LDFLAGS  = $($(GARCOMPILER)_LD_FLAGS) $($(GARCOMPILER)_LD_$(GARFLAVOR))
+ASFLAGS  = $($(GARCOMPILER)_AS_$(GARFLAVOR))
+OPTFLAGS = $($(GARCOMPILER)_CC_$(GARFLAVOR))
+
+# allow us to link to libraries we installed
+EXT_CFLAGS = $(foreach EINC,$(EXTRA_INC) $(includedir),-I$(EINC))
+EXT_LDFLAGS = $(foreach ELIB,$(EXTRA_LIB) $(libdir),-L$(ELIB))
+
+LDOPT_LIBS ?= $(libdir) $(EXTRA_LIB)
+ifdef NOISALIST
+LD_OPTIONS = $(foreach ELIB,$(LDOPT_LIBS),-R$(ELIB))
+else
+LD_OPTIONS = $(foreach ELIB,$(LDOPT_LIBS),-R$(ELIB)/\$$ISALIST -R$(ELIB))
+endif
+
+ifeq ($(GARCOMPILER),GNU)
+LDFLAGS := -L$(GNU_CC_HOME)/lib $(LDFLAGS)
+LD_OPTIONS := -R$(GNU_CC_HOME)/lib $(LD_OPTIONS)
+endif
+
+ifneq ($(IGNORE_DESTDIR),1)
+CFLAGS   += -I$(DESTDIR)$(includedir)
+CPPFLAGS += -I$(DESTDIR)$(includedir)
+CXXFLAGS += -I$(DESTDIR)$(includedir)
+LDFLAGS  += -L$(DESTDIR)$(libdir)
+endif
+CFLAGS   += $(EXT_CFLAGS) 
+CPPFLAGS += $(EXT_CFLAGS)
+CXXFLAGS += $(EXT_CFLAGS)
+LDFLAGS  += $(EXT_LDFLAGS)
+
+# Make sure we use this version of 'cp' instead of the GNU version.
+# GNU 'cp -rp' copies the link instead of the file contents. We rely
+# on copying the contents of the link or otherwise end up with links
+# from $(WORKDIR) to the stuff in files/ which then gets corrupted.
+CP ?= /usr/bin/cp
+
+# allow us to use programs we just built
+PATH  = /usr/bin:/usr/sbin:/usr/java/bin:/usr/ccs/bin:/usr/sfw/bin
+ifneq ($(IGNORE_DESTDIR),1)
+PATH := $(DESTDIR)$(bindir):$(DESTDIR)$(sbindir):$(PATH)
+endif
+PATH := $(BUILD_PREFIX)/bin:$(BUILD_PREFIX)/sbin:$(PATH)
+PATH := $(HOME)/bin:$(CC_HOME)/bin:$(GARBIN):$(PATH)
+
+# This is for foo-config chaos
+PKG_CONFIG_PATH := $(libdir)/pkgconfig:$(PKG_CONFIG_PATH)
+ifneq ($(IGNORE_DESTDIR),1)
+PKG_CONFIG_PATH := $(DESTDIR)$(libdir)/pkgconfig:$(PKG_CONFIG_PATH)
+endif
+
+# Let's see if we can get gtk-doc going 100%
+XML_CATALOG_FILES += $(DESTDIR)$(datadir)/xml/catalog
+
+# Docbook Root Location
+DOCBOOK_ROOT = $(DESTDIR)$(datadir)/sgml/docbook
+
+#
+# Mirror Sites
+#
+
+# Gnome
+GNOME_ROOT   = http://ftp.gnome.org/pub/GNOME/sources
+GNOME_SUBV   = $(shell echo $(GARVERSION) | awk -F. '{print $$1"."$$2}')
+GNOME_MIRROR = $(GNOME_ROOT)/$(GARNAME)/$(GNOME_SUBV)/
+
+# SourceForge
+SF_PROJ     ?= $(GARNAME)
+SF_MIRRORS  ?= http://downloads.sourceforge.net/$(SF_PROJ)/
+# Keep this for compatibility
+SF_MIRROR    = $(firstword $(SF_MIRRORS))
+
+# GNU
+GNU_SITE     = http://mirrors.kernel.org/
+GNU_GNUROOT  = $(GNU_SITE)/gnu
+GNU_NGNUROOT = $(GNU_SITE)/non-gnu
+GNU_MIRROR   = $(GNU_GNUROOT)/$(GARNAME)/
+GNU_NMIRROR  = $(GNU_NGNUROOT)/$(GARNAME)/
+
+# CPAN
+CPAN_SITES  += http://search.cpan.org/CPAN
+CPAN_SITES  += ftp://ftp.nrc.ca/pub/CPAN
+CPAN_SITES  += ftp://ftp.nas.nasa.gov/pub/perl/CPAN
+CPAN_SITES  += http://mirrors.ibiblio.org/pub/mirrors/CPAN
+CPAN_SITES  += ftp://cpan.pair.com/pub/CPAN
+CPAN_SITES  += http://mirrors.kernel.org/cpan
+CPAN_MIRRORS = $(foreach S,$(CPAN_SITES),$(S)/authors/id/$(AUTHOR_ID)/)
+CPAN_FIRST_MIRROR = $(firstword $(CPAN_SITES))/authors/id
+
+# Compiler version
+ifeq ($(CC),gcc)
+CC_VERSION  = $(shell $(CC_HOME)/bin/gcc -v 2>&1| ggrep version)
+CXX_VERSION = $(CC_VERSION)
+endif
+ifeq ($(CC),cc)
+CC_VERSION  = $(shell $(CC_HOME)/bin/cc -V 2>&1| ggrep cc: | gsed -e 's/cc: //')
+CXX_VERSION = $(shell $(CC_HOME)/bin/CC -V 2>&1| ggrep CC: | gsed -e 's/CC: //')
+endif
+
+# Package dir
+GARPACKAGE = $(shell basename $(CURDIR))
+
+# Put these variables in the environment during the
+# configure, build, test, and install stages
+COMMON_EXPORTS  = prefix exec_prefix bindir optbindir sbindir libexecdir
+COMMON_EXPORTS += datadir sysconfdir sharedstatedir localstatedir libdir
+COMMON_EXPORTS += optlibdir infodir lispdir includedir mandir docdir sourcedir
+COMMON_EXPORTS += CPPFLAGS CFLAGS CXXFLAGS LDFLAGS
+COMMON_EXPORTS += ASFLAGS OPTFLAGS CC CXX LD_OPTIONS
+COMMON_EXPORTS += CC_HOME CC_VERSION CXX_VERSION VENDORNAME VENDORSTAMP
+COMMON_EXPORTS += GARCH GAROSREL GARPACKAGE
+
+_CONFIGURE_EXPORTS = $(COMMON_EXPORTS) PKG_CONFIG_PATH DESTDIR
+_BUILD_EXPORTS = $(COMMON_EXPORTS)
+_TEST_EXPORTS = $(COMMON_EXPORTS)
+_INSTALL_EXPORTS = $(COMMON_EXPORTS) DESTDIR
+
+CONFIGURE_ENV += $(foreach TTT,$(_CONFIGURE_EXPORTS),$(TTT)="$($(TTT))")
+BUILD_ENV     += $(foreach TTT,$(_BUILD_EXPORTS),$(TTT)="$($(TTT))")
+TEST_ENV      += $(foreach TTT,$(_TEST_EXPORTS),$(TTT)="$($(TTT))")
+INSTALL_ENV   += $(foreach TTT,$(_INSTALL_EXPORTS),$(TTT)="$($(TTT))")
+
+# Standard Scripts
+CONFIGURE_SCRIPTS ?= $(WORKSRC)/configure
+BUILD_SCRIPTS     ?= $(WORKSRC)/Makefile
+ifeq ($(SKIPTEST),1)
+TEST_SCRIPTS       =
+else
+TEST_SCRIPTS      ?= $(WORKSRC)/Makefile
+endif
+INSTALL_SCRIPTS   ?= $(WORKSRC)/Makefile
+
+# Global environment
+export PATH PKG_CONFIG_PATH XML_CATALOG_FILES
+
+# prepend the local file listing
+FILE_SITES = $(foreach DIR,$(FILEDIR) $(GARCHIVEPATH),file://$(DIR)/)
+
+# Extra libraries
+EXTRA_LIBS = gar.pkg.mk gar.common.mk
+

Copied: csw/mgar/gar/v1/gar.lib.mk (from rev 2333, csw/mgar/gar.lib.mk)
===================================================================
--- csw/mgar/gar/v1/gar.lib.mk	                        (rev 0)
+++ csw/mgar/gar/v1/gar.lib.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,627 @@
+# vim: ft=make ts=4 sw=4 noet
+#
+# $Id$
+#
+# Copyright (C) 2001 Nick Moffitt
+# 
+# Redistribution and/or use, with or without modification, is
+# permitted.  This software is without warranty of any kind.  The
+# author(s) shall not be liable in the event that use of the
+# software causes damage.
+#
+
+# cookies go here, so we have to be able to find them for
+# dependency checking.
+VPATH += $(COOKIEDIR)
+
+# convenience variable to make the cookie.
+MAKECOOKIE = mkdir -p $(COOKIEDIR)/$(@D) && date >> $(COOKIEDIR)/$@
+
+#################### FETCH RULES ####################
+
+URLS = $(subst ://,//,$(foreach SITE,$(FILE_SITES) $(MASTER_SITES),$(addprefix $(SITE),$(DISTFILES))) $(foreach SITE,$(FILE_SITES) $(PATCH_SITES) $(MASTER_SITES),$(addprefix $(SITE),$(PATCHFILES))))
+
+# Download the file if and only if it doesn't have a preexisting
+# checksum file.  Loop through available URLs and stop when you
+# get one that doesn't return an error code.
+$(DOWNLOADDIR)/%:  
+	@if test -f $(COOKIEDIR)/checksum-$*; then : ; else \
+		echo " ==> Grabbing $@"; \
+		for i in $(filter %/$*,$(URLS)); do  \
+			echo " 	==> Trying $$i"; \
+			$(MAKE) -s $$i || continue; \
+			mv $(PARTIALDIR)/$* $@; \
+			break; \
+		done; \
+		if test -r $@ ; then : ; else \
+			echo '(!!!) Failed to download $@!' 1>&2; \
+			false; \
+		fi; \
+	fi
+
+# download an http URL (colons omitted)
+http//%: 
+	@wget -T 10 -c -P $(PARTIALDIR) http://$*
+
+# download an ftp URL (colons omitted)
+#ftp//%: 
+#	@wget -T 10 -c --passive-ftp -P $(PARTIALDIR) ftp://$*
+ftp//%: 
+	@wget -T 10 -c -P $(PARTIALDIR) ftp://$*
+
+# link to a local copy of the file
+# (absolute path)
+file///%: 
+	@if test -f /$*; then \
+		gln -sf /$* $(PARTIALDIR)/$(notdir $*); \
+	else \
+		false; \
+	fi
+
+# link to a local copy of the file
+# (relative path)
+file//%: 
+	@if test -f $*; then \
+		gln -sf "$(CURDIR)/$*" $(PARTIALDIR)/$(notdir $*); \
+	else \
+		false; \
+	fi
+
+# Using Jeff Waugh's rsync rule.
+# DOES NOT PRESERVE SYMLINKS!
+rsync//%: 
+	@rsync -azvLP rsync://$* $(PARTIALDIR)/
+
+# Using Jeff Waugh's scp rule
+scp//%:
+	@scp -C $* $(PARTIALDIR)/
+
+# Fetch a SVN repo via http
+svn-http//%:
+	@svn co $(SVNHTTP_CO_ARGS) http://$* $(PARTIALDIR)/$(notdir $*)
+
+#################### CHECKSUM RULES ####################
+
+# check a given file's checksum against $(CHECKSUM_FILE) and
+# error out if it mentions the file without an "OK".
+checksum-%: $(CHECKSUM_FILE) 
+	@echo " ==> Running checksum on $*"
+	@if gegrep -- '/$*$$' $(CHECKSUM_FILE); then \
+		if LC_ALL="C" LANG="C" gmd5sum -c $(CHECKSUM_FILE) 2>&1 | \
+			ggrep -- '$*' | ggrep -v ':[ ]\+OK'; then \
+			echo '(!!!) $* failed checksum test!' 1>&2; \
+			false; \
+		else \
+			echo 'file $* passes checksum test!'; \
+			$(MAKECOOKIE); \
+		fi \
+	else \
+		echo '(!!!) $* not in $(CHECKSUM_FILE) file!' 1>&2; \
+		false; \
+	fi
+		
+
+#################### CHECKNEW RULES ####################
+
+# check a new upstream files are available
+
+UW_ARGS = $(addprefix -u ,$(MASTER_SITES))
+ifneq ($(UFILES_REGEX),)
+	FILES2CHECK = $(shell http_proxy=$(http_proxy) ftp_proxy=$(ftp_proxy) $(GARBIN)/upstream_watch $(UW_ARGS) $(addsuffix ',$(addprefix ',$(UFILES_REGEX))))
+else
+	FILES2CHECK = ""
+endif
+
+check-upstream-and-mail:
+	@if [ -n '$(FILES2CHECK)' ]; then \
+		NEW_FILES=""; \
+		for FILE in $(FILES2CHECK) ""; do \
+			[ -n "$$FILE" ] || continue; \
+			if test -f $(COOKIEDIR)/checknew-$$FILE || echo $(DISTFILES) | grep -w $$FILE >/dev/null; then \
+				: ; \
+			else \
+				NEW_FILES="$$FILE $$NEW_FILES"; \
+			fi; \
+			$(MAKE) checknew-$$FILE >/dev/null; \
+		done; \
+		if [ -n "$$NEW_FILES" ]; then \
+			{ echo ""; \
+			  echo "Hello dear $(GARNAME) maintainer,"; \
+			  echo ""; \
+			  echo "The upstream notification job has detected the availability of new files for $(GARNAME)."; \
+			  echo ""; \
+			  echo "The following upstream file(s):"; \
+			  echo "    $$NEW_FILES"; \
+			  echo ""; \
+			  echo "is/are available at the following url(s):"; \
+			  echo "    $(MASTER_SITES)"; \
+			  echo ""; \
+			  echo "Please consider updating your package." ; \
+			  echo ""; \
+			  echo "---"; \
+			  echo "upstream notification job"; } | $(GARBIN)/mail2maintainer -s '[svn] $(GARNAME) upstream update notification' $(GARNAME); \
+		fi; \
+	fi
+	
+
+check-upstream: 
+	@if [ -n '$(FILES2CHECK)' ]; then \
+		NEW_FILES=""; \
+		for FILE in $(FILES2CHECK) ""; do \
+			[ -n "$$FILE" ] || continue; \
+			if test -f $(COOKIEDIR)/checknew-$$FILE || echo $(DISTFILES) | grep -w $$FILE >/dev/null; then \
+				: ; \
+			else \
+				NEW_FILES="$$FILE $$NEW_FILES"; \
+			fi; \
+			$(MAKE) checknew-$$FILE >/dev/null; \
+		done; \
+		if [ -n "$$NEW_FILES" ]; then \
+			echo "$(GARNAME): new upstream files available: $$NEW_FILES"; \
+		fi; \
+	fi
+	
+checknew-%:
+	@$(MAKECOOKIE)
+
+
+#################### GARCHIVE RULES ####################
+
+# while we're here, let's just handle how to back up our
+# checksummed files
+
+$(GARCHIVEDIR)/%: $(GARCHIVEDIR)
+	@if [ -h $(DOWNLOADDIR)/$* ]; then :; else \
+		gcp -Lr $(DOWNLOADDIR)/$* $@; \
+	fi
+
+
+#################### EXTRACT RULES ####################
+
+TAR_ARGS = --no-same-owner
+
+# rule to extract uncompressed tarballs
+tar-extract-%:
+	@echo " ==> Extracting $(DOWNLOADDIR)/$*"
+	@gtar $(TAR_ARGS) -xf $(DOWNLOADDIR)/$* -C $(EXTRACTDIR)
+	@$(MAKECOOKIE)
+
+# rule to extract files with tar xzf
+tar-gz-extract-%:
+	@echo " ==> Extracting $(DOWNLOADDIR)/$*"
+	@gzip -dc $(DOWNLOADDIR)/$* | gtar $(TAR_ARGS) -xf - -C $(EXTRACTDIR)
+	@$(MAKECOOKIE)
+
+# rule to extract files with tar and bzip
+tar-bz-extract-%:
+	@echo " ==> Extracting $(DOWNLOADDIR)/$*"
+	@bzip2 -dc $(DOWNLOADDIR)/$* | gtar $(TAR_ARGS) -xf - -C $(EXTRACTDIR)
+	@$(MAKECOOKIE)
+
+# extract compressed single files
+bz-extract-%:
+	@echo " ==> Decompressing $(DOWNLOADDIR)/$*"
+	@$(CP) $(DOWNLOADDIR)/$* $(WORKDIR)/
+	@bzip2 -d $(WORKDIR)/$*
+	@$(MAKECOOKIE)
+
+gz-extract-%:
+	@echo " ==> Decompressing $(DOWNLOADDIR)/$*"
+	@$(CP) $(DOWNLOADDIR)/$* $(WORKDIR)/
+	@gzip -d $(WORKDIR)/$*
+	@$(MAKECOOKIE)
+
+# rule to extract files with unzip
+zip-extract-%:
+	@echo " ==> Extracting $(DOWNLOADDIR)/$*"
+	@unzip $(DOWNLOADDIR)/$* -d $(EXTRACTDIR)
+	@$(MAKECOOKIE)
+
+# this is a null extract rule for files which are constant and
+# unchanged (not archives)
+cp-extract-%:
+	@echo " ==> Copying $(DOWNLOADDIR)/$*"
+	@$(CP) -rp $(DOWNLOADDIR)/$* $(WORKDIR)/
+	@$(MAKECOOKIE)
+
+#gets the meat of a .deb into $(WORKSRC)
+deb-bin-extract-%:
+	@echo " ==> Extracting $(DOWNLOADDIR)/$*"
+	@ar x $(DOWNLOADDIR)/$*
+	@rm debian-binary && \
+		mv *.tar.gz $(DOWNLOADDIR) && \
+			mkdir $(WORKSRC) && \
+				gtar $(TAR_ARGS) -xvz -C $(WORKSRC) \
+					-f $(DOWNLOADDIR)/data.tar.gz
+	@$(MAKECOOKIE)
+
+### EXTRACT FILE TYPE MAPPINGS ###
+# These rules specify which of the above extract action rules to use for a
+# given file extension.  Often support for a given extract type can be handled
+# by simply adding a rule here.
+
+extract-%.tar: tar-extract-%.tar
+	@$(MAKECOOKIE)
+
+extract-%.tar.gz: tar-gz-extract-%.tar.gz
+	@$(MAKECOOKIE)
+
+extract-%.tar.Z: tar-gz-extract-%.tar.Z
+	@$(MAKECOOKIE)
+
+extract-%.tgz: tar-gz-extract-%.tgz
+	@$(MAKECOOKIE)
+
+extract-%.taz: tar-gz-extract-%.taz
+	@$(MAKECOOKIE)
+
+extract-%.tar.bz: tar-bz-extract-%.tar.bz
+	@$(MAKECOOKIE)
+
+extract-%.tar.bz2: tar-bz-extract-%.tar.bz2
+	@$(MAKECOOKIE)
+
+extract-%.tbz: tar-bz-extract-%.tbz
+	@$(MAKECOOKIE)
+
+extract-%.zip: zip-extract-%.zip
+	@$(MAKECOOKIE)
+
+extract-%.ZIP: zip-extract-%.ZIP
+	@$(MAKECOOKIE)
+
+extract-%.deb: deb-bin-extract-%.deb
+	@$(MAKECOOKIE)
+
+extract-%.bz2: bz-extract-%.bz2
+	@$(MAKECOOKIE)
+
+extract-%.gz: gz-extract-%.gz
+	@$(MAKECOOKIE)
+
+# anything we don't know about, we just assume is already
+# uncompressed and unarchived in plain format
+extract-%: cp-extract-%
+	@$(MAKECOOKIE)
+
+#################### PATCH RULES ####################
+
+PATCHDIR ?= $(WORKSRC)
+PATCHDIRLEVEL ?= 1
+PATCHDIRFUZZ ?= 2
+GARPATCH = gpatch -d$(PATCHDIR) -p$(PATCHDIRLEVEL) -F$(PATCHDIRFUZZ)
+BASEWORKSRC = $(shell basename $(WORKSRC))
+
+# apply bzipped patches
+bz-patch-%:
+	@echo " ==> Applying patch $(DOWNLOADDIR)/$*"
+	@bzip2 -dc $(DOWNLOADDIR)/$* | $(GARPATCH)
+	@$(MAKECOOKIE)
+
+# apply gzipped patches
+gz-patch-%:
+	@echo " ==> Applying patch $(DOWNLOADDIR)/$*"
+	@gzip -dc $(DOWNLOADDIR)/$* | $(GARPATCH)
+	@$(MAKECOOKIE)
+
+# apply normal patches
+normal-patch-%:
+	@echo " ==> Applying patch $(DOWNLOADDIR)/$*"
+	$(GARPATCH) < $(DOWNLOADDIR)/$*
+	@$(MAKECOOKIE)
+
+# This is used by makepatch
+%/gar-base.diff:
+	@echo " ==> Creating patch $@"
+	@EXTRACTDIR=$(SCRATCHDIR) COOKIEDIR=$(SCRATCHDIR)-$(COOKIEDIR) $(MAKE) extract
+	@PATCHDIR=$(SCRATCHDIR)/$(BASEWORKSRC) COOKIEDIR=$(SCRATCHDIR)-$(COOKIEDIR) $(MAKE) patch
+	@mv $(SCRATCHDIR)/$(BASEWORKSRC) $(WORKSRC).orig
+	@( cd $(WORKDIR); \
+		if gdiff --speed-large-files --minimal -Nru $(BASEWORKSRC).orig $(BASEWORKSRC) > gar-base.diff; then :; else \
+			cd $(CURDIR); \
+			mv -f $(WORKDIR)/gar-base.diff $@; \
+		fi )
+
+### PATCH FILE TYPE MAPPINGS ###
+# These rules specify which of the above patch action rules to use for a given
+# file extension.  Often support for a given patch format can be handled by
+# simply adding a rule here.
+
+patch-%.bz: bz-patch-%.bz
+	@$(MAKECOOKIE)
+
+patch-%.bz2: bz-patch-%.bz2
+	@$(MAKECOOKIE)
+
+patch-%.gz: gz-patch-%.gz
+	@$(MAKECOOKIE)
+
+patch-%.Z: gz-patch-%.Z
+	@$(MAKECOOKIE)
+
+patch-%.diff: normal-patch-%.diff
+	@$(MAKECOOKIE)
+
+patch-%.patch: normal-patch-%.patch
+	@$(MAKECOOKIE)
+
+patch-%: normal-patch-%
+	@$(MAKECOOKIE)
+
+#################### CONFIGURE RULES ####################
+
+TMP_DIRPATHS = --prefix=$(prefix) --exec_prefix=$(exec_prefix) --bindir=$(bindir) --sbindir=$(sbindir) --libexecdir=$(libexecdir) --datadir=$(datadir) --sysconfdir=$(sysconfdir) --sharedstatedir=$(sharedstatedir) --localstatedir=$(localstatedir) --libdir=$(libdir) --infodir=$(infodir) --lispdir=$(lispdir) --includedir=$(includedir) --mandir=$(mandir)
+
+NODIRPATHS += --lispdir
+
+DIRPATHS = $(filter-out $(addsuffix %,$(NODIRPATHS)), $(TMP_DIRPATHS))
+CONFIGURE_ARGS ?= $(DIRPATHS) $(EXTRA_CONFIGURE_ARGS)
+
+# configure a package that has an autoconf-style configure
+# script.
+configure-%/configure:
+	@echo " ==> Running configure in $*"
+	cd $* && $(CONFIGURE_ENV) ./configure $(CONFIGURE_ARGS)
+	@$(MAKECOOKIE)
+
+configure-%/autogen.sh:
+	@echo " ==> Running autogen.sh in $*"
+	@cd $* && $(CONFIGURE_ENV) ./autogen.sh $(CONFIGURE_ARGS)
+	@$(MAKECOOKIE)
+
+# configure a package that uses imake
+# FIXME: untested and likely not the right way to handle the
+# arguments
+configure-%/Imakefile: 
+	@echo " ==> Running xmkmf in $*"
+	@cd $* && $(CONFIGURE_ENV) xmkmf $(CONFIGURE_ARGS)
+	@$(MAKECOOKIE)
+
+configure-%/setup.rb:
+	@echo " ==> Running setup.rb config in $*"
+	@( cd $* ; $(CONFIGURE_ENV) ruby ./setup.rb config $(CONFIGURE_ARGS) )
+	@$(MAKECOOKIE)
+
+#################### BUILD RULES ####################
+
+# build from a standard gnu-style makefile's default rule.
+build-%/Makefile:
+	@echo " ==> Running make in $*"
+	@$(BUILD_ENV) $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $* $(BUILD_ARGS)
+	@$(MAKECOOKIE)
+
+build-%/makefile:
+	@echo " ==> Running make in $*"
+	@$(BUILD_ENV) $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $* $(BUILD_ARGS)
+	@$(MAKECOOKIE)
+
+build-%/GNUmakefile:
+	@echo " ==> Running make in $*"
+	@$(BUILD_ENV) $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $* $(BUILD_ARGS)
+	@$(MAKECOOKIE)
+
+build-%/Jamfile:
+	@echo " ==> Running bjam in $*"
+	@( cd $* ; $(BUILD_ENV) bjam $(JAMFLAGS) $(BUILD_ARGS) )
+	@$(MAKECOOKIE)
+
+# Ruby makefiles
+build-%/Rakefile:
+	@echo " ==> Running rake in $*"
+	@( cd $* ; $(BUILD_ENV) rake $(RAKEFLAGS) $(BUILD_ARGS) )
+	@$(MAKECOOKIE)
+
+build-%/rakefile:
+	@echo " ==> Running rake in $*"
+	@( cd $* ; $(BUILD_ENV) rake $(RAKEFLAGS) $(BUILD_ARGS) )
+	@$(MAKECOOKIE)
+
+build-%/setup.rb:
+	@echo " ==> Running setup.rb setup in $*"
+	@( cd $* ; $(BUILD_ENV) ruby ./setup.rb setup $(BUILD_ARGS) )
+	@$(MAKECOOKIE)
+
+# This can be: build, build_py, build_ext, build_clib, build_scripts
+# See setup.py --help-commands for details
+PYBUILD_CMD ?= build
+build-%/setup.py:
+	@echo " ==> Running setup.py $(PYBUILD_TYPE) in $*"
+	@( cd $* ; $(BUILD_ENV) python ./setup.py $(PYBUILD_CMD) $(BUILD_ARGS) )
+	@$(MAKECOOKIE)
+
+#################### TEST RULES ####################
+
+TEST_TARGET ?= test
+
+# Run tests on pre-built sources
+test-%/Makefile:
+	@echo " ==> Running make $(TEST_TARGET) in $*"
+	@$(BUILD_ENV) $(MAKE) -C $* $(TEST_ARGS) $(TEST_TARGET)
+	@$(MAKECOOKIE)
+
+test-%/makefile:
+	@echo " ==> Running make $(TEST_TARGET) in $*"
+	@$(TEST_ENV) $(MAKE) -C $* $(TEST_ARGS) $(TEST_TARGET)
+	@$(MAKECOOKIE)
+
+test-%/GNUmakefile:
+	@echo " ==> Running make $(TEST_TARGET) in $*"
+	@$(TEST_ENV) $(MAKE) -C $* $(TEST_ARGS) $(TEST_TARGET)
+	@$(MAKECOOKIE)
+
+# Ruby makefiles
+test-%/Rakefile:
+	@echo " ==> Running rake $(TEST_TARGET) in $*"
+	@( cd $* ; $(TEST_ENV) rake $(RAKEFLAGS) $(TEST_ARGS) $(TEST_TARGET) )
+	@$(MAKECOOKIE)
+
+test-%/rakefile:
+	@echo " ==> Running rake $(TEST_TARGET) in $*"
+	@( cd $* ; $(TEST_ENV) rake $(RAKEFLAGS) $(TEST_ARGS) $(TEST_TARGET) )
+	@$(MAKECOOKIE)
+
+test-%/setup.py:
+	@echo " ==> Running setup.py test in $*"
+	@( cd $* ; $(TEST_ENV) python ./setup.py test $(TEST_ARGS) )
+	@$(MAKECOOKIE)
+
+################# INSTALL RULES ####################
+
+# just run make install and hope for the best.
+install-%/Makefile:
+	@echo " ==> Running make install in $*"
+	@$(INSTALL_ENV) $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $* $(INSTALL_ARGS) install
+	@$(MAKECOOKIE)
+
+install-%/makefile:
+	@echo " ==> Running make install in $*"
+	@$(INSTALL_ENV) $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $* $(INSTALL_ARGS) install
+	@$(MAKECOOKIE)
+
+install-%/GNUmakefile:
+	@echo " ==> Running make install in $*"
+	@$(INSTALL_ENV) $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $* $(INSTALL_ARGS) install
+	@$(MAKECOOKIE)
+
+# Ruby makefiles
+install-%/Rakefile:
+	@echo " ==> Running rake install in $*"
+	@( cd $* ; $(INSTALL_ENV) rake $(RAKEFLAGS) $(INSTALL_ARGS) )
+	@$(MAKECOOKIE)
+
+install-%/rakefile:
+	@echo " ==> Running rake install in $*"
+	@( cd $* ; $(INSTALL_ENV) rake $(RAKEFLAGS) $(INSTALL_ARGS) )
+	@$(MAKECOOKIE)
+
+install-%/setup.rb:
+	@echo " ==> Running setup.rb install in $*"
+	@( cd $* ; $(INSTALL_ENV) ruby ./setup.rb install --prefix=$(DESTDIR) )
+	@$(MAKECOOKIE)
+
+# This can be: install, install_lib, install_headers, install_scripts,
+# or install_data.  See setup.py --help-commands for details.
+PYINSTALL_CMD ?= install
+install-%/setup.py:
+	@echo " ==> Running setup.py $(PYINSTALL_CMD) in $*"
+	@( cd $* ; $(INSTALL_ENV) python ./setup.py $(PYINSTALL_CMD) $(INSTALL_ARGS) )
+	@$(MAKECOOKIE)
+
+# pkg-config scripts
+install-%-config:
+	mkdir -p $(STAGINGDIR)/$(GARNAME)
+	$(CP) -f $(DESTDIR)$(bindir)/$*-config $(STAGINGDIR)/$(GARNAME)/
+	$(MAKECOOKIE)
+
+######################################
+# Use a manifest file of the format:
+# src:dest[:mode[:owner[:group]]]
+#   as in...
+# ${WORKSRC}/nwall:${bindir}/nwall:2755:root:tty
+# ${WORKSRC}/src/foo:${sharedstatedir}/foo
+# ${WORKSRC}/yoink:${sysconfdir}/yoink:0600
+
+# Okay, so for the benefit of future generations, this is how it
+# works:
+#
+# First of all, we have this file with colon-separated lines.
+# The $(shell cat foo) routine turns it into a space-separated
+# list of words.  The foreach iterates over this list, putting a
+# colon-separated record in $(ZORCH) on each pass through.
+#
+# Next, we have the macro $(MANIFEST_LINE), which splits a record
+# into a space-separated list, and $(MANIFEST_SIZE), which
+# determines how many elements are in such a list.  These are
+# purely for convenience, and could be inserted inline if need
+# be.
+MANIFEST_LINE = $(subst :, ,$(ZORCH)) 
+MANIFEST_SIZE = $(words $(MANIFEST_LINE))
+
+# So the install command takes a variable number of parameters,
+# and our records have from two to five elements.  Gmake can't do
+# any sort of arithmetic, so we can't do any really intelligent
+# indexing into the list of parameters.
+# 
+# Since the last three elements of the $(MANIFEST_LINE) are what
+# we're interested in, we make a parallel list with the parameter
+# switch text (note the dummy elements at the beginning):
+MANIFEST_FLAGS = notused notused --mode= --owner= --group=
+
+# The following environment variables are set before the
+# installation boogaloo begins.  This ensures that WORKSRC is
+# available to the manifest and that all of the location
+# variables are suitable for *installation* (that is, using
+# DESTDIR)
+
+MANIFEST_ENV += WORKSRC=$(WORKSRC)
+# This was part of the "implicit DESTDIR" regime.  However:
+# http://gar.lnx-bbc.org/wiki/ImplicitDestdirConsideredHarmful
+#MANIFEST_ENV += $(foreach TTT,prefix exec_prefix bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir infodir lispdir includedir mandir,$(TTT)=$(DESTDIR)$($(TTT)))
+
+# ...and then we join a slice of it with the corresponding slice
+# of the $(MANIFEST_LINE), starting at 3 and going to
+# $(MANIFEST_SIZE).  That's where all the real magic happens,
+# right there!
+#
+# following that, we just splat elements one and two of
+# $(MANIFEST_LINE) on the end, since they're the ones that are
+# always there.  Slap a semicolon on the end, and you've got a
+# completed iteration through the foreach!  Beaujolais!
+
+# FIXME: using -D may not be the right thing to do!
+install-$(MANIFEST_FILE):
+	@echo " ==> Installing from $(MANIFEST_FILE)"
+	$(MANIFEST_ENV) ; $(foreach ZORCH,$(shell cat $(MANIFEST_FILE)), ginstall -Dc $(join $(wordlist 3,$(MANIFEST_SIZE),$(MANIFEST_FLAGS)),$(wordlist 3,$(MANIFEST_SIZE),$(MANIFEST_LINE))) $(word 1,$(MANIFEST_LINE)) $(word 2,$(MANIFEST_LINE)) ;)
+	@$(MAKECOOKIE)
+
+#################### DEPENDENCY RULES ####################
+
+# These two lines are here to grandfather in all the packages that use
+# BUILDDEPS
+IMGDEPS += build
+build_DEPENDS = $(BUILDDEPS)
+
+# Standard deps install into the standard install dir.  For the
+# BBC, we set the includedir to the build tree and the libdir to
+# the install tree.  Most dependencies work this way.
+
+$(GARDIR)/%/$(COOKIEDIR)/install:
+	@echo ' ==> Building $* as a dependency'
+	@$(MAKE) -C $(GARDIR)/$* install DESTIMG=$(DESTIMG)
+
+# builddeps need to have everything put in the build DESTIMG
+#$(GARDIR)/%/$(COOKIEROOTDIR)/build.d/install:
+#	@echo ' ==> Building $* as a build dependency'
+#	@$(MAKE) -C $(GARDIR)/$* install	DESTIMG=build
+
+# Source Deps grab the source code for another package
+# XXX: nobody uses this, but it should really be more like
+# $(GARDIR)/%/cookies/patch:
+srcdep-$(GARDIR)/%:
+	@echo ' ==> Grabbing source for $* as a dependency'
+	@$(MAKE) -C $(GARDIR)/$* patch-p extract-p > /dev/null 2>&1 || \
+	 $(MAKE) -C $(GARDIR)/$* patch
+
+# Image deps create dependencies on package installations in
+# images other than the current package's DESTIMG.
+IMGDEP_TARGETS = $(foreach TTT,$($*_DEPENDS),$(subst xyzzy,$(TTT),$(GARDIR)/xyzzy/$(COOKIEROOTDIR)/$*.d/install))
+imgdep-%:
+	@test -z "$(strip $(IMGDEP_TARGETS))" || $(MAKE) DESTIMG="$*" $(IMGDEP_TARGETS)
+
+# Igor's info and man gzipper rule
+gzip-info-man: gzip-info gzip-man
+
+gzip-info:
+	gfind $(DESTDIR) -type f -iname *.info* -not -iname *.gz | \
+		gxargs -r gzip --force
+
+gzip-man:
+	gfind $(DESTDIR) -type f -iname *.[1-8] -size +2 -print | \
+		gxargs -r gzip --force
+
+include $(addprefix $(GARDIR)/,$(EXTRA_LIBS))
+
+# Mmm, yesssss.  cookies my preciousssss!  Mmm, yes downloads it
+# is!  We mustn't have nasty little gmakeses deleting our
+# precious cookieses now must we?
+.PRECIOUS: $(DOWNLOADDIR)/% $(COOKIEDIR)/% $(FILEDIR)/%

Copied: csw/mgar/gar/v1/gar.mk (from rev 2333, csw/mgar/gar.mk)
===================================================================
--- csw/mgar/gar/v1/gar.mk	                        (rev 0)
+++ csw/mgar/gar/v1/gar.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,414 @@
+# vim: ft=make ts=4 sw=4 noet
+#
+# $Id$
+#
+# Copyright (C) 2001 Nick Moffitt
+# 
+# Redistribution and/or use, with or without modification, is
+# permitted.  This software is without warranty of any kind.  The
+# author(s) shall not be liable in the event that use of the
+# software causes damage.
+
+# Comment this out to make much verbosity
+#.SILENT:
+
+#ifeq ($(origin GARDIR), undefined)
+#GARDIR := $(CURDIR)/../..
+#endif
+
+GARDIR ?= ../..
+GARBIN  = $(GARDIR)/bin
+FILEDIR ?= files
+DOWNLOADDIR ?= download
+PARTIALDIR ?= $(DOWNLOADDIR)/partial
+COOKIEROOTDIR ?= cookies
+COOKIEDIR ?= $(COOKIEROOTDIR)/$(DESTIMG).d
+WORKROOTDIR ?= work
+WORKDIR ?= $(WORKROOTDIR)/$(DESTIMG).d
+WORKSRC ?= $(WORKDIR)/$(DISTNAME)
+EXTRACTDIR ?= $(WORKDIR)
+SCRATCHDIR ?= tmp
+CHECKSUM_FILE ?= checksums
+MANIFEST_FILE ?= manifest
+LOGDIR ?= log
+
+DIRSTODOTS = $(subst . /,./,$(patsubst %,/..,$(subst /, ,/$(1))))
+ROOTFROMDEST = $(call DIRSTODOTS,$(DESTDIR))
+MAKEPATH = $(shell echo $(1) | perl -lne 'print join(":", split)')
+TOLOWER = $(shell echo $(1) | tr '[A-Z]' '[a-z]')
+
+PARALLELMFLAGS ?= $(MFLAGS)
+export PARALLELMFLAGS
+
+DISTNAME ?= $(GARNAME)-$(GARVERSION)
+
+ALLFILES ?= $(DISTFILES) $(PATCHFILES)
+
+ifeq ($(MAKE_INSTALL_DIRS),1)
+INSTALL_DIRS = $(addprefix $(DESTDIR),$(prefix) $(exec_prefix) $(bindir) $(sbindir) $(libexecdir) $(datadir) $(sysconfdir) $(sharedstatedir) $(localstatedir) $(libdir) $(infodir) $(lispdir) $(includedir) $(mandir) $(foreach NUM,1 2 3 4 5 6 7 8, $(mandir)/man$(NUM)) $(sourcedir))
+else
+INSTALL_DIRS =
+endif
+
+# For rules that do nothing, display what dependencies they
+# successfully completed
+#DONADA = @echo "	[$@] complete.  Finished rules: $+"
+DONADA = @touch $(COOKIEDIR)/$@; echo "	[$@] complete for $(GARNAME)."
+
+# TODO: write a stub rule to print out the name of a rule when it
+# *does* do something, and handle indentation intelligently.
+
+# Default sequence for "all" is:  fetch checksum extract patch configure build
+all: build
+
+# include the configuration file to override any of these variables
+include $(GARDIR)/gar.conf.mk
+include $(GARDIR)/gar.lib.mk
+
+#################### DIRECTORY MAKERS ####################
+
+# This is to make dirs as needed by the base rules
+$(sort $(DOWNLOADDIR) $(PARTIALDIR) $(COOKIEDIR) $(WORKSRC) $(WORKDIR) $(EXTRACTDIR) $(FILEDIR) $(SCRATCHDIR) $(INSTALL_DIRS) $(GARCHIVEDIR) $(GARPKGDIR) $(STAGINGDIR)) $(COOKIEDIR)/%:
+	@if test -d $@; then : ; else \
+		ginstall -d $@; \
+		echo "ginstall -d $@"; \
+	fi
+
+# These stubs are wildcarded, so that the port maintainer can
+# define something like "pre-configure" and it won't conflict,
+# while the configure target can call "pre-configure" safely even
+# if the port maintainer hasn't defined it.
+# 
+# in addition to the pre-<target> rules, the maintainer may wish
+# to set a "pre-everything" rule, which runs before the first
+# actual target.
+pre-%:
+	@true
+
+post-%:
+	@true
+
+# Call any arbitrary rule recursively for all dependencies
+deep-%: %
+	@for target in "" $(DEPEND_LIST) ; do \
+		test -z "$$target" && continue ; \
+		$(MAKE) -C ../../$$target DESTIMG=$(DESTIMG) $@ ; \
+	done
+	@$(foreach IMG,$(filter-out $(DESTIMG),$(IMGDEPS)),for dep in "" $($(IMG)_DEPENDS); do test -z "$$dep" && continue ; $(MAKE) -C ../../$$dep DESTIMG=$(IMG) $@; done; )
+
+# ========================= MAIN RULES ========================= 
+# The main rules are the ones that the user can specify as a
+# target on the "make" command-line.  Currently, they are:
+#	prereq fetch-list fetch checksum makesum extract checkpatch patch
+#	build rebuild install reinstall uninstall package
+# (some may not be complete yet).
+#
+# Each of these rules has dependencies that run in the following
+# order:
+# 	- run the previous main rule in the chain (e.g., install
+# 	  depends on build)
+#	- run the pre- rule for the target (e.g., configure would
+#	  then run pre-configure)
+#	- generate a set of files to depend on.  These are typically
+#	  cookie files in $(COOKIEDIR), but in the case of fetch are
+#	  actual downloaded files in $(DOWNLOADDIR)
+# 	- run the post- rule for the target
+# 
+# The main rules also run the $(DONADA) code, which prints out
+# what just happened when all the dependencies are finished.
+
+announce:
+	@echo "[===== NOW BUILDING:	$(DISTNAME)	=====]"
+
+# prerequisite	- Make sure that the system is in a sane state for building the package
+PREREQUISITE_TARGETS = $(addprefix prerequisitepkg-,$(PREREQUISITE_BASE_PKGS) $(PREREQUISITE_PKGS)) $(addprefix prerequisite-,$(PREREQUISITE_SCRIPTS))
+
+prerequisite: announce pre-everything $(COOKIEDIR) $(DOWNLOADDIR) $(PARTIALDIR) $(addprefix dep-$(GARDIR)/,$(FETCHDEPS)) pre-prerequisite $(PREREQUISITE_TARGETS) post-prerequisite
+	$(DONADA)
+
+prerequisitepkg-%:
+	@echo " ==> Verifying for installed package $*: \c"
+	@(pkginfo -q $*; if [ $$? -eq 0 ]; then echo "installed"; else echo "MISSING"; exit 1; fi)
+
+install-prerequisitepkg-%:
+	@echo " ==> Verifying for installed package $*: \c"
+	@(pkginfo -q $*; if [ $$? -eq 0 ]; then echo "installed"; else echo "MISSING"; $(PKG_GET) -i $*; fi)
+	@$(MAKECOOKIE)
+
+# install-prerequisites - Install all packages which are prerequisites for the package to be build
+install-prerequisites: $(addprefix install-prerequisitepkg-,$(PREREQUISITE_BASE_PKGS) $(PREREQUISITE_PKGS))
+
+# fetch-list	- Show list of files that would be retrieved by fetch.
+# NOTE: DOES NOT RUN pre-everything!
+fetch-list:
+	@echo "Distribution files:"
+	@$(foreach FILE,$(DISTFILES),echo "\t$(FILE)";)
+	@echo "Patch files:"
+	@$(foreach FILE,$(PATCHFILES),echo "\t$(FILE)";)
+
+# fetch			- Retrieves $(DISTFILES) (and $(PATCHFILES) if defined)
+#				  into $(DOWNLOADDIR) as necessary.
+FETCH_TARGETS =  $(addprefix $(DOWNLOADDIR)/,$(ALLFILES))
+
+fetch: prerequisite pre-fetch $(FETCH_TARGETS) post-fetch
+	$(DONADA)
+
+# returns true if fetch has completed successfully, false
+# otherwise
+fetch-p:
+	@$(foreach COOKIEFILE,$(FETCH_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# checksum		- Use $(CHECKSUMFILE) to ensure that your
+# 				  distfiles are valid.
+CHECKSUM_TARGETS = $(addprefix checksum-,$(filter-out $(NOCHECKSUM),$(ALLFILES)))
+
+checksum: fetch $(COOKIEDIR) pre-checksum $(CHECKSUM_TARGETS) post-checksum
+	$(DONADA)
+
+# returns true if checksum has completed successfully, false
+# otherwise
+checksum-p:
+	@$(foreach COOKIEFILE,$(CHECKSUM_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# makesum		- Generate distinfo (only do this for your own ports!).
+MAKESUM_TARGETS =  $(addprefix $(DOWNLOADDIR)/,$(filter-out $(NOCHECKSUM),$(ALLFILES))) 
+
+makesum: fetch $(MAKESUM_TARGETS)
+	@if test "x$(MAKESUM_TARGETS)" != "x "; then \
+		gmd5sum $(MAKESUM_TARGETS) > $(CHECKSUM_FILE) ; \
+		echo "Checksums made for $(MAKESUM_TARGETS)" ; \
+		cat $(CHECKSUM_FILE) ; \
+	fi
+
+# I am always typing this by mistake
+makesums: makesum
+
+GARCHIVE_TARGETS =  $(addprefix $(GARCHIVEDIR)/,$(ALLFILES))
+
+garchive: checksum $(GARCHIVE_TARGETS) ;
+
+# extract		- Unpacks $(DISTFILES) into $(EXTRACTDIR) (patches are "zcatted" into the patch program)
+EXTRACT_TARGETS = $(addprefix extract-,$(filter-out $(NOEXTRACT),$(DISTFILES)))
+
+extract: checksum $(EXTRACTDIR) $(COOKIEDIR) $(addprefix dep-$(GARDIR)/,$(EXTRACTDEPS)) pre-extract $(EXTRACT_TARGETS) post-extract
+	$(DONADA)
+
+# returns true if extract has completed successfully, false
+# otherwise
+extract-p:
+	@$(foreach COOKIEFILE,$(EXTRACT_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# checkpatch	- Do a "patch -C" instead of a "patch".  Note
+# 				  that it may give incorrect results if multiple
+# 				  patches deal with the same file.
+# TODO: actually write it!
+checkpatch: extract
+	@echo "$@ NOT IMPLEMENTED YET"
+
+# patch			- Apply any provided patches to the source.
+PATCH_TARGETS = $(addprefix patch-,$(PATCHFILES))
+
+patch: extract $(WORKSRC) pre-patch $(PATCH_TARGETS) post-patch
+	$(DONADA)
+
+# returns true if patch has completed successfully, false
+# otherwise
+patch-p:
+	@$(foreach COOKIEFILE,$(PATCH_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# makepatch		- Grab the upstream source and diff against $(WORKSRC).  Since
+# 				  diff returns 1 if there are differences, we remove the patch
+# 				  file on "success".  Goofy diff.
+makepatch: $(SCRATCHDIR) $(FILEDIR) $(FILEDIR)/gar-base.diff
+	$(DONADA)
+
+# this takes the changes you've made to a working directory,
+# distills them to a patch, updates the checksum file, and tries
+# out the build (assuming you've listed the gar-base.diff in your
+# PATCHFILES).  This is way undocumented.  -NickM
+beaujolais: makepatch makesum clean build
+	$(DONADA)
+
+update: makesum garchive clean
+
+# configure		- Runs either GNU configure, one or more local
+# 				  configure scripts or nothing, depending on
+# 				  what's available.
+CONFIGURE_TARGETS = $(addprefix configure-,$(CONFIGURE_SCRIPTS))
+
+# Limit dependencies to all but one category or to exclude one category
+ALL_CATEGORIES = apps cpan devel gnome lang lib net server utils extra
+ifneq ($(BUILD_CATEGORY),)
+NOBUILD_CATEGORY = $(filter-out $(BUILD_CATEGORY),$(ALL_CATEGORIES))
+endif
+
+DEPEND_LIST = $(filter-out $(addsuffix /%,$(NOBUILD_CATEGORY)),$(DEPENDS) $(LIBDEPS) $(BUILDDEPS))
+
+ifneq ($(SKIPDEPEND),1)
+CONFIGURE_DEPS = $(addprefix $(GARDIR)/,$(addsuffix /$(COOKIEDIR)/install,$(DEPEND_LIST)))
+CONFIGURE_IMGDEPS = $(addprefix imgdep-,$(filter-out $(DESTIMG),$(IMGDEPS)))
+#CONFIGURE_BUILDDEPS = $(addprefix $(GARDIR)/,$(addsuffix /$(COOKIEROOTDIR)/build.d/install,$(BUILDDEPS)))
+endif
+
+configure: patch $(CONFIGURE_IMGDEPS) $(CONFIGURE_BUILDDEPS) $(CONFIGURE_DEPS) $(addprefix srcdep-$(GARDIR)/,$(SOURCEDEPS)) pre-configure $(CONFIGURE_TARGETS) post-configure
+	$(DONADA)
+
+# returns true if configure has completed successfully, false
+# otherwise
+configure-p:
+	@$(foreach COOKIEFILE,$(CONFIGURE_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# build			- Actually compile the sources.
+BUILD_TARGETS = $(addprefix build-,$(BUILD_SCRIPTS))
+
+build: configure pre-build $(BUILD_TARGETS) post-build
+	$(DONADA)
+
+# returns true if build has completed successfully, false
+# otherwise
+build-p:
+	@$(foreach COOKIEFILE,$(BUILD_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+buildreset: clean-source
+	@$(foreach COOKIEFILE,$(BUILD_TARGETS), rm -f $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# rebuild		- compile the sources , ignoring "already build" flag.
+rebuild: buildreset build
+
+TEST_TARGETS = $(addprefix test-,$(TEST_SCRIPTS))
+test: build pre-test $(TEST_TARGETS) post-test
+	$(DONADA)
+
+# strip - Strip executables
+POST_INSTALL_TARGETS := strip $(POST_INSTALL_TARGETS)
+strip:
+	@for target in $(STRIP_DIRS) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) ; \
+	do \
+		stripbin $$target ; \
+	done
+	$(DONADA)
+
+# fixconfig - Remove build-time paths config files
+POST_INSTALL_TARGETS := fixconfig $(POST_INSTALL_TARGETS)
+FIXCONFIG_DIRS    ?= $(DESTDIR)$(libdir) $(DESTDIR)$(bindir)
+FIXCONFIG_RMPATHS ?= $(DESTDIR) $(CURDIR)/$(WORKSRC)
+fixconfig:
+	@if test "x$(FIXCONFIG_DIRS)" != "x" ; then \
+		for path in $(FIXCONFIG_DIRS) ; do \
+			if test -d $$path ; then \
+				echo "  ==> fixconfig: $$path" ; \
+				replacer $$path $(FIXCONFIG_RMPATHS) ; \
+			fi ; \
+		done ; \
+	fi
+
+# install		- Test and install the results of a build.
+INSTALL_TARGETS = $(addprefix install-,$(INSTALL_SCRIPTS)) $(addprefix install-license-,$(subst /, ,$(LICENSE)))
+
+install: build $(addprefix dep-$(GARDIR)/,$(INSTALLDEPS)) test $(INSTALL_DIRS) $(PRE_INSTALL_TARGETS) pre-install $(INSTALL_TARGETS) post-install $(POST_INSTALL_TARGETS) 
+	$(DONADA)
+
+# returns true if install has completed successfully, false
+# otherwise
+install-p:
+	@$(foreach COOKIEFILE,$(INSTALL_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# reinstall		- Install the results of a build, ignoring
+# 				  "already installed" flag.
+reinstall: build
+	rm -rf $(COOKIEDIR)/*install*
+	$(MAKE) install
+
+# The clean rule.  It must be run if you want to re-download a
+# file after a successful checksum (or just remove the checksum
+# cookie, but that would be lame and unportable).
+
+CLEAN_SCRIPTS ?= all
+CLEAN_TARGETS  = $(addprefix clean-,$(CLEAN_SCRIPTS))
+
+clean: $(CLEAN_TARGETS)
+
+# Backwards compatability
+cookieclean: clean-cookies
+buildclean:  clean-build
+sourceclean: clean-source
+
+clean-all: clean-cookies
+	@rm -rf $(DOWNLOADDIR)
+
+clean-cookies: clean-build
+	@rm -rf $(COOKIEROOTDIR)
+
+clean-build:
+	@rm -rf $(WORKSRC) $(WORKROOTDIR) $(EXTRACTDIR) \
+		   $(SCRATCHDIR) $(SCRATCHDIR)-$(COOKIEDIR) \
+		   $(SCRATCHDIR)-build $(SCRATCHDIR)-$(COOKIEROOTDIR) \
+		   $(LOGDIR) *~
+
+SRC_CLEAN_TARGET ?= clean
+clean-source:
+	@if test -d $(WORKSRC) ; then \
+		( $(MAKE) -C $(WORKSRC) $(SRC_CLEAN_TARGET) || true ) ; \
+	fi
+
+# Remove specified files/directories
+clean-dirs:
+	@for target in "" $(REMOVE_DIRS) ; do \
+		test -z "$$target" && continue ; \
+		rm -rf $$target ; \
+	done ; \
+
+# Clean an image
+imageclean:
+	@echo " ==> Removing $(COOKIEDIR)"
+	@-rm -rf $(COOKIEDIR)
+	@echo " ==> Removing $(WORKDIR)"
+	@-rm -rf $(WORKDIR)
+
+spotless: imageclean
+	@echo " ==> Removing $(DESTDIR)"
+	@-rm -rf $(DESTDIR)
+
+# Print package dependencies
+PKGDEP_LIST = $(filter-out $(BUILDDEPS),$(DEPEND_LIST))
+printdepends:
+	@for depend in "" $(PKGDEP_LIST) ; do \
+		test -z "$$depend" && continue ; \
+		echo "  $$depend" ; \
+		if test -n "$(DEPFILE)" ; then \
+			check_pkgdb -o $(DEPFILE) $$depend ; \
+		else \
+			check_pkgdb $$depend ; \
+		fi ; \
+	done
+
+# Update inter-package depends
+makedepend:
+	@for gspec in `gfind $(CURDIR) -type f -name '*.gspec' | ggrep files`; do \
+		pkgname=`basename $$gspec .gspec` ; \
+		pkgfiles=`dirname $$gspec` ; \
+		pkgdir=`dirname $$pkgfiles` ; \
+		pkgbuild=`basename $$pkgdir` ; \
+		pkgdep="$$pkgname.depend" ; \
+		echo " ==> $$pkgbuild ($$pkgname)" ; \
+		( cd $$pkgdir ; \
+		  rm -f /tmp/$$pkgdep ; \
+		  if test -f $$pkgfiles/$$pkgdep ; then \
+		  	cat $$pkgfiles/$$pkgdep > /tmp/$$pkgdep ; \
+		  fi ; \
+		  DEPFILE=/tmp/$$pkgdep $(MAKE) printdepends ; \
+		  if test -f /tmp/$$pkgdep ; then \
+		  	sort /tmp/$$pkgdep | uniq > $$pkgfiles/$$pkgname.depend ; \
+		  fi ) ; \
+	done
+
+love:
+	@echo "not war!"
+
+# these targets do not have actual corresponding files
+.PHONY: all fetch-list beaujolais fetch-p checksum-p extract-p patch-p configure-p build-p buildreset rebuild install-p package-p love
+
+# apparently this makes all previous rules non-parallelizable,
+# but the actual builds of the packages will be, according to
+# jdub.
+.NOTPARALLEL:

Copied: csw/mgar/gar/v1/gar.pkg.mk (from rev 2333, csw/mgar/gar.pkg.mk)
===================================================================
--- csw/mgar/gar/v1/gar.pkg.mk	                        (rev 0)
+++ csw/mgar/gar/v1/gar.pkg.mk	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,197 @@
+# vim: ft=make ts=4 sw=4 noet
+#
+# $Id$
+#
+# Copyright 2006 Cory Omand
+#
+# Redistribution and/or use, with or without modification, is
+# permitted.  This software is without warranty of any kind.  The
+# author(s) shall not be liable in the event that use of the
+# software causes damage.
+#
+# gar.pkg.mk - Build Solaris packages
+#
+
+# Set this to your svn binary
+SVN  ?= /opt/csw/bin/svn
+GAWK ?= /opt/csw/bin/gawk
+
+# We have to deal with four cases here:
+# 1. There is no svn binary
+# 2. There is a svn binary, but the directory does not belong to a repository
+# 3. There is a svn binary, but not everything was committed properly
+# 4. There is a svn binary and everything was committed
+
+_HAS_SVN = $(shell if test -x $(SVN); then echo yes; fi)
+ifneq ($(_HAS_SVN),yes)
+  # Case 1: There is no svn binary
+  SVN_REV = NOSVN
+else
+  ifneq ($(shell $(SVN) info >/dev/null 2>&1; echo $$?),0)
+    # Case 2: The directory does not belong to a repository
+    SVN_REV = NOTVERSIONED
+  else
+    # Case 3+4: The directory belongs to a repository
+    ifneq ($(shell $(SVN) status 2>/dev/null),)
+      # Case 3: Not everything was committed properly
+      _SVN_UNCOMMITTED = UNCOMMITTED
+    endif
+    SVN_REV = $(shell $(SVN) info --recursive 2>/dev/null | \
+      $(GAWK) '$$1 == "Revision:" && MAX < $$2 { MAX = $$2 } \
+      END { print "r" MAX }')$(_SVN_UNCOMMITTED)
+  endif
+endif
+
+SPKG_DESC      ?= $(DESCRIPTION)
+SPKG_VERSION   ?= $(GARVERSION)
+SPKG_CATEGORY  ?= application
+SPKG_SOURCEURL ?= $(firstword $(MASTER_SITES))
+SPKG_PACKAGER  ?= Unknown
+SPKG_VENDOR    ?= $(SPKG_SOURCEURL) packaged for CSW by $(SPKG_PACKAGER)
+SPKG_EMAIL     ?= Unknown
+SPKG_PSTAMP    ?= $(LOGNAME)@$(shell hostname)-$(SVN_REV)-$(shell date '+%Y%m%d%H%M%S')
+SPKG_BASEDIR   ?= $(prefix)
+SPKG_CLASSES   ?= none
+SPKG_OSNAME    ?= $(shell uname -s)$(shell uname -r)
+
+SPKG_SPOOLROOT ?= $(DESTROOT)
+SPKG_SPOOLDIR  ?= $(SPKG_SPOOLROOT)/spool.$(GAROSREL)-$(GARCH)
+SPKG_EXPORT    ?= $(WORKDIR)
+SPKG_PKGROOT   ?= $(DESTDIR)
+SPKG_PKGBASE   ?= $(CURDIR)/$(WORKDIR)
+SPKG_WORKDIR   ?= $(CURDIR)/$(WORKDIR)
+
+SPKG_DEPEND_DB  = $(GARDIR)/csw/depend.db
+
+PKGGET_DESTDIR ?=
+
+DEPMAKER_EXTRA_ARGS = --noscript --nodep SUNW
+
+# Construct a revision stamp
+ifeq ($(GARFLAVOR),DBG)
+SPKG_FULL_REVSTAMP=1
+endif
+
+ifeq ($(SPKG_FULL_REVSTAMP),1)
+SPKG_REVSTAMP  ?= ,REV=$(shell date '+%Y.%m.%d.%H.%M')
+else
+SPKG_REVSTAMP  ?= ,REV=$(shell date '+%Y.%m.%d')
+endif
+
+# Is this a full or incremental build?
+SPKG_INCREMENTAL ?= 1
+
+# Where we find our mkpackage global templates
+PKGLIB = $(CURDIR)/$(GARDIR)/pkglib
+
+PKG_EXPORTS  = GARNAME GARVERSION DESCRIPTION CATEGORIES GARCH GARDIR GARBIN
+PKG_EXPORTS += CURDIR WORKDIR WORKSRC
+PKG_EXPORTS += SPKG_REVSTAMP SPKG_PKGNAME SPKG_DESC SPKG_VERSION SPKG_CATEGORY
+PKG_EXPORTS += SPKG_VENDOR SPKG_EMAIL SPKG_PSTAMP SPKG_BASEDIR SPKG_CLASSES
+PKG_EXPORTS += SPKG_OSNAME SPKG_SOURCEURL SPKG_PACKAGER TIMESTAMP
+PKG_EXPORTS += DEPMAKER_EXTRA_ARGS PKGLIB DESTDIR
+
+PKG_ENV  = $(BUILD_ENV)
+PKG_ENV += $(foreach EXP,$(PKG_EXPORTS),$(EXP)="$($(EXP))")
+
+# Canned command for generating admin file names
+# Usage: $(call admfiles,SUNWpackage,depend copyright)
+# pkg.gspec is added by default.
+admfiles = $(1).gspec $(foreach PKG,$(1),$(foreach ADM,$(2),$(PKG).$(ADM)))
+
+# Standard sets of admin files for use with admfiles
+ADMSTANDARD = prototype depend
+ADMISCRIPTS = preinstall postinstall
+ADMUSCRIPTS = preremove postremove
+ADMSCRIPTS  = $(ADMISCRIPTS) $(ADMUSCRIPTS)
+ADMFULLSTD  = $(ADMSTANDARD) $(ADMSCRIPTS) space
+ADMADDON    = $(ADMSTANDARD) postinstall preremove
+
+#
+# Targets
+#
+
+# timestamp - Create a pre-installation timestamp
+#
+TIMESTAMP = $(COOKIEDIR)/timestamp
+PRE_INSTALL_TARGETS += timestamp
+timestamp:
+	@echo " ==> Creating timestamp cookie"
+	@$(MAKECOOKIE)
+
+remove-timestamp:
+	@echo " ==> Removing timestamp cookie"
+	@-rm -f $(TIMESTAMP)
+
+# package - Use the mkpackage utility to create Solaris packages
+#
+
+SPKG_SPECS     ?= $(basename $(filter %.gspec,$(DISTFILES)))
+_PKG_SPECS      = $(filter-out $(NOPACKAGE),$(SPKG_SPECS))
+
+ifneq ($(ENABLE_CHECK),0)
+PACKAGE_TARGETS = $(foreach SPEC,$(_PKG_SPECS), package-$(SPEC) pkgcheck-$(SPEC))
+else
+PACKAGE_TARGETS = $(foreach SPEC,$(_PKG_SPECS), package-$(SPEC))
+endif
+
+SPKG_DESTDIRS = $(SPKG_SPOOLDIR) $(SPKG_EXPORT)
+
+$(SPKG_DESTDIRS):
+	ginstall -d $@
+
+package: install $(SPKG_DESTDIRS) pre-package $(PACKAGE_TARGETS) post-package
+	$(DONADA)
+
+package-%:
+	@echo " ==> Processing $*.gspec"
+	@( $(PKG_ENV) mkpackage --spec $(WORKDIR)/$*.gspec \
+						 --spooldir $(SPKG_SPOOLDIR) \
+						 --destdir  $(SPKG_EXPORT) \
+						 --workdir  $(SPKG_WORKDIR) \
+						 --pkgbase  $(SPKG_PKGBASE) \
+						 --pkgroot  $(SPKG_PKGROOT) \
+						 --compress \
+						 $(MKPACKAGE_ARGS) ) || exit 2
+	@$(MAKECOOKIE)
+
+package-p:
+	@$(foreach COOKIEFILE,$(PACKAGE_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# pkgcheck - check if the package is standards compliant
+#
+pkgcheck: $(addprefix pkgcheck-,$(_PKG_SPECS))
+	$(DONADA)
+
+pkgcheck-%:
+	@echo " ==> Checking standards compliance: $*"
+	@( LC_ALL=C checkpkg $(SPKG_EXPORT)/`$(PKG_ENV) mkpackage -qs $(WORKDIR)/$*.gspec -D pkgfile`.gz ) || exit 2
+
+pkgcheck-p:
+	@$(foreach COOKIEFILE,$(PKGCHECK_TARGETS), test -e $(COOKIEDIR)/$(COOKIEFILE) ;)
+
+# pkgreset - reset working directory for repackaging
+#
+pkgreset: $(addprefix pkgreset-,$(_PKG_SPECS))
+	$(DONADA)
+
+pkgreset-%:
+	@echo " ==> Reset packaging state for $* ($(DESTIMG))"
+	@rm -rf $(foreach T,extract checksum package pkgcheck,$(COOKIEDIR)/*$(T)-$**)
+	@rm -rf $(COOKIEDIR)/pre-package $(COOKIEDIR)/post-package
+	@rm -rf $(WORKDIR)/$*.*
+
+repackage: pkgreset package
+
+# dependb - update the dependency database
+#
+dependb:
+	@dependb --db $(SPKG_DEPEND_DB) \
+             --parent $(CATEGORIES)/$(GARNAME) \
+             --add $(DEPENDS)
+
+# pkgenv - dump the packaging environment
+#
+pkgenv:
+	@$(PKG_ENV) env
+

Copied: csw/mgar/gar/v1/garrc.sample (from rev 2333, csw/mgar/garrc.sample)
===================================================================
--- csw/mgar/gar/v1/garrc.sample	                        (rev 0)
+++ csw/mgar/gar/v1/garrc.sample	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,21 @@
+# vim: ft=make
+#
+# ~/.garrc - Local settings file for the CSW build system.
+#
+# For the most part, any setting found in gar.conf.mk can be overridden by
+# setting (or unsetting) the variable in this file.  The system gar.conf.mk
+# provides a reasonable set of defaults, but customizations may be required to
+# build packages outside of the CSW build stack.
+#
+
+# Packaging information
+SPKG_PACKAGER   = Joe Developer
+SPKG_EMAIL      = jdev at domain.org
+
+# Where to put finished packages
+SPKG_EXPORT     = /export/home/jdev/staging/build-$(shell date '+%d.%b.%Y')
+
+# Proxy settings
+#http_proxy =
+#ftp_proxy =
+

Copied: csw/mgar/gar/v1/pkg.db (from rev 2333, csw/mgar/pkg.db)
===================================================================
--- csw/mgar/gar/v1/pkg.db	                        (rev 0)
+++ csw/mgar/gar/v1/pkg.db	2008-11-21 13:54:37 UTC (rev 2334)
@@ -0,0 +1,790 @@
+apps/bugzilla|CSWbugzilla|bugzilla - Bugzilla defect tracking system.
+apps/daimonin|CSWdaimonin|daimonin - FREE online role playing game (MMORPG)
+apps/easytag|CSWeasytag|easytag - Tag editor for MP3, Ogg Vorbis files and more
+apps/firefox|CSWfirefox|firefox - Firefox Community Edition web browser
+apps/firefox|CSWfirefoxdevel|firefoxdevel - Firefox Community Edition web browser
+apps/firefox|CSWfirefoxrt|firefoxrt - Firefox Community Edition web browser
+apps/flphoto|CSWflphoto|flphoto - basic image management and display program based on the FLTK toolkit
+apps/freeciv|CSWfreeciv|freeciv - a free turn-based multiplayer strategy game (gcc3)
+apps/gtkpod|CSWgtkpod|gtkpod - gtk2 application for Apple iPods
+apps/kdesvn|CSWkdesvn|kdesvn - A Subversion client for KDE
+apps/kile|CSWkile|kile - An integrated LaTeX environment
+apps/listadmin|CSWlistadmin|listadmin - Command line utility for processing the moderator queue on Mailman lists
+apps/lyx|CSWlyx|lyx - WYSIWYM document processor
+apps/mantis|CSWmantis|mantis - Mantis is a free popular web-based bugtracking system
+apps/mplayer|CSWmplayer|mplayer - MPlayer is a movie player which runs on many systems
+apps/ncmpc|CSWncmpc|ncmpc - ncurses client for controlling Music Player Daemons (MPD)
+apps/ogle|CSWogle|ogle - opensource DVD player with DVD menu support
+apps/openoffice|CSWooouizu|ooouizu - An Open Source version of StarOffice.
+apps/openoffice|CSWooouigl|ooouigl - An Open Source version of StarOffice.
+apps/openoffice|CSWooouies|ooouies - An Open Source version of StarOffice.
+apps/openoffice|CSWooouiptbr|ooouiptbr - An Open Source version of StarOffice.
+apps/openoffice|CSWooouienus|ooouienus - An Open Source version of StarOffice.
+apps/openoffice|CSWooouisl|ooouisl - An Open Source version of StarOffice.
+apps/openoffice|CSWoooui|oooui - An Open Source version of StarOffice.
+apps/openoffice|CSWooouida|ooouida - An Open Source version of StarOffice.
+apps/openoffice|CSWooouide|ooouide - An Open Source version of StarOffice.
+apps/openoffice|CSWooouisv|ooouisv - An Open Source version of StarOffice.
+apps/openoffice|CSWooocore|ooocore - An Open Source version of StarOffice.
+apps/openoffice|CSWooouinb|ooouinb - An Open Source version of StarOffice.
+apps/openoffice|CSWooouifr|ooouifr - An Open Source version of StarOffice.
+apps/openoffice|CSWooouinl|ooouinl - An Open Source version of StarOffice.
+apps/openoffice|CSWooouinn|ooouinn - An Open Source version of StarOffice.
+apps/openoffice|CSWooouihu|ooouihu - An Open Source version of StarOffice.
+apps/openoffice|CSWooouica|ooouica - An Open Source version of StarOffice.
+apps/openoffice|CSWooouiaf|ooouiaf - An Open Source version of StarOffice.
+apps/openoffice|CSWooocommon|ooocommon - An Open Source version of StarOffice.
+apps/openoffice|CSWooouiel|ooouiel - An Open Source version of StarOffice.
+apps/openoffice|CSWooouics|ooouics - An Open Source version of StarOffice.
+apps/openoffice|CSWooouiet|ooouiet - An Open Source version of StarOffice.
+apps/openoffice|CSWooouicy|ooouicy - An Open Source version of StarOffice.
+apps/openoffice|CSWooouiit|ooouiit - An Open Source version of StarOffice.
+apps/openoffice|CSWooouisk|ooouisk - An Open Source version of StarOffice.
+apps/openoffice|CSWooouibg|ooouibg - An Open Source version of StarOffice.
+apps/openoffice|CSWooouihr|ooouihr - An Open Source version of StarOffice.
+apps/openoffice|CSWooouiengb|ooouiengb - An Open Source version of StarOffice.
+apps/openoffice|CSWooouipl|ooouipl - An Open Source version of StarOffice.
+apps/openoffice|CSWooouilt|ooouilt - An Open Source version of StarOffice.
+apps/openoffice|CSWooouipt|ooouipt - An Open Source version of StarOffice.
+apps/phpldapadmin|CSWphpldapadmin|phpldapadmin - Web-based LDAP browser to manage your LDAP server
+apps/rl|CSWrl|rl - rl - Randomize Lines
+apps/trac|CSWtrac|trac - Integrated SCM and Project Management
+apps/tsclient|CSWtsclient|tsclient - a frontend for rdesktop and other remote desktop tool
+apps/websvn|CSWwebsvn|websvn - PHP based web interface of Subversion repositories
+apps/wesnoth|CSWwesnoth|wesnoth - a free turn-based strategy game with a fanasy theme
+cpan/Algorithm-Annotate|CSWpmalgannotate|pm_algorithmannotate - represent a series of changes in annotate form
+cpan/Algorithm-Diff|CSWpmalgdiff|pm_algorithmdiff - compute intelligent differences between two files/lists
+cpan/AnyData|CSWpmanydata|pm_anydata - easy access to data in many formats
+cpan/Apache-AuthPAM|CSWpmapauthpam|pm_apacheauthpam - authenticate apache request using PAM services
+cpan/Apache-DBI|CSWpmapachedbi|pm_apachedbi - initiate a persistent database connection
+cpan/Apache-PAR|CSWpmapachepar|pm_apachepar - PAR extension for mod_perl
+cpan/Apache-Session|CSWpmapachesess|pm_apachesess - a persistence framework for session data
+cpan/Apache-Template|CSWpmapachetmpl|pm_apachetmpl - apache/mod_perl interface to the Template Toolkit
+cpan/Apache-Test|CSWpmapachetst|pm_apachetst - Test.pm wrapper with helpers for testing Apache
+cpan/App-CLI|CSWpmappcli|pm_appcli - Dispatcher module for command line interface programs
+cpan/AppConfig|CSWpmappconfig|pm_appconfig - Perl5 module for configuration files and command line arguments.
+cpan/Archive-Extract|CSWpmarchiveextract|pm_archiveextract - A generic archive extracting mechanism
+cpan/Archive-SelfExtract|CSWpmarchivesfx|pm_archivesfx - bundle compressed archives with Perl code
+cpan/Archive-Tar|CSWpmarchivetar|pm_archivetar - module for manipulations of tar archives
+cpan/Archive-Zip|CSWpmarchivezip|pm_archivezip - provide an interface to ZIP archive files.
+cpan/Array-Compare|CSWpmarraycompare|pm_arraycompare - extension for comparing arrays.
+cpan/Array-Window|CSWpmarraywindow|pm_arraywindow - calculate windows/subsets/pages of arrays.
+cpan/Attribute-Handlers|CSWpmattrhnd|pm_attrhnd - simpler definition of attribute handlers
+cpan/Authen-PAM|CSWpmauthenpam|pm_authenpam - interface to PAM library
+cpan/Authen-SASL|CSWpmauthensasl|pm_authensasl - SASL Authentication framework
+cpan/BSD-Resource|CSWpmbsdresource|pm_bsdresource - BSD process resource limit and priority functions
+cpan/Bit-Vector|CSWpmbitvec|pm_bitvector - Efficient bit vector, set of integers and big int math library.
+cpan/C-Scan|CSWpmcscan|pm_cscan - Scan C language files for easily recognized constructs.
+cpan/CGI-Application-Dispatch|CSWpmcgiappdisp|pm_cgiappdisp - Dispatch requests to CGI::Application based objects
+cpan/CGI-Application-Plugin-LogDispatch|CSWpmcgiapplogdisp|pm_cgiapplogdisp - Add Log::Dispatch support to CGI::Application
+cpan/CGI-Application|CSWpmcgiapp|pm_cgiapp - Framework for building reusable web-applications
+cpan/CGI-Builder|CSWpmcgibuilder|pm_cgibuilder - Framework to build simple or complex web-apps
+cpan/CGI-Session|CSWpmcgisession|pm_cgisession - persistent session data in CGI applications
+cpan/CGI-SpeedyCGI|CSWpmspeedycgi|pm_speedycgi - Speed up perl scripts by running them persistently
+cpan/CGI|CSWpmcgi|pm_cgi - simple common gateway interface class
+cpan/CPANPLUS|CSWpmcpanplus|pm_cpanplus - API and CLI access to the CPAN mirrors
+cpan/Cache-Cache|CSWpmcachecache|pm_cachecache - cache interface
+cpan/Cache-Memcached|CSWpmcachememcached|pm_cachememcached - client library for memcached
+cpan/Cache|CSWpmcache|pm_cache - new cache interface.
+cpan/Calendar-CSA|CSWpmccsa|pm_calendar_csa - Perl extension to interface with CDE Calendar Manager
+cpan/Carp-Clan|CSWpmcarpclan|pm_carpclan - report errors from perspective of caller of a "clan" of modules
+cpan/Catalyst|CSWpmcatalyst|pm_catalyst - The Elegant MVC Web Application Framework
+cpan/Chart|CSWpmchart|pm_chart - Charting library based on GD.
+cpan/Class-Accessor|CSWpmclsaccessor|pm_clsaccessor - Automated accessor generation
+cpan/Class-Autouse|CSWpmclsautouse|pm_clsautouse - Run-time class loading on first method call
+cpan/Class-BlackHole|CSWpmclassblackhole|pm_classblackhole - base class to treat unhandled method calls as no-ops
+cpan/Class-Container|CSWpmclscontainer|pm_clscontainer - glues object frameworks together transparently
+cpan/Class-DBI-Loader|CSWpmclassdbiloader|pm_classdbiloader - dynamic definition of Class::DBI sub classes.
+cpan/Class-DBI-Pg|CSWpmclassdbipg|pm_classdbipg - Class::DBI extension for Postgres
+cpan/Class-DBI-SQLite|CSWpmclassdbisqlite|pm_classdbisqlite - extension to Class::DBI for sqlite
+cpan/Class-DBI-mysql|CSWpmclassdbimysql|pm_classdbimysql - extensions to Class::DBI for MySQL
+cpan/Class-DBI|CSWpmclassdbi|pm_classdbi - simple database abstraction
+cpan/Class-Data-Inheritable|CSWpmclsdtainherit|pm_clsdtainherit - inheritable, overridable class data
+cpan/Class-ISA|CSWpmclassisa|pm_classisa - report the search path for a class ISA tree
+cpan/Class-Inspector|CSWpmclassinspector|pm_classinspector - provides information about classes
+cpan/Class-Loader|CSWpmclassloader|pm_classloader - load modules and create objects on demand.
+cpan/Class-ReturnValue|CSWpmclassretval|pm_classretval - a return-value object.
+cpan/Class-Trigger|CSWpmclasstrigger|pm_classtrigger - mixin to add / call inheritable triggers
+cpan/Class-WhiteHole|CSWpmclasswhitehole|pm_classwhitehole - base class to treat unhandled method calls as errors
+cpan/Clone|CSWpmclone|pm_clone - recursively copy Perl datatypes
+cpan/Compress-Raw-Zlib|CSWpmcomprawzlib|pm_comprawzlib - Low-Level Interface to zlib compression library
+cpan/Compress-Zlib|CSWpmcompresszlib|pm_compresszlib - Interface to zlib compression library
+cpan/Config-IniFiles|CSWpmcfginifls|pm_configinifiles - a module for reading .ini-style configuration files.
+cpan/Convert-ASCII-Armour|CSWpmconvertaarm|pm_convertasciiarmour - convert binary octets into ASCII armoured messages.
+cpan/Convert-ASN1|CSWpmconvertasn1|pm_convertasn1 - ASN.1 Encode/Decode library
+cpan/Convert-BinHex|CSWpmconvertbinhex|pm_convertbinhex - extract data from Macintosh BinHex files
+cpan/Convert-PEM|CSWpmconvertpem|pm_convertpem - read/write encrypted ASN.1 PEM files
+cpan/Convert-TNEF|CSWpmconverttnef|pm_converttnef - Perl module to read TNEF files
+cpan/Crypt-Blowfish|CSWpmcryptblowfish|pm_cryptblowfish - Perl Blowfish encryption module
+cpan/Crypt-CAST5_PP|CSWpmcryptcast5pp|pm_cryptcast5pp - CAST5 block cipher in pure Perl
+cpan/Crypt-CBC|CSWpmcryptcbc|pm_cryptcbc - encrypt data with cipher block chaining mode
+cpan/Crypt-DES|CSWpmcryptdes|pm_cryptdes - Perl DES encryption module
+cpan/Crypt-DES_EDE3|CSWpmcryptdesede3|pm_cryptdesede3 - Triple-DES EDE encryption/decryption
+cpan/Crypt-DH|CSWpmcryptdh|pm_cryptdh - Diffie-Hellman key exchange system
+cpan/Crypt-DSA|CSWpmcryptdsa|pm_cryptdsa - DSA signatures and key generation
+cpan/Crypt-IDEA|CSWpmcryptidea|pm_cryptidea - Perl interface to IDEA block cipher
+cpan/Crypt-OpenPGP|CSWpmcryptopenpgp|pm_cryptopenpgp - pure-Perl OpenPGP implementation
+cpan/Crypt-OpenSSL-Bignum|CSWpmcryptosslbignum|pm_cryptosslbignum - Crypt::OpenSSL::Bignum - OpenSSL's multiprecision integer arithmetic
+cpan/Crypt-OpenSSL-DSA|CSWpmcryptossldsa|pm_cryptossldsa - digital signature algorithm using OpenSSL
+cpan/Crypt-OpenSSL-PKCS12|CSWpmcryptosslpkcs12|pm_cryptosslpkcs12 - Perl extension to OpenSSL PKCS12 API.
+cpan/Crypt-OpenSSL-RSA|CSWpmcryptosslrsa|pm_cryptosslrsa - RSA encoding and decoding, using the openSSL libraries
+cpan/Crypt-OpenSSL-Random|CSWpmcryptosslrand|pm_cryptosslrand - routines for accessing the OpenSSL pseudo-random number generator
+cpan/Crypt-OpenSSL-X509|CSWpmcryptosslx509|pm_cryptosslx509 - Perl extension to OpenSSL X509 API.
+cpan/Crypt-Primes|CSWpmcryptprimes|pm_cryptprimes - prime number generator suitable for cryptographic applications.
+cpan/Crypt-RIPEMD160|CSWpmcryptripemd160|pm_cryptripemd160 - Perl extension for the RIPEMD-160 Hash function
+cpan/Crypt-RSA|CSWpmcryptrsa|pm_cryptrsa - RSA public-key cryptosystem.
+cpan/Crypt-Random|CSWpmcryptcbc|pm_cryptcbc - cryptographically secure, true random number generator.
+cpan/Crypt-Rijndael|CSWpmcryptrijndael|pm_cryptrijndael - Crypt::CBC compliant Rijndael encryption module
+cpan/Crypt-SSLeay|CSWpmcryptssleay|pm_cryptssleay - OpenSSL glue that provides LWP https support
+cpan/Crypt-Twofish|CSWpmcrypttwofish|pm_crypttwofish - the Twofish encryption algorithm
+cpan/Curses-UI|CSWpmcursesui|pm_cursesui - a curses based OO user interface framework
+cpan/Curses|CSWpmcurses|pm_curses - terminal screen handling and optimization
+cpan/DBD-AnyData|CSWpmdbdanydata|pm_dbdanydata - DBI access to XML, CSV and other formats
+cpan/DBD-CSV|CSWpmdbdcsv|pm_dbdcsv - DBI driver for CSV files
+cpan/DBD-File|CSWpmdbdfile|pm_dbdfile - base class for writing DBI drivers for plain files
+cpan/DBD-Pg|CSWpmdbdpg|pm_dbdpg - PostgreSQL database driver for the DBI module
+cpan/DBD-SQLite|CSWpmdbdsqlite|pm_dbdsqlite - self contained RDBMS in a DBI driver
+cpan/DBD-mysql|CSWpmdbdmysql|pm_dbdmysql - MySQL driver for the Perl5 Database Interface (DBI)
+cpan/DBD-mysql5|CSWpmdbdmysql5|pm_dbdmysql5 - MySQL 5 DBI Driver.
+cpan/DBI|CSWpmdbi|pm_dbi - database independent interface for Perl
+cpan/DBIx-ContextualFetch|CSWpmdbixctxfetch|pm_dbixctxfetch - add contextual fetches to DBI
+cpan/DBIx-Password|CSWpmdbixpassword|pm_dbixpassword - create a global password file for DB passwords
+cpan/DBIx-SearchBuilder|CSWpmdbixsrchbuilder|pm_dbixsrchbuilder - encapsulate SQL queries and rows in simple perl objects
+cpan/Data-Buffer|CSWpmdatabuffer|pm_databuffer - read/write buffer class
+cpan/Data-Dump|CSWpmdatadump|pm_datadump - pretty printing of data structures
+cpan/Data-Flow|CSWpmdataflow|pm_dataflow - simple-minded recipe-controlled build of data
+cpan/Data-Hierarchy|CSWpmdatahier|pm_datahier - handle data in a hierarchical structure
+cpan/Data-ShowTable|CSWpmdatashowtable|pm_datashowtable - routines to display tabular data in several formats.
+cpan/Data-UUID|CSWpmdatauuid|pm_datauuid - extension for generating unique identifiers
+cpan/Date-Calc|CSWpmdatecalc|pm_datecalc - Gregorian calendar date calculations.
+cpan/Date-Simple|CSWpmdatesimple|pm_datesimple - a simple date object
+cpan/DateManip|CSWpmdatemanip|pm_datemanip - Date manipulation routines
+cpan/Devel-Cover|CSWpmdevelcover|pm_develcover - Code coverage metrics for Perl 
+cpan/Devel-Cycle|CSWpmdevelcycle|pm_develcycle - find memory cycles in objects
+cpan/Devel-LeakTrace|CSWpmdevleaktrace|pm_devleaktrace - indicate where leaked variables are coming from
+cpan/Devel-Size|CSWpmdevsize|pm_devsize - extension for finding the memory usage of Perl variables
+cpan/Devel-StackTrace|CSWpmtempl|pm_template - stack trace and stack trace frame objects
+cpan/Devel-Symdump|CSWpmdevelsymdump|pm_develsymdump - dump symbol names or the symbol table
+cpan/Devel-Trace|CSWpmdeveltrace|pm_develtrace - print out each line before it is executed
+cpan/Digest-BubbleBabble|CSWpmdigestbb|pm_digestbb - Create bubble-babble fingerprints
+cpan/Digest-HMAC|CSWpmdigesthmac|pm_digesthmac - keyed-hashing for message authentication
+cpan/Digest-MD2|CSWpmdigestmd2|pm_digestmd2 - interface to the MD2 Algorithm
+cpan/Digest-Nilsimsa|CSWpmdigestnilsimsa|pm_digestnilsimsa - Perl version of Nilsimsa code
+cpan/Digest-SHA1|CSWpmdigestsha1|pm_digestsha1 - interface to the SHA-1 Algorithm
+cpan/Email-Simple|CSWpmemailsimple|pm_emailsimple - simple parsing of RFC2822 message format and headers
+cpan/Email-Valid|CSWpmemailvalid|pm_emailvalid - check validity of Internet email addresses
+cpan/Env-Path|CSWpmenvpath|pm_envpath - advanced operations on path variables
+cpan/Error|CSWpmerror|pm_error - error/exception handling in an OO-ish way
+cpan/Event-Lib|CSWpmeventlib|pm_eventlib - Perl extentions for event-based programming
+cpan/Event|CSWpmevent|pm_event - event loop processing
+cpan/Exception-Class-DBI|CSWpmexceptclsdbi|pm_exceptclsdbi - DBI exception objects
+cpan/Exception-Class|CSWpmexceptcls|pm_exceptcls - declare real exception classes in Perl
+cpan/ExtUtils-AutoInstall|CSWpmextutautoinst|pm_extutautoinst - Automatic install of dependencies via CPAN
+cpan/ExtUtils-CBuilder|CSWpmextutcbuilder|pm_extutcbuilder - compile and link C code for Perl modules
+cpan/ExtUtils-Depends|CSWpmextutilsdepends|pm_extutilsdepends - easily build XS extensions that depend on XS extensions
+cpan/ExtUtils-F77|CSWpmextutilsf77|pm_extutilsf77 - simple interface to F77 libs
+cpan/ExtUtils-Manifest|CSWpmextutilsmft|pm_extutilsmft - Utilities to write and check a MANIFEST file
+cpan/ExtUtils-ParseXS|CSWpmextutparsexs|pm_extutparsexs - converts Perl XS code into C code
+cpan/ExtUtils-PkgConfig|CSWpmextutpkgconf|pm_extutpkgconf - simplistic interface to pkg-config
+cpan/ExtUtils-XSBuilder|CSWpmextutxsbld|pm_extutxsbld - parse C header files and create XS glue code
+cpan/FCGI|CSWpmfcgi|pm_fcgi - fast CGI module
+cpan/File-Fetch|CSWpmfilefetch|pm_filefetch - A generic file fetching mechanism
+cpan/File-HomeDir|CSWpmfilehomedir|pm_filehomedir - Get the home directory for yourself or other users
+cpan/File-MMagic|CSWpmfilemmagic|pm_filemmagic - Guess file type
+cpan/File-Modified|CSWpmfilemodified|pm_filemodified - checks intelligently if files have changed
+cpan/File-NFSLock|CSWpmfilenfslock|pm_filenfslock - Perl module to do NFS (or not) locking
+cpan/File-Remove|CSWpmfilerm|pm_filerm - remove files and directories
+cpan/File-Tail|CSWpmfiletail|pm_filetail - Perl extension for reading from continously updated files
+cpan/File-Type|CSWpmfiletype|pm_filetype - determine file type using magic
+cpan/File-chdir|CSWpmfilechdir|pm_filechdir - a more sensible way to change directories
+cpan/Font-AFM|CSWpmfontafm|pm_fontafm - interface to Adobe Font Metrics files
+cpan/FreezeThaw|CSWpmfreezethaw|pm_freezethaw - converting Perl structures to strings and back.
+cpan/Frontier-RPC|CSWpmfrontierrpc|pm_frontierrpc - XML-RPC client interface
+cpan/GD-Barcode|CSWpmgdbarcode|pm_gdbarcode - create barcode images with GD
+cpan/GD|CSWpmgd|pm_gd - interface to Gd Graphics Library
+cpan/GDGraph|CSWpmgdgraph|pm_gdgraph - graph plotting module
+cpan/GDGraph3d|CSWpmgdgraph3d|pm_gdgraph3d - create 3D graphs with GD and GD::Graph
+cpan/GDTextUtil|CSWpmgdtextut|pm_gdtextut - text utilities for use with GD
+cpan/Geography-Countries|CSWpmgeocountries|pm_geocountries - 2-letter, 3-letter, and numerical codes for countries.
+cpan/Gimp|CSWpmgimp|pm_gimp - Perl extension for writing Gimp extensions
+cpan/Glib|CSWpmglib|pm_glib - wrappers for the GLib utility and Object libraries
+cpan/Gnome2-Canvas|CSWpmgnome2canvas|pm_gnome2canvas - interface to the Gnome Canvas
+cpan/Gnome2-GConf|CSWpmgnome2gconf|pm_gnome2gconf - wrappers for the GConf configuration engine.
+cpan/Gnome2-Print|CSWpmgnome2print|pm_gnome2print - wrappers for the Gnome Print utilities.
+cpan/Gnome2-VFS|CSWpmgnome2vfs|pm_gnome2vfs - interface to the 2.x series of the GNOME VFS library
+cpan/Gnome2-Wnck|CSWpmgnome2wnck|pm_gnome2wnck - interface to the Window Navigator Construction Kit
+cpan/Gnome2|CSWpmgnome2|pm_gnome2 - interface to the 2.x series of the GNOME libraries
+cpan/Graph|CSWpmgraph|pm_graph - graph operations
+cpan/GraphViz|CSWpmgraphviz|pm_graphviz - interface to the GraphViz graphing tool
+cpan/Gtk2-GladeXML|CSWpmgtk2gladexml|pm_gtk2gladexml - wrappers for the Gtk2::GladeXML utilities.
+cpan/Gtk2-PodViewer|CSWpmgtk2podviewer|pm_gtk2podviewer - a Gtk2 widget for displaying Plain old Documentation (POD).
+cpan/Gtk2-TrayIcon|CSWpmgtk2trayicon|pm_gtk2trayicon - interface to the EggTrayIcon library
+cpan/Gtk2|CSWpmgtk2|pm_gtk2 -  interface to the 2.x series of the Gimp Toolkit library
+cpan/HTML-CalendarMonth|CSWpmhtmlcalmonth|pm_htmlcalmonth - extension for generating and manipulating HTML calendar
+cpan/HTML-Element-Extended|CSWpmhtmlelemext|pm_htmlelemext - manipulate a table composed of HTML::Element style components.
+cpan/HTML-Format|CSWpmhtmlfmt|pm_htmlfmt - format HTML as plaintext
+cpan/HTML-Mason|CSWpmhtmlmason|pm_htmlmason - high-performance, dynamic web site authoring system
+cpan/HTML-Parser|CSWpmhtmlparser|pm_htmlparser - HTML parser class
+cpan/HTML-Scrubber|CSWpmhtmlscrubber|pm_htmlscrubber - extension for scrubbing/sanitizing html
+cpan/HTML-Tagset|CSWpmhtmltagset|pm_htmltagset - data tables useful in parsing HTML
+cpan/HTML-Template|CSWpmhtmltmpl|pm_htmltemplate - Perl module to use HTML Templates from CGI scripts
+cpan/HTML-TokeParser|CSWpmhtmktokeparser|pm_htmktokeparser - HTML::TokeParser - Alternative HTML::Parser interface
+cpan/HTML-Tree|CSWpmhtmltree|pm_htmltree - modules for making parse trees from HTML source.
+cpan/HTTP-Body|CSWpmhttpbody|pm_httpbody - HTTP Body Parser
+cpan/HTTP-DAV|CSWpmhttpdav|pm_httpdav - A WebDAV client library for Perl5
+cpan/Heap|CSWpmheap|pm_heap - extensions for keeping data partially sorted
+cpan/I18N-LangTags|CSWpmi18nlangtags|pm_i18nlangtags - functions for dealing with RFC3066-style language tags
+cpan/IO-Compress-Base|CSWpmiocompbase|pm_iocompbase - Base Class for IO::Compress modules
+cpan/IO-Compress-Zlib|CSWpmiocompzlib|pm_iocompzlib - Read and write gzip and zip files/buffers.
+cpan/IO-Digest|CSWpmiodigest|pm_iodigest - calculate digests while reading or writing
+cpan/IO-Pager|CSWpmiopager|pm_iopager - Select a pager, optionally pipe it output if destination is a TTY
+cpan/IO-Socket-SSL|CSWpmiosocketssl|pm_iosocketssl - nearly transparent SSL encapsulation for IO::Socket::INET.
+cpan/IO-String|CSWpmiostring|pm_iostring - emulate file interface for in-core strings
+cpan/IO-Tty|CSWpmiotty|pm_iotty - pseudo TTY object class
+cpan/IO-Util|CSWpmioutil|pm_ioutil - A selection of general-utility IO functions
+cpan/IO-Zlib|CSWpmiozlib|pm_iozlib - IO:: style interface to Compress::Zlib
+cpan/IO-stringy|CSWpmiostringy|pm_iostringy - I/O on in-core objects like strings and arrays
+cpan/IP-Country|CSWpmipcountry|pm_ipcountry - fast lookup of country codes from IP addresses
+cpan/IPC-Cmd|CSWpmipccmd|pm_ipccmd - Finding and running system commands made easy
+cpan/IPC-Run|CSWpmipcrun|pm_ipcrun - system and background procs w/ piping, redirs, ptys (Unix, Win32)
+cpan/IPC-Run3|CSWpmipcrun3|pm_ipcrun3 - run a subprocess in batch mode
+cpan/IPC-ShareLite|CSWpmipcsharelite|pm_ipcsharelite - light-weight interface to shared memory
+cpan/Ima-DBI|CSWpmimadbi|pm_imadbi - database connection caching and organization
+cpan/Image-Info|CSWpmimageinfo|pm_imageinfo - extract meta information from image files
+cpan/Image-Size|CSWpmimagesize|pm_imagesize - read the dimensions of an image in several popular formats
+cpan/Inline|CSWpminline|pm_inline - write Perl subroutines in other programming languages.
+cpan/Jcode|CSWpmjcode|pm_jcode - japanese charset handler
+cpan/List-MoreUtils|CSWpmlistmoreut|pm_listmoreut - Provide the stuff missing in List::Util
+cpan/Locale-Gettext|CSWpmlocalegettext|pm_localegettext - Message handling functions
+cpan/Locale-Maketext-Fuzzy|CSWpmlclemktxtfuz|pm_lclemktxtfuz - maketext from already interpolated strings
+cpan/Locale-Maketext-Lexicon|CSWpmlclemktxtlex|pm_lclemktxtlex - use other catalog formats in Maketext
+cpan/Locale-Maketext-Simple|CSWpmlclemktxtsimple|pm_lclemktxtsimple - simple interface to Locale::Maketext::Lexicon
+cpan/Log-Dispatch|CSWpmlogdispatch|pm_logdispatch - dispatches messages to one or more outputs
+cpan/Log-Log4perl|CSWpmlog4perl|pm_log4perl - Log4j implementation for Perl
+cpan/Log-Message-Simple|CSWpmlogmsgsimple|pm_logmsgsimple - Standardized logging facilities using the Log::Message module.
+cpan/Log-Message|CSWpmlogmessage|pm_logmessage - Generic message storage mechanism.
+cpan/MIME-Lite|CSWpmmimelite|pm_mimelite - low-calorie MIME generator
+cpan/MIME-Types|CSWpmmimetypes|pm_mimetypes - definition of MIME types
+cpan/MIME-tools|CSWpmmimetools|pm_mimetools - modules for parsing and creating MIME entities
+cpan/MLDBM-Sync|CSWpmmldbmsync|pm_mldbmsync - safe concurrent access to MLDBM databases
+cpan/MLDBM|CSWpmmldbm|pm_mldbm - store multi-level hash structure in single level tied hash
+cpan/Mail-Box-Parser-C|CSWpmmailboxpc|pm_mailboxpc - parsing folders for MailBox with C routines
+cpan/Mail-Box|CSWpmmailbox|pm_mailbox - manage a mailbox, a folder with messages
+cpan/Mail-DKIM|CSWpmmaildkim|pm_maildkim - Mail::DKIM
+cpan/Mail-IMAPClient|CSWpmmailimapclient|pm_mailimapclient - IMAP Client API
+cpan/Mail-SPF-Query|CSWpmmailspfqry|pm_mailspfqry - query sender policy framework
+cpan/Mail-Sendmail|CSWpmmailsendmail|pm_mailsendmail - simple platform independent mailer
+cpan/MailTools|CSWpmmailtools|pm_mailtools - various mail manipulation modules
+cpan/Math-Bezier|CSWpmmathbezier|pm_mathbezier - solution of Bezier curves
+cpan/Math-GMP|CSWpmmathgmp|pm_mathgmp - high speed arbitrary size integer math
+cpan/Math-Interpolate|CSWpmmathinterpolate|pm_mathinterpolate - Useful routines for interpolating data sets
+cpan/Math-Pari|CSWpmmathpari|pm_mathpari - interface to PARI numerical analysis library
+cpan/Module-Build|CSWpmmodulebuild|pm_modulebuild - build and install Perl modules
+cpan/Module-CoreList|CSWpmmodcorelist|pm_modcorelist - What modules shipped with versions of Perl
+cpan/Module-Load-Conditional|CSWpmmodloadcond|pm_modloadcond - Query module information and load at runtime
+cpan/Module-Load|CSWpmmodload|pm_modload - Runtime require of both modules and files
+cpan/Module-Loaded|CSWpmmodloaded|pm_modloaded - Mark modules as loaded or unloaded
+cpan/Module-Pluggable|CSWpmmoduleplug|pm_moduleplug - automatically give your module the ability to have plugins
+cpan/Module-ScanDeps|CSWpmmodulescandeps|pm_modulescandeps - recursively scan Perl code for dependencies
+cpan/Module-Signature|CSWpmmodulesignature|pm_modulesignature - module signature file manipulation
+cpan/Module-Versions-Report|CSWpmmodversrpt|pm_modversrpt - report versions of all modules in memory
+cpan/Net-CIDR-Lite|CSWpmnetcidrlite|pm_netcidrlite - extension for merging IPv4 or IPv6 CIDR addresses
+cpan/Net-DNS|CSWpmnetdns|pm_netdns - interface to the DNS resolver
+cpan/Net-Patricia|CSWpmnetpatricia|pm_netpatricia - Patricia Trie perl module for fast IP address lookups
+cpan/Net-SSH-Perl|CSWpmnetsshperl|pm_netsshperl - client Interface to SSH
+cpan/Net-SSLeay|CSWpmnetssleay|pm_netssleay - extension for using OpenSSL
+cpan/OOTools|CSWpmootools|pm_ootools - Easily create constructors and lvalue accessors
+cpan/Object-Accessor|CSWpmobjaccessor|pm_objaccessor - An interface to create per object accessors
+cpan/Object-MultiType|CSWpmobjmultitype|pm_objmultitype - objects as hash, array, scalar, code and glob at same time.
+cpan/Object-Realize-Later|CSWpmobjrelater|pm_objrelater - delayed creation of objects
+cpan/PAR-Dist|CSWpmpardist|pm_pardist - create and manipulate PAR distributions
+cpan/PAR|CSWpmpar|pm_par - Perl ARchive toolkit
+cpan/PDF-API2|CSWpmpdfapi2|pm_pdfapi2 - create and modify PDF files
+cpan/PDL|CSWpmpdl|pm_pdl - The Perl Data Language
+cpan/POE|CSWpmpoe|pm_poe - portable multitasking and networking framework for Perl
+cpan/Package-Constants|CSWpmpkgconst|pm_pkgconst - List all constants declared in a package
+cpan/Params-Check|CSWpmprmscheck|pm_prmscheck - A generic input parsing/checking mechanism.
+cpan/Params-Validate|CSWpmprmsvldt|pm_prmsvldt - validate method/function parameters
+cpan/Parse-RecDescent|CSWpmparserecdescent|pm_parserecdescent - %var bitname pm_parserecdescent
+cpan/Parse-Syslog|CSWpmparsesyslog|pm_parsesyslog - parse Unix syslog files
+cpan/PatchReader|CSWpmpatchreader|pm_patchreader - Utilities to read and manipulate patches and CVS
+cpan/Path-Class|CSWpmpathclass|pm_pathclass - Cross-platform path specification manipulation
+cpan/Perl-Tidy|CSWperltidy|perltidy - Indent and reformat Perl scripts.
+cpan/PerlIO-eol|CSWpmperlioeol|pm_perlioeol - PerlIO layer for normalizing line endings
+cpan/PerlIO-via-dynamic|CSWpmperlioviadyn|pm_perlioviadyn - dynamic PerlIO layers
+cpan/PerlIO-via-symlink|CSWpmperlioviasym|pm_perlioviasym - PerlIO layers for creating symlinks
+cpan/Pod-Coverage|CSWpmpodcov|pm_podcoverage - checks if the documentation of a module is comprehensive
+cpan/Pod-Escapes|CSWpmpodescapes|pm_podescapes - %var bitname pm_podescapes
+cpan/Pod-POM|CSWpmpodpom|pm_podpom - POD Object Model
+cpan/Pod-Simple|CSWpmpodsimple|pm_podsimple - framework for parsing Pod
+cpan/PodToHTML|CSWpmpodtohtml|pm_podtohtml - Convert POD to trees of HTML::Element
+cpan/Proc-ProcessTable|CSWpmproctbl|pm_procprocesstbl - Perl interface to the unix process table
+cpan/RPC-XML|CSWpmrpcxml|pm_rpcxml - A set of classes for core data, message and XML handling
+cpan/Regexp-Common|CSWpmregexpcom|pm_regexpcom - provide commonly requested regular expressions
+cpan/Regexp-Shellish|CSWpmregexpshellish|pm_regexpshellish - shell-like regular expressions
+cpan/SDF|CSWpmsdf|pm_sdf - Simple Document Format
+cpan/SOAP-Lite|CSWpmsoaplite|pm_soaplite - client and server side SOAP implementation
+cpan/SOAP-WSDL|CSWpmsoapwsdl|pm_soapwsdl - Web Service Descriptor Language support for SOAP::Lite
+cpan/SQL-Statement|CSWpmsqlstatement|pm_sqlstatement - SQL parsing and processing engine
+cpan/SVK|CSWsvk|svk - a distributed version control system
+cpan/SVN-Mirror|CSWpmsvnmirror|pm_svnmirror - mirror remote repository to local Subversion repository
+cpan/SVN-Notify|CSWpmsvnnotify|pm_svnnotify - Subversion activity notification
+cpan/SVN-Simple|CSWpmsvnsimple|pm_svnsimple - a simple interface for driving svn delta editors
+cpan/Scalar-List-Utils|CSWpmscalarlist|pm_scalarlistutils - a selection of general-utility list and scalar subroutines.
+cpan/Schedule-Cron|CSWpmschedulecron|pm_schedulecron - cron-like scheduler for Perl subroutines
+cpan/Solaris-DeviceTree|CSWpmsoldevtree|pm_soldevtree - access to Solaris device information.
+cpan/Solaris-Sysconf|CSWpmsolarissysconf|pm_solarissysconf - get configurable system variables
+cpan/Sort-Versions|CSWpmsortver|pm_sortversions - a module for sorting of revision-like numbers.
+cpan/Spiffy|CSWpmspiffy|pm_spiffy - Spiffy Perl Interface Framework For You
+cpan/Statistics-Descriptive|CSWpmstatsdesc|pm_statsdesc - %var bitname pm_statsdesc
+cpan/String-CRC32|CSWpmstringcrc32|pm_stringcrc32 - interface for cyclic redundency check generation
+cpan/String-ShellQuote|CSWpmstringshellquote|pm_stringshellquote - quote strings for passing through the shell
+cpan/Sub-Override|CSWpmsuboverride|pm_suboverride - Perl extension for easily overriding subroutines
+cpan/Sub-Uplevel|CSWpmsubuplevel|pm_subuplevel - apparently run a function in a higher stack frame
+cpan/Sys-Hostname-Long|CSWpmsyshostnamelong|pm_syshostnamelong - try every conceivable way to get full hostname
+cpan/Syslog|CSWpmunixsyslog|pm_unixsyslog - interface to the UNIX syslog(3) calls
+cpan/Template-Extract|CSWpmtmplextract|pm_tmplextract - use TT2 syntax to extract data from documents
+cpan/Template-TAL|CSWpmtemplatetal|pm_templatetal - Process TAL templates with Perl
+cpan/Template-Toolkit|CSWpmtt2|pm_tt2 - Template Toolkit 2
+cpan/Template-Toolkit|CSWpmtt2-common|pm_tt2common - Template Toolkit 2 (common)
+cpan/Term-Cap|CSWpmtermcap|pm_termcap - termcap interface

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list