packaging changes including canonical manifest support with manifest validation
authorNorm Jacobs <Norm.Jacobs@Sun.COM>
Fri, 16 Jul 2010 00:58:56 -0500
changeset 26 8a9f4e791832
parent 25 48e1871bcdcd
child 27 4daa72fdac4c
packaging changes including canonical manifest support with manifest validation
README
components/bind/Makefile
components/bind/bind.ips
components/file/Makefile
components/file/file.ips
components/lcms/Makefile
components/lcms/lcms.ips
components/pycups/Makefile
components/pycups/pycups.ips
components/rsync/Makefile
components/rsync/rsync.ips
make-rules/ips.mk
make-rules/shared-macros.mk
transforms/comparison-cleanup
transforms/copyright-template
transforms/defaults
transforms/generate-cleanup
transforms/manifest-metadata-template
transforms/publish-cleanup
transforms/variant.arch
--- a/README	Tue Jun 15 12:36:26 2010 -0700
+++ b/README	Fri Jul 16 00:58:56 2010 -0500
@@ -1,40 +1,47 @@
 
-This workspace contains examples of building open source software components using three methodologies.  In the spec-files directory, the pkgbuild is use to build the components from a RPM spec file based build.  In the components directory, a make(1) based build is used.
-
-spec-files
-	spec based build
-
-components
-	GNU make based build(s)
-
-make-rules
-	Shared rules to include in component specific makefiles (instructions)
-
-	make-rules/configure.mk
-		shared rules for components using GNU auto* tools to build
-
-	make-rules/ips.mk
-		shared rules for packaging under IPS
-
-	make-rules/prep.mk
-		shared rules for downloading, unpacking, and patching component
-		source.
-
-	make-rules/setup.py.mk
-		shared rules for components using python setup.py to build
-
-	make-rules/shared-macros.mk
-		common macros that apply to building many things.
-
-tools
-	shared tools for building components
-
-transforms
-	shared pkgmogrify(1) transformations to apply to packages as they are
-	being built and published
+	    Getting started with the Userland Consolidation
 
 
-To build uing the GNU make based build you can
-	$ WS_TOP=$(pwd) ; cd components ; gmake -j 4 publish
-This will construct a files based repository for publishing, create a log directory, build the components (4 at a time) and publish them to the repo.  Logs of each component build will go in the logs directory
+Building the bits
 
