# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 PortGroup muniversal 1.0 name nss version 3.43 revision 0 set NSS_VMAJOR [lindex [split ${version} .] 0] set NSS_VMINOR [lindex [split ${version} .] 1] set NSS_VPATCH [lindex [split ${version} .] 2] if {${NSS_VPATCH} eq ""} { # NSS_VPATCH should always be a number set NSS_VPATCH 0 } categories net maintainers nomaintainer license {MPL-2 GPL-2+ LGPL-2.1+} description Network Security Service libraries. long_description ${description} use_configure no homepage http://www.mozilla.org/projects/security/pki/nss/ platforms darwin set my_release NSS_[strsed ${version} {g/\./_/}]_RTM master_sites https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${my_release}/src/ \ ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${my_release}/src/ checksums rmd160 f864e768542364b7fb2b7d727579f6ced82cf0a6 \ sha256 f30bc1b7330887b75de9fec37dbc173001758dc43fb095ffbc45dac4093fe2ca \ size 23466026 depends_lib port:nspr \ port:zlib \ port:sqlite3 destroot.dir ${destroot.dir}/dist build.dir ${build.dir}/nss # external tests require C++11 build.args NSS_DISABLE_GTESTS=1 # disable use of -Werror build.args-append NSS_ENABLE_WERROR=0 # muniversal destroot requires a Makefile post-extract { xinstall -d -m 0755 ${destroot.dir} copy ${filespath}/Makefile-MacPorts-Install.in ${destroot.dir}/Makefile-MacPorts-Install reinplace "s|__MACPORTS_PREFIX__|${prefix}|g" ${destroot.dir}/Makefile-MacPorts-Install } destroot.args-append \ -f Makefile-MacPorts-Install post-patch { # libraries are not relative to any main executable, so no need for @executable_path reinplace "s|@executable_path|${prefix}/lib/nss|g" \ ${build.dir}/coreconf/Darwin.mk \ ${build.dir}/lib/freebl/config.mk } post-destroot { # applications seem to expect an nss-config executable and nss.pc file, but nss does not provide them # see https://bugzilla.mozilla.org/show_bug.cgi?id=530672 xinstall -m 0755 ${filespath}/nss-config.in ${destroot}${prefix}/bin/nss-config reinplace "s,@libdir@,${prefix}/lib/nss,g" ${destroot}${prefix}/bin/nss-config reinplace "s,@prefix@,${prefix},g" ${destroot}${prefix}/bin/nss-config reinplace "s,@exec_prefix@,${prefix},g" ${destroot}${prefix}/bin/nss-config reinplace "s,@includedir@,${prefix}/include/nss,g" ${destroot}${prefix}/bin/nss-config reinplace "s,@MOD_MAJOR_VERSION@,${NSS_VMAJOR},g" ${destroot}${prefix}/bin/nss-config reinplace "s,@MOD_MINOR_VERSION@,${NSS_VMINOR},g" ${destroot}${prefix}/bin/nss-config reinplace "s,@MOD_PATCH_VERSION@,${NSS_VPATCH},g" ${destroot}${prefix}/bin/nss-config set nspr_version [exec ${prefix}/bin/nspr-config --version] set nss_version [exec ${destroot}${prefix}/bin/nss-config --version] xinstall -m 0644 ${filespath}/nss.pc.in ${destroot}${prefix}/lib/pkgconfig/nss.pc reinplace "s,@libdir@,${prefix}/lib/nss,g" ${destroot}${prefix}/lib/pkgconfig/nss.pc reinplace "s,@prefix@,${prefix},g" ${destroot}${prefix}/lib/pkgconfig/nss.pc reinplace "s,@exec_prefix@,${prefix},g" ${destroot}${prefix}/lib/pkgconfig/nss.pc reinplace "s,@includedir@,${prefix}/include/nss," ${destroot}${prefix}/lib/pkgconfig/nss.pc reinplace "s,@NSPR_VERSION@,${nspr_version},g" ${destroot}${prefix}/lib/pkgconfig/nss.pc reinplace "s,@NSS_VERSION@,${nss_version},g" ${destroot}${prefix}/lib/pkgconfig/nss.pc # install man files xinstall -m 0644 \ {*}[glob ${build.dir}/doc/nroff/*.1] \ ${destroot}${prefix}/share/man/man1/ } use_parallel_build no # tls13esni.c:72: error: 'for' loop initial declaration used outside C99 mode configure.cflags-append -std=c99 # mimic nss/coreconf/Darwin.mk if {![variant_isset universal]} { if {${build_arch} eq "x86_64" || ${build_arch} eq "ppc64"} { build.args-append USE_64=1 } build.args-append \ CC="${configure.cc} ${configure.cflags} [get_canonical_archflags cc]" \ CCC="${configure.cxx} ${configure.cxxflags} [get_canonical_archflags cxx]" } else { lappend merger_build_args(x86_64) USE_64=1 lappend merger_build_args(ppc64) USE_64=1 foreach arch ${universal_archs} { lappend merger_build_args(${arch}) \ CC="${configure.cc} ${configure.cflags} -arch ${arch}" \ CCC="${configure.cxx} ${configure.cxxflags} -arch ${arch}" } } build.args-append \ NSPR_INCLUDE_DIR=${prefix}/include/nspr \ NSPR_LIB_DIR=${prefix}/lib/nspr \ NSS_USE_SYSTEM_SQLITE=1 \ USE_SYSTEM_ZLIB=1 \ BUILD_OPT=1 \ OPTIMIZER="${configure.optflags}" \ OBJDIR_NAME="Output.OBJD" if {${configure.sdkroot} ne ""} { build.args-append \ MACOS_SDK_DIR=${configure.sdkroot} } if {[variant_isset universal]} { # chk files can not be merged merger-post-destroot { foreach arch ${universal_archs_to_use} { foreach chk [glob -nocomplain -directory ${destroot}-${arch}${prefix}/lib/nss *.chk] { # delete chk file and replace it with an empty file, which can be merged # keep the empty file so that later, we can know which chk files need to be regenerated from universal library file delete ${chk} touch ${chk} } } } post-destroot { foreach chk [glob -nocomplain -directory ${destroot}${prefix}/lib/nss *.chk] { # replace empty chk file with an actual one generated from universal library file delete ${chk} set base [file rootname ${chk}] system "env DYLD_LIBRARY_PATH=${destroot}${prefix}/lib/nss ${destroot}${prefix}/bin/shlibsign -i ${base}.dylib -o ${chk}" } } } livecheck.type regex livecheck.url http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ if {${NSS_VPATCH} eq 0} { livecheck.version "${NSS_VMAJOR}_${NSS_VMINOR}" } else { livecheck.version "${NSS_VMAJOR}_${NSS_VMINOR}_${NSS_VPATCH}" } livecheck.regex {(\d+_\d+(?:_\d+)*)}