slackware-current/source/l/mozilla-nss/mozilla-nss.SlackBuild
Patrick J Volkerding ce9883adca Thu Sep 6 06:15:46 UTC 2018
a/acpid-2.0.30-x86_64-1.txz:  Upgraded.
a/etc-15.0-x86_64-9.txz:  Rebuilt.
  Added support for /etc/ld.so.conf.d/. Thanks to Qury.
a/kernel-firmware-20180904_85c5d90-noarch-1.txz:  Upgraded.
a/kernel-generic-4.14.68-x86_64-1.txz:  Upgraded.
a/kernel-huge-4.14.68-x86_64-1.txz:  Upgraded.
a/kernel-modules-4.14.68-x86_64-1.txz:  Upgraded.
a/pkgtools-15.0-noarch-22.txz:  Rebuilt.
  installpkg: prevent noise from the "stray cat" if tar hands it a broken
  pipe. Thanks to ivandi.
  Also (in the comments) provide a possibly better but untested solution.
  Thanks to SeB.
a/sysvinit-2.90-x86_64-2.txz:  Rebuilt.
  sysvinit-2.90 added an undocumented feature that tries to spawn agetty
  if it sees console= in the kernel command line. Avoiding the debate about
  whether this code belongs in init at all, at least such a change should
  be documented, and probably made opt-in. This patch disables the new
  behavior unless "sysvinit_agetty" is also seen in the kernel command line.
  It seems like this might have been something added for Hurd, and it might
  be wise to stick to what we've got rather than following upstream on this
  particular package. If anyone notices any other odd behavior, please let
  me know. Thanks to shastah.
a/sysvinit-scripts-2.1-noarch-19.txz:  Rebuilt.
  When checking for intel_pstate, direct the stderr to /dev/null in case
  the file doesn't exist in /sys. Thanks to ivandi.
  Allow forcing an option by editing /etc/default/cpufreq.
ap/cups-filters-1.21.2-x86_64-1.txz:  Upgraded.
ap/ghostscript-9.24-x86_64-1.txz:  Upgraded.
  Patched multiple -dSAFER sandbox bypass vulnerabilities.
  Thanks to Tavis Ormandy.
  For more information, see:
    https://www.ghostscript.com/doc/9.24/News.htm
    https://www.kb.cert.org/vuls/id/332928
  (* Security fix *)
ap/sudo-1.8.25-x86_64-1.txz:  Upgraded.
d/binutils-2.31.1-x86_64-2.txz:  Rebuilt.
  elf.c (_bfd_elf_get_symbol_version_string): Return _("<corrupt>") for
  corrupt symbol version info.
  elflink.c (bfd_elf_record_link_assignment): Always clear h->verinfo.verdef
  when overriding a dynamic definition.
  Thanks to Michael Short for pointing out the upstream patches.
d/ccache-3.4.3-x86_64-1.txz:  Upgraded.
d/kernel-headers-4.14.68-x86-1.txz:  Upgraded.
d/llvm-6.0.1-x86_64-2.txz:  Rebuilt.
  Recompiled with -DCLANG_BUILD_SHARED_LIBS=ON to fix issues when multiple
  OpenCL drivers are installed. Thanks to Heinz Wiesinger.
d/mercurial-4.7.1-x86_64-1.txz:  Upgraded.
k/kernel-source-4.14.68-noarch-1.txz:  Upgraded.
l/mozilla-nss-3.39-x86_64-1.txz:  Upgraded.
n/curl-7.61.1-x86_64-1.txz:  Upgraded.
  This update fixes an NTLM password overflow via integer overflow.
  For more information, see:
    https://curl.haxx.se/docs/CVE-2018-14618.html
    https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14618
  (* Security fix *)
n/gnupg2-2.2.10-x86_64-1.txz:  Upgraded.
n/libtirpc-1.1.4-x86_64-1.txz:  Upgraded.
n/netatalk-3.1.11-x86_64-2.txz:  Rebuilt.
  rc.atalk: fixed errors in status output. Thanks to marav.
n/nghttp2-1.33.0-x86_64-1.txz:  Upgraded.
n/p11-kit-0.23.14-x86_64-1.txz:  Upgraded.
n/stunnel-5.49-x86_64-1.txz:  Upgraded.
x/libdrm-2.4.94-x86_64-1.txz:  Upgraded.
x/xf86-video-ati-20180824_de88ea27-x86_64-1.txz:  Upgraded.
xap/hexchat-2.14.2-x86_64-1.txz:  Upgraded.
xap/mozilla-firefox-60.2.0esr-x86_64-1.txz:  Upgraded.
  This release contains security fixes and improvements.
  For more information, see:
    https://www.mozilla.org/security/known-vulnerabilities/firefoxESR.html
  (* Security fix *)