+    The Userland consolidation maintains a Mercurial gate at
+    
+        ssh://[email protected]//hg/userland/gate
+        
+    This gate contains build recipies, patches, IPS manifests, etc. necessary
+    to download, prep, build, test, package and publish open source software.
+    In order to build the contents of the Userland gate, you need to clone it.
+    Since you are reading this, you probably already have, but in any event
+    you can do so with the following command
+    
+    $ hg clone ssh://[email protected]//hg/userland/gate /scratch/clone
+    
+    In order to build the bits either individually or collectively, you must
+    set the WS_TOP environment variable to point to the top of your workspace.
+    
+    $ export WS_TOP=/scratch/clone
+    
+    To build and publish the entire contents of the gate, you can use
+    
+    $ cd /scratch/clone
+    $ gmake publish
+    
+    To build and publish a specific component you need to initialize the
+    workspace by building the tools and creating a repository to publish
+    your results in.  The easiest way to do this is to
+    
+    $ cd /scratch/clone
+    $ gmake setup
+    
+    Once you have initialize the the workspace, you can build individual
+    components by
+    
+    $ cd /scratch/clone/components/(component)
+    $ gmake publish
+    
+    All of the bits are are built will be published to the repository created
+    by the setup step (file:///scratch/clone/repo/)  If you build the entire
+    contents of the gate, individual build logs for each component will be
+    located at /scratch/clone/logs/(target):(component).log
+
+
--- a/components/bind/Makefile	Tue Jun 15 12:36:26 2010 -0700
+++ b/components/bind/Makefile	Fri Jul 16 00:58:56 2010 -0500
@@ -28,7 +28,7 @@
 COMPONENT_VERSION=	9.7.0-P2
 COMPONENT_DESCRIPTION=	"Berkeley Internet Name Domain server and utilities"
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_COPYRIGHT=	$(COMPONENT_SRC)/COPYRIGHT
+COMPONENT_PROJECT_URL =	http://www.isc.org/software/bind
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha1:4b805d4a66075a88c93c5b852b928da96467aa2d
 COMPONENT_ARCHIVE_URL=	http://ftp.isc.org/isc/bind9/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -54,6 +54,21 @@
 PKGMOGRIFY_TRANSFORMS +=	$(WS_TOP)/transforms/libtool-drop
 PKGMOGRIFY_TRANSFORMS +=	manifest-drop
 
+PKG_HARDLINKS +=	usr/sbin/named
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_addr_parse.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_buffer.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_conf_clear.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_context.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_endhostent.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_freeaddrinfo.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_freehostent.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_gabn.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_gnba.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_herror.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_inetntop.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_lwpacket_parseheader.3
+PKG_HARDLINKS +=	usr/share/man/man3/lwres_noop.3
+
 # common targets
 build:		$(BUILD_32_and_64)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/bind/bind.ips	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,501 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/$(PUBLISHER)/bind@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.description value=$(COMPONENT_DESCRIPTION)
+set name=pkg.summary value=$(COMPONENT_SUMMARY)
+set name=info.classification \
+    value=org.opensolaris.category.2008:$(COMPONENT_CLASSIFICATION)
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+license COPYRIGHT license="ISC"
+dir path=etc
+dir path=usr
+dir path=usr/bin
+dir path=usr/bin/$(MACH64) variant.arch=$(ARCH)
+dir path=usr/include
+dir path=usr/include/bind9
+dir path=usr/include/dns
+dir path=usr/include/dst
+dir path=usr/include/isc
+dir path=usr/include/isccc
+dir path=usr/include/isccfg
+dir path=usr/include/lwres
+dir path=usr/lib
+dir path=usr/lib/$(MACH64) variant.arch=$(ARCH)
+dir path=usr/sbin
+dir path=usr/share
+dir path=usr/share/man
+dir path=usr/share/man/man1
+dir path=usr/share/man/man3
+dir path=usr/share/man/man5
+dir path=usr/share/man/man8
+dir path=var
+dir path=var/run
+file path=etc/bind.keys
+file path=usr/bin/$(MACH64)/dig variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/host variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/isc-config.sh variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/nslookup variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/nsupdate variant.arch=$(ARCH)
+file path=usr/bin/dig variant.arch=$(ARCH)
+file path=usr/bin/host variant.arch=$(ARCH)
+file path=usr/bin/isc-config.sh
+file path=usr/bin/nslookup variant.arch=$(ARCH)
+file path=usr/bin/nsupdate variant.arch=$(ARCH)
+file path=usr/include/bind9/check.h
+file path=usr/include/bind9/getaddresses.h
+file path=usr/include/bind9/version.h
+file path=usr/include/dns/acl.h
+file path=usr/include/dns/adb.h
+file path=usr/include/dns/byaddr.h
+file path=usr/include/dns/cache.h
+file path=usr/include/dns/callbacks.h
+file path=usr/include/dns/cert.h
+file path=usr/include/dns/compress.h
+file path=usr/include/dns/db.h
+file path=usr/include/dns/dbiterator.h
+file path=usr/include/dns/dbtable.h
+file path=usr/include/dns/diff.h
+file path=usr/include/dns/dispatch.h
+file path=usr/include/dns/dlz.h
+file path=usr/include/dns/dnssec.h
+file path=usr/include/dns/ds.h
+file path=usr/include/dns/enumclass.h
+file path=usr/include/dns/enumtype.h
+file path=usr/include/dns/events.h
+file path=usr/include/dns/fixedname.h
+file path=usr/include/dns/iptable.h
+file path=usr/include/dns/journal.h
+file path=usr/include/dns/keyflags.h
+file path=usr/include/dns/keytable.h
+file path=usr/include/dns/keyvalues.h
+file path=usr/include/dns/lib.h
+file path=usr/include/dns/log.h
+file path=usr/include/dns/master.h
+file path=usr/include/dns/masterdump.h
+file path=usr/include/dns/message.h
+file path=usr/include/dns/name.h
+file path=usr/include/dns/ncache.h
+file path=usr/include/dns/nsec.h
+file path=usr/include/dns/peer.h
+file path=usr/include/dns/portlist.h
+file path=usr/include/dns/private.h
+file path=usr/include/dns/rbt.h
+file path=usr/include/dns/rcode.h
+file path=usr/include/dns/rdata.h
+file path=usr/include/dns/rdataclass.h
+file path=usr/include/dns/rdatalist.h
+file path=usr/include/dns/rdataset.h
+file path=usr/include/dns/rdatasetiter.h
+file path=usr/include/dns/rdataslab.h
+file path=usr/include/dns/rdatastruct.h
+file path=usr/include/dns/rdatatype.h
+file path=usr/include/dns/request.h
+file path=usr/include/dns/resolver.h
+file path=usr/include/dns/result.h
+file path=usr/include/dns/rootns.h
+file path=usr/include/dns/sdb.h
+file path=usr/include/dns/sdlz.h
+file path=usr/include/dns/secalg.h
+file path=usr/include/dns/secproto.h
+file path=usr/include/dns/soa.h
+file path=usr/include/dns/ssu.h
+file path=usr/include/dns/tcpmsg.h
+file path=usr/include/dns/time.h
+file path=usr/include/dns/tkey.h
+file path=usr/include/dns/tsig.h
+file path=usr/include/dns/ttl.h
+file path=usr/include/dns/types.h
+file path=usr/include/dns/validator.h
+file path=usr/include/dns/version.h
+file path=usr/include/dns/view.h
+file path=usr/include/dns/xfrin.h
+file path=usr/include/dns/zone.h
+file path=usr/include/dns/zonekey.h
+file path=usr/include/dns/zt.h
+file path=usr/include/dst/dst.h
+file path=usr/include/dst/gssapi.h
+file path=usr/include/dst/lib.h
+file path=usr/include/dst/result.h
+file path=usr/include/isc/app.h
+file path=usr/include/isc/assertions.h
+file path=usr/include/isc/atomic.h
+file path=usr/include/isc/base64.h
+file path=usr/include/isc/bind9.h
+file path=usr/include/isc/bitstring.h
+file path=usr/include/isc/boolean.h
+file path=usr/include/isc/buffer.h
+file path=usr/include/isc/bufferlist.h
+file path=usr/include/isc/commandline.h
+file path=usr/include/isc/condition.h
+file path=usr/include/isc/dir.h
+file path=usr/include/isc/entropy.h
+file path=usr/include/isc/error.h
+file path=usr/include/isc/event.h
+file path=usr/include/isc/eventclass.h
+file path=usr/include/isc/file.h
+file path=usr/include/isc/formatcheck.h
+file path=usr/include/isc/fsaccess.h
+file path=usr/include/isc/hash.h
+file path=usr/include/isc/heap.h
+file path=usr/include/isc/hex.h
+file path=usr/include/isc/hmacmd5.h
+file path=usr/include/isc/httpd.h
+file path=usr/include/isc/int.h
+file path=usr/include/isc/interfaceiter.h
+file path=usr/include/isc/iterated_hash.h
+file path=usr/include/isc/lang.h
+file path=usr/include/isc/lex.h
+file path=usr/include/isc/lfsr.h
+file path=usr/include/isc/lib.h
+file path=usr/include/isc/list.h
+file path=usr/include/isc/log.h
+file path=usr/include/isc/magic.h
+file path=usr/include/isc/md5.h
+file path=usr/include/isc/mem.h
+file path=usr/include/isc/msgcat.h
+file path=usr/include/isc/msgs.h
+file path=usr/include/isc/mutex.h
+file path=usr/include/isc/mutexblock.h
+file path=usr/include/isc/namespace.h
+file path=usr/include/isc/net.h
+file path=usr/include/isc/netaddr.h
+file path=usr/include/isc/netdb.h
+file path=usr/include/isc/offset.h
+file path=usr/include/isc/once.h
+file path=usr/include/isc/ondestroy.h
+file path=usr/include/isc/os.h
+file path=usr/include/isc/parseint.h
+file path=usr/include/isc/platform.h
+file path=usr/include/isc/print.h
+file path=usr/include/isc/quota.h
+file path=usr/include/isc/radix.h
+file path=usr/include/isc/random.h
+file path=usr/include/isc/ratelimiter.h
+file path=usr/include/isc/refcount.h
+file path=usr/include/isc/region.h
+file path=usr/include/isc/resource.h
+file path=usr/include/isc/result.h
+file path=usr/include/isc/resultclass.h
+file path=usr/include/isc/rwlock.h
+file path=usr/include/isc/serial.h
+file path=usr/include/isc/sha1.h
+file path=usr/include/isc/sha2.h
+file path=usr/include/isc/sockaddr.h
+file path=usr/include/isc/socket.h
+file path=usr/include/isc/stdio.h
+file path=usr/include/isc/stdlib.h
+file path=usr/include/isc/stdtime.h
+file path=usr/include/isc/string.h
+file path=usr/include/isc/symtab.h
+file path=usr/include/isc/syslog.h
+file path=usr/include/isc/task.h
+file path=usr/include/isc/taskpool.h
+file path=usr/include/isc/thread.h
+file path=usr/include/isc/time.h
+file path=usr/include/isc/timer.h
+file path=usr/include/isc/types.h
+file path=usr/include/isc/util.h
+file path=usr/include/isc/version.h
+file path=usr/include/isc/xml.h
+file path=usr/include/isccc/alist.h
+file path=usr/include/isccc/base64.h
+file path=usr/include/isccc/cc.h
+file path=usr/include/isccc/ccmsg.h
+file path=usr/include/isccc/events.h
+file path=usr/include/isccc/lib.h
+file path=usr/include/isccc/result.h
+file path=usr/include/isccc/sexpr.h
+file path=usr/include/isccc/symtab.h
+file path=usr/include/isccc/symtype.h
+file path=usr/include/isccc/types.h
+file path=usr/include/isccc/util.h
+file path=usr/include/isccc/version.h
+file path=usr/include/isccfg/aclconf.h
+file path=usr/include/isccfg/cfg.h
+file path=usr/include/isccfg/grammar.h
+file path=usr/include/isccfg/log.h
+file path=usr/include/isccfg/namedconf.h
+file path=usr/include/isccfg/version.h
+file path=usr/include/lwres/context.h
+file path=usr/include/lwres/int.h
+file path=usr/include/lwres/ipv6.h
+file path=usr/include/lwres/lang.h
+file path=usr/include/lwres/list.h
+file path=usr/include/lwres/lwbuffer.h
+file path=usr/include/lwres/lwpacket.h
+file path=usr/include/lwres/lwres.h
+file path=usr/include/lwres/net.h
+file path=usr/include/lwres/netdb.h
+file path=usr/include/lwres/platform.h
+file path=usr/include/lwres/result.h
+file path=usr/include/lwres/version.h
+file path=usr/lib/$(MACH64)/libbind9.a variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libbind9.la variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libbind9.so.60.0.1 variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libdns.a variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libdns.la variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libdns.so.64.1.1 variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisc.a variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisc.la variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisc.so.60.1.4 variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisccc.a variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisccc.la variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisccc.so.60.0.0 variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisccfg.a variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisccfg.la variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libisccfg.so.60.0.2 variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/liblwres.a variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/liblwres.la variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/liblwres.so.60.0.0 variant.arch=$(ARCH)
+file path=usr/lib/libbind9.a variant.arch=$(ARCH)
+file path=usr/lib/libbind9.la variant.arch=$(ARCH)
+file path=usr/lib/libbind9.so.60.0.1 variant.arch=$(ARCH)
+file path=usr/lib/libdns.a variant.arch=$(ARCH)
+file path=usr/lib/libdns.la variant.arch=$(ARCH)
+file path=usr/lib/libdns.so.64.1.1 variant.arch=$(ARCH)
+file path=usr/lib/libisc.a variant.arch=$(ARCH)
+file path=usr/lib/libisc.la variant.arch=$(ARCH)
+file path=usr/lib/libisc.so.60.1.4 variant.arch=$(ARCH)
+file path=usr/lib/libisccc.a variant.arch=$(ARCH)
+file path=usr/lib/libisccc.la variant.arch=$(ARCH)
+file path=usr/lib/libisccc.so.60.0.0 variant.arch=$(ARCH)
+file path=usr/lib/libisccfg.a variant.arch=$(ARCH)
+file path=usr/lib/libisccfg.la variant.arch=$(ARCH)
+file path=usr/lib/libisccfg.so.60.0.2 variant.arch=$(ARCH)
+file path=usr/lib/liblwres.a variant.arch=$(ARCH)
+file path=usr/lib/liblwres.la variant.arch=$(ARCH)
+file path=usr/lib/liblwres.so.60.0.0 variant.arch=$(ARCH)
+file path=usr/sbin/arpaname variant.arch=$(ARCH)
+file path=usr/sbin/ddns-confgen variant.arch=$(ARCH)
+file path=usr/sbin/dnssec-dsfromkey variant.arch=$(ARCH)
+file path=usr/sbin/dnssec-keyfromlabel variant.arch=$(ARCH)
+file path=usr/sbin/dnssec-keygen variant.arch=$(ARCH)
+file path=usr/sbin/dnssec-revoke variant.arch=$(ARCH)
+file path=usr/sbin/dnssec-settime variant.arch=$(ARCH)
+file path=usr/sbin/dnssec-signzone variant.arch=$(ARCH)
+file path=usr/sbin/genrandom variant.arch=$(ARCH)
+file path=usr/sbin/isc-hmac-fixup variant.arch=$(ARCH)
+file path=usr/sbin/named variant.arch=$(ARCH)
+file path=usr/sbin/named-checkconf variant.arch=$(ARCH)
+file path=usr/sbin/named-checkzone variant.arch=$(ARCH)
+file path=usr/sbin/named-journalprint variant.arch=$(ARCH)
+file path=usr/sbin/nsec3hash variant.arch=$(ARCH)
+file path=usr/sbin/rndc variant.arch=$(ARCH)
+file path=usr/sbin/rndc-confgen variant.arch=$(ARCH)
+file path=usr/share/man/man1/arpaname.1
+file path=usr/share/man/man1/dig.1
+file path=usr/share/man/man1/host.1
+file path=usr/share/man/man1/isc-config.sh.1
+file path=usr/share/man/man1/nslookup.1
+file path=usr/share/man/man1/nsupdate.1
+file path=usr/share/man/man3/lwres.3
+file path=usr/share/man/man3/lwres_addr_parse.3
+file path=usr/share/man/man3/lwres_buffer.3
+file path=usr/share/man/man3/lwres_conf_clear.3
+file path=usr/share/man/man3/lwres_context.3
+file path=usr/share/man/man3/lwres_endhostent.3
+file path=usr/share/man/man3/lwres_freeaddrinfo.3
+file path=usr/share/man/man3/lwres_freehostent.3
+file path=usr/share/man/man3/lwres_gabn.3
+file path=usr/share/man/man3/lwres_gai_strerror.3
+file path=usr/share/man/man3/lwres_getnameinfo.3
+file path=usr/share/man/man3/lwres_getrrsetbyname.3
+file path=usr/share/man/man3/lwres_gnba.3
+file path=usr/share/man/man3/lwres_herror.3
+file path=usr/share/man/man3/lwres_inetntop.3
+file path=usr/share/man/man3/lwres_lwpacket_parseheader.3
+file path=usr/share/man/man3/lwres_noop.3
+file path=usr/share/man/man5/named.conf.5
+file path=usr/share/man/man5/rndc.conf.5
+file path=usr/share/man/man8/ddns-confgen.8
+file path=usr/share/man/man8/dnssec-dsfromkey.8
+file path=usr/share/man/man8/dnssec-keyfromlabel.8
+file path=usr/share/man/man8/dnssec-keygen.8
+file path=usr/share/man/man8/dnssec-revoke.8
+file path=usr/share/man/man8/dnssec-settime.8
+file path=usr/share/man/man8/dnssec-signzone.8
+file path=usr/share/man/man8/genrandom.8
+file path=usr/share/man/man8/isc-hmac-fixup.8
+file path=usr/share/man/man8/lwresd.8
+file path=usr/share/man/man8/named-checkconf.8
+file path=usr/share/man/man8/named-checkzone.8
+file path=usr/share/man/man8/named-journalprint.8
+file path=usr/share/man/man8/named.8
+file path=usr/share/man/man8/nsec3hash.8
+file path=usr/share/man/man8/rndc-confgen.8
+file path=usr/share/man/man8/rndc.8
+hardlink path=usr/sbin/lwresd target=named
+hardlink path=usr/share/man/man3/lwres_buffer_add.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_back.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_clear.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_first.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_forward.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_getmem.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_getuint16.3 \
+    target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_getuint32.3 \
+    target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_getuint8.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_init.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_invalidate.3 \
+    target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_putmem.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_putuint16.3 \
+    target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_putuint32.3 \
+    target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_putuint8.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_buffer_subtract.3 target=lwres_buffer.3
+hardlink path=usr/share/man/man3/lwres_conf_get.3 target=lwres_conf_clear.3
+hardlink path=usr/share/man/man3/lwres_conf_init.3 target=lwres_conf_clear.3
+hardlink path=usr/share/man/man3/lwres_conf_parse.3 target=lwres_conf_clear.3
+hardlink path=usr/share/man/man3/lwres_conf_print.3 target=lwres_conf_clear.3
+hardlink path=usr/share/man/man3/lwres_config.3 target=lwres_conf_clear.3
+hardlink path=usr/share/man/man3/lwres_context_allocmem.3 \
+    target=lwres_context.3
+hardlink path=usr/share/man/man3/lwres_context_create.3 target=lwres_context.3
+hardlink path=usr/share/man/man3/lwres_context_destroy.3 \
+    target=lwres_context.3
+hardlink path=usr/share/man/man3/lwres_context_freemem.3 \
+    target=lwres_context.3
+hardlink path=usr/share/man/man3/lwres_context_initserial.3 \
+    target=lwres_context.3
+hardlink path=usr/share/man/man3/lwres_context_nextserial.3 \
+    target=lwres_context.3
+hardlink path=usr/share/man/man3/lwres_context_sendrecv.3 \
+    target=lwres_context.3
+hardlink path=usr/share/man/man3/lwres_endhostent_r.3 \
+    target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_gabnrequest_free.3 target=lwres_gabn.3
+hardlink path=usr/share/man/man3/lwres_gabnrequest_parse.3 target=lwres_gabn.3
+hardlink path=usr/share/man/man3/lwres_gabnrequest_render.3 \
+    target=lwres_gabn.3
+hardlink path=usr/share/man/man3/lwres_gabnresponse_free.3 target=lwres_gabn.3
+hardlink path=usr/share/man/man3/lwres_gabnresponse_parse.3 \
+    target=lwres_gabn.3
+hardlink path=usr/share/man/man3/lwres_gabnresponse_render.3 \
+    target=lwres_gabn.3
+hardlink path=usr/share/man/man3/lwres_getaddrinfo.3 \
+    target=lwres_freeaddrinfo.3
+hardlink path=usr/share/man/man3/lwres_getaddrsbyname.3 \
+    target=lwres_addr_parse.3
+hardlink path=usr/share/man/man3/lwres_gethostbyaddr.3 \
+    target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_gethostbyaddr_r.3 \
+    target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_gethostbyname.3 \
+    target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_gethostbyname2.3 \
+    target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_gethostbyname_r.3 \
+    target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_gethostent.3 target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_gethostent_r.3 \
+    target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_getipnode.3 target=lwres_freehostent.3
+hardlink path=usr/share/man/man3/lwres_getipnodebyaddr.3 \
+    target=lwres_freehostent.3
+hardlink path=usr/share/man/man3/lwres_getipnodebyname.3 \
+    target=lwres_freehostent.3
+hardlink path=usr/share/man/man3/lwres_getnamebyaddr.3 \
+    target=lwres_addr_parse.3
+hardlink path=usr/share/man/man3/lwres_gnbarequest_free.3 target=lwres_gnba.3
+hardlink path=usr/share/man/man3/lwres_gnbarequest_parse.3 target=lwres_gnba.3
+hardlink path=usr/share/man/man3/lwres_gnbarequest_render.3 \
+    target=lwres_gnba.3
+hardlink path=usr/share/man/man3/lwres_gnbaresponse_free.3 target=lwres_gnba.3
+hardlink path=usr/share/man/man3/lwres_gnbaresponse_parse.3 \
+    target=lwres_gnba.3
+hardlink path=usr/share/man/man3/lwres_gnbaresponse_render.3 \
+    target=lwres_gnba.3
+hardlink path=usr/share/man/man3/lwres_hstrerror.3 target=lwres_herror.3
+hardlink path=usr/share/man/man3/lwres_lwpacket_renderheader.3 \
+    target=lwres_lwpacket_parseheader.3
+hardlink path=usr/share/man/man3/lwres_net_ntop.3 target=lwres_inetntop.3
+hardlink path=usr/share/man/man3/lwres_nooprequest_free.3 target=lwres_noop.3
+hardlink path=usr/share/man/man3/lwres_nooprequest_parse.3 target=lwres_noop.3
+hardlink path=usr/share/man/man3/lwres_nooprequest_render.3 \
+    target=lwres_noop.3
+hardlink path=usr/share/man/man3/lwres_noopresponse_free.3 target=lwres_noop.3
+hardlink path=usr/share/man/man3/lwres_noopresponse_parse.3 \
+    target=lwres_noop.3
+hardlink path=usr/share/man/man3/lwres_noopresponse_render.3 \
+    target=lwres_noop.3
+hardlink path=usr/share/man/man3/lwres_packet.3 \
+    target=lwres_lwpacket_parseheader.3
+hardlink path=usr/share/man/man3/lwres_resutil.3 target=lwres_addr_parse.3
+hardlink path=usr/share/man/man3/lwres_sethostent.3 target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_sethostent_r.3 \
+    target=lwres_endhostent.3
+hardlink path=usr/share/man/man3/lwres_string_parse.3 \
+    target=lwres_addr_parse.3
+link path=usr/lib/$(MACH64)/libbind9.so target=libbind9.so.60.0.1 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libbind9.so.60 target=libbind9.so.60.0.1 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libdns.so target=libdns.so.64.1.1 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libdns.so.64 target=libdns.so.64.1.1 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libisc.so target=libisc.so.60.1.4 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libisc.so.60 target=libisc.so.60.1.4 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libisccc.so target=libisccc.so.60.0.0 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libisccc.so.60 target=libisccc.so.60.0.0 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libisccfg.so target=libisccfg.so.60.0.2 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libisccfg.so.60 target=libisccfg.so.60.0.2 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/liblwres.so target=liblwres.so.60.0.0 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/liblwres.so.60 target=liblwres.so.60.0.0 \
+    variant.arch=$(ARCH)
+link path=usr/lib/libbind9.so target=libbind9.so.60.0.1
+link path=usr/lib/libbind9.so.60 target=libbind9.so.60.0.1
+link path=usr/lib/libdns.so target=libdns.so.64.1.1
+link path=usr/lib/libdns.so.64 target=libdns.so.64.1.1
+link path=usr/lib/libisc.so target=libisc.so.60.1.4
+link path=usr/lib/libisc.so.60 target=libisc.so.60.1.4
+link path=usr/lib/libisccc.so target=libisccc.so.60.0.0
+link path=usr/lib/libisccc.so.60 target=libisccc.so.60.0.0
+link path=usr/lib/libisccfg.so target=libisccfg.so.60.0.2
+link path=usr/lib/libisccfg.so.60 target=libisccfg.so.60.0.2
+link path=usr/lib/liblwres.so target=liblwres.so.60.0.0
+link path=usr/lib/liblwres.so.60 target=liblwres.so.60.0.0
+link path=usr/sbin/named-compilezone target=named-checkzone
+link path=usr/share/man/man8/named-compilezone.8 target=named-checkzone.8
+depend fmri=pkg:/[email protected] type=require
+depend fmri=pkg:/library/[email protected] type=require
+depend fmri=pkg:/library/security/[email protected] type=require
+depend fmri=pkg:/library/[email protected] type=require
+depend fmri=pkg:/system/library/[email protected] type=require
+depend fmri=pkg:/system/[email protected] type=require
+
+
+
--- a/components/file/Makefile	Tue Jun 15 12:36:26 2010 -0700
+++ b/components/file/Makefile	Fri Jul 16 00:58:56 2010 -0500
@@ -28,7 +28,7 @@
 COMPONENT_VERSION=	5.0.4
 COMPONENT_DESCRIPTION=	"command and library to determine file type"
 COMPONENT_SRC=		$(COMPONENT_NAME)-5.04
-COMPONENT_COPYRIGHT=	$(COMPONENT_SRC)/COPYING
+COMPONENT_PROJECT_URL =	ftp://ftp.astron.com/pub/file/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha1:56ddf7135471aa656334ed8fefe1112bcccc2cc3
 COMPONENT_ARCHIVE_URL=	ftp://ftp.fu-berlin.de/unix/tools/file/$(COMPONENT_ARCHIVE)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/file/file.ips	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,69 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/$(PUBLISHER)/file@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.description value=$(COMPONENT_DESCRIPTION)
+set name=pkg.summary value=$(COMPONENT_SUMMARY)
+set name=info.classification \
+    value=org.opensolaris.category.2008:$(COMPONENT_CLASSIFICATION)
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+license COPYING license="BSD-like"
+dir path=usr
+dir path=usr/bin
+dir path=usr/bin/$(MACH64) variant.arch=$(ARCH)
+dir path=usr/include
+dir path=usr/lib
+dir path=usr/lib/$(MACH64) variant.arch=$(ARCH)
+dir path=usr/share
+dir path=usr/share/man
+dir path=usr/share/man/man1
+dir path=usr/share/man/man3
+dir path=usr/share/man/man4
+dir path=usr/share/man/man5
+dir path=usr/share/misc
+file path=usr/bin/$(MACH64)/file variant.arch=$(ARCH)
+file path=usr/bin/file variant.arch=$(ARCH)
+file path=usr/include/magic.h
+file path=usr/lib/$(MACH64)/libmagic.a variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libmagic.la variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/libmagic.so.1.0.0 variant.arch=$(ARCH)
+file path=usr/lib/libmagic.a variant.arch=$(ARCH)
+file path=usr/lib/libmagic.la variant.arch=$(ARCH)
+file path=usr/lib/libmagic.so.1.0.0 variant.arch=$(ARCH)
+file path=usr/share/man/man1/file.1
+file path=usr/share/man/man3/libmagic.3
+file path=usr/share/man/man4/magic.4
+file path=usr/share/misc/magic.mgc
+link path=usr/lib/$(MACH64)/libmagic.so target=libmagic.so.1.0.0 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/libmagic.so.1 target=libmagic.so.1.0.0 \
+    variant.arch=$(ARCH)
+link path=usr/lib/libmagic.so target=libmagic.so.1.0.0
+link path=usr/lib/libmagic.so.1 target=libmagic.so.1.0.0
+depend fmri=pkg:/library/[email protected] type=require
+depend fmri=pkg:/system/[email protected] type=require
+
+
+
--- a/components/lcms/Makefile	Tue Jun 15 12:36:26 2010 -0700
+++ b/components/lcms/Makefile	Fri Jul 16 00:58:56 2010 -0500
@@ -28,7 +28,7 @@
 COMPONENT_VERSION=	1.19
 COMPONENT_DESCRIPTION=	"Little Color Management System"
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_COPYRIGHT=	$(COMPONENT_SRC)/COPYING
+COMPONENT_PROJECT_URL=	http://www.littlecms.com/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha1:d5b075ccffc0068015f74f78e4bc39138bcfe2d4
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/project/lcms/$(COMPONENT_NAME)/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)?use_mirror=voxel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/lcms/lcms.ips	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,86 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/$(PUBLISHER)/lcms@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.description value=$(COMPONENT_DESCRIPTION)
+set name=pkg.summary value=$(COMPONENT_SUMMARY)
+set name=info.classification \
+    value=org.opensolaris.category.2008:$(COMPONENT_CLASSIFICATION)
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+license COPYING license="LCMS"
+dir path=usr
+dir path=usr/bin
+dir path=usr/bin/$(MACH64) variant.arch=$(ARCH)
+dir path=usr/include
+dir path=usr/lib
+dir path=usr/lib/$(MACH64) variant.arch=$(ARCH)
+dir path=usr/lib/$(MACH64)/pkgconfig variant.arch=$(ARCH)
+dir path=usr/lib/pkgconfig
+dir path=usr/share
+dir path=usr/share/man
+dir path=usr/share/man/man1
+file path=usr/bin/$(MACH64)/icc2ps variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/icclink variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/icctrans variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/jpegicc variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/tiffdiff variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/tifficc variant.arch=$(ARCH)
+file path=usr/bin/$(MACH64)/wtpt variant.arch=$(ARCH)
+file path=usr/bin/icc2ps variant.arch=$(ARCH)
+file path=usr/bin/icclink variant.arch=$(ARCH)
+file path=usr/bin/icctrans variant.arch=$(ARCH)
+file path=usr/bin/jpegicc variant.arch=$(ARCH)
+file path=usr/bin/tiffdiff variant.arch=$(ARCH)
+file path=usr/bin/tifficc variant.arch=$(ARCH)
+file path=usr/bin/wtpt variant.arch=$(ARCH)
+file path=usr/include/icc34.h
+file path=usr/include/lcms.h
+file path=usr/lib/$(MACH64)/liblcms.a variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/liblcms.la variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/liblcms.so.1.0.19 variant.arch=$(ARCH)
+file path=usr/lib/$(MACH64)/pkgconfig/lcms.pc variant.arch=$(ARCH)
+file path=usr/lib/liblcms.a variant.arch=$(ARCH)
+file path=usr/lib/liblcms.la variant.arch=$(ARCH)
+file path=usr/lib/liblcms.so.1.0.19 variant.arch=$(ARCH)
+file path=usr/lib/pkgconfig/lcms.pc
+file path=usr/share/man/man1/icc2ps.1
+file path=usr/share/man/man1/icclink.1
+file path=usr/share/man/man1/jpegicc.1
+file path=usr/share/man/man1/tifficc.1
+file path=usr/share/man/man1/wtpt.1
+link path=usr/lib/$(MACH64)/liblcms.so target=liblcms.so.1.0.19 \
+    variant.arch=$(ARCH)
+link path=usr/lib/$(MACH64)/liblcms.so.1 target=liblcms.so.1.0.19 \
+    variant.arch=$(ARCH)
+link path=usr/lib/liblcms.so target=liblcms.so.1.0.19
+link path=usr/lib/liblcms.so.1 target=liblcms.so.1.0.19
+depend fmri=pkg:/image/library/[email protected] type=require
+depend fmri=pkg:/image/library/[email protected] type=require
+depend fmri=pkg:/library/[email protected] type=require
+depend fmri=pkg:/system/library/[email protected] type=require
+depend fmri=pkg:/system/[email protected] type=require
+
+
+
--- a/components/pycups/Makefile	Tue Jun 15 12:36:26 2010 -0700
+++ b/components/pycups/Makefile	Fri Jul 16 00:58:56 2010 -0500
@@ -28,7 +28,7 @@
 COMPONENT_VERSION=	1.9.46
 COMPONENT_DESCRIPTION=	"Python language bindings for CUPS"
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_COPYRIGHT=	$(COMPONENT_SRC)/COPYING
+COMPONENT_PROJECT_URL=	http://cyberelk.net/tim/software/pycups/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	sha1:3d58a0f7b4a1b6a2880baf9ef5e14eae461d0982
 COMPONENT_ARCHIVE_URL=	http://cyberelk.net/tim/data/pycups/$(COMPONENT_ARCHIVE)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/pycups/pycups.ips	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,46 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/$(PUBLISHER)/pycups@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.description value=$(COMPONENT_DESCRIPTION)
