############################################################################### # IPFire.org - An Open Source Firewall Solution # # Copyright (C) - IPFire Development Team # ############################################################################### name = nss ver_major = 3 ver_minor = 13 ver_patch = 1 version = %{ver_major}.%{ver_minor}.%{ver_patch} release = 4 maintainer = Stefan Schantl groups = System/Libraries url = http://www.mozilla.org/projects/security/pki/nss/ license = MPLv1.1 or GPLv2+ or LGPLv2+ summary = 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. end sources += \ %{name}-pem-20100809.tar.bz2 source_dl = ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_%{ver_major}_%{ver_minor}_%{ver_patch}_RTM/src/ build requires chrpath nspr-devel perl pkg-config psmisc sqlite-devel zlib-devel end ## Define some global environment variables export FREEBL_NO_DEPEND=1 # Enable compiler optimizations and disable debugging code export BUILD_OPT=1 export XCFLAGS=%{CFLAGS} # Allow the usage of system libraries. export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 # Define where to find nspr header files and libraries. export NSPR_INCLUDE_DIR=/usr/include/nspr4 export NSPR_LIB_DIR=%{libdir} # Disable support for SHA224. export NO_SHA224_AVAILABLE=1 # Use sqlite from system. export NSS_USE_SYSTEM_SQLITE=1 if "%{DISTRO_ARCH}" == "x86_64" export USE_64=1 end prepare # Extract tarball. cd %{DIR_SRC} && %{MACRO_EXTRACT} %{DIR_DL}/%{thisapp}.tar.gz # Extract pem tarball into nss directory. cd %{DIR_APP} && %{MACRO_EXTRACT} %{DIR_DL}/%{name}-pem-20100809.tar.bz2 # Apply all patches %{MACRO_PATCHES} end build make -C ./mozilla/security/coreconf make -C ./mozilla/security/dbm make -C ./mozilla/security/nss end install # We have to do the complete install stuff self. # Create directory layout. mkdir -pv %{BUILDROOT}/usr/include/nss3 mkdir -pv %{BUILDROOT}/usr/{bin,%{lib}} mkdir -pv %{BUILDROOT}%{libdir}/pkgconfig mkdir -pv %{BUILDROOT}%{libdir}/nss/unsupported-tools # Install all libraries. install -p -v -m 755 mozilla/dist/*.OBJ/lib/libnss3.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libnssckbi.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libnsspem.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libnsssysinit.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libnssutil3.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libsmime3.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libssl3.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libsoftokn3.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libnssdbm3.so \ %{BUILDROOT}%{libdir} install -p -v -m 755 mozilla/dist/*.OBJ/lib/libfreebl3.so \ %{BUILDROOT}/%{libdir} # Install the empty NSS db files mkdir -pv %{BUILDROOT}/etc/pki/nssdb cp -vf %{DIR_SOURCE}/*.db %{BUILDROOT}/etc/pki/nssdb/ install -p -v -m 644 %{DIR_SOURCE}/system-pkcs11.txt \ %{BUILDROOT}/etc/pki/nssdb/pkcs11.txt # Copy the binaries we want install -p -v -m 755 mozilla/dist/*.OBJ/bin/certutil %{BUILDROOT}/usr/bin install -p -v -m 755 mozilla/dist/*.OBJ/bin/cmsutil %{BUILDROOT}/usr/bin install -p -v -m 755 mozilla/dist/*.OBJ/bin/crlutil %{BUILDROOT}/usr/bin install -p -v -m 755 mozilla/dist/*.OBJ/bin/modutil %{BUILDROOT}/usr/bin install -p -v -m 755 mozilla/dist/*.OBJ/bin/pk12util %{BUILDROOT}/usr/bin install -p -v -m 755 mozilla/dist/*.OBJ/bin/signtool %{BUILDROOT}/usr/bin install -p -v -m 755 mozilla/dist/*.OBJ/bin/signver %{BUILDROOT}/usr/bin install -p -v -m 755 mozilla/dist/*.OBJ/bin/ssltap %{BUILDROOT}/usr/bin chrpath --delete %{BUILDROOT}/usr/bin/* # Copy the binaries we ship as unsupported install -p -v -m 755 mozilla/dist/*.OBJ/bin/atob %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/btoa %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/derdump %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/ocspclnt %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/pp %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/selfserv %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/shlibsign %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/strsclnt %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/symkeyutil %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/tstclnt %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/vfyserv %{BUILDROOT}%{libdir}/nss/unsupported-tools install -p -v -m 755 mozilla/dist/*.OBJ/bin/vfychain %{BUILDROOT}%{libdir}/nss/unsupported-tools chrpath --delete %{BUILDROOT}%{libdir}/nss/unsupported-tools/* for file in nss-config nss-util-config; do sed -e "s,@libdir@,%{libdir},g" \ -e "s,@prefix@,/usr,g" \ -e "s,@exec_prefix@,/usr,g" \ -e "s,@includedir@,/usr/include/nss3,g" \ -e "s,@MOD_MAJOR_VERSION@,$(grep "#define.*NSS_VMAJOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \ -e "s,@MOD_MINOR_VERSION@,$(grep "#define.*NSS_VMINOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \ -e "s,@MOD_PATCH_VERSION@,$(grep "#define.*NSS_VPATCH" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \ < %{DIR_SOURCE}/${file}.in \ > %{BUILDROOT}/usr/bin/${file} chmod -v 755 %{BUILDROOT}/usr/bin/${file} done install -p -v -m 755 %{DIR_SOURCE}/setup-nsssysinit.sh %{BUILDROOT}/usr/bin # Generate file for pkg-config. for file in nss.pc nss-util.pc; do sed \ -e "s,%libdir%,%{libdir},g" \ -e "s,%prefix%,/usr,g" \ -e "s,%exec_prefix%,/usr,g" \ -e "s,%includedir%,/usr/include/nss3,g" \ -e "s,%NSS_VERSION%,%{version},g" \ -e "s,%NSPR_VERSION%,$(nspr-config --version),g" \ < %{DIR_SOURCE}/${file}.in \ > %{BUILDROOT}%{libdir}/pkgconfig/${file} done # Copy the include files we want cp -vf mozilla/dist/public/nss/*.h %{BUILDROOT}/usr/include/nss3 cp -vf mozilla/dist/private/nss/blapi.h %{BUILDROOT}/usr/include/nss3 chmod -v 644 %{BUILDROOT}/usr/include/nss3/*.h end end packages package %{name} package %{name}-libs template LIBS requires nss-softokn=%{thisver} nss-softokn-freebl=%{thisver} end files %{libdir}/*.so end end package %{name}-devel template DEVEL requires nspr-devel nss=%{thisver} end provides nss-util-devel = %{thisver} end # Mozilla does no versioning :( files /usr/bin/*-config /usr/include %{libdir}/pkgconfig end end package %{name}-softokn summary = Network Security Services Softoken Module. description Network Security Services Softoken Cryptographic Module. end requires = nss=%{thisver} files %{libdir}/libnssdbm3.so %{libdir}/libsoftokn3.so %{libdir}/nss/unsupported-tools/shlibsign end end package %{name}-softokn-freebl summary = Freebl library for the Network Security Services. description NSS Softoken Cryptographic Module Freelb Library. end requires nss=%{thisver} nss-softokn=%{thisver} end files = %{libdir}/libfreebl3.so end package %{name}-util summary = Network Security Services Utilities Library. description Utilities for Network Security Services and the Softoken module. end requires = nss=%{thisver} files = %{libdir}/libnssutil3.so end package %{name}-debuginfo template DEBUGINFO end end