From: Peter Korsgaard <jacmet@uclibc.org>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] libnss: Add new package.
Date: Thu, 07 Jul 2011 22:32:50 +0200 [thread overview]
Message-ID: <87k4btrfv1.fsf@macbook.be.48ers.dk> (raw)
In-Reply-To: <CAFbHwiRfvF=c5Lys-rc7=vXUXqML+TyJvdQogcTrm2M-MoSf2w@mail.gmail.com> (Will Newton's message of "Thu, 7 Jul 2011 13:08:21 +0100")
>>>>> "Will" == Will Newton <will.newton@gmail.com> writes:
Will> NSS is the Network Security Services library developed as part of
Will> the Mozilla project. It provides similar functions to OpenSSL but
Will> allows MPL, GPL and LGPL licensing.
Thanks, a few comments.
Will> Signed-off-by: Will Newton <will.newton@imgtec.com>
Will> ---
Will> package/Config.in | 1 +
Will> package/libnss/Config.in | 13 +++++++
Will> package/libnss/libnss-cross.patch | 24 ++++++++++++++
Will> package/libnss/libnss-uclibc.patch | 14 ++++++++
Will> package/libnss/libnss.mk | 62 ++++++++++++++++++++++++++++++++++++
Will> 5 files changed, 114 insertions(+), 0 deletions(-)
Will> create mode 100644 package/libnss/Config.in
Will> create mode 100644 package/libnss/libnss-cross.patch
Will> create mode 100644 package/libnss/libnss-uclibc.patch
Will> create mode 100644 package/libnss/libnss.mk
Will> diff --git a/package/Config.in b/package/Config.in
Will> index 2a48d82..e8eb4c6 100644
Will> --- a/package/Config.in
Will> +++ b/package/Config.in
Will> @@ -249,6 +249,7 @@ menu "Crypto"
Will> source "package/beecrypt/Config.in"
Will> source "package/libgcrypt/Config.in"
Will> source "package/libgpg-error/Config.in"
Will> +source "package/libnss/Config.in"
Will> source "package/openssl/Config.in"
Will> endmenu
Will> diff --git a/package/libnss/Config.in b/package/libnss/Config.in
Will> new file mode 100644
Will> index 0000000..12502c8
Will> --- /dev/null
Will> +++ b/package/libnss/Config.in
Will> @@ -0,0 +1,13 @@
Will> +config BR2_PACKAGE_LIBNSS
Will> + bool "libnss"
Will> + select BR2_PACKAGE_LIBNSPR
Will> + select BR2_PACKAGE_SQLITE
Will> + select BR2_PACKAGE_ZLIB
Will> + help
nspr needs largefile support, so you need to depend on largefile support
(and show a warning if not available) like nspr does,
Will> + Network Security Services (NSS) is a set of libraries designed
Will> + to support development of security-enabled client and server
Will> + applications. Applications built with NSS can support SSL v2
Will> + and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME,
Will> + and X.509 v3 certificates.
Will> +
Will> + http://www.mozilla.org/projects/security/pki/nss/
Will> diff --git a/package/libnss/libnss-cross.patch
Will> b/package/libnss/libnss-cross.patch
Will> new file mode 100644
Will> index 0000000..8d01d7c
Will> --- /dev/null
Will> +++ b/package/libnss/libnss-cross.patch
Will> @@ -0,0 +1,24 @@
Will> +
Will> +This patch allows us to set a value for the cross compiler via
Will> TARGETCC without setting
Will> +CC on the command line. CC is used for host tools as well as cross
Will> compiled code so we
Will> +cannot define it on the command line without breaking the host tools build.
Will> +
Please sign off (git-style) on patches so it is easy to see who the
author is. What is the upstream status of this patch?
Will> +--- libnss-3.12.9.old/mozilla/security/coreconf/Linux.mk 2011-03-01
Will> 10:31:21.517847183 +0000
Will> ++++ libnss-3.12.9/mozilla/security/coreconf/Linux.mk 2011-03-01
Will> 10:33:42.688648237 +0000
Will> +@@ -46,9 +46,13 @@
Will> + IMPL_STRATEGY = _PTH
Will> + endif
Will> +
Will> +-CC = gcc
Will> +-CCC = g++
Will> +-RANLIB = ranlib
Will> ++TARGETCC = gcc
Will> ++TARGETCCC = g++
Will> ++TARGETRANLIB = ranlib
Will> ++
Will> ++CC = $(TARGETCC)
Will> ++CCC = $(TARGETCCC)
Will> ++RANLIB = $(TARGETRANLIB)
Will> +
Will> + DEFAULT_COMPILER = gcc
Will> +
Will> diff --git a/package/libnss/libnss-uclibc.patch
Will> b/package/libnss/libnss-uclibc.patch
Will> new file mode 100644
Will> index 0000000..46b71b4
Will> --- /dev/null
Will> +++ b/package/libnss/libnss-uclibc.patch
Will> @@ -0,0 +1,14 @@
Will> +
Will> +uCLibc does not support RTLD_NOLOAD.
Signed-off-by and upstream status again, please. This is because of the
libdl check, right?
if (!(flag & (RTLD_LAZY|RTLD_NOW))) {
_dl_error_number = LD_BAD_HANDLE;
return NULL;
It would be good to only drop NOLOAD for uClibc, and not E.G. if you're
using an external (e)glibc toolchain with something like:
#include <features.h>
#ifdef __UCLIBC__
/* uClibc dlopen errors on NOLOAD */
#undef RTLD_NOLOAD
#define RTLD_NOLOAD 0
#endif
Will> +
Will> +--- libnss-3.12.9.old/mozilla/security/nss/lib/freebl/stubs.c 2011-03-01
Will> 10:41:35.226450100 +0000
Will> ++++ libnss-3.12.9/mozilla/security/nss/lib/freebl/stubs.c 2011-03-01
Will> 10:42:14.628507934 +0000
Will> +@@ -539,7 +539,7 @@
Will> + * fetch the library if it's loaded. For NSS it should already be loaded
Will> + */
Will> + #define freebl_getLibrary(libName) \
Will> +- dlopen (libName, RTLD_LAZY|RTLD_NOLOAD)
Will> ++ dlopen (libName, RTLD_LAZY)
Will> +
Will> + #define freebl_releaseLibrary(lib) \
Will> + if (lib) dlclose(lib)
Will> diff --git a/package/libnss/libnss.mk b/package/libnss/libnss.mk
Will> new file mode 100644
Will> index 0000000..b530cc3
Will> --- /dev/null
Will> +++ b/package/libnss/libnss.mk
Will> @@ -0,0 +1,62 @@
Will> +#############################################################
Will> +#
Will> +# libnss
Will> +#
Will> +#############################################################
Will> +LIBNSS_VERSION = 3.12.9
Will> +LIBNSS_SOURCE = nss-$(LIBNSS_VERSION).tar.gz
Will> +LIBNSS_SITE_VERSION = $(subst .,_,$(LIBNSS_VERSION))
Will> +LIBNSS_SITE = https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_$(LIBNSS_SITE_VERSION)_RTM/src/
Will> +LIBNSS_SUBDIR = mozilla/security
Will> +LIBNSS_DISTDIR = mozilla/dist
Will> +LIBNSS_INSTALL_STAGING = YES
Will> +LIBNSS_DEPENDENCIES = libnspr sqlite zlib
Will> +
Will> +LIBNSS_BUILD_VARS = MOZILLA_CLIENT=1 \
Will> + NSPR_INCLUDE_DIR=$(STAGING_DIR)/usr/include/nspr \
Will> + NSPR_LIB_DIR=$(STAGING_DIR)/usr/lib \
Will> + BUILD_OPT=1 \
Will> + NS_USE_GCC=1 \
Will> + OPTIMIZER="$(TARGET_CFLAGS)" \
Will> + NSS_USE_SYSTEM_SQLITE=1 \
Will> + NSS_ENABLE_ECC=1 \
Will> + NATIVE_CC="$(HOSTCC)" \
Will> + TARGETCC="$(TARGET_CC)" \
Will> + TARGETCCC="$(TARGET_CXX)" \
Will> + TARGETRANLIB="$(TARGET_RANLIB)" \
Will> + OS_ARCH="Linux" \
Will> + OS_RELEASE="2.6" \
Will> + OS_TEST="$(ARCH)"
Will> +
Will> +
Will> +define LIBNSS_BUILD_CMDS
Will> + $(MAKE1) -C $(@D)/$(LIBNSS_SUBDIR)/nss build_coreconf build_dbm all \
Will> + SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \
Will> + DIST=$(@D)/$(LIBNSS_DISTDIR) \
Will> + CHECKLOC= \
Will> + $(LIBNSS_BUILD_VARS)
Will> +endef
Will> +
Will> +define LIBNSS_INSTALL_STAGING_CMDS
Will> + $(INSTALL) -m 755 -t $(STAGING_DIR)/usr/lib/ \
Will> + $(@D)/$(LIBNSS_DISTDIR)/lib/*.so
Will> + $(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/nss
Will> + $(INSTALL) -m 644 -t $(STAGING_DIR)/usr/include/nss \
Will> + $(@D)/$(LIBNSS_DISTDIR)/public/nss/*
Will> + $(INSTALL) -m 755 -t $(STAGING_DIR)/usr/lib/ \
Will> + $(@D)/$(LIBNSS_DISTDIR)/lib/*.a
Will> +endef
No make install?
Will> +
Will> +define LIBNSS_INSTALL_TARGET_CMDS
Will> + $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/lib/ \
Will> + $(@D)/$(LIBNSS_DISTDIR)/lib/*.so
Will> +endef
target install should preferably also install development stuff like
headers / .a files for people wanting to do development on target. The
global target-finalize step will remove them again if not needed.
--
Bye, Peter Korsgaard
next prev parent reply other threads:[~2011-07-07 20:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-07 12:08 [Buildroot] [PATCH] libnss: Add new package Will Newton
2011-07-07 20:32 ` Peter Korsgaard [this message]
2011-07-08 13:25 ` Will Newton
-- strict thread matches above, loose matches on Subject: below --
2011-03-25 12:07 Will Newton
2011-04-01 10:00 ` Will Newton
2011-03-14 17:24 Will Newton
2011-03-15 22:57 ` Thomas Petazzoni
2011-03-17 12:20 ` Will Newton
2011-03-14 16:25 Will Newton
2011-03-14 16:54 ` Michael S. Zick
2011-03-14 17:22 ` Will Newton
2011-03-14 19:04 ` Michael S. Zick
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k4btrfv1.fsf@macbook.be.48ers.dk \
--to=jacmet@uclibc.org \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.