Print this page
NEX-9559 remove nza-closed cruft
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Reviewed by: Steve Peng <steve.peng@nexenta.com>
NEX-5206 pkg should use the adjunct for dependency resolution
Reviewed by: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
NEX-3128 remove dependency on sysidtool
Reviewed by: Gordon Ross <gwr@nexenta.com>
Reviewed by: Jean McCormack <jean.mccormack@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
NEX-3127 nza-kernel can't be built with fresh perl versions
Reviewed by: Gordon Ross <gwr@nexenta.com>
Reviewed by: Jean McCormack <jean.mccormack@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
NEX-3124 Disable IPP printing like SMB printing can be disabled
Reviewed by: Gordon Ross <gwr@nexenta.com>
Reviewed by: Jean McCormack <jean.mccormack@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
NEX-1666 More maintainable ips2deb
4463 NLM fails wrongly on clnt_control().
Reviewed by: Marcel Telka <marcel@telka.sk>
Reviewed by: Jason King <jason.brian.king@gmail.com>
Approved by: Garrett D'Amore <garrett@damore.org>
4413 repository-metadata target should use "pkgrepo refresh" instead of "pkg.depotd"
Reviewed by: Gordon Ross <gordon.w.ross@gmail.com>
Reviewed by: Alexander Pyhalov <alp@rsu.ru>
Reviewed by: Richard PALO <richard.palo@free.fr>
Approved by: Richard Lowe <richlowe@richlowe.net>
re #13842 make clobber leaves trash
re #13468 rb4431 ACPI CA could be less verbose in release builds
re #12731 rb4460 Integrate ISA-L kernel module into nza-closed
Adding AoE support to nza-kernel

@@ -19,10 +19,11 @@
 # CDDL HEADER END
 #
 
 #
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright 2014 Nexenta Systems, Inc. All rights reserved.
 # Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved.
 # Copyright 2015 Igor Kozhukhov <ikozhukhov@gmail.com>
 #
 
 include $(SRC)/Makefile.master

@@ -240,15 +241,21 @@
 SYNTH_PKGS= osnet-incorporation osnet-redist
 DEP_SYNTH_PKGS= $(SYNTH_PKGS:%=$(PDIR)/%.dep)
 PROC_SYNTH_PKGS= $(SYNTH_PKGS:%=$(PDIR)/%.mog)
 
 #
-# Root of pkg image to use for dependency resolution
-# Normally / on the machine used to build the binaries
+# Root of pkg image to use for dependency resolution Normally / on the machine
+# used to build the binaries, or the ADJUNCT_PROTO
 #
-PKGDEP_RESOLVE_IMAGE = /
+PKG_ADJUNCT.cmd= AP=$${ADJUNCT_PROTO:-/}; if [[ -d $${AP}/var/pkg ]]; then \
+                echo $$AP; \
+        else    \
+                echo /; \
+        fi
 
+PKGDEP_RESOLVE_IMAGE = $(PKG_ADJUNCT.cmd:sh)
+
 #
 # For each package, we determine the target repository based on
 # manifest-embedded metadata.  Because we make that determination on
 # the fly, the publication target cannot be expressed as a
 # subdirectory inside the unknown-by-the-makefile target repository.

@@ -358,10 +365,14 @@
 #                               processed manifests
 # 
 
 ALL_TARGETS= $(PROC_SYNTH_PKGS) proto_list_$(PKGMACH)
 
+# This may be empty, or set to "ips", or "deb"
+PKGTYPE=ips
+include Makefile.$(PKGTYPE)
+
 all: $(ALL_TARGETS)
 
 #
 # This will build the directory to contain the processed manifests
 # and the metadata symlinks.

@@ -383,12 +394,12 @@
                 for p in $(DEP_PKGS:%.dep=%); do \
                         $(CP) $$p.dep $$p.res; \
                 done; \
         else \
                 print "Resolving dependencies"; \
-                pkgdepend -R $(PKGDEP_RESOLVE_IMAGE) resolve \
-                    -m $(DEP_SYNTH_PKGS) $(DEP_PKGS); \
+                pkgdepend $(PKGDEP_FLAGS) resolve \
+                    $(PKGRES_FLAGS) $(DEP_SYNTH_PKGS) $(DEP_PKGS); \
                 for p in $(DEP_SYNTH_PKGS:%.dep=%) $(DEP_PKGS:%.dep=%); do \
                         if [ "$$(print $$p.metadata.*)" = \
                              "$$(print $$p.metadata.noincorp.*)" ]; \
                         then \
                                 print "Removing dependency versions from $$p"; \