+set name=pkg.summary value=$(COMPONENT_SUMMARY)
+set name=info.classification \
+    value=org.opensolaris.category.2008:$(COMPONENT_CLASSIFICATION)
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+license COPYING license="GPLv2"
+dir path=usr
+dir path=usr/lib
+dir path=usr/lib/python2.6
+dir path=usr/lib/python2.6/site-packages
+dir path=usr/lib/python2.6/site-packages/64
+file path=usr/lib/python2.6/site-packages/64/cups.so variant.arch=$(ARCH)
+file path=usr/lib/python2.6/site-packages/cups-1.0-py2.6.egg-info
+file path=usr/lib/python2.6/site-packages/cups.so variant.arch=$(ARCH)
+depend fmri=pkg:/library/print/[email protected] type=require
+depend fmri=pkg:/runtime/[email protected] type=require
+depend fmri=pkg:/system/[email protected] type=require
+
+
+
--- a/components/rsync/Makefile	Tue Jun 15 12:36:26 2010 -0700
+++ b/components/rsync/Makefile	Fri Jul 16 00:58:56 2010 -0500
@@ -28,7 +28,7 @@
 COMPONENT_VERSION=	3.0.7
 COMPONENT_DESCRIPTION=	"utility for fast incremental file transfer"
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_COPYRIGHT=	$(COMPONENT_SRC)/COPYING
+COMPONENT_PROJECT_URL=	http://www.samba.org/rsync/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha1:63426a1bc71991d93159cd522521fbacdafb7a61
 COMPONENT_ARCHIVE_URL=	http://www.samba.org/ftp/$(COMPONENT_NAME)/src/$(COMPONENT_ARCHIVE)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/rsync/rsync.ips	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,45 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri \
