16404201 serialize pkglinting of components s11-update
authorMike Sullivan <Mike.Sullivan@Oracle.COM>
Wed, 18 Dec 2013 10:04:53 -0800
branchs11-update
changeset 2855 576d5a7857b7
parent 2854 78392507fd82
child 2856 47b35501403f
16404201 serialize pkglinting of components 16666374 userland misses opensolaris.org very much, but must move on to java.net's love 16703472 more userland components could benefit from resolve.deps files 16921386 move to parfait 1.2.0.1 16991973 some things ain't parfait'n 17361780 LD_Z_TEXT should, ya know, contain -z text not -z direct 17389915 default userland gcc should be gcc4 17621943 move to build 32 breaks userland-incorporation 17785723 gdb shouldn't override CC/CXX 17852021 userland-incorporator should detect duplicate packages 17899000 libtool doesn't build properly in non-C locale
Makefile
components/Makefile
components/acpidump/Makefile
components/autogen/Makefile
components/automake/automake-1.9.6/resolve.deps
components/bcc/Makefile
components/clisp/Makefile
components/cmake/Makefile
components/emacs/Makefile
components/erlang/Makefile
components/foomatic/db/Makefile
components/foomatic/fppd/Makefile
components/gdb/Makefile
components/ghostscript/Makefile
components/gnu-gs-fonts-other/Makefile
components/gnu-gs-fonts-std/Makefile
components/guile/Makefile
components/hwdata/Makefile
components/jsl/Makefile
components/junit/junit.p5m
components/junit/resolve.deps
components/ksh93/Makefile
components/libnet/Makefile
components/libtorrent/Makefile
components/libtorrent/patches/rlibtorrent-06-parfait.patch
components/memcached-java/memcached-java.p5m
components/memcached-java/resolve.deps
components/net-snmp/Makefile
components/nmap/Makefile
components/open-fabrics/ofed.mk
components/openscap/Makefile
components/openssl/openssl-0.9.8-fips-140/Makefile
components/openssl/openssl-1.0.1/resolve.deps
components/openusb/Makefile
components/php-common/resolve.deps
components/python/greenlet/Makefile
components/rsyslog/Makefile
components/rtorrent/Makefile
components/samba/samba/Makefile
components/squid/Makefile
components/stdcxx/Makefile
components/timezone/Makefile
components/visual-panels/coreadm/resolve.deps
components/visual-panels/firewall/resolve.deps
components/visual-panels/sysmon/resolve.deps
components/visual-panels/usermgr/resolve.deps
components/visual-panels/zconsole/resolve.deps
components/webalizer/Makefile
make-rules/ant.mk
make-rules/attpackagemake.mk
make-rules/configure.mk
make-rules/ips.mk
make-rules/justmake.mk
make-rules/makemaker.mk
make-rules/setup.py.mk
make-rules/shared-macros.mk
tools/Makefile
tools/pkglint.sh
tools/userland-incorporator
tools/userland-mangler
--- a/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include make-rules/shared-macros.mk
@@ -43,6 +43,6 @@
 test: component-hook $(SUBDIRS)
 
 $(SUBDIRS):	FORCE
-	+echo "$(TARGET) [email protected]" ; $(GMAKE) -C [email protected] $(TARGET)
+	@+echo "$(TARGET) [email protected]" ; $(GMAKE) -C [email protected] $(TARGET)
 
 FORCE:
--- a/components/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -106,7 +106,7 @@
 DUMMYPKG += "set org.opensolaris.consolidation=userland\n"
 DUMMYPKG += "set info.classification=org.opensolaris.category.2008:System/Core"
 
-$(WS_LINT_CACHE):	$(WS_LOGS)
+$(WS_LINT_CACHE):	$(WS_LOGS) tools
 ifdef CANONICAL_REPO
 	@echo "Generating pkglint(1) cache from $(CANONICAL_REPO)..."
 	@(echo $(DUMMYPKG) | $(PKGLINT) \
@@ -131,7 +131,7 @@
 	 $(BASS_O_MATIC) $(TEMPLATE_ZONE:%=--template-zone %) \
 			 $(@:%=--component %) --make $(TARGET) $(LOG)
 
-publish:
+incorporation:
 	$(PKGREPO) refresh -s $(PKG_REPO)
 	$(WS_TOOLS)/userland-incorporator --repository $(PKG_REPO) \
 	  -p pkg:/consolidation/$(CONSOLIDATION)/$(CONSOLIDATION)[email protected]$(OS_VERSION),$(BUILD_VERSION) \
@@ -140,7 +140,9 @@
 	  -c $(CONSOLIDATION) >$(WS_LOGS)/$(CONSOLIDATION)-incorporation.p5m
 	$(PKGSEND) -s $(PKG_REPO) publish --fmri-in-manifest \
 	  $(WS_LOGS)/$(CONSOLIDATION)-incorporation.p5m
-	$(PKGREPO) refresh -s $(PKG_REPO)
+
+publish:
+	$(MAKE) incorporation
 # pkglint all of the published manifests in one batch.
 ifdef CANONICAL_REPO
 	@echo 'pkglinting all package manifests...'
--- a/components/acpidump/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/acpidump/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
@@ -48,7 +48,7 @@
 
 PKG_PROTO_DIRS += $(BUILD_DIR_32)
 
-COMPILER =	gcc
+COMPILER =	gcc3
 
 COMPONENT_BUILD_ENV  +=		CC=$(CC)
 
--- a/components/autogen/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/autogen/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
@@ -40,7 +40,7 @@
 COMPONENT_PRE_CONFIGURE_ACTION =        ($(CLONEY) $(SOURCE_DIR) $(@D))
 
 # built in SFW with gcc and builds cleanly now only with gcc
-COMPILER = gcc
+COMPILER = gcc3
 CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 
 # strip the environment or install target fails
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/automake/automake-1.9.6/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,2 @@
+runtime/perl-512
+shell/ksh93
--- a/components/bcc/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/bcc/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
@@ -39,7 +39,7 @@
 include ../../make-rules/justmake.mk
 include ../../make-rules/ips.mk
 
-COMPILER=gcc
+COMPILER=gcc3
 
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
--- a/components/clisp/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/clisp/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
@@ -46,7 +46,7 @@
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-COMPILER=	gcc
+COMPILER=	gcc3
 PATCH_LEVEL=	0
 
 # SHELLOPTS appears to cause clisp's configure script to fail while
@@ -56,6 +56,9 @@
 # clisp's configure script is not a GNU auto* tools generated configure script
 # and doesn't take --sbindir, so we need to override the default values.
 CONFIGURE_OPTIONS = CC="$(CC) -DNO_GENERATIONAL_GC"
+ifeq   ($(strip $(PARFAIT_BUILD)),yes)
+CONFIGURE_OPTIONS = CC="$(CC) -DNO_GENERATIONAL_GC -DNO_ASM"
+endif
 CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)"
 CONFIGURE_OPTIONS += --prefix=$(CONFIGURE_PREFIX)
 CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR)