@@ -401,45 +412,11 @@
                         fi; \
                 done; \
         fi
         $(PKGDEBUG)$(TOUCH) $(@)
 
-install: $(ALL_TARGETS) repository-metadata
-
-repository-metadata: publish_pkgs
-        $(PKGDEBUG)for r in $(REPOS); do \
-                pkgrepo refresh -s $(PKGDEST)/repo.$$r; \
-        done
-
 #
-# Since we create zero-length processed manifests for a graceful abort
-# from pkgmogrify, we need to detect that here and make no effort to
-# publish the package.
-#
-# For all other packages, we publish them regardless of status.  We
-# derive the target repository as a component of the metadata-derived
-# symlink for each package.
-#
-publish_pkgs: $(REPOS:%=$(PKGDEST)/repo.%) $(PDIR)/gendeps .WAIT $(PUB_PKGS)
-
-#
-# Before publishing, we want to pull the license files from $CODEMGR_WS
-# into the proto area.  This allows us to NOT pass $SRC (or
-# $CODEMGR_WS) as a basedir for publication.
-#
-$(PUB_PKGS): stage-licenses
-
-#
-# Initialize the empty on-disk repositories
-#
-$(REPOS:%=$(PKGDEST)/repo.%):
-        @print "Initializing $(@F)"
-        $(PKGDEBUG)$(INS.dir)
-        $(PKGDEBUG)pkgsend -s file://$(@) create-repository \
-                --set-property publisher.prefix=$(PKGPUBLISHER)
-
-#
 # rule to process real manifests
 #
 # To allow redistributability and package status to change, we must
 # remove not only the actual build target (the processed manifest), but
 # also the incidental ones (the metadata-derived symlinks).

@@ -496,11 +473,11 @@
 .SUFFIXES: .mf .mog .dep .res .pub
 
 $(PDIR)/%.mog: manifests/%.mf
         @print "Processing manifest $(<F)"
         @env PKGFMT_OUTPUT=v1 pkgfmt -c $<
-        $(PKGDEBUG)$(RM) $(@) $(@:%.mog=%) $(@:%.mog=%.nodepend) \
+        $(PKGDEBUG)$(RM) -r $(@) $(@:%.mog=%) $(@:%.mog=%.nodepend) \
                 $(@:%.mog=%.lics) $(PDIR)/$(@F:%.mog=%).metadata.* $(@).vars
         $(PKGDEBUG)$(PKGMOGRIFY) $(PKGMOG_VERBOSE) $(PM_INC:%= -I %) \
                 $(PKGMOG_DEFINES:%=-D %) -P $(@).vars -O $(@) \
                 $(<) $(PM_TRANSFORMS)
         $(PKGDEBUG)eval REPO=redist PKGSTAT=current NODEPEND=$(SUPPRESSPKGDEP) \

@@ -530,29 +507,10 @@
         else \
                 $(CP) $(<) $(@); \
         fi
 
 #
-# The full chain implies that there should be a .dep.res suffix rule,
-# but dependency generation is done on a set of manifests, rather than
-# on a per-manifest basis.  Instead, see the gendeps rule above.
-#
-
-$(PDIR)/%.pub: $(PDIR)/%.res
-        $(PKGDEBUG)m=$$(basename $(@:%.pub=%).metadata.*); \
-        r=$${m#$(@F:%.pub=%.metadata.)+(?).}; \
-        if [ -s $(<) ]; then \
-                print "Publishing $(@F:%.pub=%) to $$r repository"; \
-                pkgsend -s file://$(PKGDEST)/repo.$$r publish \
-                    -d $(PKGROOT) -d $(TOOLSROOT) \
-                    -d license_files -d $(PKGROOT)/licenses \
-                    --fmri-in-manifest --no-index --no-catalog $(<) \
-                    > /dev/null; \
-        fi; \
-        $(TOUCH) $(@);
-
-#
 # rule to build the synthetic manifests
 #
 # This rule necessarily has PKGDEP_TYPE that changes according to
 # the specific synthetic manifest.  Rather than escape command
 # dependency checking for the real manifest processing, or failing to

@@ -706,11 +664,10 @@
 # avoid these targets and override PKGS on the make command line and
 # use the provided all and install targets.
 #
 $(PKGS) $(SYNTH_PKGS): $(PDIR)/$$(@:%=%.mog)
 
-$(PKGS:%=%.pub) $(SYNTH_PKGS:%=%.pub): $(PDIR)/$$(@)
 
 #
 # This is a convenience target to resolve dependencies without publishing
 # packages.
 #