+    value=pkg:/$(PUBLISHER)/rsync@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.description value=$(COMPONENT_DESCRIPTION)
+set name=pkg.summary value=$(COMPONENT_SUMMARY)
+set name=info.classification \
+    value=org.opensolaris.category.2008:$(COMPONENT_CLASSIFICATION)
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+license COPYING license="GPLv2"
+dir path=usr
+dir path=usr/bin
+dir path=usr/share
+dir path=usr/share/man
+dir path=usr/share/man/man1
+dir path=usr/share/man/man5
+file path=usr/bin/rsync variant.arch=$(ARCH)
+file path=usr/share/man/man1/rsync.1
+file path=usr/share/man/man5/rsyncd.conf.5
+depend fmri=pkg:/system/[email protected] type=require
+
+
+
--- a/make-rules/ips.mk	Tue Jun 15 12:36:26 2010 -0700
+++ b/make-rules/ips.mk	Fri Jul 16 00:58:56 2010 -0500
@@ -35,47 +35,148 @@
 # This set of rules makes the "publish" target the default target for make(1)
 #
 
-PKGSEND =	/usr/bin/pkgsend
+PKGDEPEND =	/usr/bin/pkgdepend
+PKGFMT =	/usr/bin/pkgfmt
 PKGMOGRIFY =	/usr/bin/pkgmogrify