--- a/components/cmake/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/cmake/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -19,12 +19,12 @@
 # CDDL HEADER END
 
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 # parfait seems to hang on libcmsysTestDynload.so.bc, so for
 # now we have to disable it.
-PARFAIT_BUILD=no
+export PARFAIT_BUILD=no
 
 include ../../make-rules/shared-macros.mk
 
--- a/components/emacs/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/emacs/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
@@ -62,7 +62,7 @@
 # configure script has problems using a non-GNU cpp. I am not aware of
 # any reason Sun Studio could not be made to work, but simply made a
 # cost/benefit decision not to pursue it at this time
-COMPILER =	gcc
+COMPILER =	gcc3
 
 # Uncomment this for debugging only. It configures emacs to run from the
 # local proto instead of from its final installed location.
--- a/components/erlang/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/erlang/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
@@ -69,7 +69,7 @@
 IPS_COMPONENT_VERSION=  $(COMPONENT_VERSION_MAJOR).2.$(COMPONENT_VERSION_MICRO)
 
 # Built in SFW with gcc and builds cleanly now only with gcc
-COMPILER = gcc
+COMPILER = gcc3
 
 CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS) -I/usr/include/gd2"
--- a/components/foomatic/db/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/foomatic/db/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
 
@@ -36,6 +36,9 @@
 include ../../../make-rules/configure.mk
 include ../../../make-rules/ips.mk
 
+# This package delivers only data files and has no dependencies.
+EXTDEPFILES = $(NULLDEPFILE)
+
 COMPONENT_PRE_CONFIGURE_ACTION = $(CLONEY) $(SOURCE_DIR) $(@D)
 
 # One file is not gzipped; fix it
--- a/components/foomatic/fppd/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/foomatic/fppd/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
 
@@ -35,6 +35,9 @@
 include ../../../make-rules/prep.mk
 include ../../../make-rules/ips.mk
 
+# This package delivers only data files and has no dependencies.
+EXTDEPFILES = $(NULLDEPFILE)
+
 CACHE_FILE=$(PROTOUSRLIBDIR)/lp/caches/SUNWfoomatic.cache
 
 $(SOURCE_DIR)/.built: $(SOURCE_DIR)/.prep $(COMPONENT_DIR)/nolicense $(COMPONENT_DIR)/supportedonly.sh
--- a/components/gdb/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/gdb/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -39,14 +39,10 @@
 include ../../make-rules/configure.mk
 include ../../make-rules/ips.mk
 
-# Build GDB with GCC 4.7.3.
-# In S11.2 COMPILER=gcc defaults to GCC 3.4.3 and we don't want that one.
-GCCHOME=/usr/gcc/4.7
-CC=$(GCCHOME)/bin/gcc
-CXX=$(GCCHOME)/bin/g++
+COMPILER=gcc
 
 # GDB wants the GNU utilities
-PATH=/usr/gnu/bin:$(GCCHOME)/bin:/usr/bin:/usr/perl5/bin
+PATH=/usr/gnu/bin:$(GCC_ROOT)/bin:/usr/bin:/usr/perl5/bin
 
 CFLAGS_sparc =	-g -O2 -mcpu=ultrasparc -mtune=ultrasparc
 CFLAGS_sparc +=	-mno-unaligned-doubles
--- a/components/ghostscript/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/ghostscript/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -22,10 +22,6 @@
 # Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
-# parfait seems to spin when looking at the .bc files, so
-# for now disable it.
-PARFAIT_BUILD=no
-
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         ghostscript
--- a/components/gnu-gs-fonts-other/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/gnu-gs-fonts-other/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -19,7 +19,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
@@ -41,6 +41,9 @@
 include ../../make-rules/prep.mk
 include ../../make-rules/ips.mk
 
+# This package delivers only data files and has no dependencies.
+EXTDEPFILES = $(NULLDEPFILE)
+
 # untar the tar ball and apply the patches
 build:		$(SOURCE_DIR)/.prep
 
--- a/components/gnu-gs-fonts-std/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/gnu-gs-fonts-std/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -19,7 +19,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
@@ -41,6 +41,9 @@
 include ../../make-rules/prep.mk
 include ../../make-rules/ips.mk
 
