7041591 duplicate and missing dependencies in x11 IPS packages
authorAlan Coopersmith <Alan.Coopersmith@Oracle.COM>
Wed, 18 May 2011 13:42:51 -0700
changeset 1130 e9cbce844ef6
parent 1129 1df92593295f
child 1131 7dc974a70bc8
7041591 duplicate and missing dependencies in x11 IPS packages 7043714 X pkgs need to be pkglinted
buildit
make_release_packages
open-src/common/Makefile.options.oracle.com
open-src/util/build-tools/find-build-errors
pkg/Makefile
pkg/X-incorporation.p5m
pkg/X-redistributable.p5m
pkg/legacy/SUNWxwsvr.p5m
pkg/legacy/x11-server-xorg-driver-xorg-misc.p5m
pkg/manifests/developer-opensolaris-X.p5m
pkg/manifests/x11-demo.p5m
pkg/manifests/x11-library-libdrm.p5m
pkg/manifests/x11-library-libxmu.p5m
pkg/manifests/x11-server-xorg-driver-xorg-video.p5m
pkg/postpub-pkglintrc
pkg/prepub-pkglintrc
--- a/buildit	Tue May 10 12:30:26 2011 -0700
+++ b/buildit	Wed May 18 13:42:51 2011 -0700
@@ -127,11 +127,13 @@
 cd ..
 
 print "\nFinished building the X Window System Consolidation for OpenSolaris.\n"
-print -n "Finish time: " ; date
+
+if [ "${MAKE_PKGS}" = 1 ] ; then
+    print -n "Build finish time: " ; date ; print ""
+    ./make_release_packages ${PUBLISHER_FLAGS} ${VERBOSE_FLAGS}
+fi
+
+print -n "\nFinish time: " ; date
 perl -e '$runtime = time - $ARGV[0];
 	 printf("Runtime: %d:%02d\n", $runtime/3600, ($runtime%3600)/60); ' \
 	"${START}"
-
-if [ "${MAKE_PKGS}" = 1 ] ; then
-    ./make_release_packages ${PUBLISHER_FLAGS} ${VERBOSE_FLAGS}
-fi
--- a/make_release_packages	Tue May 10 12:30:26 2011 -0700
+++ b/make_release_packages	Wed May 18 13:42:51 2011 -0700
@@ -1,6 +1,6 @@
 #! /bin/ksh93
 #
-# Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -91,11 +91,12 @@
 cd pkg
 ${XMAKE} clean > "${LOG}" 2>&1
 ${XMAKE} install XNV_BUILDNUM="${XNV_BUILDNUM}" "${PUBLISHER_FLAGS}" > "${LOG}" 2>&1
-${XMAKE} check XNV_BUILDNUM="${XNV_BUILDNUM}" > "${CHECK_LOG}" 2>&1
-
 print "Result log is in ${LOG}"
 
+print "Checking built packages"
+${XMAKE} check XNV_BUILDNUM="${XNV_BUILDNUM}" > "${CHECK_LOG}" 2>&1
+print "Package check log is in ${CHECK_LOG}"
+
 "${BUILD_TOOLS}/find-build-errors" -s "${LOG}"
-"${BUILD_TOOLS}/find-build-errors" -s "${CHECK_LOG}"
 
 exit 0
--- a/open-src/common/Makefile.options.oracle.com	Tue May 10 12:30:26 2011 -0700
+++ b/open-src/common/Makefile.options.oracle.com	Wed May 18 13:42:51 2011 -0700
@@ -1,6 +1,6 @@
 # X build options for Oracle Solaris
 #
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -56,3 +56,6 @@
 
 # Additional pkg transforms to set Oracle Solaris branding
 PKG_BRANDING_TRANSFORMS = branding_Oracle