-PKGDEPEND =	/usr/bin/pkgdepend
+PKGSEND =	/usr/bin/pkgsend
+
+# Package headers should all pretty much follow the same format
+METADATA_TEMPLATE =		$(WS_TOP)/transforms/manifest-metadata-template
+COPYRIGHT_TEMPLATE =		$(WS_TOP)/transforms/copyright-template
+
+# order is important
+GENERATE_TRANSFORMS +=		$(WS_TOP)/transforms/generate-cleanup
+GENERATE_TRANSFORMS +=		$(WS_TOP)/transforms/variant.arch
+
+COMPARISON_TRANSFORMS +=	$(WS_TOP)/transforms/comparison-cleanup
+COMPARISON_TRANSFORMS +=	$(PKGMOGRIFY_TRANSFORMS)
+
+# order is important
+PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/defaults
+PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/actuators
+PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/devel
+PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/docs
+PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/locale
+PUBLISH_TRANSFORMS +=	$(PKGMOGRIFY_TRANSFORMS)
+PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/publish-cleanup
 
-# Add some default transforms that should apply to everyone
-PKGMOGRIFY_TRANSFORMS +=	$(WS_TOP)/transforms/defaults
-PKGMOGRIFY_TRANSFORMS +=	$(WS_TOP)/transforms/actuators
-PKGMOGRIFY_TRANSFORMS +=	$(WS_TOP)/transforms/devel
-PKGMOGRIFY_TRANSFORMS +=	$(WS_TOP)/transforms/docs
-PKGMOGRIFY_TRANSFORMS +=	$(WS_TOP)/transforms/locale
+PKG_MACROS +=		MACH=$(MACH)
+PKG_MACROS +=		ARCH=$(MACH)
+PKG_MACROS +=		MACH32=$(MACH32)
+PKG_MACROS +=		MACH64=$(MACH64)
+PKG_MACROS +=		IPS_PKG_NAME=$(IPS_PKG_NAME)
+PKG_MACROS +=		PUBLISHER=$(PUBLISHER)
+PKG_MACROS +=		CONSOLIDATION=$(CONSOLIDATION)
+PKG_MACROS +=		BUILD_VERSION=$(BUILD_VERSION)
+PKG_MACROS +=		SOLARIS_VERSION=$(SOLARIS_VERSION)
+PKG_MACROS +=		OS_VERSION=$(OS_VERSION)
+PKG_MACROS +=		IPS_COMPONENT_VERSION=$(IPS_COMPONENT_VERSION)
+PKG_MACROS +=		COMPONENT_PROJECT_URL=$(COMPONENT_PROJECT_URL)
+PKG_MACROS +=		COMPONENT_ARCHIVE_URL=$(COMPONENT_ARCHIVE_URL)
 
