1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

root/csw/mgar/pkg/nss/trunk/Makefile

Revision 16916, 14.1 KB (checked in by dmichelsen, 4 months ago)

WHOLE TREE: Explicitly set GARTYPE to current default 'v2'

  • Property svn:keywords set to Id
Line 
1# Copyright 2009 OpenCSW
2# Distributed under the terms of the GNU General Public License v2
3# $Id$
4#
5# Based on the following resources:
6# - http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-libs/nss/nss-3.12.4-r1.ebuild?view=markup
7# - https://developer.mozilla.org/en/NSS_reference/Building_and_installing_NSS/Build_instructions
8# - https://developer.mozilla.org/en/NSS_reference/NSS_environment_variables
9# - https://developer.mozilla.org/en/NSS_reference/Building_and_installing_NSS/Installation_guide
10#
11# A discussion:
12# - https://groups.google.com/group/mozilla.dev.tech.crypto/browse_thread/thread/709646e32fc4fad0#
13#
14# TODO: nss-config
15# TODO: a better nss.pc
16#
17# there are a lot of other tools, which are not in the package at the moment,
18# some of them was part of the 'Netscape/iPlanet Certificate Management System', see:
19# http://docs.oracle.com/cd/E19850-01/816-6400-10/pkcsutil.html
20# http://docs.oracle.com/cd/E19397-01/816-5549-10/contents.htm
21# thats someone needs
22# other resources:  news group mozilla.dev.tech.crypto
23# http://www.mozilla.org/projects/security/pki/nss/tools/
24
25NAME = nss
26MAJOR_VERSION = 3
27MINOR_VERSION = 12
28PATCHLEVEL    = 11
29VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(PATCHLEVEL)
30CATEGORIES = lib
31GARTYPE = v2
32DESCRIPTION = Network Security Services library
33define BLURB
34  Network Security Services (NSS) is a set of libraries designed to support
35  cross-platform development of security-enabled client and server
36  applications. Applications built with NSS can support SSL v2 and v3, TLS,
37  PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and
38  other security standards.
39endef
40SPKG_SOURCEURL = http://www.mozilla.org/projects/security/pki/nss/
41# TODO: Generate RTM_NAME from VERSION
42RTM_NAME = NSS_$(MAJOR_VERSION)_$(MINOR_VERSION)_$(PATCHLEVEL)_RTM
43MASTER_SITES = http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/$(RTM_NAME)/src/
44DISTFILES  = $(NAME)-$(VERSION).tar.gz
45DISTFILES += mpl-tri-license-txt
46UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz
47
48PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386
49
50PACKAGES += CSWlibnss3
51CATALOGNAME_CSWlibnss3 = libnss3
52SPKG_DESC_CSWlibnss3 += $(DESCRIPTION), libnss3.so
53PKGFILES_CSWlibnss3 += $(call baseisadirs,$(libdir),libnss3\.so)
54PKGFILES_CSWlibnss3 += $(call baseisadirs,$(libdir),libnss3\.so(\.\d+)*)
55RUNTIME_DEP_PKGS_CSWlibnss3 += CSWlibnssutil3
56RUNTIME_DEP_PKGS_CSWlibnss3 += CSWlibplds4
57RUNTIME_DEP_PKGS_CSWlibnss3 += CSWlibnspr4
58RUNTIME_DEP_PKGS_CSWlibnss3 += CSWlibplc4
59
60PACKAGES += CSWlibnssckbi
61CATALOGNAME_CSWlibnssckbi = libnssckbi
62PKGFILES_CSWlibnssckbi += $(call baseisadirs,$(libdir),libnssckbi\.so)
63PKGFILES_CSWlibnssckbi += $(call baseisadirs,$(libdir),libnssckbi\.so(\.\d+)*)
64SPKG_DESC_CSWlibnssckbi += $(DESCRIPTION), libnssckbi.so
65RUNTIME_DEP_PKGS_CSWlibnssckbi += CSWlibplds4
66RUNTIME_DEP_PKGS_CSWlibnssckbi += CSWlibnspr4
67RUNTIME_DEP_PKGS_CSWlibnssckbi += CSWlibplc4
68
69PACKAGES += CSWlibnssdbm3
70CATALOGNAME_CSWlibnssdbm3 = libnssdbm3
71PKGFILES_CSWlibnssdbm3 += $(call baseisadirs,$(libdir),libnssdbm3\.so)
72PKGFILES_CSWlibnssdbm3 += $(call baseisadirs,$(libdir),libnssdbm3\.so(\.\d+)*)
73PKGFILES_CSWlibnssdbm3 += $(call baseisadirs,$(libdir),libnssdbm3\.chk)
74SPKG_DESC_CSWlibnssdbm3 += $(DESCRIPTION), libnssdbm3.so
75RUNTIME_DEP_PKGS_CSWlibnssdbm3 += CSWlibnssutil3
76RUNTIME_DEP_PKGS_CSWlibnssdbm3 += CSWlibplds4
77RUNTIME_DEP_PKGS_CSWlibnssdbm3 += CSWlibnspr4
78RUNTIME_DEP_PKGS_CSWlibnssdbm3 += CSWlibplc4
79
80PACKAGES += CSWlibnssutil3
81CATALOGNAME_CSWlibnssutil3 = libnssutil3
82PKGFILES_CSWlibnssutil3 += $(call baseisadirs,$(libdir),libnssutil3\.so)
83PKGFILES_CSWlibnssutil3 += $(call baseisadirs,$(libdir),libnssutil3\.so(\.\d+)*)
84SPKG_DESC_CSWlibnssutil3 += $(DESCRIPTION), libnssutil3.so
85RUNTIME_DEP_PKGS_CSWlibnssutil3 += CSWlibplds4
86RUNTIME_DEP_PKGS_CSWlibnssutil3 += CSWlibnspr4
87RUNTIME_DEP_PKGS_CSWlibnssutil3 += CSWlibplc4
88
89PACKAGES += CSWlibsmime3
90CATALOGNAME_CSWlibsmime3 = libsmime3
91SPKG_DESC_CSWlibsmime3 += $(DESCRIPTION), libsmime3.so
92PKGFILES_CSWlibsmime3 += $(call baseisadirs,$(libdir),libsmime3\.so)
93PKGFILES_CSWlibsmime3 += $(call baseisadirs,$(libdir),libsmime3\.so(\.\d+)*)
94RUNTIME_DEP_PKGS_CSWlibsmime3 += CSWlibnss3
95RUNTIME_DEP_PKGS_CSWlibsmime3 += CSWlibnssutil3
96RUNTIME_DEP_PKGS_CSWlibsmime3 += CSWlibplds4
97RUNTIME_DEP_PKGS_CSWlibsmime3 += CSWlibnspr4
98RUNTIME_DEP_PKGS_CSWlibsmime3 += CSWlibplc4
99
100PACKAGES += CSWlibsoftokn3
101CATALOGNAME_CSWlibsoftokn3 = libsoftokn3
102PKGFILES_CSWlibsoftokn3 += $(call baseisadirs,$(libdir),libsoftokn3\.so)
103PKGFILES_CSWlibsoftokn3 += $(call baseisadirs,$(libdir),libsoftokn3\.so(\.\d+)*)
104PKGFILES_CSWlibsoftokn3 += $(call baseisadirs,$(libdir),libsoftokn3\.chk)
105SPKG_DESC_CSWlibsoftokn3 += $(DESCRIPTION), libsoftokn3.so
106RUNTIME_DEP_PKGS_CSWlibsoftokn3 += CSWlibnspr4
107RUNTIME_DEP_PKGS_CSWlibsoftokn3 += CSWlibplc4
108RUNTIME_DEP_PKGS_CSWlibsoftokn3 += CSWlibsqlite3-0
109RUNTIME_DEP_PKGS_CSWlibsoftokn3 += CSWlibnssutil3
110RUNTIME_DEP_PKGS_CSWlibsoftokn3 += CSWlibplds4
111
112PACKAGES += CSWlibssl3
113CATALOGNAME_CSWlibssl3 = libssl3
114SPKG_DESC_CSWlibssl3 += $(DESCRIPTION), libssl3.so
115PKGFILES_CSWlibssl3 += $(call baseisadirs,$(libdir),libssl3\.so)
116PKGFILES_CSWlibssl3 += $(call baseisadirs,$(libdir),libssl3\.so(\.\d+)*)
117RUNTIME_DEP_PKGS_CSWlibssl3 += CSWlibnss3
118RUNTIME_DEP_PKGS_CSWlibssl3 += CSWlibnspr4
119RUNTIME_DEP_PKGS_CSWlibssl3 += CSWlibplc4
120RUNTIME_DEP_PKGS_CSWlibssl3 += CSWlibnssutil3
121
122PACKAGES += CSWlibfreebl3
123CATALOGNAME_CSWlibfreebl3 = libfreebl3
124SPKG_DESC_CSWlibfreebl3 += $(DESCRIPTION), libfreebl libs
125PKGFILES_CSWlibfreebl3 += $(call baseisadirs,$(libdir),libfreebl.*3\.so)
126PKGFILES_CSWlibfreebl3 += $(call baseisadirs,$(libdir),libfreebl.*3\.so(\.\d+)*)
127PKGFILES_CSWlibfreebl3 += $(call baseisadirs,$(libdir),libfreebl.*3\.chk)
128RUNTIME_DEP_PKGS_CSWlibfreebl3 += CSWlibnssutil3
129RUNTIME_DEP_PKGS_CSWlibfreebl3 += CSWlibnspr4
130
131PACKAGES += CSWlibnss-dev
132CATALOGNAME_CSWlibnss-dev = libnss_dev
133SPKG_DESC_CSWlibnss-dev = Network Security Services library, development files
134RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibnss3
135RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibssl3
136RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibsqlite3-0
137RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibnspr4
138RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibplds4
139RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibplc4
140RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibsoftokn3
141RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibsmime3
142RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibnssutil3
143RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibnssdbm3
144RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibnssckbi
145RUNTIME_DEP_PKGS_CSWlibnss-dev += CSWlibfreebl3
146OBSOLETED_BY_CSWlibnss-dev = CSWlibnss3-devel
147
148PACKAGES += CSWlibnss3-tools
149CATALOGNAME_CSWlibnss3-tools = libnss3_tools
150SPKG_DESC_CSWlibnss3-tools = Network Security Services library, command-line utilities
151PKGFILES_CSWlibnss3-tools = $(bindir).*
152RUNTIME_DEP_PKGS_CSWlibnss3-tools += CSWlibnss3
153RUNTIME_DEP_PKGS_CSWlibnss3-tools += CSWlibplc4
154RUNTIME_DEP_PKGS_CSWlibnss3-tools += CSWlibnspr4
155RUNTIME_DEP_PKGS_CSWlibnss3-tools += CSWlibplds4
156RUNTIME_DEP_PKGS_CSWlibnss3-tools += CSWlibsmime3
157RUNTIME_DEP_PKGS_CSWlibnss3-tools += CSWlibssl3
158RUNTIME_DEP_PKGS_CSWlibnss3-tools += CSWlibnssutil3
159
160BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) CSWnspr-dev CSWlibsqlite3-dev
161
162CONFIGURE_SCRIPTS =
163BUILD_SCRIPTS = nss
164INSTALL_SCRIPTS = nss
165TEST_SCRIPTS =
166BUILD64 = 1
167MERGE_DIRS_isa-sparcv9 = $(libdir)
168MERGE_DIRS_isa-amd64   = $(libdir)
169
170EXTRA_INC = $(prefix)/include
171
172libdir_install = $(prefix)/lib
173includedir = $(prefix)/include/nss
174
175ifneq (DBG,$(GARFLAVOR))
176        BUILD_OPT = 1
177        export BUILD_OPT
178        CONFIGURE_ARGS += --disable-debug --enable-optimize
179endif
180
181# NSPR is installed in /opt/csw/lib/nspr, nspr.pc is in /opt/csw/lib/pkgconfig
182NSPR_INCLUDE_DIR = $(shell PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig pkg-config --cflags-only-I nspr | gsed 's/-I//')
183export NSPR_INCLUDE_DIR
184
185NSS_ENABLE_ECC = 1
186export NSS_ENABLE_ECC
187
188# To avoid creating /opt/csw/lib/libsqlite3.so (already exists)
189NSS_USE_SYSTEM_SQLITE = 1
190export NSS_USE_SYSTEM_SQLITE
191
192# 64-bit suppport
193ifeq ($(MODULATION),isa-sparcv9)
194        USE_64 = 1
195        export USE_64
196        NSPR_LIB_DIR = $(shell PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig pkg-config --libs-only-L nspr | gsed 's/-L//' | tr -d ' ')/64
197else
198ifeq ($(MODULATION),isa-amd64)
199        USE_64 = 1
200        export USE_64
201        NSPR_LIB_DIR = $(shell PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig pkg-config --libs-only-L nspr | gsed 's/-L//' | tr -d ' ')/64
202else
203        NSPR_LIB_DIR = $(shell PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig pkg-config --libs-only-L nspr | gsed 's/-L//' | tr -d ' ')
204endif
205endif
206export NSPR_LIB_DIR
207
208ifeq ($(USE_64),1)
209SQLITE_LIB_DIR = /opt/csw/lib/64
210else
211SQLITE_LIB_DIR = /opt/csw/lib
212endif
213export SQLITE_LIB_DIR
214SQLITE_INCLUDE_DIR = /opt/csw/include
215export SQLITE_INCLUDE_DIR
216
217# Based on:
218# http://mxr.mozilla.org/security/source/security/nss/pkg/solaris/SUNWtlsu/prototype_com
219NSS_BINARIES  = addbuiltin
220NSS_BINARIES += certutil
221NSS_BINARIES += cmsutil
222NSS_BINARIES += crlutil
223NSS_BINARIES += modutil
224NSS_BINARIES += pk12util
225NSS_BINARIES += signtool
226NSS_BINARIES += signver
227NSS_BINARIES += ssltap
228
229LICENSE = mpl-tri-license-txt
230
231# For DBG builds
232# PATCHFILES  = whoami.patch
233
234# Required patches.
235PATCHFILES += include.patch
236PATCHFILES += ld-options.patch
237PATCHFILES += 0004-fix-xarch-and-add-SQLITE_LIB_DIR-var.patch
238PATCHFILES += 0005-platlibs.mk-linking-bltest.patch
239PATCHFILES += 0005-change-rpath-for-bins-in-platlibs.mk.patch
240
241# http://lists.opencsw.org/pipermail/pkgsubmissions/2010-February/000167.html
242# NOISAEXEC = 1
243
244CPPFLAGS =
245LD_OPTIONS = 
246# NSS_LD_OPTIONS = -R'$$ORIGIN'
247
248# CHECKPKG_OVERRIDES_CSWlibfreebl3 += shared-lib-pkgname-mismatch|sonames=libfreebl_32fpu_3.so,libfreebl_32int64_3.so,libfreebl_32int_3.so,libfreebl_64fpu_3.so,libfreebl_64int_3.so|pkgname=CSWlibfreebl3|expected=CSWlibfreebl|
249CHECKPKG_OVERRIDES_CSWlibfreebl3 += shared-lib-pkgname-mismatch
250CHECKPKG_OVERRIDES_CSWlibfreebl3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libfreebl_64fpu_3.so
251CHECKPKG_OVERRIDES_CSWlibfreebl3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libfreebl_64int_3.so
252CHECKPKG_OVERRIDES_CSWlibfreebl3 += soname-equals-filename|file=/opt/csw/lib/libfreebl_32int_3.so
253CHECKPKG_OVERRIDES_CSWlibfreebl3 += soname-equals-filename|file=/opt/csw/lib/libfreebl_32int64_3.so
254CHECKPKG_OVERRIDES_CSWlibfreebl3 += soname-equals-filename|file=/opt/csw/lib/libfreebl_32fpu_3.so
255CHECKPKG_OVERRIDES_CSWlibfreebl3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libfreebl3.so
256CHECKPKG_OVERRIDES_CSWlibfreebl3 += soname-equals-filename|file=/opt/csw/lib/amd64/libfreebl3.so
257CHECKPKG_OVERRIDES_CSWlibfreebl3 += soname-equals-filename|file=/opt/csw/lib/libfreebl3.so
258CHECKPKG_OVERRIDES_CSWlibnss3 += soname-equals-filename|file=/opt/csw/lib/libnss3.so
259CHECKPKG_OVERRIDES_CSWlibnss3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libnss3.so
260CHECKPKG_OVERRIDES_CSWlibnss3 += soname-equals-filename|file=/opt/csw/lib/amd64/libnss3.so
261CHECKPKG_OVERRIDES_CSWlibnssutil3 += soname-equals-filename|file=/opt/csw/lib/libnssutil3.so
262CHECKPKG_OVERRIDES_CSWlibnssutil3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libnssutil3.so
263CHECKPKG_OVERRIDES_CSWlibnssutil3 += soname-equals-filename|file=/opt/csw/lib/amd64/libnssutil3.so
264CHECKPKG_OVERRIDES_CSWlibsoftokn3 += soname-equals-filename|file=/opt/csw/lib/libsoftokn3.so
265CHECKPKG_OVERRIDES_CSWlibsoftokn3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libsoftokn3.so
266CHECKPKG_OVERRIDES_CSWlibsoftokn3 += soname-equals-filename|file=/opt/csw/lib/amd64/libsoftokn3.so
267CHECKPKG_OVERRIDES_CSWlibssl3 += soname-equals-filename|file=/opt/csw/lib/libssl3.so
268CHECKPKG_OVERRIDES_CSWlibssl3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libssl3.so
269CHECKPKG_OVERRIDES_CSWlibssl3 += soname-equals-filename|file=/opt/csw/lib/amd64/libssl3.so
270CHECKPKG_OVERRIDES_CSWlibsmime3 += soname-equals-filename|file=/opt/csw/lib/libsmime3.so
271CHECKPKG_OVERRIDES_CSWlibsmime3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libsmime3.so
272CHECKPKG_OVERRIDES_CSWlibsmime3 += soname-equals-filename|file=/opt/csw/lib/amd64/libsmime3.so
273CHECKPKG_OVERRIDES_CSWlibnssckbi += soname-equals-filename|file=/opt/csw/lib/libnssckbi.so
274CHECKPKG_OVERRIDES_CSWlibnssckbi += soname-equals-filename|file=/opt/csw/lib/sparcv9/libnssckbi.so
275CHECKPKG_OVERRIDES_CSWlibnssckbi += soname-equals-filename|file=/opt/csw/lib/amd64/libnssckbi.so
276CHECKPKG_OVERRIDES_CSWlibnssdbm3 += soname-equals-filename|file=/opt/csw/lib/libnssdbm3.so
277CHECKPKG_OVERRIDES_CSWlibnssdbm3 += soname-equals-filename|file=/opt/csw/lib/sparcv9/libnssdbm3.so
278CHECKPKG_OVERRIDES_CSWlibnssdbm3 += soname-equals-filename|file=/opt/csw/lib/amd64/libnssdbm3.so
279
280
281include gar/category.mk
282
283build-nss: build-coreconf build-dbm build-nss-compile
284        @$(MAKECOOKIE)
285
286build-coreconf:
287        (cd $(WORKSRC)/mozilla/security/coreconf \
288                && \
289        CPPFLAGS='$(CPPFLAGS)' LD_OPTIONS='$(LD_OPTIONS)' \
290        gmake -j1)
291        @$(MAKECOOKIE)
292
293build-dbm:
294        (cd $(WORKSRC)/mozilla/security/dbm \
295                && \
296        CPPFLAGS='$(CPPFLAGS)' LD_OPTIONS='$(LD_OPTIONS)' \
297        gmake -j1)
298        @$(MAKECOOKIE)
299
300# There's an extra interpolation somehwere inside nss' build system, so $$$$
301# needs to be used instead of $$.
302build-nss-compile:
303        (cd $(WORKSRC)/mozilla/security/nss \
304                && \
305        gmake -j1 RPATH=-R\'/opt/csw/lib/\$$\$$ISALIST\')
306        @$(MAKECOOKIE)
307
308install-nss:
309        ginstall -d -m 755 $(DESTDIR)$(libdir)
310        for f in $(WORKSRC)/mozilla/dist/SunOS5*/lib/*.so; do \
311          ginstall -m 755 $${f} $(DESTDIR)$(libdir); \
312          if [ -r $(WORKSRC)/mozilla/dist/SunOS5*/lib/`basename $${f} .so`.chk ]; then \
313            ginstall -m 644 \
314              $(WORKSRC)/mozilla/dist/SunOS5*/lib/`basename $${f} .so`.chk \
315              $(DESTDIR)$(libdir); \
316          fi \
317        done
318        ginstall -d -m 755 $(DESTDIR)$(bindir)
319        # TODO: nss-config
320        # gcp -a $(WORKSRC)/mozilla/dist/*/bin/nss-config $(DESTDIR)$(bindir)
321        ginstall -d -m 755 $(DESTDIR)$(includedir)
322        for f in \
323                        $(WORKSRC)/mozilla/dist/public/nss/*.h; \
324                do \
325                ginstall -m 644 $${f} $(DESTDIR)$(includedir); \
326        done
327        for bin in $(NSS_BINARIES); do \
328          ginstall -m 755 \
329            $(WORKSRC)/mozilla/dist/*/bin/$${bin} \
330            $(DESTDIR)$(bindir)/`basename $${file}`; \
331        done
332        # Asserting that we have the right version in the .pc file
333        ggrep "Version: $(VERSION)" $(FILEDIR)/nss.pc \
334                || ( \
335                        echo "Please adjust nss version in $(FILEDIR)/nss.pc" \
336                                && \
337                        false \
338                )
339        ginstall -d -m 755 $(DESTDIR)$(libdir)/pkgconfig
340        ginstall -m 644 $(FILEDIR)/nss.pc \
341                $(DESTDIR)$(libdir)/pkgconfig
342        if [ $(MEMORYMODEL) = 64 ]; then \
343            gsed -i -e 's+/lib$$+lib/64+' $(DESTDIR)$(libdir)/pkgconfig/nss.pc ; \
344        fi
345        @$(MAKECOOKIE)
Note: See TracBrowser for help on using the browser.