+
+# Reference repository for pkglint to check against
+PKGLINT_REFERENCE_REPO = http://ipkg.us.oracle.com/solaris11/dev/
--- a/open-src/util/build-tools/find-build-errors	Tue May 10 12:30:26 2011 -0700
+++ b/open-src/util/build-tools/find-build-errors	Wed May 18 13:42:51 2011 -0700
@@ -1,7 +1,7 @@
 #! /usr/perl5/bin/perl -w
 
 #
-# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -40,6 +40,7 @@
 my $logfile;
 my $pkglog;
 my $pkglog_type;	# 'ips' or 'svr4'
+my $pkgvalidlog;
 my $pkgfailed;
 my $summary_only = 0;
 
@@ -122,6 +123,13 @@
     } elsif ($l =~ m{Building packages}) {
       $printme = 0;
     }
+    # Log for IPS packaging checks
+    elsif ($l =~ m{Checking built packages}) {
+	next;
+    } elsif ($l =~ m{Package check log is in (\S*)$}ims) {
+	$pkgvalidlog = $1;
+    }
+    # Print selected lines
     elsif ($printme == 1) {
       print $l;
     }
@@ -275,11 +283,20 @@
   }
 }
 
+if ((!defined($pkgfailed) || ($pkgfailed > 0)) && defined($pkglog)) {
+  check_pkg_log($pkglog, $pkglog_type);
+}
 