-MANIFEST =	manifest-$(MACH)
+PKG_OPTIONS +=		$(PKG_MACROS:%=-D %)
+# multi-word macros get broken up, so we handle them "specially"
+PKG_OPTIONS +=		-D COMPONENT_SUMMARY=\"$(COMPONENT_SUMMARY)\"
+PKG_OPTIONS +=		-D COMPONENT_DESCRIPTION=\"$(COMPONENT_DESCRIPTION)\"
+PKG_OPTIONS +=		-D COMPONENT_CLASSIFICATION=\"$(COMPONENT_CLASSIFICATION)\"
+
+MANIFEST_BASE =		$(COMPONENT_SRC)/manifest-$(MACH)
 
-.DEFAULT:	publish
+CANONICAL_MANIFESTS =	$(wildcard *.ips)
+GENERATED =		$(MANIFEST_BASE)-generated
+COMBINED =		$(MANIFEST_BASE)-combined
+MANIFESTS =		$(CANONICAL_MANIFESTS:%=$(MANIFEST_BASE)-%)
 
-publish:	$(COMPONENT_SRC)/.published
+
+MOGRIFIED=$(CANONICAL_MANIFESTS:%.ips=$(MANIFEST_BASE)-%.resolved)
+PUBLISHED=$(MOGRIFIED:%.resolved=%.published)
 
 COPYRIGHT_FILE =	$(COMPONENT_NAME)-$(COMPONENT_VERSION).copyright
+IPS_PKG_NAME =		$(COMPONENT_NAME)
 IPS_COMPONENT_VERSION =	$(COMPONENT_VERSION)
 
-$(PROTO_DIR)/$(COPYRIGHT_FILE):	$(COMPONENT_COPYRIGHT)
-	$(CP) $< $@
+.DEFAULT:		publish
+
+.SECONDARY:		$(GENERATED).fdeps
+
+publish:		install $(COMPONENT_SRC)/.published
+
+sample-manifest:	$(GENERATED).ips
+
+#
+# Rules for generating a manifest automatically.  Generated manifests will
+# contain the following:
+#    copyright - template copyright information
+#    metadata  - mogrified template metadata
+#    actions   - "normalized" actions for the paths to be installed.
+#    depends   - automatically generated dependencies
+#
 
