package: add libnss host package
authorGaël PORTAY <gael.portay@savoirfairelinux.com>
Thu, 15 Mar 2018 19:50:52 +0000 (15:50 -0400)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Mon, 2 Apr 2018 14:32:27 +0000 (16:32 +0200)
Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
package/libnss/0002-add-zlib-include-dir-variable.patch [new file with mode: 0644]
package/libnss/libnss.mk

diff --git a/package/libnss/0002-add-zlib-include-dir-variable.patch b/package/libnss/0002-add-zlib-include-dir-variable.patch
new file mode 100644 (file)
index 0000000..cd0bdee
--- /dev/null
@@ -0,0 +1,49 @@
+Add ZLIB_INCLUDE_DIR variable
+
+On Linux platform[1], the build system forces to use zlib from the
+system instead of compiling the one located intree.
+
+The following error is raised when the zlib header is installed
+somewhere else than in the default system include path:
+
+       ssl3con.c:39:18: fatal error: zlib.h: No such file or directory
+        #include "zlib.h"
+
+The same trick setup for sqlite include directory is reproduced for
+zlib. The build system disallows in any manner to give arguments to the
+compiler explicity.
+
+The variable ZLIB_INCLUDE_DIR point to the directory where the zlib
+header is located.
+
+[1]: https://hg.mozilla.org/projects/nss/file/NSS_3_33_BRANCH/coreconf/Linux.mk#l180
+[2]: https://hg.mozilla.org/projects/nss/file/NSS_3_33_BRANCH/lib/softoken/manifest.mn#l17
+
+Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
+
+--- libnss-3.33.orig/nss/lib/ssl/manifest.mn   2017-09-20 02:47:27.000000000 -0400
++++ libnss-3.33/nss/lib/ssl/manifest.mn        2018-02-16 16:45:41.512709898 -0500
+@@ -6,6 +6,10 @@
+ # DEFINES = -DTRACE
++ifdef ZLIB_INCLUDE_DIR
++INCLUDES += -I$(ZLIB_INCLUDE_DIR)
++endif
++
+ EXPORTS = \
+         ssl.h \
+         sslt.h \
+--- host-libnss-3.33.orig/nss/cmd/signtool/manifest.mn.orig    2018-02-16 17:08:58.474777871 -0500
++++ host-libnss-3.33/nss/cmd/signtool/manifest.mn      2018-02-16 17:09:22.603710963 -0500
+@@ -6,6 +6,10 @@
+ MODULE = nss
++ifdef ZLIB_INCLUDE_DIR
++INCLUDES += -I$(ZLIB_INCLUDE_DIR)
++endif
++
+ EXPORTS = 
+ CSRCS = signtool.c            \
index 2bef2bcc6620bd4aba2c3ee47e23f5a2bcc5da09..0fa7f2cfac48dbacd134b95f7ba747fc31c232c4 100644 (file)
@@ -92,4 +92,52 @@ define LIBNSS_INSTALL_TARGET_CMDS
                $(TARGET_DIR)/usr/lib/pkgconfig/nss.pc
 endef
 
+HOST_LIBNSS_BUILD_VARS = \
+       MOZILLA_CLIENT=1 \
+       NSPR_INCLUDE_DIR=$(HOST_DIR)/include/nspr \
+       NSPR_LIB_DIR=$(HOST_DIR)/lib \
+       BUILD_OPT=1 \
+       NS_USE_GCC=1 \
+       NSS_DISABLE_GTESTS=1 \
+       NSS_USE_SYSTEM_SQLITE=1 \
+       SQLITE_INCLUDE_DIR=$(HOST_DIR)/include \
+       ZLIB_INCLUDE_DIR=$(HOST_DIR)/include \
+       NSS_ENABLE_ECC=1
+
+HOST_LIBNSS_DEPENDENCIES = host-libnspr host-sqlite host-zlib
+
+ifneq ($(filter %64,$(HOSTARCH)),)
+HOST_LIBNSS_BUILD_VARS += USE_64=1
+endif
+
+define HOST_LIBNSS_BUILD_CMDS
+       $(HOST_CONFIGURE_OPTS) $(MAKE1) -C $(@D)/nss coreconf \
+               SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \
+               DIST=$(@D)/$(LIBNSS_DISTDIR) \
+               CHECKLOC= \
+               $(HOST_LIBNSS_BUILD_VARS)
+       $(HOST_CONFIGURE_OPTS) $(MAKE1) -C $(@D)/nss lib/dbm all \
+               SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \
+               DIST=$(@D)/$(LIBNSS_DISTDIR) \
+               CHECKLOC= \
+               $(HOST_LIBNSS_BUILD_VARS)
+endef
+
+define HOST_LIBNSS_INSTALL_CMDS
+       $(INSTALL) -m 755 -t $(HOST_DIR)/lib/ \
+               $(@D)/$(LIBNSS_DISTDIR)/lib/*.so
+       $(INSTALL) -m 755 -d $(HOST_DIR)/include/nss
+       $(INSTALL) -m 644 -t $(HOST_DIR)/include/nss \
+               $(@D)/$(LIBNSS_DISTDIR)/public/nss/*
+       $(INSTALL) -m 755 -t $(HOST_DIR)/lib/ \
+               $(@D)/$(LIBNSS_DISTDIR)/lib/*.a
+       $(INSTALL) -D -m 0644 $(TOPDIR)/package/libnss/nss.pc.in \
+               $(HOST_DIR)/lib/pkgconfig/nss.pc
+       $(SED) 's/@VERSION@/$(LIBNSS_VERSION)/g;' \
+               $(HOST_DIR)/lib/pkgconfig/nss.pc
+       $(SED) '/^prefix/s,=.*,=$(HOST_DIR),g;' \
+               $(HOST_DIR)/lib/pkgconfig/nss.pc
+endef
+
 $(eval $(generic-package))
+$(eval $(host-generic-package))