package: add libnss
NSS is the Network Security Services library developed as part of the Mozilla project. It provides similar functions to OpenSSL but allows MPL, GPL and LGPL licensing. [Peter: fix target install] Signed-off-by: Will Newton <will.newton@imgtec.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
36b4b852ee
commit
2016db44e8
@ -250,6 +250,7 @@ menu "Crypto"
|
||||
source "package/beecrypt/Config.in"
|
||||
source "package/libgcrypt/Config.in"
|
||||
source "package/libgpg-error/Config.in"
|
||||
source "package/libnss/Config.in"
|
||||
source "package/openssl/Config.in"
|
||||
endmenu
|
||||
|
||||
|
17
package/libnss/Config.in
Normal file
17
package/libnss/Config.in
Normal file
@ -0,0 +1,17 @@
|
||||
config BR2_PACKAGE_LIBNSS
|
||||
bool "libnss"
|
||||
select BR2_PACKAGE_LIBNSPR
|
||||
select BR2_PACKAGE_SQLITE
|
||||
select BR2_PACKAGE_ZLIB
|
||||
depends on BR2_LARGEFILE
|
||||
help
|
||||
Network Security Services (NSS) is a set of libraries designed
|
||||
to support development of security-enabled client and server
|
||||
applications. Applications built with NSS can support SSL v2
|
||||
and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME,
|
||||
and X.509 v3 certificates.
|
||||
|
||||
http://www.mozilla.org/projects/security/pki/nss/
|
||||
|
||||
comment "libnss requires a toolchain with LARGEFILE support"
|
||||
depends on !BR2_LARGEFILE
|
27
package/libnss/libnss-cross.patch
Normal file
27
package/libnss/libnss-cross.patch
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
This patch allows us to set a value for the cross compiler via TARGETCC without
|
||||
setting CC on the command line. CC is used for host tools as well as cross
|
||||
compiled code so we cannot define it on the command line without breaking
|
||||
the host tools build.
|
||||
|
||||
Signed-off-by: Will Newton <will.newton@imgtec.com>
|
||||
|
||||
--- libnss-3.12.9.old/mozilla/security/coreconf/Linux.mk 2011-03-01 10:31:21.517847183 +0000
|
||||
+++ libnss-3.12.9/mozilla/security/coreconf/Linux.mk 2011-03-01 10:33:42.688648237 +0000
|
||||
@@ -46,9 +46,13 @@
|
||||
IMPL_STRATEGY = _PTH
|
||||
endif
|
||||
|
||||
-CC = gcc
|
||||
-CCC = g++
|
||||
-RANLIB = ranlib
|
||||
+TARGETCC = gcc
|
||||
+TARGETCCC = g++
|
||||
+TARGETRANLIB = ranlib
|
||||
+
|
||||
+CC = $(TARGETCC)
|
||||
+CCC = $(TARGETCCC)
|
||||
+RANLIB = $(TARGETRANLIB)
|
||||
|
||||
DEFAULT_COMPILER = gcc
|
||||
|
19
package/libnss/libnss-uclibc.patch
Normal file
19
package/libnss/libnss-uclibc.patch
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
uCLibc does not define RTLD_NOLOAD.
|
||||
|
||||
Signed-off-by: Will Newton <will.newton@imgtec.com>
|
||||
|
||||
--- nss-3.12.9.old/mozilla/security/nss/lib/freebl/stubs.c 2011-07-08 13:32:54.964338355 +0100
|
||||
+++ nss-3.12.9/mozilla/security/nss/lib/freebl/stubs.c 2011-07-08 13:33:57.255337490 +0100
|
||||
@@ -535,6 +535,11 @@
|
||||
return SECSuccess;
|
||||
}
|
||||
|
||||
+/* uClibc does not define RTLD_NOLOAD. */
|
||||
+#ifndef RTLD_NOLOAD
|
||||
+#define RTLD_NOLOAD 0
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* fetch the library if it's loaded. For NSS it should already be loaded
|
||||
*/
|
67
package/libnss/libnss.mk
Normal file
67
package/libnss/libnss.mk
Normal file
@ -0,0 +1,67 @@
|
||||
#############################################################
|
||||
#
|
||||
# libnss
|
||||
#
|
||||
#############################################################
|
||||
LIBNSS_VERSION = 3.12.9
|
||||
LIBNSS_SOURCE = nss-$(LIBNSS_VERSION).tar.gz
|
||||
LIBNSS_SITE_VERSION = $(subst .,_,$(LIBNSS_VERSION))
|
||||
LIBNSS_SITE = https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_$(LIBNSS_SITE_VERSION)_RTM/src/
|
||||
LIBNSS_SUBDIR = mozilla/security
|
||||
LIBNSS_DISTDIR = mozilla/dist
|
||||
LIBNSS_INSTALL_STAGING = YES
|
||||
LIBNSS_DEPENDENCIES = libnspr sqlite zlib
|
||||
|
||||
LIBNSS_BUILD_VARS = MOZILLA_CLIENT=1 \
|
||||
NSPR_INCLUDE_DIR=$(STAGING_DIR)/usr/include/nspr \
|
||||
NSPR_LIB_DIR=$(STAGING_DIR)/usr/lib \
|
||||
BUILD_OPT=1 \
|
||||
NS_USE_GCC=1 \
|
||||
OPTIMIZER="$(TARGET_CFLAGS)" \
|
||||
NSS_USE_SYSTEM_SQLITE=1 \
|
||||
NSS_ENABLE_ECC=1 \
|
||||
NATIVE_CC="$(HOSTCC)" \
|
||||
TARGETCC="$(TARGET_CC)" \
|
||||
TARGETCCC="$(TARGET_CXX)" \
|
||||
TARGETRANLIB="$(TARGET_RANLIB)" \
|
||||
OS_ARCH="Linux" \
|
||||
OS_RELEASE="2.6" \
|
||||
OS_TEST="$(ARCH)"
|
||||
|
||||
|
||||
define LIBNSS_BUILD_CMDS
|
||||
$(MAKE1) -C $(@D)/$(LIBNSS_SUBDIR)/nss build_coreconf build_dbm all \
|
||||
SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \
|
||||
DIST=$(@D)/$(LIBNSS_DISTDIR) \
|
||||
CHECKLOC= \
|
||||
$(LIBNSS_BUILD_VARS)
|
||||
endef
|
||||
|
||||
define LIBNSS_INSTALL_STAGING_CMDS
|
||||
$(INSTALL) -m 755 -t $(STAGING_DIR)/usr/lib/ \
|
||||
$(@D)/$(LIBNSS_DISTDIR)/lib/*.so
|
||||
$(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/nss
|
||||
$(INSTALL) -m 644 -t $(STAGING_DIR)/usr/include/nss \
|
||||
$(@D)/$(LIBNSS_DISTDIR)/public/nss/*
|
||||
$(INSTALL) -m 755 -t $(STAGING_DIR)/usr/lib/ \
|
||||
$(@D)/$(LIBNSS_DISTDIR)/lib/*.a
|
||||
endef
|
||||
|
||||
define LIBNSS_INSTALL_TARGET_CMDS
|
||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/lib/ \
|
||||
$(@D)/$(LIBNSS_DISTDIR)/lib/*.so
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/include/nss
|
||||
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/include/nss \
|
||||
$(@D)/$(LIBNSS_DISTDIR)/public/nss/*
|
||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/lib/ \
|
||||
$(@D)/$(LIBNSS_DISTDIR)/lib/*.a
|
||||
endef
|
||||
|
||||
define LIBNSS_CLEAN_CMDS
|
||||
-$(MAKE1) -C $(@D)/$(LIBNSS_SUBDIR) clobber \
|
||||
clobber_dbm \
|
||||
clobber_coreconf \
|
||||
BUILD_OPT=1
|
||||
endef
|
||||
|
||||
$(eval $(call GENTARGETS,package,libnss))
|
Loading…
Reference in New Issue
Block a user