-$(COMPONENT_SRC)/$(MANIFEST):	install
-	pkgsend generate $(PROTO_DIR) >$@
+# transform template metadata into slightly more package specific metadata.
+$(GENERATED).metadata:	$(METADATA_TEMPLATE) install
+	$(PKGMOGRIFY) -D IPS_PKG_NAME=$(IPS_PKG_NAME) $< | \
+		sed -e '/^$$/d' -e '/^#.*$$/d' | $(PKGFMT) >$@
+
+# generate actions from the proto dir
+$(GENERATED).generate:	install
+	$(PKGSEND) generate $(PKG_HARDLINKS:%=--target %) $(PROTO_DIR) >$@
+
+# convert actions to a "normalized" format
+$(GENERATED).actions:	$(GENERATED).generate
+	$(PKGMOGRIFY) $(PKG_OPTIONS) $< $(GENERATE_TRANSFORMS) | \
+		sed -e '/^$$/d' -e '/^#.*$$/d' | $(PKGFMT) >$@
+
+# generate dependencies
+$(MANIFEST_BASE)-%.fdeps:	$(MANIFEST_BASE)-%.generate
+	$(PKGDEPEND) generate $(PKG_OPTIONS) $< $(PROTO_DIR) >$@
+
+$(MANIFEST_BASE)-%.depend:	$(MANIFEST_BASE)-%.fdeps
+	$(PKGDEPEND) resolve -o $< | sed -e '1d' >$@
 
