Norm Jacobs
2010-07-16 6514ee6af423acbde6f9f26c763636fd0c1a65cd
packaging changes including canonical manifest support with manifest validation
11 files added
9 files modified
1349 ■■■■■ changed files
README 79 ●●●● patch | view | raw | blame | history
components/bind/Makefile 17 ●●●●● patch | view | raw | blame | history
components/bind/bind.ips 501 ●●●●● patch | view | raw | blame | history
components/file/Makefile 2 ●●● patch | view | raw | blame | history
components/file/file.ips 69 ●●●●● patch | view | raw | blame | history
components/lcms/Makefile 2 ●●● patch | view | raw | blame | history
components/lcms/lcms.ips 86 ●●●●● patch | view | raw | blame | history
components/pycups/Makefile 2 ●●● patch | view | raw | blame | history
components/pycups/pycups.ips 46 ●●●●● patch | view | raw | blame | history
components/rsync/Makefile 2 ●●● patch | view | raw | blame | history
components/rsync/rsync.ips 45 ●●●●● patch | view | raw | blame | history
make-rules/ips.mk 159 ●●●● patch | view | raw | blame | history
make-rules/shared-macros.mk 6 ●●●● patch | view | raw | blame | history
transforms/comparison-cleanup 56 ●●●●● patch | view | raw | blame | history
transforms/copyright-template 22 ●●●●● patch | view | raw | blame | history
transforms/defaults 6 ●●●● patch | view | raw | blame | history
transforms/generate-cleanup 110 ●●●●● patch | view | raw | blame | history
transforms/manifest-metadata-template 35 ●●●●● patch | view | raw | blame | history
transforms/publish-cleanup 34 ●●●●● patch | view | raw | blame | history
transforms/variant.arch 70 ●●●●● patch | view | raw | blame | history
README
@@ -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://anon@hg.opensolaris.org//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://anon@hg.opensolaris.org//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
components/bind/Makefile
@@ -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)
components/bind/bind.ips
New file
@@ -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:/SUNWcs@0.5.11-0.143 type=require
depend fmri=pkg:/library/libxml2@2.7.6-0.143 type=require
depend fmri=pkg:/library/security/openssl@0.9.8.14-0.143 type=require
depend fmri=pkg:/library/zlib@1.2.3-0.143 type=require
depend fmri=pkg:/system/library/math@0.5.11-0.143 type=require
depend fmri=pkg:/system/library@0.5.11-0.143 type=require
components/file/Makefile
@@ -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)
components/file/file.ips
New file
@@ -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/zlib@1.2.3-0.143 type=require
depend fmri=pkg:/system/library@0.5.11-0.143 type=require
components/lcms/Makefile
@@ -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
components/lcms/lcms.ips
New file
@@ -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/libjpeg@0.5.11-0.143 type=require
depend fmri=pkg:/image/library/libtiff@0.5.11-0.143 type=require
depend fmri=pkg:/library/zlib@1.2.3-0.143 type=require
depend fmri=pkg:/system/library/math@0.5.11-0.143 type=require
depend fmri=pkg:/system/library@0.5.11-0.143 type=require
components/pycups/Makefile
@@ -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)
components/pycups/pycups.ips
New file
@@ -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/cups-libs@1.4.2-0.143 type=require
depend fmri=pkg:/runtime/python-26@2.6.4-0.143 type=require
depend fmri=pkg:/system/library@0.5.11-0.143 type=require
components/rsync/Makefile
@@ -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)
components/rsync/rsync.ips
New file
@@ -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/library@0.5.11-0.143 type=require
make-rules/ips.mk
@@ -35,47 +35,148 @@
# This set of rules makes the "publish" target the default target for make(1)
#
PKGSEND =    /usr/bin/pkgsend
PKGMOGRIFY =    /usr/bin/pkgmogrify
PKGDEPEND =    /usr/bin/pkgdepend
PKGFMT =    /usr/bin/pkgfmt
PKGMOGRIFY =    /usr/bin/pkgmogrify
PKGSEND =    /usr/bin/pkgsend
# 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
# 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
MANIFEST =    manifest-$(MACH)
# order is important
GENERATE_TRANSFORMS +=        $(WS_TOP)/transforms/generate-cleanup
GENERATE_TRANSFORMS +=        $(WS_TOP)/transforms/variant.arch
.DEFAULT:    publish
COMPARISON_TRANSFORMS +=    $(WS_TOP)/transforms/comparison-cleanup
COMPARISON_TRANSFORMS +=    $(PKGMOGRIFY_TRANSFORMS)
publish:    $(COMPONENT_SRC)/.published
# 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
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)
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)
CANONICAL_MANIFESTS =    $(wildcard *.ips)
GENERATED =        $(MANIFEST_BASE)-generated
COMBINED =        $(MANIFEST_BASE)-combined
MANIFESTS =        $(CANONICAL_MANIFESTS:%=$(MANIFEST_BASE)-%)
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
$(COMPONENT_SRC)/$(MANIFEST):    install
    pkgsend generate $(PROTO_DIR) >$@
.SECONDARY:        $(GENERATED).fdeps
$(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) $< >>$@
publish:        install $(COMPONENT_SRC)/.published
$(COMPONENT_SRC)/$(MANIFEST).fdeps:    $(COMPONENT_SRC)/$(MANIFEST).mog
    pkgdepend generate -m $< $(PROTO_DIR) >$@
sample-manifest:    $(GENERATED).ips
$(COMPONENT_SRC)/$(MANIFEST).fdeps.res:    $(COMPONENT_SRC)/$(MANIFEST).fdeps
    pkgdepend resolve -m $<
#
# 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)/.published:    $(COMPONENT_SRC)/$(MANIFEST).fdeps.res
    pkgsend -s $(PKG_REPO) publish --fmri-in-manifest \
        -d $(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' >$@
# 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
# 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)/.published:    manifest-compare $(PUBLISHED)
    $(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
make-rules/shared-macros.mk
@@ -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
transforms/comparison-cleanup
New file
@@ -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 .*>
transforms/copyright-template
New file
@@ -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.
#
transforms/defaults
@@ -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
transforms/generate-cleanup
New file
@@ -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)">
transforms/manifest-metadata-template
New file
@@ -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
transforms/publish-cleanup
New file
@@ -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>
transforms/variant.arch
New file
@@ -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)">