From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?5a6L5paH5q2m?= Subject: Re: [PATCH] gnu: Add nss. Date: Thu, 08 Jan 2015 21:00:41 +0800 Message-ID: <87lhldmnpi.fsf@gmail.com> References: <1420630189-3971-1-git-send-email-iyzsong@gmail.com> <87387m1qo2.fsf@netris.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42685) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9Chs-0004wM-5f for guix-devel@gnu.org; Thu, 08 Jan 2015 08:01:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y9Che-0008R3-Fw for guix-devel@gnu.org; Thu, 08 Jan 2015 08:00:56 -0500 Received: from mail-pd0-x22b.google.com ([2607:f8b0:400e:c02::22b]:38854) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9Chd-0008QP-Gf for guix-devel@gnu.org; Thu, 08 Jan 2015 08:00:42 -0500 Received: by mail-pd0-f171.google.com with SMTP id y13so11145379pdi.2 for ; Thu, 08 Jan 2015 05:00:40 -0800 (PST) In-Reply-To: <87387m1qo2.fsf@netris.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Mark H Weaver Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mark H Weaver writes: > =E5=AE=8B=E6=96=87=E6=AD=A6 writes: > >> * gnu/packages/patches/nss.patch: New file. >> * gnu-system.scm (dist_patch_DATA): Add it. >> * gnu/packages/polkit.scm (nss): New variable. > > polkit.scm seems like the wrong place for 'nss', although admittedly > it's not obvious where it should go. Maybe move it and nspr gnuzilla.scm? Since they are both from mozilla. > >> --- >> gnu-system.am | 1 + >> gnu/packages/patches/nss.patch | 241 ++++++++++++++++++++++++++++++++++= +++++++ >> gnu/packages/polkit.scm | 84 ++++++++++++++ >> 3 files changed, 326 insertions(+) >> create mode 100644 gnu/packages/patches/nss.patch >> >> diff --git a/gnu-system.am b/gnu-system.am >> index 4086067..046ded5 100644 >> --- a/gnu-system.am >> +++ b/gnu-system.am >> @@ -422,6 +422,7 @@ dist_patch_DATA =3D \ >> gnu/packages/patches/mupdf-buildsystem-fix.patch \ >> gnu/packages/patches/mutt-CVE-2014-9116.patch \ >> gnu/packages/patches/net-tools-bitrot.patch \ >> + gnu/packages/patches/nss.patch \ >> gnu/packages/patches/nvi-assume-preserve-path.patch \ >> gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ >> gnu/packages/patches/ots-no-include-missing-file.patch \ >> diff --git a/gnu/packages/patches/nss.patch b/gnu/packages/patches/nss.p= atch >> new file mode 100644 >> index 0000000..356ff0d >> --- /dev/null >> +++ b/gnu/packages/patches/nss.patch >> @@ -0,0 +1,241 @@ >> +--- nss-3.17.1/nss/config/Makefile >> ++++ nss-3.17.1/nss/config/Makefile >> +@@ -0,0 +1,40 @@ >> ++CORE_DEPTH =3D .. >> ++DEPTH =3D .. >> ++ >> ++include $(CORE_DEPTH)/coreconf/config.mk >> ++ >> ++NSS_MAJOR_VERSION =3D `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{prin= t $$3}'` >> ++NSS_MINOR_VERSION =3D `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{prin= t $$3}'` >> ++NSS_PATCH_VERSION =3D `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{prin= t $$3}'` >> ++PREFIX =3D /usr >> ++ >> ++all: export libs >> ++ >> ++export: >> ++ # Create the nss.pc file >> ++ mkdir -p $(DIST)/lib/pkgconfig >> ++ sed -e "s,@prefix@,$(PREFIX)," \ >> ++ -e "s,@exec_prefix@,\$${prefix}," \ >> ++ -e "s,@libdir@,\$${prefix}/lib," \ >> ++ -e "s,@includedir@,\$${prefix}/include/nss," \ >> ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \ >> ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ >> ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ >> ++ nss.pc.in > nss.pc >> ++ chmod 0644 nss.pc >> ++ cp nss.pc $(DIST)/lib/pkgconfig >> ++ >> ++ # Create the nss-config script >> ++ mkdir -p $(DIST)/bin >> ++ sed -e "s,@prefix@,$(PREFIX)," \ >> ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \ >> ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ >> ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ >> ++ nss-config.in > nss-config >> ++ chmod 0755 nss-config >> ++ cp nss-config $(DIST)/bin >> ++ >> ++libs: >> ++ >> ++dummy: all export libs >> ++ >> +--- nss-3.17.1/nss/config/nss-config.in >> ++++ nss-3.17.1/nss/config/nss-config.in >> +@@ -0,0 +1,145 @@ >> ++#!/bin/sh >> ++ >> ++prefix=3D@prefix@ >> ++ >> ++major_version=3D@NSS_MAJOR_VERSION@ >> ++minor_version=3D@NSS_MINOR_VERSION@ >> ++patch_version=3D@NSS_PATCH_VERSION@ >> ++ >> ++usage() >> ++{ >> ++ cat <> ++Usage: nss-config [OPTIONS] [LIBRARIES] >> ++Options: >> ++ [--prefix[=3DDIR]] >> ++ [--exec-prefix[=3DDIR]] >> ++ [--includedir[=3DDIR]] >> ++ [--libdir[=3DDIR]] >> ++ [--version] >> ++ [--libs] >> ++ [--cflags] >> ++Dynamic Libraries: >> ++ nss >> ++ ssl >> ++ smime >> ++ nssutil >> ++EOF >> ++ exit $1 >> ++} >> ++ >> ++if test $# -eq 0; then >> ++ usage 1 1>&2 >> ++fi >> ++ >> ++lib_ssl=3Dyes >> ++lib_smime=3Dyes >> ++lib_nss=3Dyes >> ++lib_nssutil=3Dyes >> ++ >> ++while test $# -gt 0; do >> ++ case "$1" in >> ++ -*=3D*) optarg=3D`echo "$1" | sed 's/[-_a-zA-Z0-9]*=3D//'` ;; >> ++ *) optarg=3D ;; >> ++ esac >> ++ >> ++ case $1 in >> ++ --prefix=3D*) >> ++ prefix=3D$optarg >> ++ ;; >> ++ --prefix) >> ++ echo_prefix=3Dyes >> ++ ;; >> ++ --exec-prefix=3D*) >> ++ exec_prefix=3D$optarg >> ++ ;; >> ++ --exec-prefix) >> ++ echo_exec_prefix=3Dyes >> ++ ;; >> ++ --includedir=3D*) >> ++ includedir=3D$optarg >> ++ ;; >> ++ --includedir) >> ++ echo_includedir=3Dyes >> ++ ;; >> ++ --libdir=3D*) >> ++ libdir=3D$optarg >> ++ ;; >> ++ --libdir) >> ++ echo_libdir=3Dyes >> ++ ;; >> ++ --version) >> ++ echo ${major_version}.${minor_version}.${patch_version} >> ++ ;; >> ++ --cflags) >> ++ echo_cflags=3Dyes >> ++ ;; >> ++ --libs) >> ++ echo_libs=3Dyes >> ++ ;; >> ++ ssl) >> ++ lib_ssl=3Dyes >> ++ ;; >> ++ smime) >> ++ lib_smime=3Dyes >> ++ ;; >> ++ nss) >> ++ lib_nss=3Dyes >> ++ ;; >> ++ nssutil) >> ++ lib_nssutil=3Dyes >> ++ ;; >> ++ *) >> ++ usage 1 1>&2 >> ++ ;; >> ++ esac >> ++ shift >> ++done >> ++ >> ++# Set variables that may be dependent upon other variables >> ++if test -z "$exec_prefix"; then >> ++ exec_prefix=3D`pkg-config --variable=3Dexec_prefix nss` >> ++fi >> ++if test -z "$includedir"; then >> ++ includedir=3D`pkg-config --variable=3Dincludedir nss` >> ++fi >> ++if test -z "$libdir"; then >> ++ libdir=3D`pkg-config --variable=3Dlibdir nss` >> ++fi >> ++ >> ++if test "$echo_prefix" =3D "yes"; then >> ++ echo $prefix >> ++fi >> ++ >> ++if test "$echo_exec_prefix" =3D "yes"; then >> ++ echo $exec_prefix >> ++fi >> ++ >> ++if test "$echo_includedir" =3D "yes"; then >> ++ echo $includedir >> ++fi >> ++ >> ++if test "$echo_libdir" =3D "yes"; then >> ++ echo $libdir >> ++fi >> ++ >> ++if test "$echo_cflags" =3D "yes"; then >> ++ echo -I$includedir >> ++fi >> ++ >> ++if test "$echo_libs" =3D "yes"; then >> ++ libdirs=3D"" >> ++ if test -n "$lib_ssl"; then >> ++ libdirs=3D"$libdirs -lssl${major_version}" >> ++ fi >> ++ if test -n "$lib_smime"; then >> ++ libdirs=3D"$libdirs -lsmime${major_version}" >> ++ fi >> ++ if test -n "$lib_nss"; then >> ++ libdirs=3D"$libdirs -lnss${major_version}" >> ++ fi >> ++ if test -n "$lib_nssutil"; then >> ++ libdirs=3D"$libdirs -lnssutil${major_version}" >> ++ fi >> ++ echo $libdirs >> ++fi >> ++ >> +--- nss-3.17.1/nss/config/nss.pc.in >> ++++ nss-3.17.1/nss/config/nss.pc.in >> +@@ -0,0 +1,12 @@ >> ++prefix=3D@prefix@ >> ++exec_prefix=3D@exec_prefix@ >> ++libdir=3D@libdir@ >> ++includedir=3D@includedir@ >> ++ >> ++Name: NSS >> ++Description: Network Security Services >> ++Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@ >> ++Requires: nspr >=3D 4.8 >> ++Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3 >> ++Cflags: -I${includedir} >> ++ >> +--- nss-3.17.1/nss/Makefile >> ++++ nss-3.17.1/nss/Makefile >> +@@ -44,7 +44,7 @@ >> + # (7) Execute "local" rules. (OPTIONAL). # >> + ####################################################################### >> +=20 >> +-nss_build_all: build_nspr all >> ++nss_build_all: all >> +=20 >> + nss_clean_all: clobber_nspr clobber >> +=20 >> +@@ -109,12 +109,6 @@ >> + --with-dist-prefix=3D'$(NSPR_PREFIX)' \ >> + --with-dist-includedir=3D'$(NSPR_PREFIX)/include' >> +=20 >> +-build_nspr: $(NSPR_CONFIG_STATUS) >> +- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) >> +- >> +-clobber_nspr: $(NSPR_CONFIG_STATUS) >> +- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) clobber >> +- >> + build_docs: >> + $(MAKE) -C $(CORE_DEPTH)/doc >> +=20 >> +--- nss-3.17.1/nss/manifest.mn >> ++++ nss-3.17.1/nss/manifest.mn >> +@@ -10,7 +10,7 @@ >> +=20 >> + RELEASE =3D nss >> +=20 >> +-DIRS =3D coreconf lib cmd >> ++DIRS =3D coreconf lib cmd config >> +=20 >> + ifdef NSS_BUILD_GTESTS >> + DIRS +=3D external_tests > > Why is this patch needed? I find it surprising how much stuff you had > to add in order to get this to build. Where did it all come from? It's to install nss.pc and nss-config, from nixpkgs (from gentoo). > > Some explanation will be needed at the top of the patch, and also the > patch should have a more descriptive name than "nss.patch". OK. > >> diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm >> index 2be1d0b..8a6fa7c 100644 >> --- a/gnu/packages/polkit.scm >> +++ b/gnu/packages/polkit.scm >> @@ -1,5 +1,6 @@ >> ;;; GNU Guix --- Functional package management for GNU >> ;;; Copyright =C2=A9 2014 Andreas Enge >> +;;; Copyright =C2=A9 2015 Sou Bunnbu >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -23,6 +24,8 @@ >> #:use-module (guix build-system cmake) >> #:use-module (guix build-system gnu) >> #:use-module (gnu packages) >> + #:use-module (gnu packages compression) >> + #:use-module (gnu packages databases) >> #:use-module (gnu packages glib) >> #:use-module (gnu packages linux) >> #:use-module (gnu packages perl) >> @@ -103,6 +106,87 @@ platform-neutral API for system level and libc-like= functions. It is used >> in the Mozilla clients.") >> (license mpl2.0))) >>=20=20 >> +(define-public nss >> + (package >> + (name "nss") >> + (version "3.17.3") >> + (source (origin >> + (method url-fetch) >> + (uri (string-append >> + "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss= /" >> + "releases/NSS_3_17_3_RTM/src/nss-3.17.3.tar.gz")) >> + (sha256 >> + (base32 >> + "1m91z80x4zh1mxgf53bl33lp43gn1wxxx0y26mgz511gb81ykmgl")) >> + (patches (list (search-patch "nss.patch"))))) >> + (build-system gnu-build-system) >> + (outputs '("out" "bin")) >> + (arguments >> + '(#:parallel-build? #f ; failed >> + #:make-flags >> + (let* ((out (assoc-ref %outputs "out")) >> + (nspr (string-append (assoc-ref %build-inputs "nspr"))) >> + (rpath (string-append "-Wl,-rpath=3D" out "/lib"))) >> + (list "-C" "nss" (string-append "PREFIX=3D" out) >> + "NSDISTMODE=3Dcopy" >> + "NSS_USE_SYSTEM_SQLITE=3D1" >> + (string-append "NSPR_INCLUDE_DIR=3D" nspr "/include/nspr= ") >> + ;; Add $out/lib to RPATH. >> + (string-append "RPATH=3D" rpath) >> + (string-append "LDFLAGS=3D" rpath))) >> + #:modules ((guix build gnu-build-system) >> + (guix build utils) >> + (ice-9 ftw) >> + (srfi srfi-26)) >> + #:imported-modules ((guix build gnu-build-system) >> + (guix build utils)) >> + #:phases >> + (alist-replace >> + 'configure >> + (lambda* (#:key system inputs #:allow-other-keys) >> + (when (string-prefix? "x86_64" system) >> + (setenv "USE_64" "1"))) >> + (alist-replace >> + 'check >> + (lambda _ >> + (setenv "DOMSUF" "(none)") >> + (setenv "USE_IP" "TRUE") >> + (setenv "IP_ADDRESS" "127.0.0.1") >> + (system "./nss/tests/all.sh")) > > This last expression should be (zero? (system "./nss/tests/all.sh")), to > signal an error if ./nss/tests/all.sh returns a non-zero status code. OK. > >> + (alist-replace >> + 'install >> + (lambda* (#:key outputs #:allow-other-keys) >> + (let* ((out (assoc-ref outputs "out")) >> + (bin (string-append (assoc-ref outputs "bin") "/bin"= )) >> + (inc (string-append out "/include/nss")) >> + (lib (string-append out "/lib")) >> + (obj (car (scandir "dist" (cut string-suffix? >> "OBJ" <>)))) NSS contains many static libraries which I think will not mostly used by other. How about split them to a 'static-lib' (or a better name). > > This looks potentially non-deterministic, if that 'scandir' call might > return more than one element. If you expect only one, how about this > instead: > > (obj (match (scandir "dist" (cut string-suffix? "OBJ" <>)) > ((obj) obj))) > > That way, if there's more than one, an error will be reported. You'll > need to add (ice-9 match) to #:modules. Adjusted. > > Mark Updated patch: --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-gnu-Add-nss.patch Content-Transfer-Encoding: quoted-printable >From f56c7ef06f8eb697e9b0e0eac2e6c8117520d5d0 Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?=3DE5=3DAE=3D8B=3DE6=3D96=3D87=3DE6=3DAD=3DA6?=3D Date: Tue, 6 Jan 2015 23:57:31 +0800 Subject: [PATCH] gnu: Add nss. * gnu/packages/patches/nss-pkgconfig.patch: New file. * gnu-system.scm (dist_patch_DATA): Add it. * gnu/packages/polkit.scm (nss): New variable. --- gnu-system.am | 1 + gnu/packages/patches/nss-pkgconfig.patch | 220 +++++++++++++++++++++++++++= ++++ gnu/packages/polkit.scm | 93 +++++++++++++ 3 files changed, 314 insertions(+) create mode 100644 gnu/packages/patches/nss-pkgconfig.patch diff --git a/gnu-system.am b/gnu-system.am index dc881bb..33d870c 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -422,6 +422,7 @@ dist_patch_DATA =3D \ gnu/packages/patches/mupdf-buildsystem-fix.patch \ gnu/packages/patches/mutt-CVE-2014-9116.patch \ gnu/packages/patches/net-tools-bitrot.patch \ + gnu/packages/patches/nss-pkgconfig.patch \ gnu/packages/patches/nvi-assume-preserve-path.patch \ gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ gnu/packages/patches/ots-no-include-missing-file.patch \ diff --git a/gnu/packages/patches/nss-pkgconfig.patch b/gnu/packages/patche= s/nss-pkgconfig.patch new file mode 100644 index 0000000..3832dc3 --- /dev/null +++ b/gnu/packages/patches/nss-pkgconfig.patch @@ -0,0 +1,220 @@ +Install nss.pc and nss-config. +Based on nss-3.17-gentoo-fixups.patch from nixpkgs. + +--- nss-3.17.1/nss/config/Makefile ++++ nss-3.17.1/nss/config/Makefile +@@ -0,0 +1,40 @@ ++CORE_DEPTH =3D .. ++DEPTH =3D .. ++ ++include $(CORE_DEPTH)/coreconf/config.mk ++ ++NSS_MAJOR_VERSION =3D `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $= $3}'` ++NSS_MINOR_VERSION =3D `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $= $3}'` ++NSS_PATCH_VERSION =3D `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $= $3}'` ++PREFIX =3D /usr ++ ++all: export libs ++ ++export: ++ # Create the nss.pc file ++ mkdir -p $(DIST)/lib/pkgconfig ++ sed -e "s,@prefix@,$(PREFIX)," \ ++ -e "s,@exec_prefix@,\$${prefix}," \ ++ -e "s,@libdir@,\$${prefix}/lib/nss," \ ++ -e "s,@includedir@,\$${prefix}/include/nss," \ ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \ ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ ++ nss.pc.in > nss.pc ++ chmod 0644 nss.pc ++ cp nss.pc $(DIST)/lib/pkgconfig ++ ++ # Create the nss-config script ++ mkdir -p $(DIST)/bin ++ sed -e "s,@prefix@,$(PREFIX)," \ ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \ ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ ++ nss-config.in > nss-config ++ chmod 0755 nss-config ++ cp nss-config $(DIST)/bin ++ ++libs: ++ ++dummy: all export libs ++ +--- nss-3.17.1/nss/config/nss-config.in ++++ nss-3.17.1/nss/config/nss-config.in +@@ -0,0 +1,145 @@ ++#!/bin/sh ++ ++prefix=3D@prefix@ ++ ++major_version=3D@NSS_MAJOR_VERSION@ ++minor_version=3D@NSS_MINOR_VERSION@ ++patch_version=3D@NSS_PATCH_VERSION@ ++ ++usage() ++{ ++ cat <&2 ++fi ++ ++lib_ssl=3Dyes ++lib_smime=3Dyes ++lib_nss=3Dyes ++lib_nssutil=3Dyes ++ ++while test $# -gt 0; do ++ case "$1" in ++ -*=3D*) optarg=3D`echo "$1" | sed 's/[-_a-zA-Z0-9]*=3D//'` ;; ++ *) optarg=3D ;; ++ esac ++ ++ case $1 in ++ --prefix=3D*) ++ prefix=3D$optarg ++ ;; ++ --prefix) ++ echo_prefix=3Dyes ++ ;; ++ --exec-prefix=3D*) ++ exec_prefix=3D$optarg ++ ;; ++ --exec-prefix) ++ echo_exec_prefix=3Dyes ++ ;; ++ --includedir=3D*) ++ includedir=3D$optarg ++ ;; ++ --includedir) ++ echo_includedir=3Dyes ++ ;; ++ --libdir=3D*) ++ libdir=3D$optarg ++ ;; ++ --libdir) ++ echo_libdir=3Dyes ++ ;; ++ --version) ++ echo ${major_version}.${minor_version}.${patch_version} ++ ;; ++ --cflags) ++ echo_cflags=3Dyes ++ ;; ++ --libs) ++ echo_libs=3Dyes ++ ;; ++ ssl) ++ lib_ssl=3Dyes ++ ;; ++ smime) ++ lib_smime=3Dyes ++ ;; ++ nss) ++ lib_nss=3Dyes ++ ;; ++ nssutil) ++ lib_nssutil=3Dyes ++ ;; ++ *) ++ usage 1 1>&2 ++ ;; ++ esac ++ shift ++done ++ ++# Set variables that may be dependent upon other variables ++if test -z "$exec_prefix"; then ++ exec_prefix=3D`pkg-config --variable=3Dexec_prefix nss` ++fi ++if test -z "$includedir"; then ++ includedir=3D`pkg-config --variable=3Dincludedir nss` ++fi ++if test -z "$libdir"; then ++ libdir=3D`pkg-config --variable=3Dlibdir nss` ++fi ++ ++if test "$echo_prefix" =3D "yes"; then ++ echo $prefix ++fi ++ ++if test "$echo_exec_prefix" =3D "yes"; then ++ echo $exec_prefix ++fi ++ ++if test "$echo_includedir" =3D "yes"; then ++ echo $includedir ++fi ++ ++if test "$echo_libdir" =3D "yes"; then ++ echo $libdir ++fi ++ ++if test "$echo_cflags" =3D "yes"; then ++ echo -I$includedir ++fi ++ ++if test "$echo_libs" =3D "yes"; then ++ libdirs=3D"" ++ if test -n "$lib_ssl"; then ++ libdirs=3D"$libdirs -lssl${major_version}" ++ fi ++ if test -n "$lib_smime"; then ++ libdirs=3D"$libdirs -lsmime${major_version}" ++ fi ++ if test -n "$lib_nss"; then ++ libdirs=3D"$libdirs -lnss${major_version}" ++ fi ++ if test -n "$lib_nssutil"; then ++ libdirs=3D"$libdirs -lnssutil${major_version}" ++ fi ++ echo $libdirs ++fi ++ +--- nss-3.17.1/nss/config/nss.pc.in ++++ nss-3.17.1/nss/config/nss.pc.in +@@ -0,0 +1,12 @@ ++prefix=3D@prefix@ ++exec_prefix=3D@exec_prefix@ ++libdir=3D@libdir@ ++includedir=3D@includedir@ ++ ++Name: NSS ++Description: Network Security Services ++Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@ ++Requires: nspr >=3D 4.8 ++Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3 ++Cflags: -I${includedir} ++ +--- nss-3.17.1/nss/manifest.mn ++++ nss-3.17.1/nss/manifest.mn +@@ -10,7 +10,7 @@ +=20 + RELEASE =3D nss +=20 +-DIRS =3D coreconf lib cmd ++DIRS =3D coreconf lib cmd config +=20 + ifdef NSS_BUILD_GTESTS + DIRS +=3D external_tests diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index 2be1d0b..f54c0a3 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2014 Andreas Enge +;;; Copyright =C2=A9 2015 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,8 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages databases) #:use-module (gnu packages glib) #:use-module (gnu packages linux) #:use-module (gnu packages perl) @@ -103,6 +106,96 @@ platform-neutral API for system level and libc-like fu= nctions. It is used in the Mozilla clients.") (license mpl2.0))) =20 +(define-public nss + (package + (name "nss") + (version "3.17.3") + (source (origin + (method url-fetch) + (uri (string-append + "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/" + "releases/NSS_3_17_3_RTM/src/nss-3.17.3.tar.gz")) + (sha256 + (base32 + "1m91z80x4zh1mxgf53bl33lp43gn1wxxx0y26mgz511gb81ykmgl")) + ;; Install nss.pc and nss-config. + (patches (list (search-patch "nss-pkgconfig.patch"))))) + (build-system gnu-build-system) + (outputs '("out" "bin")) + (arguments + '(#:parallel-build? #f ; failed + #:make-flags + (let* ((out (assoc-ref %outputs "out")) + (nspr (string-append (assoc-ref %build-inputs "nspr"))) + (rpath (string-append "-Wl,-rpath=3D" out "/lib/nss"))) + (list "-C" "nss" (string-append "PREFIX=3D" out) + "NSDISTMODE=3Dcopy" + "NSS_USE_SYSTEM_SQLITE=3D1" + (string-append "NSPR_INCLUDE_DIR=3D" nspr "/include/nspr") + ;; Add $out/lib/nss to RPATH. + (string-append "RPATH=3D" rpath) + (string-append "LDFLAGS=3D" rpath))) + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 match) + (srfi srfi-26)) + #:imported-modules ((guix build gnu-build-system) + (guix build utils)) + #:phases + (alist-replace + 'configure + (lambda* (#:key system inputs #:allow-other-keys) + (when (string-prefix? "x86_64" system) + (setenv "USE_64" "1"))) + (alist-replace + 'check + (lambda _ + (setenv "DOMSUF" "(none)") + (setenv "USE_IP" "TRUE") + (setenv "IP_ADDRESS" "127.0.0.1") + (zero? (system "./nss/tests/all.sh"))) + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append (assoc-ref outputs "bin") "/bin")) + (inc (string-append out "/include/nss")) + (lib (string-append out "/lib/nss")) + (obj (match (scandir "dist" (cut string-suffix? "OBJ" <= >)) + ((obj) (string-append "dist/" obj))))) + ;; Install nss-config to $out/bin. + (mkdir-p (string-append out "/bin")) + (copy-file (string-append obj "/bin/nss-config") + (string-append out "/bin/nss-config")) + (delete-file (string-append obj "/bin/nss-config")) + ;; Install nss.pc to $out/lib/pkgconfig. + (mkdir-p (string-append out "/lib/pkgconfig")) + (copy-file (string-append obj "/lib/pkgconfig/nss.pc") + (string-append out "/lib/pkgconfig/nss.pc")) + (delete-file (string-append obj "/lib/pkgconfig/nss.pc")) + (rmdir (string-append obj "/lib/pkgconfig")) + ;; Install other files. + (copy-recursively "dist/public/nss" inc) + (copy-recursively (string-append obj "/bin") bin) + (copy-recursively (string-append obj "/lib") lib))) + %standard-phases))))) + (inputs + `(("sqlite" ,sqlite) + ("zlib" ,zlib))) + (propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc. + (native-inputs `(("perl" ,perl))) + (home-page + "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS") + (synopsis "Network Security Services") + (description + "Network Security Services (NSS) is a set of libraries designed to su= pport +cross-platform development of security-enabled client and server applicati= ons. +Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS = #7, +PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security +standards.") + (license mpl2.0))) + (define-public polkit (package (name "polkit") --=20 2.1.2 --=-=-=--