-$(COMPONENT_SRC)/$(MANIFEST).mog:	$(COMPONENT_SRC)/$(MANIFEST) $(PROTO_DIR)/$(COPYRIGHT_FILE)
-	echo "set name=pkg.fmri value=pkg:/$(PUBLISHER)/$(COMPONENT_NAME)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)" >$@
-	echo "set name=pkg.description value=\"$(COMPONENT_DESCRIPTION)\"" >>$@
-	echo "set name=pkg.name value=\"$(COMPONENT_DESCRIPTION)\"" >>$@
-	echo "set name=org.opensolaris.consolidation value=$(CONSOLIDATION)" >>$@
-	echo "license $(COPYRIGHT_FILE) license=$(COPYRIGHT_FILE)" >>$@
-	pkgmogrify $(PKGMOGRIFY_MACROS:%=-D %) $(PKGMOGRIFY_TRANSFORMS) $< >>$@
+# generate a complete manifest from the pieces
+$(GENERATED).ips:	$(GENERATED).metadata $(GENERATED).actions \
+			$(GENERATED).depend
+	cat $(COPYRIGHT_TEMPLATE) $(GENERATED).metadata $(GENERATED).actions \
+	    $(GENERATED).depend >$@
+
+#
+# Rules to generate a combined manifest from the canonical manifest(s) checked
+# into the workspace.
+#
+
+# Combine the canonical manifest(s) for this component and "normalize" them
+# for comparison.
+$(COMBINED).ips:	canonical-manifests
+	cat $(CANONICAL_MANIFESTS) | $(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
+ 		sed -e '/^$$/d' -e '/^#.*$$/d' | sort -u | $(PKGFMT) >$@
+
+$(MANIFEST_BASE)-%.compare:		$(MANIFEST_BASE)-%.ips
+	$(PKGMOGRIFY) $(PKG_OPTIONS) $(COMPARISON_TRANSFORMS) $< >$@
+
+manifest-compare:	$(COMBINED).compare $(GENERATED).compare
+	@echo "Manifest comparison"
+	@pkgdiff $(GENERATED).compare $(COMBINED).compare
 
-$(COMPONENT_SRC)/$(MANIFEST).fdeps:	$(COMPONENT_SRC)/$(MANIFEST).mog
-	pkgdepend generate -m $< $(PROTO_DIR) >$@
+# mogrify the canonical manifest(s) 
+#
+$(MANIFEST_BASE)-%.resolved:	%.ips manifest-compare
+	$(PKGMOGRIFY) $(PKG_OPTIONS) $< $(PUBLISH_TRANSFORMS) >$@
+
+$(MANIFEST_BASE)-%.published:	$(MANIFEST_BASE)-%.resolved
+	$(PKGSEND) -s $(PKG_REPO) publish --fmri-in-manifest \
+		-d $(PROTO_DIR) -d . $<
+	$(TOUCH) $@
 
-$(COMPONENT_SRC)/$(MANIFEST).fdeps.res:	$(COMPONENT_SRC)/$(MANIFEST).fdeps
-	pkgdepend resolve -m $<
+$(COMPONENT_SRC)/.published:	manifest-compare $(PUBLISHED)
+	$(TOUCH) $@
 
-$(COMPONENT_SRC)/.published:	$(COMPONENT_SRC)/$(MANIFEST).fdeps.res
-	pkgsend -s $(PKG_REPO) publish --fmri-in-manifest \
-		-d $(PROTO_DIR) $<
-	$(TOUCH) $@
+canonical-manifests:	$(CANONICAL_MANIFESTS)
+ifeq	($(strip $(CANONICAL_MANIFESTS)),)
+	# If there were no canonical manifests in the workspace, nothing will
+	# be published and we should fail.  A sample manifest can be generated
+	# with
+	#   $ gmake sample-manifest
+	# Once created, it will need to be reviewed, edited, and added to the
+	# workspace.
+	$(error Missing canonical manifest(s))
+endif
--- a/make-rules/shared-macros.mk	Tue Jun 15 12:36:26 2010 -0700
+++ b/make-rules/shared-macros.mk	Fri Jul 16 00:58:56 2010 -0500
@@ -23,7 +23,11 @@
 
 CONSOLIDATION =	userland
 PUBLISHER =	$(CONSOLIDATION)-build
-BUILD_VERSION =	5.11-0.140
+
+OS_VERSION =		$(shell uname -r)
+SOLARIS_VERSION =	$(OS_VERSION:5.%=2.%)
+BUILD_NUM =		0.140
+BUILD_VERSION =		$(OS_VERSION)-$(BUILD_NUM)
 
 COMPILER =		studio
 BITS =			32
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/transforms/comparison-cleanup	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,56 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# These transforms drop the information that we don't really care about when
+# comparing manifests for change.
+#
+
+# drop actions that don't apply to the architecture we are on
+<transform dir file link hardlink variant.arch=(?!$(ARCH)) -> drop>
+
+# drop the license actions from the manifests, we aren't going to compare them
+<transform license -> drop>
+
+# remove the version information from the dependency actions
+<transform depend -> edit fmri "@[^ \t\n\r\f\v]*" "">
+
+# normalize the pkg.fmri for the current build
+<transform set name=pkg.fmri -> \
+	edit value "@[^ \t\n\r\f\v]*" \
+		   "@$!(IPS_COMPONENT_VERSION),$!(BUILD_VERSION)">
+
+# convert temporary macro names to their real name
+<transform set -> edit value "\$!\((.*)\)" "$(\1)">
+<transform set -> edit value "\$!\((.*)\)" "$(\1)">
+
+# standardize the file hashes
+<transform file -> set action.hash 'NOHASH'>
+
+# drop extra attribute data that we don't want to compare
+<transform dir file link hardlink -> delete timestamp .*>
+<transform dir file link hardlink -> delete pkg.size .*>
+<transform dir file link hardlink -> delete owner .*>
+<transform dir file link hardlink -> delete group .*>
+<transform dir file link hardlink -> delete mode .*>
+<transform dir file link hardlink -> delete variant.arch .*>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/transforms/copyright-template	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,22 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
--- a/transforms/defaults	Tue Jun 15 12:36:26 2010 -0700
+++ b/transforms/defaults	Fri Jul 16 00:58:56 2010 -0500
@@ -25,10 +25,10 @@
 #
 
 #
-# programs & shared objects should generally have mode 0755
+# programs & shared objects should generally have mode 0555
 #
-<transform file path=.*lib/.*\.so.* -> default mode 0755>
-<transform file path=.*bin/.* -> default mode 0755>
+<transform file path=.*lib/.*\.so.* -> default mode 0555>
+<transform file path=.*bin/.* -> default mode 0555>
 
 #
 # For what's left, go with root:bin 0444 for files, 0755 for directories
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/transforms/generate-cleanup	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,110 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# This set of transforms is intended to be used to convert a set of actions
+# generated by "pkgsend generate ..." into a more generic set of actions with
+# most attributes removed and paths converted to use strategically placed
+# macros to remove plartform or version specifics.
+#
+
+# convert the "pkgsend generate" file "hash" to a common value
+<transform file -> set action.hash 'NOHASH'>
+
+# drop extra attribute data that "pkgsend generate" might have added
+<transform dir file link hardlink license -> delete timestamp .*>
+<transform dir file link hardlink license -> delete pkg.size .*>
+<transform dir file link hardlink license -> delete owner .*>
+<transform dir file link hardlink license -> delete group .*>
+<transform dir file link hardlink license -> delete mode .*>
+
+#<transform set name=pkg.fmri -> edit value "@[^ \t\n\r\f\v]*" "@$!(IPS_COMPONENT_VERSION),$!(BUILD_VERSION)">
+
+<transform dir file link hardlink -> \
+	edit path "/(sparcv9|amd64)$" "/$!(MACH64)">
+<transform dir file link hardlink -> \
+	edit path "/(sparcv9|amd64)/" "/$!(MACH64)/">
+<transform dir file link hardlink -> \
+	edit path "/(sparcv7|i86)$" "/$!(MACH32)">
+<transform dir file link hardlink -> \
+	edit path "/(sparcv7|i86)/" "/$!(MACH32)/">
+<transform dir file link hardlink -> \
+	edit path "/(sparc|i386)$" "/$!(MACH)">
+<transform dir file link hardlink -> \
+	edit path "/(sparc|i386)/" "/$!(MACH)/">
+<transform dir file link hardlink -> \
+	edit path "/(sparc|i386)-(sun|pc)-solaris\d\.\d+" "/$!(MACH)-$!(PLAT)-solaris$!(SOLARIS_RELEASE)">
+
+<transform dir file link hardlink -> \
+	edit target "/(sparcv9|amd64)$" "/$!(MACH64)">
+<transform dir file link hardlink -> \
+	edit target "/(sparcv9|amd64)/" "/$!(MACH64)/">
+<transform dir file link hardlink -> \
+	edit target "/(sparcv7|i86)$" "/$!(MACH32)">
+<transform dir file link hardlink -> \
+	edit target "/(sparcv7|i86)/" "/$!(MACH32)/">
+<transform dir file link hardlink -> \
+	edit target "/(sparc|i386)$" "/$!(MACH)">
+<transform dir file link hardlink -> \
+	edit target "/(sparc|i386)/" "/$!(MACH)/">
+<transform dir file link hardlink -> \
+	edit target "/(sparc|i386)-(sun|pc)-solaris\d\.\d+" "/$!(MACH)-$!(PLAT)-solaris$!(SOLARIS_RELEASE)">
+
+# <transform dir file link hardlink -> \
+# 	edit path "$(COMPONENT_NAME)" "$!(COMPONENT_NAME)">
+# <transform dir file link hardlink -> \
+# 	edit target "$(COMPONENT_NAME)" "$!(COMPONENT_NAME)">
+
+<transform dir file link hardlink -> \
+	edit path "$(COMPONENT_VERSION)" "$!(COMPONENT_VERSION)">
+<transform dir file link hardlink -> \
+	edit target "$(COMPONENT_VERSION)" "$!(COMPONENT_VERSION)">
+
+<transform dir file link hardlink -> \
+	edit path "$(IPS_VERSION)" "$!(IPS_VERSION)">
+<transform dir file link hardlink -> \
+	edit target "$(IPS_VERSION)" "$!(IPS_VERSION)">
+
+# convert temporary macro names to their real name
+<transform set -> \
+	edit value "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit path "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit target "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit path "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit target "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit path "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit target "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit path "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit target "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit path "\$!\((.*)\)" "$(\1)">
+<transform dir file link hardlink -> \
+	edit target "\$!\((.*)\)" "$(\1)">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/transforms/manifest-metadata-template	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,35 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or it's affiliates.  All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/$(PUBLISHER)/$(IPS_PKG_NAME)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value=$(COMPONENT_SUMMARY)
+set name=pkg.description value=$(COMPONENT_DESCRIPTION)
+set name=info.classification value=org.opensolaris.category.2008:$(COMPONENT_CLASSIFICATION)
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+#license $(COPYRIGHT_FILE) license=$(COPYRIGHTS)
+
+# set name=variant.opensolaris.zone value=global value=nonglobal
+# set name=variant.arch value=i386 value=sparc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/transforms/publish-cleanup	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,34 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# These transforms drop the information that we don't really care about when
+# comparing manifests for change.
+#
+
+<transform set value="^$" -> drop>
+<transform set name=info.classification value=".+:\"\"" -> drop>
+
+# drop the license actions from the manifests, we aren't going to compare them
+<transform license -> drop>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/transforms/variant.arch	Fri Jul 16 00:58:56 2010 -0500
@@ -0,0 +1,70 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or it's affiliates.  All rights reserved.
+#
+
+#
+# These transforms will automatically tag actions that are likely to be
+# architecture specific.  This is only meant to aid folks in generating
+# manifests that properly tag actions.  The results should be carefully
+# audited since it may tag architecture independent files that match the
+# the pattern space and may not tag architecture specific files that don't.
+#
+# It might also be useful to use "diff -rq" to determine the differences
+# between proto areas for multiple architectures, though take care to avoid
+# timestamp.
+#
+# Note: this uses and then replaces $!(ARCH) to avoid macro substitution
+#
+
+# add anything with the architecture embedded in the path
+<transform dir file link hardlink path=.*/\$\(MACH.*\) -> \
+	default variant.arch "$!(ARCH)">
+<transform dir file link hardlink \
+		path=.*/(sparcv9|sparcv7|sparc|amd64|i86|i386)(/.*){0,1}$ -> \
+	default variant.arch "$!(ARCH)">
+<transform dir file link hardlink \
+		path=.*/(sparc|i386)-(sun|pc)-solaris\d\.\d+ -> \
+	default variant.arch "$!(ARCH)">
+
+# add anything that looks like a shared object
+<transform file path=.*/.+\.so(\.\d+)*$ -> \
+	default variant.arch "$!(ARCH)">
+
+# add anything that looks like an archive library
+<transform file path=.*/lib.+\.a$ -> \
+	default variant.arch "$!(ARCH)">
+
+# add anything that looks like a libtool .la file
+<transform file path=.*/.+\.la$ -> \
+	default variant.arch "$!(ARCH)">
+
+# add "compiled" python files
+<transform dir file link hardlink path=.+\.pyc$ -> \
+	default variant.arch "$!(ARCH)">
+
+# delete "raw" python scripts that we may have accidentally picked up
+<transform dir file link hardlink path=.+\.py$ variant.arch=\$!\(ARCH\) -> \
+	delete variant.arch .*>
+
+# convert "$!(ARCH)" to "$(ARCH)"
+<transform dir file link hardlink -> \
+	edit variant.arch "\$!\((.*)\)" "$(\1)">