xap/xlockmore-5.56-x86_64-1.txz:  Upgraded.
isolinux/initrd.img:  Rebuilt.
kernels/*:  Upgraded.
usb-and-pxe-installers/usbboot.img:  Rebuilt.
2018-09-06 18:00:33 +02:00

195 lines
6.1 KiB
Bash
Executable file

#!/bin/bash
# Copyright 2005, 2006, 2008, 2009, 2010, 2012 Eric Hameleers, Eindhoven, NL
# Copyright 2013, 2014, 2015, 2017, 2018 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
# any purpose with or without fee is hereby granted, provided that
# the above copyright notice and this permission notice appear in all
# copies.
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
# -----------------------------------------------------------------------------
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=mozilla-nss
SRCNAM=nss
VERSION=${VERSION:-3.39}
NSPR=${NSPR:-4.20}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$MARCH ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
exit 0
fi
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
export USE_64=1
elif [ "$ARCH" = "armv7hl" ]; then
SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
# Seems parallel build does not work with this.
#NUMJOBS=${NUMJOBS:-" -j7 "}
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf nss-${VERSION}
rm -rf nspr-${NSPR}
tar xvf $CWD/nss-$VERSION.tar.?z || exit 1
cd nss-$VERSION
tar xvf $CWD/nspr-$NSPR.tar.?z || exit 1
mv nspr*/nspr .
# -Werror is problematic with gcc7:
sed -i "s|\ -Werror| |" nss/coreconf/Werror.mk || exit 1
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
echo Building ...
export LDFLAGS="-lz"
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
export BUILD_OPT=1
export NSDISTMODE="copy"
export NSS_USE_SYSTEM_SQLITE=1
export NSS_ENABLE_ECC=1
cd nss
# Seems parallel build does not work with this.
#make $NUMJOBS nss_build_all export || exit 1
make nss_build_all export || exit 1
cd -
# Install all the needed stuff to the package dir:
mkdir -p $PKG/usr/{bin,lib${LIBDIRSUFFIX},include/{nss,nspr}}
cd dist/$(uname -s)*
cp -pL bin/{certutil,cmsutil,crlutil,modutil,pk12util,shlibsign,signtool,signver,ssltap} $PKG/usr/bin/
cp -pL lib/* $PKG/usr/lib${LIBDIRSUFFIX}/
chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/*.so*
cp -rL include/* $PKG/usr/include/nspr/
cp -rpL ../public/nss/*.h $PKG/usr/include/nss/
# Remove some things we do not need:
rm -f $PKG/usr/bin/*.so
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a
rm -rf $PKG/usr/include/nspr/md
cp -L lib/libcrmf.a $PKG/usr/lib${LIBDIRSUFFIX}/ # yes, put this one back
cd -
cd nss/cmd/smimetools
cp -a smime $PKG/usr/bin/
chmod 0755 $PKG/usr/bin/smime
sed -i -e 's#/usr/local/bin#/usr/bin#g' $PKG/usr/bin/smime
cd -
# Install nspr-config:
cat nspr/$(uname -s)*/config/nspr-config | sed -e "s,prefix=/usr/local,prefix=/usr,g" | sed -e "s,libdir=\${exec_prefix}/lib,libdir=\${exec_prefix}/lib${LIBDIRSUFFIX},g" > $PKG/usr/bin/nspr-config
chmod 755 $PKG/usr/bin/nspr-config
# Install nss-config:
sed -e "s,@prefix@,/usr,g" \
-e "s,@MOD_MAJOR_VERSION@,$(printf $VERSION | cut -d. -f1),g" \
-e "s,@MOD_MINOR_VERSION@,$(printf $VERSION | cut -d. -f2),g" \
-e "s,@MOD_PATCH_VERSION@,$(printf $VERSION | cut -d. -f3),g" \
$CWD/nss-config.in > $PKG/usr/bin/nss-config
chmod 755 $PKG/usr/bin/nss-config
# Provide pkg-config files:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
cat <<EOT > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/mozilla-nss.pc
prefix=/usr
exec_prefix=\${prefix}
libdir=/usr/lib${LIBDIRSUFFIX}
includedir=\${prefix}/include/nss
Name: NSS
Description: Network Security Services
Version: $VERSION
Requires: nspr >= $NSPR sqlite3
Libs: -L\${libdir} -lnss3 -lsmime3 -lssl3 -lsoftokn3 -lnssutil3
Cflags: -I\${includedir}
EOT
cat <<EOT > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/mozilla-nspr.pc
prefix=/usr
exec_prefix=\${prefix}
libdir=/usr/lib${LIBDIRSUFFIX}
includedir=\${prefix}/include/nspr
Name: NSPR
Description: The Netscape Portable Runtime
Version: $NSPR
Libs: -L\${libdir} -lplds4 -lplc4 -lnspr4
Cflags: -I\${includedir}
EOT
( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
ln -s mozilla-nspr.pc nspr.pc
ln -s mozilla-nss.pc nss.pc
)
# Add documentation:
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
$CWD/MPL-1.1.txt $CWD/gpl-2.0.txt $CWD/lgpl-2.1.txt \
$CWD/faq.html \
$PKG/usr/doc/$PKGNAM-$VERSION
chown -R root:root $PKG/usr/doc/$PKGNAM-$VERSION
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
# Add a package description:
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
# Build the package:
cd $PKG
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.txz