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.
#