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)">