+# This package delivers only data files and has no dependencies.
+EXTDEPFILES = $(NULLDEPFILE)
+
 # untar the tar ball and apply the patches
 build:  $(SOURCE_DIR)/.prep
 
--- a/components/guile/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/guile/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
@@ -37,7 +37,7 @@
 include ../../make-rules/ips.mk
 
 # Built in SFW with gcc and builds cleanly now only with gcc
-COMPILER = gcc
+COMPILER = gcc3
 CONFIGURE_OPTIONS +=	CPPFLAGS="-I/usr/include/gmp -D__USE_LEGACY_PROTOTYPES__"
 CONFIGURE_OPTIONS +=	--disable-static 
 CONFIGURE_OPTIONS +=	--disable-error-on-warning
--- a/components/hwdata/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/hwdata/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -55,6 +55,9 @@
 PKG_MACROS += $(foreach i,$(ID_FILES),\
     COMPONENT_VERSION_$(i)='$(shell $(ID_VERSION_EXTRACT_COMMAND) $(i))')
 
+# This package delivers only data files and has no dependencies.
+EXTDEPFILES = $(NULLDEPFILE)
+
 # Since we have two separately licensed components we don't use the default
 # license transform rules, but handle the license info metadata directly
 LICENSE_TRANSFORMS =
--- a/components/jsl/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/jsl/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -39,7 +39,7 @@
 # Preferred compiler set to gcc and not Studio as on Sparc architecture
 # some assembler code is required for locking which fails to compile on
 # solaris, when using gcc this is inlined (see jslock.c)
-COMPILER=	gcc
+COMPILER=	gcc3
 
 COMPONENT_BUILD_ARGS += -f src/Makefile
 COMPONENT_BUILD_ARGS += CC="$(CC)"
--- a/components/junit/junit.p5m	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/junit/junit.p5m	Wed Dec 18 10:04:53 2013 -0800
@@ -317,3 +317,5 @@
 license junit.license license="CPLv1.0, BSD"
 link path=usr/share/doc/junit/javadoc target=../../lib/java/javadoc/junit
 link path=usr/share/lib/java/junit.jar target=junit-$(COMPONENT_VERSION).jar
+
+depend fmri=runtime/java/jre-7 type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/junit/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,1 @@
+runtime/java/jre-7
--- a/components/ksh93/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/ksh93/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,7 +20,6 @@
 #
 # Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
 #
-PARFAIT_BUILD=no
 
 include ../../make-rules/shared-macros.mk
 
--- a/components/libnet/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/libnet/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
@@ -43,7 +43,7 @@
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
 PKG_PROTO_DIRS += $(COMPONENT_SRC)/doc/man/man3
-COMPILER=	gcc
+COMPILER=	gcc3
 CFLAGS += -g -fPIC
 CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS.32 += --srcdir=$(BUILD_DIR_32)
--- a/components/libtorrent/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/libtorrent/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,12 +20,12 @@
 #
 
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 # we really need to use studio, mostly because that's what
 # sigc++ uses, so we don't like that parfait is g++ in disguise
-PARFAIT_BUILD=no
+export PARFAIT_BUILD=no
 
 include ../../make-rules/shared-macros.mk
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/libtorrent/patches/rlibtorrent-06-parfait.patch	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,10 @@
+--- libtorrent-0.12.2/rak/functional.h.orig	Mon Apr 29 10:51:44 2013
++++ libtorrent-0.12.2/rak/functional.h	Mon Apr 29 10:51:54 2013
[email protected]@ -38,6 +38,7 @@
+ #define RAK_FUNCTIONAL_H
+ 
+ #include <functional>
++#include <stdio.h>
+ 
+ namespace rak {
+ 
--- a/components/memcached-java/memcached-java.p5m	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/memcached-java/memcached-java.p5m	Wed Dec 18 10:04:53 2013 -0800
@@ -101,3 +101,5 @@
 file path=usr/share/lib/java/javadoc/memcached-java/api/resources/titlebar_end.gif
 file path=usr/share/lib/java/javadoc/memcached-java/api/serialized-form.html
 file path=usr/share/lib/java/javadoc/memcached-java/api/stylesheet.css
+
+depend fmri=runtime/java/jre-7 type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached-java/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,1 @@
+runtime/java/jre-7
--- a/components/net-snmp/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/net-snmp/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,8 +18,12 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
+
+# parfait is upset about some inline assembly
+export PARFAIT_BUILD=no
+
 include ../../make-rules/shared-macros.mk
 
 PATH=$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
--- a/components/nmap/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/nmap/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -41,7 +41,7 @@
 
 # Can't use the Studio compilers as they don't support the GNU 
 # __attribute__ extension
-COMPILER =	gcc
+COMPILER =	gcc3
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
--- a/components/open-fabrics/ofed.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/open-fabrics/ofed.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 # Since we are building these as a set and not packaging them individually at
@@ -27,9 +27,12 @@
 PROTO_DIR = $(WS_COMPONENTS)/open-fabrics/prototype/$(MACH)
 
 # OFED only builds with GCC
-COMPILER=gcc
+COMPILER=gcc3
 
-PATH=/usr/sfw/bin:/usr/bin:/usr/gnu/bin
+PATH=$(GCC3_ROOT)/bin:/usr/bin:/usr/gnu/bin
+ifeq   ($(strip $(PARFAIT_BUILD)),yes)
+PATH=$(PARFAIT_TOOLS_GCC3):$(GCC3_ROOT)/bin:/usr/bin
+endif
 
 CPPFLAGS += "-Wformat=2"
 CFLAGS += -D_REENTRANT
--- a/components/openscap/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/openscap/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -34,7 +34,7 @@
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_DOWNLOAD_URL)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=        utility/openscap
 