-if ((!defined($pkgfailed) || ($pkgfailed > 0)) && defined($pkglog)) {
-  if ($pkglog_type eq 'svr4') {
-    open my $PKGLOG, '<', $pkglog
-      or die "Can't open '$pkglog': $OS_ERROR";
+if (defined($pkgvalidlog)) {
+  print "\nScanning $pkgvalidlog for package checking issues...\n\n";
+  check_pkg_log($pkgvalidlog, 'validate');
+}
+
+sub check_pkg_log {
+  my ($logfile, $logtype) = @_;
+  if ($logtype eq 'svr4') {
+    open my $PKGLOG, '<', $logfile
+      or die "Can't open '$logfile': $OS_ERROR";
 
     my @pkglines;
 
@@ -302,9 +319,9 @@
       }
     }
     close($PKGLOG);
-  } elsif ($pkglog_type eq 'ips') {
+  } elsif ($logtype eq 'ips') {
     my $ips_count_errors = 0;
-    my $PKGLOG = check_make_log($pkglog, \$ips_count_errors);
+    my $PKGLOG = check_make_log($logfile, \$ips_count_errors);
 
     seek($PKGLOG, 0, 0);  # reset to start reading from beginning of file
 
@@ -318,19 +335,25 @@
 
     print "Packages published: $ips_count_published\n";
     print "Package build errors: $ips_count_errors\n";
-  } elsif ($pkglog_type eq 'validate') { # validate_pkg
-    open my $PKGLOG, '<', $pkglog
-      or die "Can't open '$pkglog': $OS_ERROR";
+  } elsif ($logtype eq 'validate') { # validate_pkg
+    open my $PKGLOG, '<', $logfile
+      or die "Can't open '$logfile': $OS_ERROR";
 
     my @pkglines;
     my $issue_count = 0;
     my $issue_type = "";
 
+    my $publisher;
+
     while (my $l = <$PKGLOG>) {
       chomp($l);
 
+      if ($l =~ m{^\#\# Running pkglint on the (\S+) repository}) {
+	$publisher = $1;
+      }
+
       # Clear saved lines for each new class of issue
-      if ($l =~ m{^\S+ .*:+$}ms) {
+      if (($l =~ m{^\S+ .*:+$}ms) || ($l =~ m{^\#\# })) {
 	$issue_type = $l;
 	$issue_count = 0;
 	@pkglines = ();
@@ -339,8 +362,8 @@
 
       # These issues print across two lines
       if ($issue_type eq
-	  'Entries that differ between manifests and proto area:')
-	{
+	  'Entries that differ between manifests and proto area:') 
+        {
 	  if ($l =~ m{^\s+manifests }) {
 	    my $l2 = <$PKGLOG>;
 	    chomp($l2);
@@ -388,14 +411,32 @@
 	  }
 	}
 
-      if ($l =~ m{^$}) { # Blank lines separate sections
-	if ($issue_count > 0) {
-	  if ($summary_only) {
-	    print $issue_type, ' ', $issue_count, "\n";
-	  } else {
-	    print join("\n", $issue_type, '', @pkglines), "\n\n";
-	  }
+      # Skip warnings we can't do anything about (workaround for
+      # https://defect.opensolaris.org/bz/show_bug.cgi?id=18346 )
+      if ($l =~ m{^WARNING pkglint.manifest004}) {
+	next unless $l =~ m{pkg://$publisher/};
+      }
+
+      # Skip informational messages from pkglint
+      next if ($l =~ m{^INFO pkglint});
+
+      # Group pkglint errors by type
+      if ($l =~ m{^([A-Z]+ (?:pkglint|opensolaris)\S+)\s+(.*)$}) {
+	my ($new_issue, $details) = ($1, $2);
+	if ($issue_type eq $new_issue) {
+	  push @pkglines, $details;
+	  $issue_count++;
+	} else {
+	  print_valid_issue($issue_type, $issue_count, \@pkglines);
+	  $issue_type = $new_issue;
+	  $issue_count = 1;
+	  @pkglines = ($details);
 	}
+      }
+      elsif ($l =~ m{^$}) { # Blank lines separate validate_pkg sections
+	print_valid_issue($issue_type, $issue_count, \@pkglines);
+	$issue_type = "";
+	$issue_count = 0;
 	@pkglines = ();
       } else {
 	push @pkglines, $l;
@@ -403,6 +444,24 @@
       }
 
     }
+    # print any final issues that weren't followed by a blank line
+    print_valid_issue($issue_type, $issue_count, \@pkglines);
     close($PKGLOG);
   }
 }
+
+sub print_valid_issue
+{
+  my ($issue_type, $issue_count, $pkglines) = @_;
+
+  if ($issue_count > 0) {
+    if ($issue_type !~ m{:$}) {
+      $issue_type .= ':';
+    }
+    if ($summary_only) {
+      print $issue_type, ' ', $issue_count, "\n";
+    } else {
+      print join("\n", $issue_type, '', @{$pkglines}), "\n\n";
+    }
+  }
+}
--- a/pkg/Makefile	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/Makefile	Wed May 18 13:42:51 2011 -0700
@@ -67,6 +67,7 @@
 LN=             /usr/bin/ln
 MV=             /usr/bin/mv -f
 RM=             /usr/bin/rm -f
+SED=	        /usr/bin/sed
 TOUCH=          /usr/bin/touch
 
 #
@@ -363,6 +364,35 @@
 
 gendeps: $(PDIR)/gendeps
 
+### pkglint checking (pre-publication)
+
+PKGLINT = pkglint
+PKGLINTRC = prepub-pkglintrc
+
+#
+# This rule runs pkglint across all manifests to be published.
+#
+# We require that packages be free from lint ERRORs before allowing them
+# to be published.  Lint WARNINGs are acceptable (though unpleasant)
+# The list of packages is the list of packages that did not resolve to
+# 0-byte files, $CHECK_PKGS
+#
+$(PDIR)/checkmf: $(PDIR)/gendeps $(DEP_SYNTH_PKGS) $(DEP_PKGS)
+	@print "## Checking packages"
+	@$(TOUCH) $(PDIR)/pkglint-output.txt
+	-$(PKGDEBUG)for p in $(DEP_SYNTH_PKGS:%.dep=%) $(DEP_PKGS:%.dep=%); do \
+		if [[ -s $$p.res ]]; then \
+			CHECK_PKGS="$$p.res $${CHECK_PKGS}"; \
+		fi; \
+	done; \
+	if [[ -n "$${CHECK_PKGS}" ]]; then \
+		$(PKGLINT) -f $(PKGLINTRC) $${CHECK_PKGS} \
+		    2> $(PDIR)/pkglint-output.txt; \
+	fi ; \
+	if grep '^ERROR' $(PDIR)/pkglint-output.txt; then \
+		return 1; \
+	fi
+
 ### Repo setup
 
 # Default in developer builds is "xnv-devel"
@@ -380,9 +410,9 @@
 
 ### Package publication to repo
 PUB_PKGS= $(SYNTH_PKGS:%=$(PDIR)/%.pub) $(PKGS:%=$(PDIR)/%.pub)
-publish_pkgs: $(PKGDEST) $(PDIR)/gendeps $(PUB_PKGS)
+publish_pkgs: $(PKGDEST) $(PDIR)/gendeps $(PDIR)/checkmf $(PUB_PKGS)
 
-$(PUB_PKGS): $(PKGDEST) $(PDIR)/gendeps
+$(PUB_PKGS): $(PKGDEST) $(PDIR)/gendeps $(PDIR)/checkmf
 
 $(PDIR)/%.pub:  $(PKGDEST) $(PDIR)/gendeps $(PDIR)/%.res
 	$(PKGDEBUG) if [ -s $(@:%.pub=%.res) ]; then \
@@ -405,6 +435,24 @@
 		--add-content --exit-ready
 	$(PKGDEBUG)chmod a+r $(PKGDEST)/cfg_cache
 
+### pkglint checking (post-publication)
+
+LINT_PKGLINTRC = postpub-pkglintrc
+
+#
+# Perform a pkglint run on the published repositories.  We remove package
+# version information from the lint output so that it is comparable across
+# lint runs.
+#
+lint:
+	@print "## Running pkglint on the $(PKGPUBLISHER) repository"
+	-$(PKGDEBUG)$(PKGLINT) -f $(LINT_PKGLINTRC) \
+	    -l file://$(PKGDEST) -c /tmp/pkglint_cache.$$$$ \
+	    $(PKGLINT_REFERENCE_REPO:%=-r %) \
+	    > /dev/null 2> $(PDIR)/pkglint.lint; \
+	$(RM) -rf /tmp/pkglint_cache.$$$$
+	$(PKGDEBUG)$(SED) -e 's/@[0-9TZ.:,-]*//g' $(PDIR)/pkglint.lint
+
 ### Overall rules
 
 all: $(PROC_PKGS) $(PROC_SYNTH_PKGS) $(DEP_PKGS) $(DEP_SYNTH_PKGS) \
@@ -439,7 +487,7 @@
 pmodes: $(PROC_PKGS) fix_perms
 	$(PKGDEBUG)validate_pkg -a $(PKGMACH) -M -m $(PDIR)
 
-check: protocmp pmodes
+check: protocmp pmodes lint
 
 # Instead of fixing all the upstream packages to follow our permission rules
 # just fix the proto area to match our rules
--- a/pkg/X-incorporation.p5m	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/X-incorporation.p5m	Wed May 18 13:42:51 2011 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,12 @@
 #
 
 set name=pkg.fmri value=pkg:/consolidation/X/X-incorporation@$(OSPKGVERS)
-set name=pkg.description value="This incorporation constrains packages from the X Window System consolidation."
+set name=pkg.depend.install-hold value=core-os.X
+set name=pkg.description \
+    value="This incorporation constrains packages from the X Window System consolidation."
 set name=pkg.summary value="X consolidation incorporation"
-set name=pkg.depend.install-hold value=core-os.X
+set name=info.classification \
+    value="org.opensolaris.category.2008:Meta Packages/Incorporations"
 <include packages.current>
 <include packages.renamed>
 <include packages.obsolete>
--- a/pkg/X-redistributable.p5m	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/X-redistributable.p5m	Wed May 18 13:42:51 2011 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -25,5 +25,7 @@
 set name=pkg.description \
     value="This group package installs all packages from the X Window System consolidation."
 set name=pkg.summary value="X consolidation group package"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Meta Packages/Group Packages"
 <include packages.current>
 <include packages.grouponly>
--- a/pkg/legacy/SUNWxwsvr.p5m	Tue May 10 12:30:26 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-#
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-#
-set name=pkg.fmri value=pkg:/[email protected],5.11-0.130
-set name=pkg.renamed value=true
-depend fmri=pkg:/[email protected] type=require
--- a/pkg/legacy/x11-server-xorg-driver-xorg-misc.p5m	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/legacy/x11-server-xorg-driver-xorg-misc.p5m	Wed May 18 13:42:51 2011 -0700
@@ -21,15 +21,11 @@
 # DEALINGS IN THE SOFTWARE.
 #
 set name=pkg.fmri \
-    value=pkg:/x11/server/xorg/driver/[email protected],5.11-0.162
+    value=pkg:/x11/server/xorg/driver/[email protected],5.11-0.167
 set name=pkg.renamed value=true
 
 # Depends on packages for video drivers split out of this package in snv_144
 # and remaining after the removal of the EOF drivers in 153 & 162.
-#
-# Does not depend on the new xorg-video group package, since that
-# would force in the latest nvidia driver on upgrade, possibly breaking
-# users with older cards needing the nvidia legacy driver.
 
 depend fmri=pkg:/x11/server/xorg/driver/[email protected],5.11-0.152 \
     type=require
@@ -66,3 +62,5 @@
 $(i386_ONLY)depend \
     fmri=pkg:/x11/server/xorg/driver/[email protected],5.11-0.152 \
     type=require
+depend fmri=pkg:/x11/server/xorg/driver/[email protected],5.11-0.167 \
+    type=require
--- a/pkg/manifests/developer-opensolaris-X.p5m	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/manifests/developer-opensolaris-X.p5m	Wed May 18 13:42:51 2011 -0700
@@ -20,8 +20,6 @@
 # DEALINGS IN THE SOFTWARE.
 #
 set name=pkg.fmri value=pkg:/developer/opensolaris/X@$(OSPKGVERS)
-set name=pkg.description \
-    value="Dependencies required to build the X Consolidation."
 set name=pkg.summary \
     value="Dependencies required to build the X Consolidation."
 set name=info.classification \
@@ -126,12 +124,12 @@
 # xterm uses ncurses/term.h
 depend fmri=pkg:/library/ncurses type=require
 
+# Mesa 7.10.2 requires libxml2 python module
+depend fmri=pkg:/library/python-2/libxml2-26 type=require
+
 # libXfont & libfontenc link with libz
 depend fmri=pkg:/library/zlib type=require
 
-# Mesa 7.10.2 requires libxml2 python module
-depend fmri=pkg:/library/python-2/libxml2-26 type=require
-
 # Build runs a number of perl scripts
 depend fmri=pkg:/runtime/perl-510 type=require
 depend fmri=pkg:/runtime/perl-584 type=require
--- a/pkg/manifests/x11-demo.p5m	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/manifests/x11-demo.p5m	Wed May 18 13:42:51 2011 -0700
@@ -1,4 +1,4 @@
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,6 +22,10 @@
 set name=pkg.fmri value=pkg:/x11/demo@$(X11PKGVERS)
 set name=pkg.description \
     value="ico, xeyes, xgc, and xlogo sample clients to demonstrate or test various X operations."
+# Silence pkglint WARNING pkglint.manifest004:
+#	last name component demo in package name clashes across
+#	pkg://solaris/library/java/demo pkg://xnv-devel/x11/
+set name=pkg.linted value=True
 set name=pkg.summary value="X Window System demo programs"
 dir path=usr
 dir path=usr/X11
--- a/pkg/manifests/x11-library-libdrm.p5m	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/manifests/x11-library-libdrm.p5m	Wed May 18 13:42:51 2011 -0700
@@ -21,9 +21,9 @@
 #
 set name=pkg.fmri value=pkg:/x11/library/libdrm@__version:libdrm__
 set name=pkg.description \
-    value="Direct Rendering Module (DRM) client library/interface"
+    value="User-space library interface to kernel modules using the Direct Rendering Infrastructure (DRI) and Kernel Mode-Setting (KMS) interfaces"
 set name=pkg.summary \
-    value="Direct Rendering Module (DRM) client library/interface"
+    value="Direct Rendering Module (DRM) client libraries/interface"
 dir path=usr
 dir path=usr/X11
 dir path=usr/X11/include
--- a/pkg/manifests/x11-library-libxmu.p5m	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/manifests/x11-library-libxmu.p5m	Wed May 18 13:42:51 2011 -0700
@@ -78,4 +78,3 @@
 link path=usr/lib/$(ARCH64)/libXmu.so target=libXmu.so.4
 link path=usr/lib/libXmu.so target=libXmu.so.4
 depend fmri=pkg:/x11/header/x11-protocols type=require facet.devel=true
-depend fmri=pkg:/x11/library/libxmuu type=require
--- a/pkg/manifests/x11-server-xorg-driver-xorg-video.p5m	Tue May 10 12:30:26 2011 -0700
+++ b/pkg/manifests/x11-server-xorg-driver-xorg-video.p5m	Wed May 18 13:42:51 2011 -0700
@@ -31,53 +31,49 @@
 ### Depends on packages delivering the drivers
 
 # Nvidia driver (from outside the X gate)
-$(i386_ONLY)depend fmri=pkg:/driver/graphics/nvidia type=require
+$(i386_ONLY)depend fmri=pkg:/driver/graphics/nvidia type=group
 
 # driver/efb
-$(sparc_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-efb type=require
+$(sparc_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-efb type=group
 
 # driver/xf86-video-ast
-depend fmri=pkg:/x11/server/xorg/driver/xorg-video-ast type=require
+depend fmri=pkg:/x11/server/xorg/driver/xorg-video-ast type=group
 
 # driver/xf86-video-ati
-$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-ati \
-    type=require
+$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-ati type=group
 
 # driver/xf86-video-cirrus
 $(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-cirrus \
-    type=require
+    type=group
 
 # driver/xf86-video-intel
 $(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-intel \
-    type=require
+    type=group
 
 # driver/xf86-video-mach64
 $(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-mach64 \
-    type=require
+    type=group
 
 # driver/xf86-video-mga
-$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-mga \
-    type=require
+$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-mga type=group
 
 # driver/xf86-video-nv
-$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-nv type=require
+$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-nv type=group
 
 # driver/xf86-video-openchrome
 $(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-openchrome \
-    type=require
+    type=group
 
 # driver/xf86-video-r128
-$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-r128 \
-    type=require
+$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-r128 type=group
 
 # driver/xf86-video-trident
 $(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-trident \
-    type=require
+    type=group
 
 # driver/xf86-video-vesa
-$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-vesa \
-    type=require
+$(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-vesa type=group
 
 # driver/xf86-video-vmware
 $(i386_ONLY)depend fmri=pkg:/x11/server/xorg/driver/xorg-video-vmware \
-    type=require
+    type=group
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg/postpub-pkglintrc	Wed May 18 13:42:51 2011 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+
+[pkglint]
+# The default log level at which to start emitting messages
+# log levels are, in order of increasing priority,
+# DEBUG, INFO, WARNING, ERROR, CRITICAL
+log_level = INFO
+
+# Whether to ignore publisher differences when comparing package versions
+ignore_different_publishers = True
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg/prepub-pkglintrc	Wed May 18 13:42:51 2011 -0700
@@ -0,0 +1,35 @@
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+
+[pkglint]
+# The default log level at which to start emitting messages
+# log levels are, in order of increasing priority,
+# DEBUG, INFO, WARNING, ERROR, CRITICAL
+log_level = INFO
+
+# Whether to ignore publisher differences when comparing package versions
+ignore_different_publishers = True
+
+# Can't check for non-obsolete depends without using a repo for the whole WOS
+# which we do later, in the second pass, after publication
+pkglint.exclude = pkg.lint.pkglint_action.PkgActionChecker.dep_obsolete