Patchwork [08/17] nss: New recipe

login
register
mail settings
Submitter Kim B√łndergaard
Date Oct. 4, 2013, 1:24 p.m.
Message ID <ac8a4c991568f76682c3de03edc6ec53ac1d39ed.1380892944.git.kibo@prevas.dk>
Download mbox | patch
Permalink /patch/280599/
State Changes Requested
Delegated to: Esben Haabendal
Headers show

Comments

Kim B√łndergaard - Oct. 4, 2013, 1:24 p.m.
---
 recipes/nss/nspr_4.10.oe                  |  46 ++++++++++++++
 recipes/nss/nspr_4.10.oe.sig              |   1 +
 recipes/nss/nss-3.15.1/cross-config.patch |  26 ++++++++
 recipes/nss/nss_3.15.1.oe                 | 100 ++++++++++++++++++++++++++++++
 recipes/nss/nss_3.15.1.oe.sig             |   2 +
 5 files changed, 175 insertions(+)
 create mode 100644 recipes/nss/nspr_4.10.oe
 create mode 100644 recipes/nss/nspr_4.10.oe.sig
 create mode 100644 recipes/nss/nss-3.15.1/cross-config.patch
 create mode 100644 recipes/nss/nss_3.15.1.oe
 create mode 100644 recipes/nss/nss_3.15.1.oe.sig
Esben Haabendal - Oct. 15, 2013, 6:34 a.m.
Hi Kim

The nspr recipe does not work for real cross-compile builds.  I tried to
build for arm-926ejs-linux-gnueabi, and got this error in do_compile:

../../../config/./nsinstall: ../../../config/./nsinstall: cannot execute
binary file

And the nsinstall file is:

$ file src/nspr-4.10/nspr/config/nsinstall
src/nspr-4.10/nspr/config/nsinstall: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, not stripped

So I assume you have only tested this recipe with a MACHINE_ARCH that is
also executable on your build machine.

Could you try and rework the recipe so it does not execute MACHINE_ARCH
binaries on your build machine?

As for the nss recipe, the nss-3.15.1-standalone-2.patch seems to have
gone MIA from the linuxfromscratch.org server. I can only see a
nss-3.15.2-standalone-1.patch there.  If you can mail me the patch, I
will put it on the oe-lite.org mirror.

Also, Please split this into two commits, and keep nspr recipe files in
a nspr/ directory instead of mixing it with nss.

/Esben

Patch