-COMPILER=		gcc
+COMPILER=		gcc3
 CFLAGS+=		-std=c99
 CFLAGS+=		-DNDEBUG
 
--- a/components/openssl/openssl-0.9.8-fips-140/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/openssl/openssl-0.9.8-fips-140/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,7 +20,7 @@
 #
 # Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
-PARFAIT_BUILD=no
+export PARFAIT_BUILD=no
 
 include ../../../make-rules/shared-macros.mk
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/openssl/openssl-1.0.1/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,4 @@
+runtime/perl-512
+runtime/perl-516
+system/library
+system/library/security/crypto
--- a/components/openusb/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/openusb/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
@@ -42,7 +42,7 @@
 COMPONENT_PRE_CONFIGURE_ACTION = \
         ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-COMPILER = gcc
+COMPILER = gcc3
 
 PATCH_LEVEL = 1
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/php-common/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,1 @@
+system/linker
--- a/components/python/greenlet/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/python/greenlet/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -38,7 +38,7 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-COMPILER =	gcc
+COMPILER =	gcc3
 gcc_OPT =	-O2
 
 COMPONENT_PRE_BUILD_ACTION = \
--- a/components/rsyslog/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/rsyslog/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
@@ -35,7 +35,7 @@
 include ../../make-rules/configure.mk
 include ../../make-rules/ips.mk
 
-COMPILER = gcc
+COMPILER = gcc3
 
 # This is needed for things to be built correctly.
 CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
--- a/components/rtorrent/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/rtorrent/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -20,12 +20,12 @@
 #
 
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 # we really need to use studio, mostly because that's what
 # sigc++ uses, so we don't like that parfait is g++ in disguise
-PARFAIT_BUILD=no
+export PARFAIT_BUILD=no
 
 include ../../make-rules/shared-macros.mk
 
--- a/components/samba/samba/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/samba/samba/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -56,7 +56,7 @@
 ifeq ($(MACH), sparc)
 COMPILER = studio
 else
-COMPILER = gcc
+COMPILER = gcc3
 endif
 
 include ../../../make-rules/prep.mk
@@ -122,7 +122,7 @@
 	cd $(BUILD_DIR) ; $(UNPACK) $(UNPACK_ARGS) ../$(COMPONENT_ARCHIVE_2)
 
 CFLAGS.studio	+=	$(studio_C99_ENABLE)
-CFLAGS.gcc	+=	-std=c99
+CFLAGS.gcc3	+=	-std=c99
 
 #CPPFLAGS +=	-DSAMBA_VERSION_VENDOR_SUFFIX=\\\"Placeholder_for_vendor_suffix\\\"
 CPPFLAGS +=	$(CPP_LARGEFILES)
--- a/components/squid/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/squid/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -41,7 +41,7 @@
 include ../../make-rules/configure.mk
 include ../../make-rules/ips.mk
 
-COMPILER = gcc
+COMPILER = gcc3
 
 CFLAGS += -I/usr/include/kerberosv5
 CFLAGS += $(CPP_LARGEFILES)
--- a/components/stdcxx/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/stdcxx/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -23,7 +23,7 @@
 
 # we really need to use studio so we don't like that
 # parfait is g++ in disguise
-PARFAIT_BUILD=no
+export PARFAIT_BUILD=no
 
 include ../../make-rules/shared-macros.mk
 
--- a/components/timezone/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/timezone/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -37,6 +37,9 @@
 
 include ../../make-rules/ips.mk
 
+# This package delivers only data files and has no dependencies.
+EXTDEPFILES = $(NULLDEPFILE)
+
 POFILE=zoneinfo.po
 
 download:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/visual-panels/coreadm/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,1 @@
+system/management/visual-panels-core
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/visual-panels/firewall/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,1 @@
+system/management/visual-panels-core
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/visual-panels/sysmon/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,1 @@
+system/management/visual-panels-core
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/visual-panels/usermgr/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,1 @@
+system/management/visual-panels-core
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/visual-panels/zconsole/resolve.deps	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,1 @@
+system/management/visual-panels-core
--- a/components/webalizer/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/components/webalizer/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -48,7 +48,7 @@
 	$(GSED) -i -e 's?lib/httpd/logs/?apache2/2.2/logs/?' \
 		$(SOURCE_DIR)/sample.conf
 
-COMPILER =	gcc
+COMPILER =	gcc3
 
 CONFIGURE_OPTIONS +=	--enable-dns
 CONFIGURE_OPTIONS +=	--with-gd=/usr/include/gd2
--- a/make-rules/ant.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/ant.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 ANT=/usr/bin/ant
@@ -32,6 +32,9 @@
 	(cd $(@D) ; $(ENV) $(COMPONENT_BUILD_ENV) \
 		$(ANT) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS))
 	$(COMPONENT_POST_BUILD_ACTION)
+ifeq   ($(strip $(PARFAIT_BUILD)),yes)
+	-$(PARFAIT) $(@D)
+endif
 	$(TOUCH) [email protected]
 
 COMPONENT_INSTALL_ENV += JAVA_HOME="$(JAVA_HOME)"
@@ -43,5 +46,12 @@
 	$(COMPONENT_POST_INSTALL_ACTION)
 	$(TOUCH) [email protected]
 
