From 1aaaff1a7b09d6cf30ebe82a80712f53b6e20d09 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 6 Jan 2015 23:57:31 +0800 Subject: gnu: Add nss. * gnu/packages/patches/nss-pkgconfig.patch: New file. * gnu-system.scm (dist_patch_DATA): Add it. * gnu/packages/gnuzilla.scm (nss): New variable. --- gnu/packages/gnuzilla.scm | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) (limited to 'gnu/packages/gnuzilla.scm') diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index a60ff76298..8e397464ac 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2013, 2014 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2015 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (gnu packages databases) #:use-module (gnu packages glib) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) @@ -114,6 +116,100 @@ platform-neutral API for system level and libc-like functions. It is used in the Mozilla clients.") (license license:mpl2.0))) +(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")) + ;; Create 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=" out "/lib/nss"))) + (list "-C" "nss" (string-append "PREFIX=" out) + "NSDISTMODE=copy" + "NSS_USE_SYSTEM_SQLITE=1" + (string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr") + ;; Add $out/lib/nss to RPATH. + (string-append "RPATH=" rpath) + (string-append "LDFLAGS=" 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) + ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system. + (when (string-prefix? "x86_64" system) + (setenv "USE_64" "1")) + #t) + (alist-replace + 'check + (lambda _ + ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing. + ;; The later requires a working DNS or /etc/hosts. + (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 support +cross-platform 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, X.509 v3 certificates, and other security +standards.") + (license license:mpl2.0))) + (define-public icecat (package (name "icecat") -- cgit v1.2.3