# $Id$ PNAME="nss" PVER="3.42.1" PBUILD="r1" PCAT="dev-libs" DESCRIPTION="Network Security Services (NSS)." HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/" DEPEND_x86_64=">= sys-apps/multiarch-wrapper-1" SPECIAL_VARS="DEPEND_x86_64" DEPEND="$(marchdepend) >= virtual/glibc >= sys-libs/zlib-1.2 >= dev-libs/nspr-4.20 >= dev-db/sqlite-3.27" SDEPEND=">= virtual/sed" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" sminclude mtools multilib msetfeature "!check !strip" # never strip the libraries, because if they are altered the chk files did not match, and the libs must be resigned CONF_REV=1.2 PC_REV=1.2 SRC_URI=( http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_$(echo ${PVER} | sed "s:\.:\_:g")_RTM/src/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/nss-config.in-${CONF_REV} mirror://${PNAME}/nss.pc.in-${PC_REV} ) UP2DATE="updatecmd http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ | grep NSS | grep -v "WITH" | sed 's/.*NSS_\(.*\)_RTM.*/\1/;s/_/./g' | upsort_pipe" src_prepare() { munpack ${SRCFILE} || die # modify install path all-abis "sed -i 's:SOURCE_PREFIX = $(CORE_DEPTH)/\.\./dist:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' nss/coreconf/source.mk || die" } src_compile() { local abi for abi in ${MULTILIB_ABIS} do case ${abi} in m32) ABI="m32"; ABI_LIBDIR="lib";; m64) ABI="m64"; ABI_LIBDIR="lib64";; esac cd ${SRCDIR}-${abi} [[ ${abi} = m64 ]] && export USE_64=1 # use system sqlite export NSS_USE_SYSTEM_SQLITE=1 export NSS_ENABLE_ECC=1 export XCFLAGS="${CFLAGS}" # get the right nspr includes and libs on multilib systems export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig" export NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's:-I::') export NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's:-L::') make -j1 BUILD_OPT=1 CC="gcc -${ABI}" -C nss/coreconf || die make -j1 BUILD_OPT=1 CC="gcc -${ABI}" -C nss/lib/dbm || die make -j1 BUILD_OPT=1 CC="gcc -${ABI}" -C nss || die done } src_install() { local abi for abi in ${MULTILIB_ABIS} do case ${abi} in m32) ABI_LIBDIR="lib";; m64) ABI_LIBDIR="lib64";; esac cd ${SRCDIR}-${abi}/dist # put all *.a files in /usr/lib/nss # (because some have conflicting names with existing libraries) minstalldir /usr/$(mlibdir)/nss || die #cp -L */lib/*.a ${BINDIR}/usr/$(mlibdir)/nss || die cp -L */lib/libcrmf.a ${BINDIR}/usr/$(mlibdir)/nss || die cp -L */lib/*.so ${BINDIR}/usr/$(mlibdir)/nss || die cp -L */lib/*.chk ${BINDIR}/usr/$(mlibdir)/nss || die # all the include files minstalldir /usr/include/nss || die minstallfile private/nss/\*.h /usr/include/nss || die minstallfile public/nss/\*.h /usr/include/nss || die # install nss-config and pkgconfig file minstalldir /usr/bin || die minstalldir /usr/$(mlibdir)/pkgconfig || die minstallexec -s nss-config.in-${CONF_REV} /usr/bin/nss-config-${abi} || die minstallfile -s nss.pc.in-${PC_REV} /usr/$(mlibdir)/pkgconfig/nss.pc || die local NSS_VMAJOR=$(cat ${SRCDIR}-${abi}/nss/lib/nss/nss.h | grep "#define.*NSS_VMAJOR" | awk '{print $3}') local NSS_VMINOR=$(cat ${SRCDIR}-${abi}/nss/lib/nss/nss.h | grep "#define.*NSS_VMINOR" | awk '{print $3}') local NSS_VPATCH=$(cat ${SRCDIR}-${abi}/nss/lib/nss/nss.h | grep "#define.*NSS_VPATCH" | awk '{print $3}') sed -e "s:@libdir@:/usr/$(mlibdir)/nss:g" \ -e "s:@prefix@:/usr:g" \ -e "s:@exec_prefix@:\$\{prefix}:g" \ -e "s:@includedir@:\$\{prefix}/include/nss:g" \ -e "s:@MOD_MAJOR_VERSION@:${NSS_VMAJOR}:g" \ -e "s:@MOD_MINOR_VERSION@:${NSS_VMINOR}:g" \ -e "s:@MOD_PATCH_VERSION@:${NSS_VPATCH}:g" \ -i ${BINDIR}/usr/bin/nss-config-${abi} || die sed -e "s:@libdir@:/usr/$(mlibdir)/nss:g" \ -e "s:@prefix@:/usr:g" \ -e "s:@exec_prefix@:\$\{prefix}:g" \ -e "s:@includedir@:\$\{prefix}/include/nss:" \ -e "s:@NSPR_VERSION@:$(nspr-config --version):g" \ -e "s:@NSS_VERSION@:$NSS_VMAJOR.$NSS_VMINOR.$NSS_VPATCH:g" \ -i ${BINDIR}/usr/$(mlibdir)/pkgconfig/nss.pc || die # inform the system about the new ldpath minstalldir /etc/env.d || die echo "LDPATH=/usr/$(mlibdir)/nss" > ${BINDIR}/etc/env.d/08nss-${abi} || die if [[ ${ARCH} = x86_64 ]] then mlink multiarch-wrapper /usr/bin/nss-config || die else mlink nss-config-${abi} /usr/bin/nss-config || die fi done } postinstall() { if [[ -f ${MROOT}/etc/env.d/08nss ]] then rm ${MROOT}/etc/env.d/08nss fi }