+ifeq   ($(strip $(PARFAIT_BUILD)),yes)
+parfait: build
+else
+parfait:
+	$(MAKE) PARFAIT_BUILD=yes parfait
+endif
+
 clean::
 	$(RM) -r $(SOURCE_DIR) $(BUILD_DIR)
--- a/make-rules/attpackagemake.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/attpackagemake.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 #
 # Rules and Macros for building opens source software that uses AT&T's package
@@ -72,6 +72,9 @@
 	cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) \
    		bin/package make $(COMPONENT_BUILD_TARGETS) $(COMPONENT_BUILD_ARGS)
 	$(COMPONENT_POST_BUILD_ACTION)
+ifeq   ($(strip $(PARFAIT_BUILD)),yes)
+	-$(PARFAIT) $(@D)
+endif
 	$(TOUCH) [email protected]
 
 # install the built source into a prototype area
@@ -94,5 +97,12 @@
 	$(COMPONENT_POST_TEST_ACTION)
 	$(TOUCH) [email protected]
 
+ifeq   ($(strip $(PARFAIT_BUILD)),yes)
+parfait: build
+else
+parfait:
+	$(MAKE) PARFAIT_BUILD=yes parfait
+endif
+
 clean::
 	$(RM) -r $(BUILD_DIR) $(PROTO_DIR)
--- a/make-rules/configure.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/configure.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 #
@@ -121,7 +121,7 @@
 		$(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS))
 	$(COMPONENT_POST_BUILD_ACTION)
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-	-$(PARFAIT) build
+	-$(PARFAIT) $(@D)
 endif
 	$(TOUCH) [email protected]
 
@@ -142,8 +142,7 @@
 	$(TOUCH) [email protected]
 
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-parfait: install
-	-$(PARFAIT) build
+parfait: build
 else
 parfait:
 	$(MAKE) PARFAIT_BUILD=yes parfait
--- a/make-rules/ips.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/ips.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -39,7 +39,11 @@
 PKGFMT =	/usr/bin/pkgfmt
 PKGMOGRIFY =	/usr/bin/pkgmogrify
 PKGSEND =	/usr/bin/pkgsend
+ifeq   ($(strip $(PKGLINT_COMPONENT)),)
 PKGLINT =	/usr/bin/pkglint
+else
+PKGLINT =	${WS_TOOLS}/pkglint
+endif
 PKGMANGLE =	$(WS_TOOLS)/userland-mangler
 
 # Package headers should all pretty much follow the same format
@@ -240,7 +244,14 @@
 # These files should contain a list of packages that the component is known to
 # depend on.  Using resolve.deps is not required, but significantly speeds up
 # the "pkg resolve" step.
-EXTDEPFILES = $(wildcard $(sort $(addsuffix ../resolve.deps, $(dir $(DEPENDED)))))
+EXTDEPFILES ?= $(wildcard $(sort $(addsuffix ../resolve.deps, $(dir $(DEPENDED)))))
+
+# If the package contains no automatically discoverable dependencies, then
+# we can speed up resolution by providing a dummy resolve.deps to skip loading
+# all the possible packages for resolution.  Unfortunately, pkgdepend does not
+# accept a completely empty resolve.deps, so we pass the userland-incorporation
+# as a quick, content-free placeholder.
+NULLDEPFILE = $(BUILD_DIR)/null-resolve.deps
 
 # This is a target that should only be run by hand, and not something that
 # .resolved-$(MACH) should depend on.
@@ -259,6 +270,9 @@
 
 # resolve the dependencies all at once
 $(BUILD_DIR)/.resolved-$(MACH):	$(DEPENDED)
+	if [[ "$(EXTDEPFILES)" == "$(NULLDEPFILE)" ]] ; then \
+	  echo 'consolidation/userland/userland-incorporation' > $(NULLDEPFILE) ; \
+	fi
 	$(PKGDEPEND) resolve $(EXTDEPFILES:%=-e %) -m $(DEPENDED)
 	$(TOUCH) [email protected]
 
--- a/make-rules/justmake.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/justmake.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 #
 # Rules and Macros for building opens source software that just uses their
@@ -55,7 +55,7 @@
 		$(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS))
 	$(COMPONENT_POST_BUILD_ACTION)
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-	-$(PARFAIT) build
+	-$(PARFAIT) $(@D)
 endif
 	$(TOUCH) [email protected]
 
@@ -77,8 +77,7 @@
 	$(TOUCH) [email protected]
 
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-parfait: install
-	-$(PARFAIT) build
+parfait: build
 else
 parfait:
 	$(MAKE) PARFAIT_BUILD=yes parfait
--- a/make-rules/makemaker.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/makemaker.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -62,6 +62,9 @@
 	(cd $(@D) ; $(ENV) $(COMPONENT_BUILD_ENV) \
 		$(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS))
 	$(COMPONENT_POST_BUILD_ACTION)
+ifeq   ($(strip $(PARFAIT_BUILD)),yes)
+	-$(PARFAIT) $(@D)
+endif
 	$(TOUCH) [email protected]
 
 
@@ -83,10 +86,14 @@
 	(cd $(@D) ; $(ENV) $(COMPONENT_TEST_ENV) $(GMAKE) \
 			$(COMPONENT_TEST_ARGS) $(COMPONENT_TEST_TARGETS))
 	$(COMPONENT_POST_TEST_ACTION)
+	$(TOUCH) [email protected]
+
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-	-$(PARFAIT) build
+parfait: build
+else
+parfait:
+	$(MAKE) PARFAIT_BUILD=yes parfait
 endif
-	$(TOUCH) [email protected]
 
 clean:: 
 	$(RM) -r $(BUILD_DIR) $(PROTO_DIR)