diff --git a/recipes/nss/nspr_4.10.oe b/recipes/nss/nspr_4.10.oe
new file mode 100644
index 0000000..27a21b9
--- /dev/null
+++ b/recipes/nss/nspr_4.10.oe
@@ -0,0 +1,46 @@ 
+SUMMARY = "Netscape portable runtime, or NSPR, a platform abstraction library"
+DESCRIPTION = """
+NSPR, a platform abstraction library, makes all operating systems it supports
+appear the same to (for example) Mozilla-style web-browsers. NSPR provides platform
+independence for non-GUI operating system facilities
+"""
+HOMEPAGE = "https://developer.mozilla.org/docs/NSPR"
+LICENSE = "MPL"
+
+SRC_URI = "ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.10/src/${PN}-${PV}.tar.gz"
+
+RECIPE_TYPES = "machine"
+
+inherit pkgconfig autotools auto-package-libs auto-package-utils
+
+DEPENDS += "libstdc++ libdl librt libpthread "
+
+EXTRA_OECONF:>machine = ""
+
+EXTRA_OECONF += " \
+	--enable-mdupdate \
+"
+
+S = "${SRCDIR}/${PN}-${PV}/${PN}"
+
+AUTO_PACKAGE_UTILS = "nspr-config"
+
+FILES_${PN}-nspr-config += " ${bindir}/compile-et.pl "
+FILES_${PN}-nspr-config += " ${bindir}/prerr.properties "
+
+AUTO_PACKAGE_UTILS_RDEPENDS += "${PN}"
+
+# This package only creates .so files. These are
+# what we need in the 'main package'
+SOLIBS = ".so"
+SOLIBSDEV = ".so.*"
+
+AUTO_PACKAGE_LIBS = "nspr4 plc4 plds4"
+AUTO_PACKAGE_LIB_RDEPENDS = "libpthread libdl librt libc"
+
+RDEPENDS_${PN} = "libnspr4 libplc4 libplds4"
+
+RDEPENDS_${PN}-plc4 = "libnspr4"
+RDEPENDS_${PN}-plds4 = "libnspr4"
+
+DEPENDS_${PN} = "${LIBS_AUTO_PACKAGES}"
diff --git a/recipes/nss/nspr_4.10.oe.sig b/recipes/nss/nspr_4.10.oe.sig
new file mode 100644
index 0000000..b96462a
--- /dev/null
+++ b/recipes/nss/nspr_4.10.oe.sig
@@ -0,0 +1 @@ 
+10dbf68c07497dab30be09db526931c885d5a7e9  nspr-4.10.tar.gz
diff --git a/recipes/nss/nss-3.15.1/cross-config.patch b/recipes/nss/nss-3.15.1/cross-config.patch
new file mode 100644
index 0000000..0e5f3de
--- /dev/null
+++ b/recipes/nss/nss-3.15.1/cross-config.patch
@@ -0,0 +1,26 @@ 
+--- nss/coreconf/Linux.org.mk	2013-08-06 12:45:47.096832931 +0200
++++ nss/coreconf/Linux.mk	2013-08-06 12:48:40.744827800 +0200
+@@ -16,9 +16,9 @@
+ 	IMPL_STRATEGY = _PTH
+ endif
+ 
+-CC			= gcc
+-CCC			= g++
+-RANLIB			= ranlib
++CC			= $(CROSS)gcc
++CCC			= $(CROSS)g++
++RANLIB			= $(CROSS)ranlib
+ 
+ DEFAULT_COMPILER = gcc
+ 
+--- nss/coreconf/arch.org.mk	2013-08-06 14:10:25.528682880 +0200
++++ nss/coreconf/arch.mk	2013-08-06 14:11:41.140680646 +0200
+@@ -302,7 +302,7 @@
+ # IMPL_STRATEGY may be defined too.
+ #
+ 
+-OBJDIR_NAME = $(OS_TARGET)$(OS_RELEASE)$(CPU_TAG)$(COMPILER_TAG)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJ
++OBJDIR_NAME = obj
+ 
+ ifeq (,$(filter-out WIN%,$(OS_TARGET)))
+ ifndef BUILD_OPT
diff --git a/recipes/nss/nss_3.15.1.oe b/recipes/nss/nss_3.15.1.oe
new file mode 100644
index 0000000..d9db1af
--- /dev/null
+++ b/recipes/nss/nss_3.15.1.oe
@@ -0,0 +1,100 @@ 
+SUMMARY = "Network Security Services - provides cross platform security support"
+DESCRIPTION = """
+Network Security Services (NSS) comprises a set of libraries designed to support
+cross-platform development of security-enabled client and server applications
+with optional support for hardware SSL acceleration on the server side and
+hardware smart cards on the client side.
+"""
+LICENSE = "MPL"
+HOMEPAGE = "https://developer.mozilla.org/en/docs/NSS"
+
+RECIPE_TYPE = "machine sdk"
+
+SRC_URI = "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_15_1_RTM/src/${PN}-${PV}.tar.gz"
+
+SRC_URI += "http://www.linuxfromscratch.org/patches/blfs/svn/nss-3.15.1-standalone-2.patch;striplevel=2"
+
+SRC_URI += """
+	file://cross-config.patch
+"""
+
+inherit c make library pkgconfig auto-package-utils auto-package-libs
+
+# According to http://www.linuxfromscratch.org/blfs/view/svn/postlfs/nss.html
+PARALLEL_MAKE = ""
+
+DEPENDS += "nspr nspr-dev libz libdl libpthread librt"
+
+S = "${SRCDIR}/${PN}-${PV}/${PN}"
+
+EXTRA_OEMAKE_COMPILE = " \
+	BUILD_OPT=1 \
+	NSPR_INCLUDE_DIR=${STAGE_DIR}/${includedir} \
+	USE_SYSTEM_ZLIB=1 \
+	ZLIB_LIBS=-lz \
+"
+
+do_install () {
+	install -d ${D}${bindir}
+	install -m 755 ${S}/../dist/obj/bin/* ${D}${bindir}
+
+	install -d ${D}${libdir}
+	install -m 655 ${S}/../dist/obj/lib/*.a ${D}/${libdir}
+
+	install -d ${D}${sharedlibdir}
+	cd ${S}/../dist/obj/lib
+	for solib in *.so
+	do
+		install -m 755 ${S}/../dist/obj/lib/$solib \
+			 ${D}/${sharedlibdir}/$solib
+	done
+
+	install -d ${D}${includedir}/nss
+	install -m 755 ${S}/../dist/public/nss/* ${D}${includedir}/nss
+	
+	install -d ${D}${sharedlibdir}/pkgconfig
+	install -m 644  ${S}/../dist/obj/lib/pkgconfig/* \
+		${D}/${sharedlibdir}/pkgconfig
+}
+
+#PACKAGES =+ " ${PN}-utils ${PN}-utils-dbg "
+#PACKAGES =+ " ${PN}-certutil "
+#ACKAGES =+ " ${PN}-nss-config "
+#ACKAGES =+ " ${PN}-pk12util "
+
+# no *so.* files are created so use *.so
+# Accomplish by switching SOLIBS and SOLIBSDEV
+SOLIBSDEV = ".so.*"
+SOLIBS = ".so"
+#ILES_${PN}-utils = "${bindir}/*"
+#ILES_${PN}-utils-dbg = "${bindir}/.debug/*"
+#ILES_${PN}-certutil = "${bindir}/certutil"
+#ILES_${PN}-nss-config = "${bindir}/nss-config"
+#ILES_${PN}-pk12util = "${bindir}/pk12util"
+
+DEPENDLIBS = "nspr libz libdl libpthread librt"
+#EPENDS_${PN} += " ${DEPENDLIBS} "
+#DEPENDS_${PN} += " ${DEPENDLIBS} "
+#DEPENDS_${PN}-utils += "${DEPENDLIBS} libnss" 
+
+AUTO_PACKAGE_UTILS = "addbuiltin conflict listsuites oidcalc pp ssltap \
+                      atob crlutil lowhashtest p7content pwdecrypt strsclnt \
+		      baddbdir crmftest makepqg p7env remtest symkeyutil \
+		      bltest dbtest mangle p7sign rsaperf tstclnt \
+		      btoa derdump modutil p7verify sdrtest vfychain \
+		      certcgi dertimetest multinit pk11gcmtest secmodtest vfyserv \
+		      certutil digest nonspr10 pk11mode  selfserv \
+		      checkcert encodeinttest nss-config pk12util shlibsign \
+		      chktest fipstest ocspclnt pk1sign signtool \
+		      cmsutil httpserv ocspresp pkix-errcodes signver \
+"
+
+AUTO_PACKAGE_UTILS_DEPENDS = "${DEPENDLIBS} libnss"
+
+AUTO_PACKAGE_LIBS = "freebl3 nss3 nssckbi nssdbm3 nsssysinit nssutil3 \
+		     smime3 softokn3 sqlite3 ssl3 \
+"
+
+PACKAGES += "${PN}-utils"
+RDEPENDS_${PN}-utils = "${AUTO_PACKAGE_UTILS_PACKAGES}"
+
diff --git a/recipes/nss/nss_3.15.1.oe.sig b/recipes/nss/nss_3.15.1.oe.sig
new file mode 100644
index 0000000..cc4dfb9
--- /dev/null
+++ b/recipes/nss/nss_3.15.1.oe.sig
@@ -0,0 +1,2 @@ 
+767a423db66948c55c04c2a31a9626b7a95040e9  nss-3.15.1-standalone-2.patch
+1aa7c0ff8af7fb2c8b6e4886ae2291f4bfe0d5c0  nss-3.15.1.tar.gz