Difference between revisions of "NSS"

From CBLFS
Jump to navigationJump to search
Line 32: Line 32:
 
  for dir in mozilla/security/{coreconf,dbm,nss}; do
 
  for dir in mozilla/security/{coreconf,dbm,nss}; do
 
   make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
 
   make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
    LDFLAGS="-Wl,-rpath,/usr/lib/nss -Wl,-rpath,/usr/lib/nspr" \
 
 
     NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
 
     NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
 
     NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
 
     NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
Line 39: Line 38:
 
Install the package
 
Install the package
  
  install -m755 -d /usr/include/nss
+
  install -m755 -d /usr/include/nss3
install -m755 -d /usr/lib/nss
 
 
   
 
   
 
  for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
 
  for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
   install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib/nss
+
   install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib
 
  done
 
  done
 
  for file in libcrmf.a libnssb.a libnssckfw.a; do
 
  for file in libcrmf.a libnssb.a libnssckfw.a; do
   install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib/nss
+
   install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib
 
  done
 
  done
 
  for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
 
  for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
   install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin/
+
   install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin
 
  done
 
  done
  install -m644 mozilla/dist/public/nss/*.h /usr/include/nss/
+
  install -m644 mozilla/dist/public/nss/*.h /usr/include/nss3 &&
 +
ln -sfv nss3 /usr/include/nss
  
 
Create the pkg-config file:
 
Create the pkg-config file:
Line 58: Line 57:
 
  prefix=/usr
 
  prefix=/usr
 
  exec_prefix=/usr/bin
 
  exec_prefix=/usr/bin
  libdir=/usr/lib/nss
+
  libdir=/usr/lib
 
  includedir=/usr/include/nss
 
  includedir=/usr/include/nss
 
   
 
   
Line 65: Line 64:
 
  Version: {{NSS-Version}}
 
  Version: {{NSS-Version}}
 
  Requires: sqlite3 nspr >= {{NSPR-Version}}
 
  Requires: sqlite3 nspr >= {{NSPR-Version}}
  Libs: -Wl,-rpath,${libdir} -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
+
  Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
 
  Cflags: -I${includedir}
 
  Cflags: -I${includedir}
 
  EOF
 
  EOF
 
   
 
   
 
  ln -sfv nss.pc /usr/lib/pkgconfig/mozilla-nss.pc
 
  ln -sfv nss.pc /usr/lib/pkgconfig/mozilla-nss.pc
  chmod 644 /usr/lib/pkgconfig/*.pc
+
  chmod 644 /usr/lib/pkgconfig/{,mozilla-}nss.pc
  
 
Create /usr/bin/nss-config:
 
Create /usr/bin/nss-config:
Line 92: Line 91:
 
  for dir in mozilla/security/{coreconf,dbm,nss}; do
 
  for dir in mozilla/security/{coreconf,dbm,nss}; do
 
   make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILD32}" \
 
   make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILD32}" \
    LDFLAGS="-Wl,-rpath,/usr/lib/nss -Wl,-rpath,/usr/lib/nspr" \
 
 
     NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
 
     NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
 
     NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
 
     NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
Line 100: Line 98:
 
Install the package
 
Install the package
  
  install -m755 -d /usr/include/nss
+
  install -m755 -d /usr/include/nss3
install -m755 -d /usr/lib/nss
 
 
   
 
   
 
  for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
 
  for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
   install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib/nss
+
   install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib
 
  done
 
  done
 
  for file in libcrmf.a libnssb.a libnssckfw.a; do
 
  for file in libcrmf.a libnssb.a libnssckfw.a; do
   install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib/nss
+
   install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib
 
  done
 
  done
 
  for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
 
  for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
   install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin/
+
   install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin
 
  done
 
  done
  install -m644 mozilla/dist/public/nss/*.h /usr/include/nss/
+
  install -m644 mozilla/dist/public/nss/*.h /usr/include/nss3 &&
 +
ln -sfv nss3 /usr/include/nss
  
 
Create the pkg-config file:
 
Create the pkg-config file:
Line 119: Line 117:
 
  prefix=/usr
 
  prefix=/usr
 
  exec_prefix=/usr/bin
 
  exec_prefix=/usr/bin
  libdir=/usr/lib/nss
+
  libdir=/usr/lib
 
  includedir=/usr/include/nss
 
  includedir=/usr/include/nss
 
   
 
   
Line 126: Line 124:
 
  Version: {{NSS-Version}}
 
  Version: {{NSS-Version}}
 
  Requires: sqlite3 nspr >= {{NSPR-Version}}
 
  Requires: sqlite3 nspr >= {{NSPR-Version}}
  Libs: -Wl,-rpath,${libdir} -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
+
  Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
 
  Cflags: -I${includedir}
 
  Cflags: -I${includedir}
 
  EOF
 
  EOF
 
   
 
   
 
  ln -sfv nss.pc /usr/lib/pkgconfig/mozilla-nss.pc
 
  ln -sfv nss.pc /usr/lib/pkgconfig/mozilla-nss.pc
  chmod 644 /usr/lib/pkgconfig/*.pc
+
  chmod 644 /usr/lib/pkgconfig/{,mozilla-}nss.pc
  
 
Create /usr/bin/nss-config:
 
Create /usr/bin/nss-config:
Line 151: Line 149:
 
  for dir in mozilla/security/{coreconf,dbm,nss}; do
 
  for dir in mozilla/security/{coreconf,dbm,nss}; do
 
   make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILDN32}" \
 
   make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILDN32}" \
    LDFLAGS="-Wl,-rpath,/usr/lib32/nss -Wl,-rpath,/usr/lib32/nspr" \
 
 
     NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
 
     NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
 
     NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
 
     NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
Line 159: Line 156:
 
Install the package
 
Install the package
  
  install -m755 -d /usr/include/nss
+
  install -m755 -d /usr/include/nss3
install -m755 -d /usr/lib32/nss
 
 
   
 
   
 
  for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
 
  for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
   install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib32/nss
+
   install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib32
 
  done
 
  done
 
  for file in libcrmf.a libnssb.a libnssckfw.a; do
 
  for file in libcrmf.a libnssb.a libnssckfw.a; do
   install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib32/nss
+
   install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib32
 
  done
 
  done
 
  for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
 
  for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
   install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin/
+
   install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin
 
  done
 
  done
  install -m644 mozilla/dist/public/nss/*.h /usr/include/nss/
+
  install -m644 mozilla/dist/public/nss/*.h /usr/include/nss3 &&
 +
ln -sfv nss3 /usr/include/nss
  
 
Create the pkg-config file:
 
Create the pkg-config file:
Line 178: Line 175:
 
  prefix=/usr
 
  prefix=/usr
 
  exec_prefix=/usr/bin
 
  exec_prefix=/usr/bin
  libdir=/usr/lib32/nss
+
  libdir=/usr/lib32
 
  includedir=/usr/include/nss
 
  includedir=/usr/include/nss
 
   
 
   
Line 185: Line 182:
 
  Version: {{NSS-Version}}
 
  Version: {{NSS-Version}}
 
  Requires: sqlite3 nspr >= {{NSPR-Version}}
 
  Requires: sqlite3 nspr >= {{NSPR-Version}}
  Libs: -Wl,-rpath,${libdir} -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
+
  Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
 
  Cflags: -I${includedir}
 
  Cflags: -I${includedir}
 
  EOF
 
  EOF
 
   
 
   
 
  ln -sfv nss.pc /usr/lib32/pkgconfig/mozilla-nss.pc
 
  ln -sfv nss.pc /usr/lib32/pkgconfig/mozilla-nss.pc
  chmod 644 /usr/lib32/pkgconfig/*.pc
+
  chmod 644 /usr/lib32/pkgconfig/{,mozilla-}nss.pc
  
 
Create /usr/bin/nss-config:
 
Create /usr/bin/nss-config:
Line 211: Line 208:
 
  for dir in mozilla/security/{coreconf,dbm,nss}; do
 
  for dir in mozilla/security/{coreconf,dbm,nss}; do
 
   make -C $dir USE_64=1 BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILD64}" \
 
   make -C $dir USE_64=1 BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILD64}" \
    LDFLAGS="-Wl,-rpath,/usr/lib64/nss -Wl,-rpath,/usr/lib64/nspr" \
 
 
     NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
 
     NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
 
     NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
 
     NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
Line 219: Line 215:
 
Install the package
 
Install the package
  
  install -m755 -d /usr/include/nss
+
  install -m755 -d /usr/include/nss3
install -m755 -d /usr/lib64/nss
 
 
   
 
   
 
  for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
 
  for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
   install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib64/nss
+
   install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib64
 
  done
 
  done
 
  for file in libcrmf.a libnssb.a libnssckfw.a; do
 
  for file in libcrmf.a libnssb.a libnssckfw.a; do
   install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib64/nss
+
   install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib64
 
  done
 
  done
 
  for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
 
  for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
   install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin/
+
   install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin
 
  done
 
  done
  install -m644 mozilla/dist/public/nss/*.h /usr/include/nss/
+
  install -m644 mozilla/dist/public/nss/*.h /usr/include/nss3 &&
 +
ln -sfv nss3 /usr/include/nss
  
 
Create the pkg-config file:
 
Create the pkg-config file:
Line 238: Line 234:
 
  prefix=/usr
 
  prefix=/usr
 
  exec_prefix=/usr/bin
 
  exec_prefix=/usr/bin
  libdir=/usr/lib64/nss
+
  libdir=/usr/lib64
 
  includedir=/usr/include/nss
 
  includedir=/usr/include/nss
 
   
 
   
Line 245: Line 241:
 
  Version: {{NSS-Version}}
 
  Version: {{NSS-Version}}
 
  Requires: sqlite3 nspr >= {{NSPR-Version}}
 
  Requires: sqlite3 nspr >= {{NSPR-Version}}
  Libs: -Wl,-rpath,${libdir} -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
+
  Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
 
  Cflags: -I${includedir}
 
  Cflags: -I${includedir}
 
  EOF
 
  EOF
 
   
 
   
 
  ln -sfv nss.pc /usr/lib64/pkgconfig/mozilla-nss.pc
 
  ln -sfv nss.pc /usr/lib64/pkgconfig/mozilla-nss.pc
  chmod 644 /usr/lib64/pkgconfig/*.pc
+
  chmod 644 /usr/lib64/pkgconfig/{,mozilla-}nss.pc
  
 
Create /usr/bin/nss-config:
 
Create /usr/bin/nss-config:

Revision as of 18:44, 1 January 2010

Download Source: http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_12_4_RTM/src/nss-3.12.4.tar.gz
Download nss-config: http://cross-lfs.org/~jciccone/nss-3.12-r5-config.in
Required Patch: http://svn.cross-lfs.org/svn/repos/patches/nss/nss-3.12.4-fixes-1.patch

Introduction to NSS

Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and server applications.

Project Homepage: http://www.mozilla.org/projects/security/pki/nss/

Dependencies

Required

Non-Multilib

Caution.png

Note

For Pure64 builds add 'USE_64=1' to the make commands

Compile the package:

patch -Np0 -i ../nss-3.12.4-fixes-1.patch &&
sed -i 's@\$(MKSHLIB) -o@\$(MKSHLIB) \$(LDFLAGS) -o@g' mozilla/security/coreconf/rules.mk &&
for dir in mozilla/security/{coreconf,dbm,nss}; do
  make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
    NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
    NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
done

Install the package

install -m755 -d /usr/include/nss3

for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
  install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib
done
for file in libcrmf.a libnssb.a libnssckfw.a; do
  install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib
done
for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
  install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin
done
install -m644 mozilla/dist/public/nss/*.h /usr/include/nss3 &&
ln -sfv nss3 /usr/include/nss

Create the pkg-config file:

cat > /usr/lib/pkgconfig/nss.pc << "EOF"
prefix=/usr
exec_prefix=/usr/bin
libdir=/usr/lib
includedir=/usr/include/nss

Name: NSS
Description: Network Security Services
Version: 3.12.4
Requires: sqlite3 nspr >= 4.9.4
Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
Cflags: -I${includedir}
EOF

ln -sfv nss.pc /usr/lib/pkgconfig/mozilla-nss.pc
chmod 644 /usr/lib/pkgconfig/{,mozilla-}nss.pc

Create /usr/bin/nss-config:

install -v -m755 ../nss-3.12-r5-config.in /usr/bin/nss-config &&
sed -i -e "s/@MOD_MAJOR_VERSION@/3/" \
       -e "s/@MOD_MINOR_VERSION@/12/" \
       -e "s/@MOD_PATCH_VERSION@/3/" \
       -e "s/@prefix@/\/usr/" \
       /usr/bin/nss-config

Multilib

32Bit

Compile the package:

export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" USE_ARCH=32 &&
patch -Np0 -i ../nss-3.12.4-fixes-1.patch &&
sed -i 's@\$(MKSHLIB) -o@\$(MKSHLIB) \$(LDFLAGS) -o@g' mozilla/security/coreconf/rules.mk &&
for dir in mozilla/security/{coreconf,dbm,nss}; do
  make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILD32}" \
    NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
    NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
done
unset PKG_CONFIG_PATH USE_ARCH

Install the package

install -m755 -d /usr/include/nss3

for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
  install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib
done
for file in libcrmf.a libnssb.a libnssckfw.a; do
  install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib
done
for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
  install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin
done
install -m644 mozilla/dist/public/nss/*.h /usr/include/nss3 &&
ln -sfv nss3 /usr/include/nss

Create the pkg-config file:

cat > /usr/lib/pkgconfig/nss.pc << "EOF"
prefix=/usr
exec_prefix=/usr/bin
libdir=/usr/lib
includedir=/usr/include/nss

Name: NSS
Description: Network Security Services
Version: 3.12.4
Requires: sqlite3 nspr >= 4.9.4
Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
Cflags: -I${includedir}
EOF

ln -sfv nss.pc /usr/lib/pkgconfig/mozilla-nss.pc
chmod 644 /usr/lib/pkgconfig/{,mozilla-}nss.pc

Create /usr/bin/nss-config:

install -v -m755 ../nss-3.12-r5-config.in /usr/bin/nss-config-32 &&
sed -i -e "s/@MOD_MAJOR_VERSION@/3/" \
       -e "s/@MOD_MINOR_VERSION@/12/" \
       -e "s/@MOD_PATCH_VERSION@/3/" \
       -e "s/@prefix@/\/usr/" \
       /usr/bin/nss-config-32

N32

Compile the package:

export PKG_CONFIG_PATH="${PKG_CONFIG_PATHN32}" USE_ARCH=N32 &&
patch -Np0 -i ../nss-3.12.4-fixes-1.patch &&
sed -i 's@\$(MKSHLIB) -o@\$(MKSHLIB) \$(LDFLAGS) -o@g' mozilla/security/coreconf/rules.mk &&
for dir in mozilla/security/{coreconf,dbm,nss}; do
  make -C $dir  BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILDN32}" \
    NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
    NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
done
unset PKG_CONFIG_PATH USE_ARCH

Install the package

install -m755 -d /usr/include/nss3

for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
  install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib32
done
for file in libcrmf.a libnssb.a libnssckfw.a; do
  install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib32
done
for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
  install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin
done
install -m644 mozilla/dist/public/nss/*.h /usr/include/nss3 &&
ln -sfv nss3 /usr/include/nss

Create the pkg-config file:

cat > /usr/lib32/pkgconfig/nss.pc << "EOF"
prefix=/usr
exec_prefix=/usr/bin
libdir=/usr/lib32
includedir=/usr/include/nss

Name: NSS
Description: Network Security Services
Version: 3.12.4
Requires: sqlite3 nspr >= 4.9.4
Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
Cflags: -I${includedir}
EOF

ln -sfv nss.pc /usr/lib32/pkgconfig/mozilla-nss.pc
chmod 644 /usr/lib32/pkgconfig/{,mozilla-}nss.pc

Create /usr/bin/nss-config:

install -v -m755 ../nss-3.12-r5-config.in /usr/bin/nss-config-n32 &&
sed -i -e "s/@MOD_MAJOR_VERSION@/3/" \
       -e "s/@MOD_MINOR_VERSION@/12/" \
       -e "s/@MOD_PATCH_VERSION@/3/" \
       -e "s/@prefix@/\/usr/" \
       -e "/libdir=/s/\/lib/&32/" \
       /usr/bin/nss-config-n32

64Bit

Compile the package:

export PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" USE_ARCH=64 &&
patch -Np0 -i ../nss-3.12.4-fixes-1.patch &&
sed -i 's@\$(MKSHLIB) -o@\$(MKSHLIB) \$(LDFLAGS) -o@g' mozilla/security/coreconf/rules.mk &&
for dir in mozilla/security/{coreconf,dbm,nss}; do
  make -C $dir USE_64=1 BUILD_OPT=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 CC="gcc ${BUILD64}" \
    NSPR_INCLUDE_DIR=$(pkg-config --cflags-only-I nspr | sed 's@-I@@') \
    NSPR_LIB_DIR=$(pkg-config --libs-only-L nspr | sed 's@-L@@') || break
done
unset PKG_CONFIG_PATH USE_ARCH

Install the package

install -m755 -d /usr/include/nss3

for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so; do
  install -m755 mozilla/dist/*.OBJ/lib/${file} /usr/lib64
done
for file in libcrmf.a libnssb.a libnssckfw.a; do
  install -m644 mozilla/dist/*.OBJ/lib/${file} /usr/lib64
done
for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do
  install -m755 mozilla/dist/*.OBJ/bin/${file} /usr/bin
done
install -m644 mozilla/dist/public/nss/*.h /usr/include/nss3 &&
ln -sfv nss3 /usr/include/nss

Create the pkg-config file:

cat > /usr/lib64/pkgconfig/nss.pc << "EOF"
prefix=/usr
exec_prefix=/usr/bin
libdir=/usr/lib64
includedir=/usr/include/nss

Name: NSS
Description: Network Security Services
Version: 3.12.4
Requires: sqlite3 nspr >= 4.9.4
Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
Cflags: -I${includedir}
EOF

ln -sfv nss.pc /usr/lib64/pkgconfig/mozilla-nss.pc
chmod 644 /usr/lib64/pkgconfig/{,mozilla-}nss.pc

Create /usr/bin/nss-config:

install -v -m755 ../nss-3.12-r5-config.in /usr/bin/nss-config-64 &&
sed -i -e "s/@MOD_MAJOR_VERSION@/3/" \
       -e "s/@MOD_MINOR_VERSION@/12/" \
       -e "s/@MOD_PATCH_VERSION@/3/" \
       -e "s/@prefix@/\/usr/" \
       -e "/libdir=/s/\/lib/&64/" \
       /usr/bin/nss-config-64 &&
ln -sfv multiarch_wrapper /usr/bin/nss-config

Contents

Installed Programs: nspr-config and nss-config
Installed Libraries: libcrmf.a, libfreebl3.so, libnspr4.so, libnss3.so, libnssckbi.so, libplc4.so, libplds4.so, libsmime3.so, libsoftokn3.so and libssl3.so
Installed Directory: /usr/include/nspr and /usr/include/nss

Short Descriptions

nspr-config is used to determine the NSPR installation settings of the installed NSPR libraries.
nss-config is used to determine the NSS library settings of the installed NSS libraries.

The libnspr4.so, libplc4.so and libplds4.so libraries make up the Netscape Portable Runtime (NSPR) libraries. These libraries provide a platform-neutral API for system level and libc like functions. The API is used in the Mozilla client, many of the Netscape/AOL/iPlanet offerings and other software applications.

The libcrmf.a, libfreebl.so, libnss3.so, libnssckbi.so, libsmime3.so, libsoftokn3.so and libnssl3.so libraries make up the NSS libraries.