--- a/make-rules/setup.py.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/setup.py.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -73,7 +73,7 @@
 		$(PYTHON.$(BITS)) ./setup.py build)
 	$(COMPONENT_POST_BUILD_ACTION)
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-	-$(PARFAIT) $(SOURCE_DIR)/$(@D:$(BUILD_DIR)/%=%)
+	-$(PARFAIT) $(@D)
 endif
 	$(TOUCH) [email protected]
 
@@ -110,8 +110,7 @@
 	$(TOUCH) [email protected]
 
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-parfait: install
-	-$(PARFAIT) build
+parfait: build
 else
 parfait:
 	$(MAKE) PARFAIT_BUILD=yes parfait
--- a/make-rules/shared-macros.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/shared-macros.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -32,13 +32,14 @@
 
 # The location of an external mirror of community source archives that we build
 # in this gate.  The external mirror is a replica of the internal mirror.
-EXTERNAL_ARCHIVE_MIRROR = \
-	http://static.opensolaris.org/action/browse/userland/tarball/userland
+EXTERNAL_ARCHIVE_MIRROR = 
 
 # Default to looking for source archives on the internal mirror and the external
 # mirror before we hammer on the community source archive repositories.
 export DOWNLOAD_SEARCH_PATH +=	$(INTERNAL_ARCHIVE_MIRROR)
+ifneq   ($(strip $(EXTERNAL_ARCHIVE_MIRROR)),)
 export DOWNLOAD_SEARCH_PATH +=	$(EXTERNAL_ARCHIVE_MIRROR)
+endif
 
 # The workspace starts at the mercurial root
 ifeq ($(origin WS_TOP), undefined)
@@ -65,6 +66,10 @@
 install:	SHELLOPTS=
 publish:	SHELLOPTS=pipefail
 
+# some things don't build properly in non-C locales,
+# so lets stay there
+export LC_ALL=C
+
 SHELL=	/bin/bash
 
 CONSOLIDATION =	userland
@@ -222,7 +227,9 @@
 SPRO_ROOT =	$(BUILD_TOOLS)/SUNWspro
 SPRO_VROOT =	$(SPRO_ROOT)/sunstudio12.1
 
-PARFAIT_ROOT =	$(BUILD_TOOLS)/parfait/parfait-tools-0.5.0.1/
+PARFAIT_ROOT =	$(BUILD_TOOLS)/parfait/parfait-tools-1.2.0.2
+PARFAIT_TOOLS=  $(WS_TOOLS)/$(MACH)/parfait
+PARFAIT_TOOLS_GCC3=     $(PARFAIT_TOOLS)/gcc3
 PARFAIT= $(PARFAIT_ROOT)/bin/parfait
 export PARFAIT_NATIVESUNCC=$(SPRO_VROOT)/bin/cc
 export PARFAIT_NATIVESUNCXX=$(SPRO_VROOT)/bin/CC
@@ -231,7 +238,8 @@
 # for now
 export PARFAIT_CLANG=0
 
-GCC_ROOT =	/usr/sfw
+GCC_ROOT =      /usr/gcc/4.7
+GCC3_ROOT =	/usr/sfw
 
 CC.studio.32 =	$(SPRO_VROOT)/bin/cc
 CXX.studio.32 =	$(SPRO_VROOT)/bin/CC
@@ -246,6 +254,12 @@
 CC.gcc.64 =	$(GCC_ROOT)/bin/gcc
 CXX.gcc.64 =	$(GCC_ROOT)/bin/g++
 
+CC.gcc3.32 =    $(GCC3_ROOT)/bin/gcc
+CXX.gcc3.32 =   $(GCC3_ROOT)/bin/g++
+
+CC.gcc3.64 =    $(GCC3_ROOT)/bin/gcc
+CXX.gcc3.64 =   $(GCC3_ROOT)/bin/g++
+
 
 lint.32 =	$(SPRO_VROOT)/bin/lint -m32
 lint.64 =	$(SPRO_VROOT)/bin/lint -m64
@@ -263,15 +277,19 @@
 PYTHON.2.7.VENDOR_PACKAGES = $(PYTHON.2.7.VENDOR_PACKAGES.$(BITS))
 
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-CC.studio.32 =	$(WS_TOOLS)/parfait/cc
-CXX.studio.32 =	$(WS_TOOLS)/parfait/CC
-CC.studio.64 =	$(WS_TOOLS)/parfait/cc
-CXX.studio.64 =	$(WS_TOOLS)/parfait/CC
-CC.gcc.32 =	$(WS_TOOLS)/parfait/gcc
-CXX.gcc.32 =	$(WS_TOOLS)/parfait/g++
-CC.gcc.64 =	$(WS_TOOLS)/parfait/gcc
-CXX.gcc.64 =	$(WS_TOOLS)/parfait/g++
-LD =		$(WS_TOOLS)/parfait/ld
+CC.studio.32 =	$(PARFAIT_TOOLS)/cc
+CXX.studio.32 =	$(PARFAIT_TOOLS)/CC
+CC.studio.64 =	$(PARFAIT_TOOLS)/cc
+CXX.studio.64 =	$(PARFAIT_TOOLS)/CC
+CC.gcc.32 =	$(PARFAIT_TOOLS)/gcc
+CXX.gcc.32 =	$(PARFAIT_TOOLS)/g++
+CC.gcc.64 =	$(PARFAIT_TOOLS)/gcc
+CXX.gcc.64 =	$(PARFAIT_TOOLS)/g++
+CC.gcc3.32 =    $(PARFAIT_TOOLS_GCC3)/gcc
+CXX.gcc3.32 =   $(PARFAIT_TOOLS_GCC3)/g++
+CC.gcc3.64 =    $(PARFAIT_TOOLS_GCC3)/gcc
+CXX.gcc3.64 =   $(PARFAIT_TOOLS_GCC3)/g++
+LD =		$(PARFAIT_TOOLS)/ld
 endif
 
 CC =		$(CC.$(COMPILER).$(BITS))
@@ -357,7 +375,11 @@
 
 PKGREPO =	/usr/bin/pkgrepo
 PKGSEND =	/usr/bin/pkgsend
-PKGLINT =	/usr/bin/pkglint
+ifeq   ($(strip $(PKGLINT_COMPONENT)),)
+PKGLINT =       /usr/bin/pkglint
+else
+PKGLINT =       ${WS_TOOLS}/pkglint
+endif
 
 ACLOCAL =	/usr/bin/aclocal-1.10
 AUTOMAKE =	/usr/bin/automake-1.10
@@ -555,6 +577,8 @@
 # configure environment.
 CFLAGS.gcc +=	$(gcc_OPT)
 CFLAGS.gcc +=	$(gcc_XREGS)
+CFLAGS.gcc3 +=  $(gcc_OPT)
+CFLAGS.gcc3 +=  $(gcc_XREGS)
 
 
 # Build 32 or 64 bit objects.
@@ -612,7 +636,7 @@
 # only be required if the component's native build is horribly broken.
 LD_Z_RESCAN_NOW =	-z rescan-now
 
-LD_Z_TEXT =		-z direct
+LD_Z_TEXT =		-z text
 
 # make sure that -lc is always present when building shared objects.
 LD_DEF_LIBS +=		-lc
@@ -623,6 +647,9 @@
 # eliminate unreferenced dynamic dependencies
 LD_Z_IGNORE =		-z ignore
 
+# eliminate comments
+LD_Z_STRIP_CLASS =      -z strip-class=comment
+
 # use direct binding
 LD_B_DIRECT =		-Bdirect
 
@@ -656,7 +683,8 @@
 # libraries to this macro, as it will apply to everything linked during the
 # component build.
 LD_OPTIONS +=	$(LD_MAP_NOEXSTK.$(MACH)) $(LD_MAP_NOEXDATA.$(MACH)) \
-		$(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) $(LD_Z_IGNORE)
+		$(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) $(LD_Z_IGNORE) \
+		$(LD_Z_STRIP_CLASS)
 
 # Environment variables and arguments passed into the build and install
 # environment(s).  These are the initial settings.
--- a/tools/Makefile	Wed Dec 18 04:50:56 2013 -0800
+++ b/tools/Makefile	Wed Dec 18 10:04:53 2013 -0800
@@ -18,48 +18,63 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../make-rules/shared-macros.mk
 
 download setup prep build install publish \
-validate:	links time-$(MACH32).so time-$(MACH64).so
+validate:	links pkglint time-$(MACH32).so time-$(MACH64).so
 
 # generate wrappers for parfait. we need to generate them
 # with the correct compiler variables from the common makefiles because
 # some things reset the environment which causes lovely infinite
 # loops
 links:
-	$(MKDIR) parfait
+	@$(MKDIR) $(PARFAIT_TOOLS)
 	@for i in cc CC gcc g++ ld ; do \
-		$(MKDIR) parfait ; \
-		$(RM) parfait/$$i ; \
-		echo "#!/bin/ksh" > parfait/$$i ; \
-		echo "IFS=" >> parfait/$$i ; \
-		echo "export PARFAIT_NATIVESUNCC=$(SPRO_VROOT)/bin/cc" >> parfait/$$i ; \
-		echo "export PARFAIT_NATIVESUNCXX=$(SPRO_VROOT)/bin/CC" >> parfait/$$i ; \
-		echo "export PARFAIT_NATIVEGCC=$(GCC_ROOT)/bin/gcc" >> parfait/$$i ; \
-		echo "export PARFAIT_NATIVEGXX=$(GCC_ROOT)/bin/g++" >> parfait/$$i ; \
-		echo "export PARFAIT_CLANG="$(PARFAIT_CLANG) >> parfait/$$i ; \
-		echo "exec" $(PARFAIT_ROOT)/bin/parfait-$$i '$$*' >> parfait/$$i ; \
-		chmod +x parfait/$$i ; \
+		$(RM) $(PARFAIT_TOOLS)/$$i ; \
+		echo "#!/bin/ksh" > $(PARFAIT_TOOLS)/$$i ; \
+		echo "IFS=" >> $(PARFAIT_TOOLS)/$$i ; \
+		echo "export PARFAIT_NATIVESUNCC=$(SPRO_VROOT)/bin/cc" >> $(PARFAIT_TOOLS)/$$i ; \
+		echo "export PARFAIT_NATIVESUNCXX=$(SPRO_VROOT)/bin/CC" >> $(PARFAIT_TOOLS)/$$i ; \
+		echo "export PARFAIT_NATIVEGCC=$(GCC_ROOT)/bin/gcc" >> $(PARFAIT_TOOLS)/$$i ; \
+		echo "export PARFAIT_NATIVEGXX=$(GCC_ROOT)/bin/g++" >> $(PARFAIT_TOOLS)/$$i ; \
+		echo "export PARFAIT_NATIVELD=/usr/bin/ld" >> $(PARFAIT_TOOLS)/$$i ; \
+		echo "exec" $(PARFAIT_ROOT)/$(MACH)/parfait-$$i '$$*' >> $(PARFAIT_TOOLS)/$$i ; \
+		chmod +x $(PARFAIT_TOOLS)/$$i ; \
 	done
+	@$(MKDIR) $(PARFAIT_TOOLS_GCC3)
+	@for i in cc CC gcc g++ ld ; do \
+		$(RM) $(PARFAIT_TOOLS_GCC3)/$$i ; \
+		sed \
+		    -e "s,$(GCC_ROOT),$(GCC3_ROOT)," < $(PARFAIT_TOOLS)/$$i \
+		    > $(PARFAIT_TOOLS_GCC3)/$$i ; \
+		chmod +x $(PARFAIT_TOOLS_GCC3)/$$i ; \
+	done
+
+pkglint:
+	@rm -f pkglint
+	@sed -e "s,WS_TOP_XXX,$(WS_TOP)/$(MACH)," \
+	    < pkglint.sh \
+	    > pkglint
+	@chmod +x pkglint
 
 
 time-$(MACH64).o:			BITS=64
 time-$(MACH32).o time-$(MACH64).o:	CFLAGS += -Kpic
 
 time-$(MACH32).o time-$(MACH64).o:	time.c
-	$(CC) $(CFLAGS) -c -o [email protected] $<
+	@$(CC) $(CFLAGS) -c -o [email protected] $<
 
 time-%.so:	time-%.o
-	$(LD) -G -o [email protected] $<
+	@$(LD) -G -o [email protected] $<
 
 clean:
-	$(RM) time-*.o time*.bc
+	@$(RM) time-*.o time*.bc
+	@$(RM) pkglint
 
 clobber:	clean
-	$(RM) time-*.so python/pkglint/*.pyc
-	$(RM) -r parfait
+	@$(RM) time-*.so python/pkglint/*.pyc
+	@$(RM) -r $(PARFAIT_TOOLS) $(PARFAIT_TOOLS_GCC3) $(MACH)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/pkglint.sh	Wed Dec 18 10:04:53 2013 -0800
@@ -0,0 +1,38 @@
+#!/bin/ksh
+#
+# 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) 2013, Oracle and/or its affiliates. All rights reserved.
+#
+IFS=
+export WS_TOP=WS_TOP_XXX
+
+SLEEPTIME=60
+
+LOCKFILE=${WS_TOP}/pkglint.lock
+
+lockfile -${SLEEPTIME} ${LOCKFILE}
+
+/usr/bin/pkglint $*
+
+pls=$?
+
+rm -f ${LOCKFILE}
+exit ${pls}
--- a/tools/userland-incorporator	Wed Dec 18 04:50:56 2013 -0800
+++ b/tools/userland-incorporator	Wed Dec 18 10:04:53 2013 -0800
@@ -19,7 +19,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 #
 # incorporator - an utility to incorporate packages in a repo
@@ -38,8 +38,11 @@
 	while (<$fp>) {
 
 		# lines should be in the form:
-		#   publisher   package   [r|o] version,branch:timestamp
-		if (/^(\S+)\s+(\S+)\s+\S?\s+([\d.]+),[\d.]+-([\d.]+):.+$/) {
+		#   publisher   package   [r|o] version,5.12-branch:timestamp
+		# or lines should be in the form:
+		#   publisher   package   [r|o] version-branch:timestamp
+		if ((/^(\S+)\s+(\S+)\s+\S?\s+([\d.]+),[\d.]+-([\d.]+):.+$/) ||
+		   (/^(\S+)\s+(\S+)\s+\S?\s+([\d.]+)-([\d.]+):.+$/)) { 
 			my ($package) = ();
 
 			$package->{publisher} = $1;
@@ -47,9 +50,11 @@
 			$package->{version} = $3;
 			$package->{branch} = $4;
 
-			push(@packages, $package);
+			if ($package->{name} !~ m/incorporation/) {
+				push(@packages, $package);
+			} 
 		} else {
-			printf STDERR "SKIP: %s", $_;
+			die "error: cannot handle: ", $_;
 		}
 	}
 
@@ -68,6 +73,7 @@
 }
 
 my ($repository, $fmri, $summary, $description, $consolidation) = ();
+my %seen = ();
 
 $consolidation = 'userland';
 
@@ -89,8 +95,13 @@
 printf "set name=info.classification value='org.opensolaris.category.2008:Meta Packages/Incorporations'\n";
 
 @packages = enumerate_packages($repository, $consolidation, @fmris);
+
 for (@packages) {
+	if ($seen->{$_->{name}} == 1) {
+		die "error: duplicate package ", $_->{name};
+	}
 	printf "depend fmri=pkg:/%[email protected]%s-%s %s=true type=incorporate\n",
-		%$_->{name}, %$_->{version}, %$_->{branch},
-		"facet.version-lock.".%$_->{name};
+		$_->{name}, $_->{version}, $_->{branch},
+		"facet.version-lock.".$_->{name}; 
+	$seen->{$_->{name}} = 1;
 }
--- a/tools/userland-mangler	Wed Dec 18 04:50:56 2013 -0800
+++ b/tools/userland-mangler	Wed Dec 18 10:04:53 2013 -0800
@@ -19,7 +19,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 #
 # userland-mangler - a file mangling utility
@@ -93,7 +93,7 @@
 Further information about this software can be found on the open source community website at %s.
 """
 notes_source = """
-This software was built from source available at http://opensolaris.org/.  The original community source was downloaded from  %s
+This software was built from source available at https://java.net/projects/solaris-userland.  The original community source was downloaded from  %s
 """
 
 def notes_section_text(header_seen, community, source, modified_date):