From dda36349496e0987f0ccf4f23929f7870ba11813 Mon Sep 17 00:00:00 2001 From: rhatto Date: Wed, 3 Sep 2008 03:50:43 +0000 Subject: merging with changes made since 21th May git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@1903 370017ae-e619-0410-ac65-c121f96126d4 --- patches/glib2/glib2.SlackBuild | 153 +++++++ patches/gnutls/gnutls.SlackBuild | 197 ++++++++ patches/libgcrypt/libgcrypt.SlackBuild | 197 ++++++++ patches/libpng/libpng.SlackBuild | 10 +- patches/libxml2/libxml2.SlackBuild | 153 +++++++ patches/libxslt/libxslt.SlackBuild | 153 +++++++ patches/openssl/certwatch.gz | Bin 0 -> 1727 bytes patches/openssl/doinst.sh-openssl-solibs.gz | Bin 0 -> 281 bytes patches/openssl/doinst.sh-openssl.gz | Bin 0 -> 336 bytes patches/openssl/openssl.SlackBuild | 678 +++++++++++++++++++++------- patches/openssl/openssl.soname.diff.gz | Bin 340 -> 283 bytes patches/pcre/pcre.SlackBuild | 197 ++++++++ patches/php/php.SlackBuild | 41 +- 13 files changed, 1593 insertions(+), 186 deletions(-) create mode 100644 patches/glib2/glib2.SlackBuild create mode 100755 patches/gnutls/gnutls.SlackBuild create mode 100755 patches/libgcrypt/libgcrypt.SlackBuild create mode 100755 patches/libxml2/libxml2.SlackBuild create mode 100755 patches/libxslt/libxslt.SlackBuild create mode 100644 patches/openssl/certwatch.gz create mode 100644 patches/openssl/doinst.sh-openssl-solibs.gz create mode 100644 patches/openssl/doinst.sh-openssl.gz create mode 100755 patches/pcre/pcre.SlackBuild (limited to 'patches') diff --git a/patches/glib2/glib2.SlackBuild b/patches/glib2/glib2.SlackBuild new file mode 100644 index 00000000..a365b92c --- /dev/null +++ b/patches/glib2/glib2.SlackBuild @@ -0,0 +1,153 @@ +#!/bin/bash +# +# glib2.SlackBuild is free software; you can redistribute +# it and/or modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the License, +# or any later version. +# +# glib2.SlackBuild is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +# +# slackbuild for glib2, by Rafael Diniz +# requires: +# tested: glib2-2.16.3 +# + +# Look for slackbuildrc +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + +# Set variables +CWD="$(pwd)" +SRC_NAME="glib" +PKG_NAME="glib2" +ARCH=${ARCH:=i486} +SRC_VERSION=${VERSION:=2.16.3} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1rd} +SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME +TMP=${TMP:=/tmp} +PKG=${PKG:=$TMP/package-$PKG_NAME} +REPOS=${REPOS:=$TMP} +PREFIX=${PREFIX:=/usr} +PKG_WORK="$TMP/$SRC_NAME" +CONF_OPTIONS=${CONF_OPTIONS:=""} +NUMJOBS=${NUMJOBS:="-j3"} + +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIR="$PREFIX/lib64" + LDFLAGS="-L/lib64 -L/usr/lib64" +fi + +# Set error codes (used by createpkg) +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 + +# Clean up any leftovers of previous builds +rm -rf "$PKG_WORK" 2> /dev/null +rm -rf "$PKG" 2> /dev/null + +# Create directories if necessary +mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR +mkdir -p "$PKG" || exit $ERROR_MKDIR +mkdir -p "$REPOS" || exit $ERROR_MKDIR +mkdir -p "$PKG_WORK" || exit $ERROR_MKDIR + +# Dowload source if necessary +SRC="$SRC_NAME-$VERSION.tar.gz" +URL="http://ftp.gnome.org/pub/GNOME/sources/glib/2.16/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! gunzip -t "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi + +# Untar +cd "$PKG_WORK" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +PKG_SRC="$PWD/`ls -l | awk '/^d/ { print $NF }'`" +cd "$PKG_SRC" + +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" $CONF_OPTIONS || exit $ERROR_CONF + +# Compile +make $NUMJOBS || exit $ERROR_MAKE + +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL + +# Strip binaries +( cd "$PKG" + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Install documentation +DOCS="NEWS TODO README AUTHORS INSTALL ChangeLog MAINTAINERS COPYING LICENSE SIGNATURE readme.*" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +for doc in $DOCS; do + if [ -f "$doc" ]; then + cp -a $doc "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" + fi +done + +# Add package description (slack-desc) +mkdir -p "$PKG/install" || exit $ERROR_MKDIR +cat << EODESC > "$PKG/install/slack-desc" +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------------| +glib2: glib2 (library of C routines) +glib2: +glib2: GLib is a library which includes support routines for C such as lists, +glib2: trees, hashes, memory allocation, and many other things. +glib2: +glib2: +glib2: +glib2: +glib2: +glib2: Patch from slack.sarava.org +glib2: +EODESC + +# Build the package +cd "$PKG" +makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG + +# Delete source and build directories if requested +if [ "$CLEANUP" == "yes" ]; then + rm -rf "$PKG_WORK" "$PKG" +fi diff --git a/patches/gnutls/gnutls.SlackBuild b/patches/gnutls/gnutls.SlackBuild new file mode 100755 index 00000000..77b0f943 --- /dev/null +++ b/patches/gnutls/gnutls.SlackBuild @@ -0,0 +1,197 @@ +#!/bin/bash +# +# gnutls.SlackBuild is free software; you can redistribute +# it and/or modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the License, +# or any later version. +# +# gnutls.SlackBuild is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +# +# slackbuild for gnutls, by Silvio Rhatto +# requires: +# tested: gnutls-2.4.1 +# + +# Look for slackbuildrc +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + +# Set variables +CWD="$(pwd)" +SRC_NAME="gnutls" +PKG_NAME="gnutls" +ARCH=${ARCH:=i486} +SRC_VERSION=${VERSION:=2.4.1} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1rha} +SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME +TMP=${TMP:=/tmp} +PKG=${PKG:=$TMP/package-$PKG_NAME} +REPOS=${REPOS:=$TMP} +PREFIX=${PREFIX:=/usr} +PKG_WORK="$TMP/$SRC_NAME" +CONF_OPTIONS=${CONF_OPTIONS:=" --sysconfdir=/etc --localstatedir=/var --infodir=/usr/info --mandir=/usr/man --enable-static=no --enable-guile=no"} +NUMJOBS=${NUMJOBS:=""} + +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIR="$PREFIX/lib64" + LDFLAGS="-L/lib64 -L/usr/lib64" +fi + +# Set error codes (used by createpkg) +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 + +# Clean up any leftovers of previous builds +rm -rf "$PKG_WORK" 2> /dev/null +rm -rf "$PKG" 2> /dev/null + +# Create directories if necessary +mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR +mkdir -p "$PKG" || exit $ERROR_MKDIR +mkdir -p "$REPOS" || exit $ERROR_MKDIR +mkdir -p "$PKG_WORK" || exit $ERROR_MKDIR + +# Dowload source if necessary +SRC="$SRC_NAME-$VERSION.tar.bz2" +URL="ftp://ftp.gnutls.org/pub/gnutls/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! bunzip2 -t "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi + +# Import minimized signing key from +if echo http://josefsson.org/key.txt | grep -q -v "SIGNING KEY URL"; then + lynx -dump http://josefsson.org/key.txt | gpg --import || exit $ERROR_GPG +elif echo [[SIGNING KEY ID]] | grep -q -v "SIGNING KEY ID"; then + gpg --recv-keys [[SIGNING KEY ID]] || exit $ERROR_GPG +else + gpg --import << EOKEY || exit $ERROR_GPG +[[SIGNING KEY]] +EOKEY +fi + +# Download source's signature if necessary and check it +if echo [[SIGNING URL]] | grep -q -v "SIGNING URL"; then + SIGNATURE="`basename [[SIGNING URL]]`" + if [ ! -s "$SRC_DIR/$SIGNATURE" ]; then + wget "[[SIGNING URL]]" -O "$SRC_DIR/$SIGNATURE" || exit $ERROR_WGET + fi +else + if [ -s "$SRC_DIR/$SRC.sig" ]; then + SIGNATURE="$SRC.sig" + elif [ -s "$SRC_DIR/$SRC.asc" ]; then + SIGNATURE="$SRC.asc" + else + echo Trying to get signature file from $URL.sig... + if wget "$URL.sig" -O "$SRC_DIR/$SRC.sig"; then + SIGNATURE="$SRC.sig" + else + rm $SRC_DIR/$SRC.sig + echo Trying to get signature file from $URL.asc... + if wget "$URL.asc" -O "$SRC_DIR/$SRC.asc"; then + SIGNATURE="$SRC.asc" + else + rm $SRC_DIR/$SRC.asc + echo "Error getting source's signature file" + exit $ERROR_GPG + fi + fi + fi +fi + +echo Checking $SRC_DIR/$SRC with gpg using $SRC_DIR/$SIGNATURE... +gpg --verify "$SRC_DIR/$SIGNATURE" "$SRC_DIR/$SRC" || exit $ERROR_GPG +echo Success. + +# Untar +cd "$PKG_WORK" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +PKG_SRC="$PWD/`ls -l | awk '/^d/ { print $NF }'`" +cd "$PKG_SRC" + +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" $CONF_OPTIONS || exit $ERROR_CONF + +# Compile +make $NUMJOBS || exit $ERROR_MAKE + +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL + +# Strip binaries +( cd "$PKG" + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Install documentation +DOCS="AUTHORS COPYING* ChangeLog INSTALL NEWS README THANKS" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +for doc in $DOCS; do + if [ -f "$doc" ]; then + cp -a $doc "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" + fi +done + +# Add package description (slack-desc) +mkdir -p "$PKG/install" || exit $ERROR_MKDIR +cat << EODESC > "$PKG/install/slack-desc" +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +gnutls: Gnutls (Transport Layer Security) +gnutls: +gnutls: This is the GNU TLS library. More up to date information can be found +gnutls: at http://www.gnu.org/software/gnutls/ and http://www.gnutls.org/ +gnutls: +gnutls: +gnutls: +gnutls: +gnutls: +gnutls: +gnutls: +EODESC + +# Build the package +cd "$PKG" +makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG + +# Delete source and build directories if requested +if [ "$CLEANUP" == "yes" ]; then + rm -rf "$PKG_WORK" "$PKG" +fi diff --git a/patches/libgcrypt/libgcrypt.SlackBuild b/patches/libgcrypt/libgcrypt.SlackBuild new file mode 100755 index 00000000..612a793a --- /dev/null +++ b/patches/libgcrypt/libgcrypt.SlackBuild @@ -0,0 +1,197 @@ +#!/bin/bash +# +# libgcrypt.SlackBuild is free software; you can redistribute +# it and/or modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the License, +# or any later version. +# +# libgcrypt.SlackBuild is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +# +# slackbuild for libgcrypt, by Silvio Rhatto +# requires: +# tested: libgcrypt-1.4.1 +# + +# Look for slackbuildrc +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + +# Set variables +CWD="$(pwd)" +SRC_NAME="libgcrypt" +PKG_NAME="libgcrypt" +ARCH=${ARCH:=i486} +SRC_VERSION=${VERSION:=1.4.1} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1rha} +SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME +TMP=${TMP:=/tmp} +PKG=${PKG:=$TMP/package-$PKG_NAME} +REPOS=${REPOS:=$TMP} +PREFIX=${PREFIX:=/usr} +PKG_WORK="$TMP/$SRC_NAME" +CONF_OPTIONS=${CONF_OPTIONS:=" --infodir=/usr/info --enable-shared=yes --enable-static=yes"} +NUMJOBS=${NUMJOBS:=""} + +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIR="$PREFIX/lib64" + LDFLAGS="-L/lib64 -L/usr/lib64" +fi + +# Set error codes (used by createpkg) +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 + +# Clean up any leftovers of previous builds +rm -rf "$PKG_WORK" 2> /dev/null +rm -rf "$PKG" 2> /dev/null + +# Create directories if necessary +mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR +mkdir -p "$PKG" || exit $ERROR_MKDIR +mkdir -p "$REPOS" || exit $ERROR_MKDIR +mkdir -p "$PKG_WORK" || exit $ERROR_MKDIR + +# Dowload source if necessary +SRC="$SRC_NAME-$VERSION.tar.gz" +URL="ftp://ftp.gnupg.org/gcrypt/libgcrypt/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! gunzip -t "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi + +# Import minimized signing key from +if echo [[SIGNING KEY URL]] | grep -q -v "SIGNING KEY URL"; then + lynx -dump [[SIGNING KEY URL]] | gpg --import || exit $ERROR_GPG +elif echo 1CE0C630 | grep -q -v "SIGNING KEY ID"; then + gpg --recv-keys 1CE0C630 || exit $ERROR_GPG +else + gpg --import << EOKEY || exit $ERROR_GPG +[[SIGNING KEY]] +EOKEY +fi + +# Download source's signature if necessary and check it +if echo [[SIGNING URL]] | grep -q -v "SIGNING URL"; then + SIGNATURE="`basename [[SIGNING URL]]`" + if [ ! -s "$SRC_DIR/$SIGNATURE" ]; then + wget "[[SIGNING URL]]" -O "$SRC_DIR/$SIGNATURE" || exit $ERROR_WGET + fi +else + if [ -s "$SRC_DIR/$SRC.sig" ]; then + SIGNATURE="$SRC.sig" + elif [ -s "$SRC_DIR/$SRC.asc" ]; then + SIGNATURE="$SRC.asc" + else + echo Trying to get signature file from $URL.sig... + if wget "$URL.sig" -O "$SRC_DIR/$SRC.sig"; then + SIGNATURE="$SRC.sig" + else + rm $SRC_DIR/$SRC.sig + echo Trying to get signature file from $URL.asc... + if wget "$URL.asc" -O "$SRC_DIR/$SRC.asc"; then + SIGNATURE="$SRC.asc" + else + rm $SRC_DIR/$SRC.asc + echo "Error getting source's signature file" + exit $ERROR_GPG + fi + fi + fi +fi + +echo Checking $SRC_DIR/$SRC with gpg using $SRC_DIR/$SIGNATURE... +gpg --verify "$SRC_DIR/$SIGNATURE" "$SRC_DIR/$SRC" || exit $ERROR_GPG +echo Success. + +# Untar +cd "$PKG_WORK" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +PKG_SRC="$PWD/`ls -l | awk '/^d/ { print $NF }'`" +cd "$PKG_SRC" + +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" $CONF_OPTIONS || exit $ERROR_CONF + +# Compile +make $NUMJOBS || exit $ERROR_MAKE + +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL + +# Strip binaries +( cd "$PKG" + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Install documentation +DOCS="AUTHORS BUGS COPYING* ChangeLog INSTALL NEWS README README.SVN THANKS TODO VERSION" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +for doc in $DOCS; do + if [ -f "$doc" ]; then + cp -a $doc "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" + fi +done + +# Add package description (slack-desc) +mkdir -p "$PKG/install" || exit $ERROR_MKDIR +cat << EODESC > "$PKG/install/slack-desc" +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler----------------------------------------------------| +libgcrypt: libgcrypt (General purpose crypto library) +libgcrypt: +libgcrypt: Libgcrypt is a general purpose crypto library based on the code +libgcrypt: used in GnuPG. +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +EODESC + +# Build the package +cd "$PKG" +makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG + +# Delete source and build directories if requested +if [ "$CLEANUP" == "yes" ]; then + rm -rf "$PKG_WORK" "$PKG" +fi diff --git a/patches/libpng/libpng.SlackBuild b/patches/libpng/libpng.SlackBuild index 77a67f06..a218cb32 100755 --- a/patches/libpng/libpng.SlackBuild +++ b/patches/libpng/libpng.SlackBuild @@ -31,7 +31,7 @@ fi # default settings PACKAGE="libpng" ARCH=${ARCH:=i486} -VERSION=${VERSION:=1.2.18} +VERSION=${VERSION:=1.2.29} BUILD=${BUILD:=1rha} SRC_DIR=${SRC:=$CWD} TMP=${TMP:=/tmp} @@ -95,14 +95,6 @@ if [ "$ARCH" == "x86_64" ]; then zcat $CWD/libpng.libs.diff.gz | patch -p1 --verbose || exit $ERROR_PATCH ln -sf scripts/makefile.linux ./Makefile - # makefile.linux breaks on trying to deal with MMX on AMD64. - # If we use automake, the Makefile doesn't deal with certain - # exported functions we need (e.g. png_read_destroy) - # We *could* patch libpng to use 64 bit safe MMX instructions, but - # the tested and recommended way appears to be to disable the MMX - # instructions on AMD64 - zcat $CWD/libpng.mmx-x86-only.diff.gz | patch -p1 --verbose || exit 1 # Patch from Mandriva - ./configure --prefix=/usr --libdir=$LIBDIR || exit $ERROR_CONF else diff --git a/patches/libxml2/libxml2.SlackBuild b/patches/libxml2/libxml2.SlackBuild new file mode 100755 index 00000000..d6119176 --- /dev/null +++ b/patches/libxml2/libxml2.SlackBuild @@ -0,0 +1,153 @@ +#!/bin/bash +# +# libxml2.SlackBuild is free software; you can redistribute +# it and/or modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the License, +# or any later version. +# +# libxml2.SlackBuild is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +# +# slackbuild for libxml2, by Silvio Rhatto +# requires: +# tested: libxml2-2.6.32 +# + +# Look for slackbuildrc +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + +# Set variables +CWD="$(pwd)" +SRC_NAME="libxml2" +PKG_NAME="libxml2" +ARCH=${ARCH:=i486} +SRC_VERSION=${VERSION:=2.6.32} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1rha} +SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME +TMP=${TMP:=/tmp} +PKG=${PKG:=$TMP/package-$PKG_NAME} +REPOS=${REPOS:=$TMP} +PREFIX=${PREFIX:=/usr} +PKG_WORK="$TMP/$SRC_NAME" +CONF_OPTIONS=${CONF_OPTIONS:=""} +NUMJOBS=${NUMJOBS:=""} + +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIR="$PREFIX/lib64" + LDFLAGS="-L/lib64 -L/usr/lib64" +fi + +# Set error codes (used by createpkg) +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 + +# Clean up any leftovers of previous builds +rm -rf "$PKG_WORK" 2> /dev/null +rm -rf "$PKG" 2> /dev/null + +# Create directories if necessary +mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR +mkdir -p "$PKG" || exit $ERROR_MKDIR +mkdir -p "$REPOS" || exit $ERROR_MKDIR +mkdir -p "$PKG_WORK" || exit $ERROR_MKDIR + +# Dowload source if necessary +SRC="$SRC_NAME-$VERSION.tar.gz" +URL="ftp://xmlsoft.org/libxml2/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! gunzip -t "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi + +# Untar +cd "$PKG_WORK" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +PKG_SRC="$PWD/`ls -l | awk '/^d/ { print $NF }'`" +cd "$PKG_SRC" + +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" $CONF_OPTIONS || exit $ERROR_CONF + +# Compile +make $NUMJOBS || exit $ERROR_MAKE + +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL + +# Strip binaries +( cd "$PKG" + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Install documentation +DOCS="AUTHORS COPYING ChangeLog Copyright NEWS README TODO TODO_SCHEMAS" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +for doc in $DOCS; do + if [ -f "$doc" ]; then + cp -a $doc "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" + fi +done + +# Add package description (slack-desc) +mkdir -p "$PKG/install" || exit $ERROR_MKDIR +cat << EODESC > "$PKG/install/slack-desc" +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxml2: libxml2 (XML parser library) +libxml2: +libxml2: Libxml2 is the XML C parser library and toolkit. XML itself is a +libxml2: metalanguage to design markup languages -- i.e. a text language where +libxml2: structures are added to the content using extra "markup" information +libxml2: enclosed between angle brackets. HTML is the most well-known markup +libxml2: language. Though the library is written in C, a variety of language +libxml2: bindings make it available in other environments. +libxml2: +libxml2: +libxml2: +EODESC + +# Build the package +cd "$PKG" +makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG + +# Delete source and build directories if requested +if [ "$CLEANUP" == "yes" ]; then + rm -rf "$PKG_WORK" "$PKG" +fi diff --git a/patches/libxslt/libxslt.SlackBuild b/patches/libxslt/libxslt.SlackBuild new file mode 100755 index 00000000..b9d7d82f --- /dev/null +++ b/patches/libxslt/libxslt.SlackBuild @@ -0,0 +1,153 @@ +#!/bin/bash +# +# libxslt.SlackBuild is free software; you can redistribute +# it and/or modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the License, +# or any later version. +# +# libxslt.SlackBuild is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +# +# slackbuild for libxslt, by Silvio Rhatto +# requires: +# tested: libxslt-1.1.24 +# + +# Look for slackbuildrc +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + +# Set variables +CWD="$(pwd)" +SRC_NAME="libxslt" +PKG_NAME="libxslt" +ARCH=${ARCH:=i486} +SRC_VERSION=${VERSION:=1.1.24} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1rha} +SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME +TMP=${TMP:=/tmp} +PKG=${PKG:=$TMP/package-$PKG_NAME} +REPOS=${REPOS:=$TMP} +PREFIX=${PREFIX:=/usr} +PKG_WORK="$TMP/$SRC_NAME" +CONF_OPTIONS=${CONF_OPTIONS:=""} +NUMJOBS=${NUMJOBS:=""} + +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIR="$PREFIX/lib64" + LDFLAGS="-L/lib64 -L/usr/lib64" +fi + +# Set error codes (used by createpkg) +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 + +# Clean up any leftovers of previous builds +rm -rf "$PKG_WORK" 2> /dev/null +rm -rf "$PKG" 2> /dev/null + +# Create directories if necessary +mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR +mkdir -p "$PKG" || exit $ERROR_MKDIR +mkdir -p "$REPOS" || exit $ERROR_MKDIR +mkdir -p "$PKG_WORK" || exit $ERROR_MKDIR + +# Dowload source if necessary +SRC="$SRC_NAME-$VERSION.tar.gz" +URL="ftp://xmlsoft.org/libxslt/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! gunzip -t "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi + +# Untar +cd "$PKG_WORK" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +PKG_SRC="$PWD/`ls -l | awk '/^d/ { print $NF }'`" +cd "$PKG_SRC" + +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" $CONF_OPTIONS || exit $ERROR_CONF + +# Compile +make $NUMJOBS || exit $ERROR_MAKE + +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL + +# Strip binaries +( cd "$PKG" + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Install documentation +DOCS="AUTHORS COPYING ChangeLog Copyright FEATURES NEWS README TODO" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +for doc in $DOCS; do + if [ -f "$doc" ]; then + cp -a $doc "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" + fi +done + +# Add package description (slack-desc) +mkdir -p "$PKG/install" || exit $ERROR_MKDIR +cat << EODESC > "$PKG/install/slack-desc" +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxslt: libxslt (XML transformation library) +libxslt: +libxslt: XSLT support for libxml2. (XSLT is a language used for transforming +libxslt: XML documents) +libxslt: +libxslt: +libxslt: +libxslt: +libxslt: +libxslt: +libxslt: +EODESC + +# Build the package +cd "$PKG" +makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG + +# Delete source and build directories if requested +if [ "$CLEANUP" == "yes" ]; then + rm -rf "$PKG_WORK" "$PKG" +fi diff --git a/patches/openssl/certwatch.gz b/patches/openssl/certwatch.gz new file mode 100644 index 00000000..06cd1d8c Binary files /dev/null and b/patches/openssl/certwatch.gz differ diff --git a/patches/openssl/doinst.sh-openssl-solibs.gz b/patches/openssl/doinst.sh-openssl-solibs.gz new file mode 100644 index 00000000..a8a303fc Binary files /dev/null and b/patches/openssl/doinst.sh-openssl-solibs.gz differ diff --git a/patches/openssl/doinst.sh-openssl.gz b/patches/openssl/doinst.sh-openssl.gz new file mode 100644 index 00000000..aa74c81a Binary files /dev/null and b/patches/openssl/doinst.sh-openssl.gz differ diff --git a/patches/openssl/openssl.SlackBuild b/patches/openssl/openssl.SlackBuild index 979ebf37..a94ecc4a 100755 --- a/patches/openssl/openssl.SlackBuild +++ b/patches/openssl/openssl.SlackBuild @@ -1,16 +1,4 @@ #!/bin/bash -# -# openssl.SlackBuild is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or any later version. -# -# openssl.SlackBuild is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 59 Temple -# Place - Suite 330, Boston, MA 02111-1307, USA # Copyright 2000 BSDi, Inc. Concord, CA, USA # Copyright 2001, 2002 Slackware Linux, Inc. Concord, CA, USA # Copyright 2005 Patrick J. Volkerding, Sebeka, MN, USA @@ -45,7 +33,7 @@ elif [ -f /etc/slackbuildrc ]; then fi PACKAGE="openssl" -VERSION=${VERSION:=0.9.7l} +VERSION=${VERSION:=0.9.8h} ARCH=${ARCH:=i486} BUILD=${BUILD:=1rha} SRC_DIR=${SRC:=$CWD} @@ -57,159 +45,511 @@ PACKAGE_EXT="gz" SRC="openssl-$VERSION.tar.$PACKAGE_EXT" URL="http://www.openssl.org/source/$SRC" -if [ "$PACKAGE_EXT" == "bz2" ]; then - tarflag="j" -else - tarflag="z" -fi +# ------- error codes for createpkg -------------- +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40 SRC_DIR="$SRC_DIR/$PACKAGE" mkdir -p $SRC_DIR if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$SRC" ]; then rm -f $SRC_DIR/$SRC.asc - wget "$URL" -O "$SRC_DIR/$SRC" - wget "$URL.asc" -O "$SRC_DIR/$SRC.asc" + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET + wget "$URL.asc" -O "$SRC_DIR/$SRC.asc" || exit $ERROR_WGET fi gpg --import << EOGPG -----BEGIN PGP PUBLIC KEY BLOCK----- Version: PGP Key Server 0.9.6 -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 -=N1Yk +mI0DMxFj8gAAAQQA6WhM5TR/jDsUNEwzqQD/pdrNfEn8cfx2yZvoTtG5h9WVex2Q +LDFQE6TJb4BiGQdthTCcHmoGgVTIutssa7AodbUqcDCBt5ktMfmepAukDREsZVm/ +e3MiYpR3LLEGmFlYLgh4SBRuX1xz6mI6wQnxDMXuCerBaj8q7q1M/UmlY9kABRG0 +Fk1hcmsgQ294IDxtYXJrQGMyLm5ldD6JAJUDBRA1/Rjj7q1M/UmlY9kBAfwzBADc +i7X+/fq9+cOGULYBE9Tr4VxjG4T9JxE5BeoR/2JdOWefnfGtpHgusO/Ii0yOqC9V +9SunEZfhut5E4Q3Fhz011aQaXjGLc2zVcO0fCAZOdue/lUd5xXdupZfVScHv2arQ +Sd3nameuFAdNVkt6npYp6GRiLHX1aD17VBKfMbL2WYkCFQMFED6kWILNY9HdhPkm +TwECvtwP/iGf6TbQTIjkujYW5xVvnGVM7NqMAiICDsDOkkPcrm8PhqTViJrQHGWr +U6Xre51jdJj/lGByCr/YhicUxUO44MttQ52x5JFhQd+oP/OMCvO4FJZIPx9paUX4 +RzimHr+MW9B4K1rbKcRKTjBXTqaLl5zrA4i5N77NDW4Or2PBqD57vCple+THgv7o +WdU1ebnWniayK8L4edZ5OAXIUziOqZjyYyGd6wXu5wo7pFsycP27FjTmerMq2nky +Cl5PHcFZ9+65BuuF+P/DBRgLOa/EM30yU6oNMII/9Umswj5nhL7yE8EZQM2KwmBS +p5fW9/mvZPKbdZit/JNmh7JzmmOCXiFtKUxjHJ/yzIuYOHrSz+eVRGa5JVDvWNsm +i9iar40b1rzW67t6JXwu9YvHwdMNr5t1TD0qg3xbYa8cMKbVNO0l+P9XPJ6PrDS3 +3oK28ED0Y5c/oFgD5yl1LxeJoGI2RXiSRUKRLasoIXaDhABtbK6AGyhsXP3DSNCU +jREXAaHxqRp71tX3W/KKJiahYWAQtGwdry7dRHUl0mbplWUZIyuoVEDwsJCCFZcG +QdKCVPrWot+HQzM/UVqv82SmNNpTBnbq0wCVlvWEjA8Qkiv1q5R2TlSg5LTG0PXQ +fWucZesgZnAXJIx1JGSD3TDjtLTR0omcz/7Ogshk0i7Pq9Ztf/3AiQCVAwUwP/7O +wO6tTP1JpWPZAQHn9QP8DsaxtiTlp36JiX/FFM9z0K/x4Ic2DBaNrxx+Houl+Ue7 +Jcfq3yRogEGr0K+oP7e8OQZb6xinDlyeFSKwGn5hLwZDrP0m4gQTQooN1PFy4uBb +JtyO6sCBA0D/sIMP/yhO/j0TIJbw1EGcC21GdN00/At5GicXcgpxVHfB7stYNnOJ +AhwEEAECAAYFAkF/LBAACgkQquPmzmahRGh1Xg/9Hzk7/7yH6o24wrrTnTczVsbE +vz037xDbJOwTv3lxkX9BIrOsVPzC3LiROhSfA+Zcyoptb5qzmDVYJ1K7EHpTCQcF +pXWqvYokHgLjyF5440HGDyjkR1DTSgUjAZ3UOPNlc7r8WneeQHqNO4UWBT7F6VPt +cLJdN6F/ucDzt72IbTo1l3D6WNEnlnlxbLlq378fpaugBvb2LyFapSG4s8gnkWyT +8bal9vZc4h/ELDr4OdD8zrqXzFOR6Xw/bmZmmnHQR9uUwJ0QEIhWEFoAgSoQ6g80 +eiJUPoOYA51c/85mQdJEXVTcu2dhy5kjgeMEjxTRnZXb+L7afY3cWpC+aakt1ykK +EIQ9I7y0nYJ0pziXr7nVaKDUDCEs40LVNtnBd6L+IePPZ9Mng0kymWCuKUA89p+B +wIQ3Cmgxz1yE6kiOy/HBQl6xetg9JbCWku9f/RSEl8O+4XC5lBWd9eSsmCDgwZes +B/9lSlrt8qnYD8H0eZR4e0hmEPLgXRiLQMc4IZtWrzRl6ejTVoQq23OBkjtfaFt6 +9TDyIyaww+3igqJkVNIVTeSQco39rPauve7bwhZ4wu315EpJX7YlPnF52FfZOOwi +Z86/I02W8FzTi4kd9QKTvm8wOdL6UY7IWwpR437M22E6HCuyWGl5ngnoGgN+Ndcn +h1N/6PtNhAFwCEtcDV+IRgQQEQIABgUCO9CTnwAKCRBVlt0M6b9lPRO1AJ41uuX4 +2r22KYa0wQPQEs6wgzWtWgCfRyYZ/mwhh2l3phacCs1MNb+18iWJAEYEEBECAAYF +Aj3dKwkACgkQVZHiwGZkwHjrLwCeNSSWj0EHcfbDiVhUM3o4soLtBnUAoLV1U5hB +nqJYgdrzqeyQhfi+G2WgiQBGBBARAgAGBQI94XDpAAoJEDLsF1kwoh1VUK8AnikK +B5AAr/GULEWHDZp6sMEc93KEAJ9RpmQEdKuzrQNRG2zMT6Ts7xMV6IkARgQQEQIA +BgUCPqRX2gAKCRAxhs0ETwnwVSlvAKCkFfJMhy8bEMfOpknpYE//SvXKiQCfY34b +zc8lBnYwuCCGw4UjcdC1WXOIRgQQEQIABgUCQiut5wAKCRDmG6SJFeu5q/n0AJsG +9YDoDypuN7pYYvdtORrCbeDwEgCdHGFDFDWAICDnBxLIWr3FbKi9ZfaIRQQSEQIA +BgUCQFiGxQAKCRDIgd1HSuerR54aAKCfTrkm3w17KpoM2OBKNMefkIHegwCXbJpp +WaHSNZQjw6JEBRomFfETkYhGBBMRAgAGBQI9DyzcAAoJEEq61lpJwpzCznYAoMnU +KJowCPxfaM1CEbt5/VQlOaaUAJ0QrowZcGEP8dsfvjnF+/F/C0y3ZYhGBBMRAgAG +BQI93REmAAoJEEzETQAR34fp8PcAn3nWBPZntvVu/33wic9F88Vj58CBAJ9ap25z +QJ2iAZiNZwBWGosMUuyi+ohGBBMRAgAGBQI+U5aSAAoJENjDuVLpGrm5wakAn19H ++FsME+6pOX88oS/I8wdxpxs/AKCfi8znKAHS989o/8+IB+L0Aj1J54hGBBMRAgAG +BQI/egclAAoJEBhZ0B9ne6HsxPIAnjyFgDBUTNDfLGMDBRqe6ylRdnbeAJ91zA6l +Vvnj4FvW1jdhED5rVhZtP4hGBBMRAgAGBQI/wcWSAAoJEDYVIteCq3vRggMAoKC7 +qznvT6OR/i4YMqck4OdyB00UAJ92X5n89ANw4zdHre511XnqXv3/J4hGBBMRAgAG +BQJABH++AAoJEIHC9+viE7aSJogAn1bvaogGFGb3YBz7EuCfTgMsA8AwAJ9L7pRq +AtaeCOxX5YI++Ez0LJOUXIhGBBMRAgAGBQJAC1JDAAoJEGtw7Nldw/RzmD0AoO1u +zGhzzCy8hmZ8S8honUbc9HtxAJ97WJkzvER3QPi7jyqoNsLf99JzU7QWTWFyayBD +b3ggPG1jb3hAYzIubmV0PokAlQMFEDRypQTurUz9SaVj2QEBAPED/R0o1TC6IXzl +TtLR3C0QwXg350ZwcYE3hez9rvKgfnjni6gcxzZhP4ETlrmVzqZMXgqk9Bht6F6p +khJlTrQ7CSvdrCr7U3STgBqveVECN7dSMeojR5FSX6NdUZCclNoi+lxUdfed50t9 +8ShnW1Or++SlQrtyU3tZAxAzsjFQ3UZliQCVAwUQN58E7TGmPZbsFAuBAQHY1wP/ +b0v/5PBNeWa4L+Rx25soKdawL0gzUI/Cey03h73t5pBKAaS2v45JFeB5xGPBZZhT +ujffIUb62jdnpsgtGO3r4W4Xf70KPOvLwXQeRj20GHPRNYAidJBEyPSHIe/DXZTv +QiKVY+JppduO/aig9WvqiwYtc42nxq24tAjf72Ynv0aJAD8DBRA6ynJd/W+IxiHQ +pxsRAn41AJ0TE+0HYlNdTzXjrX9iCsziPoIuYgCgkNNAQ9v4KCRrNzsqqATqRmyb +pEKJAJUDBRA61iXnms08wKmfdd0BAacGA/9EqsT2tIdhJTYBgCKaLffwmFnG2n3N +k52rTdI8sQWv1bNj4VjDbVl0ITqCzCPRnKMzRIl7PVEPnHtsRLYc7AiljMUJoAvy +FaAUc8AmJ8CV+rdiTbeBncYviwMOrB4cGK+INvi2cFZ/jJzE6cS0IfGQvnvVOuO0 +bEsQ4WWlUBv5vokAPwMFEDrWKObdumS6LDEtLxECYd8AniafVeerYuG405ntW6/J +PW/SUBdpAKCnen2pD3hHEEhbneGcXSAN4JYe2okCFQMFED6kWILNY9HdhPkmTwEC +94IP/Ryk3u2h41n1o5wSiCmAD5Xy+5l2fuNfvEJUm8jyG1cqT/zPzPNdHrs+JmkS +lTtYHbUAdS/7rLhbjFIaPhY7/W11pVLB7Bo0XGRAZFUVlrdRYirl/4WOFJL7rRx0 +8X8GtVmuD7nQuR9wnY3KLy6jbVhLOnTfTSsAGEHZDCu1vQEG9wwN1jSLRVRPxQzy +XYKA0LqHXG465syIHdgiCtrD8cPxx4FhUzKc/nfuTCihCuTRVMfZycoo+yepXQ8q +Gbjjv7sjoa0mTc258z2lBjh9WcsAiFuY0rlCsXE2/9PfJhsSaU+8YS6uIbdmorlM +/AL1wT8uqq1hF6cmdt0v1wlbUDTgyI2+ade5vsCm2EjtVmx3n3xG98ieJ9yUTks2 +PCaBlp1Px4NbMoXWIHNlmvD8Tv6OQO2R/+ncJGE4UD7K33NQ4wSw0MetSytPbFzQ +dbSUXf5n7I2OYVZ6edQrsJ9iNvrLY98+piUx04duil9UZQqVrxz0+hlZvkJTrXly +hs+MD18/Og19vNMzmc23DdEcTLpY3cqBZmE8wN7zLGH5yH+34KaZ3ATuWyU2BmnF +YGiA3Qfv15TcAfNgFj4aX/YnKN0S6qZbUeCTNMY9QDUPhzN7J6d9EvhJzozGdZ16 +lMAatTv3V+a+R1A8UKd64DO3IPVd9V5lvDtoJUwZC5bK8I46iQCVAwUwP/7OyO6t +TP1JpWPZAQEMMgP+O4Xqe5bEOm644k+SqHdwcF4S+FptgLOrnGMGF5SOjV6HCz8l +GI8U7UKdjFpsdL0BZhXHySrOPsnqJrxgcrzFBg6K9OEoUjRoBAwskd8BPLkS5wJR +LDgKzuhxcThVFFtMXPePx0mHDQmnZOH6lTOKHdtCG7pAW3bHOCjbOisj24SJAhwE +EAECAAYFAkF/LBMACgkQquPmzmahRGhcyhAAxQPS4xY+KvV352ctr1DuGM6xENQ3 +gMW4aKnWwb6tdUlnxdziwrenpf5f389Hhy7f6oDljjmq70o/P5QqZ4G/raE7CSRA +j7Mlkjfs2UYGFKigVbvKq3TwgcGcp1ThnJ2FFuPqr8RzNAtLmLnZzMwrMnP0dalD +ZB+L6goF3a9DQI4IdG7wMXxvQ8tEIvnT1TiW5aaZyNRV+jrJGQhQl5wkLEDGGlfC +qGkp90JsTxFvEZK6QZHJRlHracn4ZcV7TVN0NYgmBHId25oBaZLON5vj6HSbqmMC +ihJe+KoIp+ic7uEsHewbDsWoH7u53451LZ1DIwhN17pM/AFB7zy/q2nCOvazs6bQ +x8H8wY9F6MpImiMBSSiYsTrYDUfE4g6qhoDnkRKn5HjlMetM2FYGZ6YqsEjAJZ1E +LokdF5/s0FZ/SCrZDkCjF0++65nmFXS4C/dgZJnK4lqmSPnbspfcmSUlOKRlQ4Kf +sHI1ui516uC3S5JK2fcMj8MlPMNzFq2vCIOVTkC67qSQPEEdXmnCEd3RQkcMTeho +rgItfshB5wFFcHnkAYrztXIXobZPtGFGfb2skOdeU6DuR6nd1vTDiUEe06lp3V52 +FKebLhPkLTk3b4FzC8JZg8WpjUn1QkWy4/j5Nj3flg6x2Q0vW6ZNPdZJToOwsxpx +8VtcbnfHoKdi3VyIRgQQEQIABgUCOjcVuwAKCRDe3YS5RDds3E3+AKC6fAZPreRs +dDRv5/OzcI3ozjadxwCfbEf0ShLygKRRgU9Yo1/XdCiSQ2yIRgQQEQIABgUCOl4t +JgAKCRAjbz4VJTe1Ubh+AJ4zuIl+pHzAipWjKWAy5nn5GsM+RQCcDynXECFq/ylQ +0nTrJFJ3RI6y0ZmIRgQQEQIABgUCO9CTnwAKCRBVlt0M6b9lPVA7AJ99GXT9WU50 +04DzPOGgVgnG2eL2xQCfbVuBzx7xm0XaAVLrmWk8G1Uv0XCIRgQQEQIABgUCPB/k +ZgAKCRBudrHI8aOrvRpwAKCwsMfQSuQh/HJl4ElTuBwAt40G2gCcDLMhFwFxhtJN +a1kGWs2qkRf2Fn2JAEYEEBECAAYFAj3dKv4ACgkQVZHiwGZkwHg/7QCg4ASyAyVB +m9NCU53Hq7bMqKyziRgAoODvdotzHuK4xYKnBt+RAxOonyKJiQBGBBARAgAGBQI9 +4PDVAAoJEDLsF1kwoh1VchEAnjI3X9jH+zHbYaeM8rzQPf/LjNWLAKCG1H1wBkfh +D6qDcMABF/VrMF7jkYkARgQQEQIABgUCPqRX2gAKCRAxhs0ETwnwVa6gAKCl45uG +vpcGKv/T+zC645eqbdNj0ACgloG9dKOa1m9elcJPWTRQ9+2hiRCIRgQQEQIABgUC +Qiut5wAKCRDmG6SJFeu5qwQxAKCT1l/tYLkt1juNlpf2yBQJ3QYPTwCeK30CIZWJ +bo0Gtmlhv/UPnVRCkmeIRgQSEQIABgUCQFiGxQAKCRDIgd1HSuerR6MlAJ0UTnZI +lRVlyBfu8in1Bpoz8kTSggCbBLbbi2Z7ryzftwwu34hRXXVgyHCIRgQTEQIABgUC +PQ8s3AAKCRBKutZaScKcwi0wAJ9duhlMD4DOVcNkq5VcIieX3gC8HQCgyUXU9iiF +VqTJXHN3XQngN8Hz+YGIRgQTEQIABgUCPd0RJQAKCRBMxE0AEd+H6UXvAJ9i7ZjE +V9xbLRNEavi5DP7FvkqSzACfX9mr/SsVt0tvCcjXLmTC7SFj4zyIRgQTEQIABgUC +PlOWkgAKCRDYw7lS6Rq5uXOPAJ0XBekPz3gBlUdCAAq5PrMhdJTbWACgrFrY2vLi +RJXVx8qRVJxBdsQC9XWIRgQTEQIABgUCP3oHJQAKCRAYWdAfZ3uh7Px7AKCOVwkr +fw7Io4sQKwVK0T+k+GkksgCdF2ii9fDFJ/QP8+h47Rvw8GfT+l2IRgQTEQIABgUC +P8HFkgAKCRA2FSLXgqt70RbtAJ45F98zx1LOgWEm88Zsy0bFkmJvlACfSB9WUEgl +OkzJBqk562xScNM1aTWIRgQTEQIABgUCQAR/vgAKCRCBwvfr4hO2kpq9AJ99HI/J +uWXddSx961rClVS9q/7c1ACfbHhqk5fpcZiWux+2Y7R8CXxfQ56IRgQTEQIABgUC +QAtSQwAKCRBrcOzZXcP0cw41AKCZc+W+8iCdDFx9S6KIRQ1e2WC4uQCgtBFf+JcN +KtXSGoxOz7T6u8BDJqu0F01hcmsgQ294IDxtYXJrQGF3ZS5jb20+iQCVAwUQNC9h +Me6tTP1JpWPZAQH+EwP+LHqkBr7hmAVA1EBzt8L4ji4Za9egjw3zC2CImL//wpzW ++O29PKUs8pUEOzLWKGxtU6MPc1QSQf3lM0jdCFV4LAk+XZ7caAWXbneGPwlqL2yc +ePvmleNBerQ3FD8lFKsQCqsUzv7JEs+zvMPCwyhzY7Hl6ariOhVrezJlQTBbsvGJ +AJUDBRA0cqUE7q1M/UmlY9kBAQDxA/0dKNUwuiF85U7S0dwtEMF4N+dGcHGBN4Xs +/a7yoH5454uoHMc2YT+BE5a5lc6mTF4KpPQYbeheqZISZU60Owkr3awq+1N0k4Aa +r3lRAje3UjHqI0eRUl+jXVGQnJTaIvpcVHX3nedLffEoZ1tTq/vkpUK7clN7WQMQ +M7IxUN1GZYkBFQMFEDSxC7XWVFscz8EA9QEBViEH/0bcjPEcNNUXUFx+XwNoy2kJ +cA/1RtXZcagHCylUCCke+4gT3X3K1i8nsRoEJpbblUxrOVNVz3+3X39tTT+/WoJb +w/YZZfNi+cGUMmzactqOv+uhD6eDlhdf1huyYbgkX8udx/fNxEWZ6hg+GHgWnyxy +PaBgIsWfRv/nBbMT3Xty7+yI/9R8KXjQByUImwZKXatvSsnv/jx4BNB0zEmqWFzf +2FUwqRBcxOOmJw/wY82fxNVApb3LFmVaKj0eOhwEVUDbvjH6Ef1kgQDo+uQ7eaAW +U3C6EO08g3HeILy4Xcy1KPpG6Bk47Ry73rGgFii0lrSmOhvCMu0efjLNIXpSxWiJ +AD8DBRA02GubUX4eqU/cq8ERAgUbAKCO913wXBCqiBfQBT5F6koRZRRvbQCffJ+Y +14jFEx+cfCdDIUjjD0l4/diJAJUDBRA2VRWaYlyoKdWSjeUBAeplA/9UIUQI73sv +Y85udqTPAkPHuWs5p+xjmOWZSNeRmt0RAq8MF6OLqaW0GGpBJ+w0uYCzgReg/uYI +EhrgdCJcG4//Qw3+uAP2ddiZDTYrf8NE2tzkctGEIt7hrhYfQVSWp9Po2A5ZSe77 +9IrMP6CaIbE51YdN3wXkoyz4gqoqBoRshokAlQMFEDefBO0xpj2W7BQLgQEB2NcD +/29L/+TwTXlmuC/kcdubKCnWsC9IM1CPwnstN4e97eaQSgGktr+OSRXgecRjwWWY +U7o33yFG+to3Z6bILRjt6+FuF3+9Cjzry8F0HkY9tBhz0TWAInSQRMj0hyHvw12U +70IilWPiaaXbjv2ooPVr6osGLXONp8atuLQI3+9mJ79GiQA/AwUQOspyV/1viMYh +0KcbEQI3fwCgkl6kpk5685Z6YGMDBEkIikMXzssAnjblMtKuuWvgv2sgu7eheoof +fm3FiQA/AwUQOspyXf1viMYh0KcbEQJ+NQCdExPtB2JTXU81461/YgrM4j6CLmIA +oJDTQEPb+Cgkazc7KqgE6kZsm6RCiQCVAwUQOtYl55rNPMCpn3XdAQGnBgP/RKrE +9rSHYSU2AYAimi338JhZxtp9zZOdq03SPLEFr9WzY+FYw21ZdCE6gswj0ZyjM0SJ +ez1RD5x7bES2HOwIpYzFCaAL8hWgFHPAJifAlfq3Yk23gZ3GL4sDDqweHBiviDb4 +tnBWf4ycxOnEtCHxkL571TrjtGxLEOFlpVAb+b6JAD8DBRA61ijm3bpkuiwxLS8R +AmHfAJ4mn1Xnq2LhuNOZ7VuvyT1v0lAXaQCgp3p9qQ94RxBIW53hnF0gDeCWHtqJ +AJUDBRA7GlanaDk/TNILou0BAVJrBAC21HKwrPq8H6Gk8HAz6Asxi6WYKgloHxkn +nCbXspnkJIkHqI8SLFaMNuEc9rA3hoUEdGBfhkmzGZWvGViFmAvgsIU7LH7FnHkj +pQZ51LlWR0KUbTgOkj3blZNphq7sNw66ZN66FFzWVGOtkR8l4YvfMgNyjS8JbaxC +3QzA5xF8iIkCFQMFED6kWIPNY9HdhPkmTwECSQwP/jVC3qEpWUJ+nOCQ6lQuvm4z +44zWMV08RzQzt8fT443vW1ZJRxljXCQamhQUyK6Zk6479Oc8uKfdSbejyIQOhTVH +LGfrFbQUUNVZW1POlEVrPY6lI3UfscKQB6n0gZ8oR1q6bZk363RtrF8XVLXIMhrA +et0vCoKxe8t0HMe/vFft+9Rg1F2OZVcReK9R/0DqMbK+Hp/ZFq70VPKUOEAM3v/E +5jowfQxeVtZR+m976ilSWkW1fS+hEEhCF2TrtFduc2M8sPyJaRIpHLg3311rRKpS +yt8oLtsDL8tFgCQrhkzbidNIisKWWZvjTnlqS8s0E8f7In+fAaSRPBz53iAxMe0P +SBMF89T+NNdh4aeKUnW6oOgLyRFiPIQ+QWLP/Epoj5pChQEVWLbUA9WJmJNrXUfj +vh4mQtPiU/8F20W1aZfimGN25wncQNynCOVCinvX3nTtiJEimFqHVMZgqYFIdK5t +jNm3txFy78WDbP+grpiWWO/ef2SitGnmb6wMuR5Sc+aqB0pGP7CKpUAfC7eJU+WD +tl5XpktqjVBjn/cCkJa1MjEq8I4sl5fcfs4kmLOmoGjjIRv/ag0RTUcftUhSLmUB +d7lmy3glsRhO/M1AvM++or2nAMlCJMeWsF2TNqFQaWSsbSDaePIssb6FSBwepthV +xJsdRgjntWmjQA+V3StqiQCVAwUTQJ93jBsIDEUnGa81AQEaAQP9E61JHRPRkC2p +GzYtbbtSLoBIcDkkRrmDegGfoLXhEijNxFiTKsdu0LQYz8rfbZkWH9bV3Xb99b0H +CIxDIlZ/hECvncOFJtzMLesHUcSa6LundtCbIFHhS/v36RBHrUEUzNinsNg1J6xb +78T4gS5+qw3VVMKaCvutKR3yEgZotEKJARUDBRNCX9AzRU0ZVEdB/5kBARo7B/0V +RMky44acC07ue1JQacpAu4q0k9oPORUpgrhGNZi+t27CrrvDzcjdRjp4TnyHZj67 +r9jkO+OR/HPSX/Sud33BM+orGWNwlNz0LmL6dXvsk4T5VvVBw6yqffIIVpweYbK3 +ET9XDc7vrsN02G3V/X0LZAJ37QFJZncQYRkGiKM3kQMlepyieFdMVrzxCt7kH+G4 +MAVXKGZnxhnHrd8kijSwW+csxpI2sD+q8zWk4/ild2aywYu6T0UIqytSSgMLRR52 +5pfH0hHswnDlhMoVrS+sPWdvnVS0V/3dsYk1mB8REcOdeVKRo4FH3JHD8Bk60b3I +KGVoilZIspGfRUELriWJiQIcBBABAgAGBQJBfywOAAoJEKrj5s5moURoRQ4QAMI6 +MBt1T+8t0DwXrUxCWUgjGV4Nv3clowsb2n6ur+kyrSCWN1UFeLtPVet4qAKKgiKh +tE/L+QIIf+tHjdOmipX5/QMmAINxOKUz23JowPNxGirKjjjuvbxMQRny0b84YrS5 +OxNJlRqrq2fC/0dy4oc66xOybK7OKAhEKWzuqs4O38V2zSPqFDTyr+D6sFillg1K +1BdFVCLgHWZ6aL9AIAdg24dwe6WAhTOxkPtNiNaqmQ48TtPXe2qxZ6ssztUxP3ub +PtUQCb51StpAkQHzMy4du+3hzdvaDhoDp3zoBVFjlXjghPqoHTbGH9CH1/SxyabM +FPZRk/DsZvtj9yzM2zaWUGuPE2gtsC59TNLRQUDPX9zxIfXNbMkVQOW4Q+nMCSq+ +cQvkgVj3mVHmM0jJ2loe3X2QQeVKqyk419MzQ+dLH6+pd2ClT4Nxj31RKbTGebdF +UZoWUCCeANFj1w2FyxeGp6jH6uYHAXIP9YajoCsKntEhu3hYY0cZ+WKQNcWvARBh +bk5MFVF9Ef0tlDO2ZH18aeSupAKiWShfq5C+SRRuaA7YdCNXSxH/Xqa4sGZ9Odqy +ePzlEkIO4Bs3I44w6VvnS1KcExT1PCrYTWMuQyux85YFBEDzr0pppo4VAypIkdnA +maEIRVj/SVuMJe+vW7rVAf7gFdsEYH4UToGM3WRdiQBGBBARAgAGBQI2treyAAoJ +EBPfD2hdwuxYIP0AoJK8ShF0Im36lJ3FZFNM2rxHXkF9AKC7fkMG1me1Je2GiIe4 +5Tahdoes9IkARgQQEQIABgUCOG/pBQAKCRAXWVXOQ77mqABMAKCgO+LVARom7t/X +mRw4w4TO9IkM9gCgh2URPU7tqECsr+WuVfC/v/7evVWIRgQQEQIABgUCOjcVtAAK +CRDe3YS5RDds3Dz/AJ9UaB2vKuteTC+gm80f028DPbmCegCg3ZM1Rt2WMDS/wHW7 +nQJ/xnyg8PuIRgQQEQIABgUCOjcVuwAKCRDe3YS5RDds3E3+AKC6fAZPreRsdDRv +5/OzcI3ozjadxwCfbEf0ShLygKRRgU9Yo1/XdCiSQ2yIRgQQEQIABgUCOl4tHgAK +CRAjbz4VJTe1UVx0AJ9MQMyjIUgLk2qqYpJGMd6d+C9RIgCdE5M8p4pPDNML2iQU +JlmBiWrQsVqIRgQQEQIABgUCO8wKhAAKCRChUPwthaj3i+wvAJ0a+3dLzfhNVttf +F4yLRaJy8ONqkwCeMVKz7Enbos1EJzrs3UfMdseMhMiIRgQQEQIABgUCO9CTnAAK +CRBVlt0M6b9lPSdNAJ92qffxJFFh4gbf4sg+oF04Ovf0nACaA4fb83aGMDZn/hAw +6OtDiAiCkA+IRgQQEQIABgUCO9CTnwAKCRBVlt0M6b9lPVA7AJ99GXT9WU5004Dz +POGgVgnG2eL2xQCfbVuBzx7xm0XaAVLrmWk8G1Uv0XCIRgQQEQIABgUCPB/kUQAK +CRBudrHI8aOrvQMKAKCgzQs5Z5l33X3yx105EjCgHwFA5ACcDu9No3tcnEIOCHnF +hKz1uh8zIE6JAEYEEBECAAYFAjxqpMoACgkQu+iXKGr9sujpfQCgvJAlUnChTbdR +NOAl6TmteV+kQPoAoIV3lfgP1vxphc7ypid0iCCbRYjYiQBGBBARAgAGBQI8aqUD +AAoJECGRgM3bQqYOhyIAoJme17J7e/2F2o7SvfzBDu2vw6kvAJ9T+oJax4TjAJpl +OlVsEb6rtgUt1okARgQQEQIABgUCPd0rKgAKCRBVkeLAZmTAeF0pAJ9mJT2NZdTN +vmKk0yHnviv1fLUsKgCghZaHV3m2YKtay7GDlZLSR8Ns8B2JAEYEEBECAAYFAj3g +8KkACgkQMuwXWTCiHVVOtQCfTEkzIy3COXq7heHViNOKIxZdHC0An1vCcjM/Nx40 +4IiztPWcf1THtoTLiEYEEBECAAYFAj4r+nYACgkQZjW2wN6IXdNchwCdHVrtTjPS +C4tSP/Oo4UdEMnL9Dc4Anj7ti/5sSrYpqR3k4JfzsLpP1STiiQBGBBARAgAGBQI+ +pFcNAAoJEDGGzQRPCfBVKhMAoKShW6L8xFb+MZOLGrQ57A5eBwBDAKDjhGoyIyHY +Eu3/YomOQOtQx9Ro/4hGBBARAgAGBQJCK63nAAoJEOYbpIkV67mr7DgAn16nUBNs +RZoRy1mbJ03y0P8jTvbQAKDLqMJtFKz+DfRxF0PN3qXxrP8wzYhGBBARAgAGBQJD +mISxAAoJEFQUZr6xLcGbNsAAoMOxM3OY5Z/dXlRHwIMcTvRjM+dwAJ0aVJv5/hKC +PcNGKKcA+3aLoBpLmIhGBBARAgAGBQJDmI2lAAoJEDebzld4aIv1RKQAn1VlfJQ+ +Zn/aGX97fIZvgVRi9805AJ93TGM7Omr9CCZHOnLZz4fTPbLgdYhGBBARAgAGBQJI +P+UcAAoJEJ6pE3mBTTdr0qYAn19RVF2F9/CPFcghZTod0cM3cAkFAJ9dEIvqwgIk +CRw6nhNJaFie+KxcLohGBBIRAgAGBQJAWIbAAAoJEMiB3UdK56tHb7oAoIwZQxqR +cFTOZ3mNiKSv1KzMVc2CAKCHXNW5B0B8OJhNTsBTHP8VYWFxxohGBBIRAgAGBQJA +YtEkAAoJECbcEWqoXz32yBQAnRH/bkM074aA8IhuSm258MSdFQlCAJ9Wgjdx3vrI +jkaSM3E21bR8kGGVRIhGBBMRAgAGBQI9DyzZAAoJEEq61lpJwpzCdLsAoLHgWIjQ +8euCIIh4k2FDUFtgMCp9AKDUY2SM/+HMgV4YYDkT4vpSLkpnFIhGBBMRAgAGBQI9 +pELwAAoJEIvYLm8wuUtcB6sAoJoSfvcCiMcItoVRsc1aR0jjkqXCAJ94bp/CcLS7 +WZsbSxr4G5bMWCoja4hGBBMRAgAGBQI93REdAAoJEEzETQAR34fpK7kAnjvm87Om +dDAOUcHCmgsIXVYibRH0AJ4kynpr2eFEdBHGiYNnpRh3qK5qxYhGBBMRAgAGBQI+ +U5aKAAoJENjDuVLpGrm54p4An3Gb/2j4EXeKrzFjs59827BqowhnAJ0RVJdZEJmb +OmMFpwBo7LhD9gBVLYhGBBMRAgAGBQI/egclAAoJEBhZ0B9ne6HsM+AAni/tnDZr +Zwl1uualOOVJnPw75ZUmAJ9Mm5xujIHrcOvarJ2AfJNq8Wt1ZIhGBBMRAgAGBQI/ +wcWSAAoJEDYVIteCq3vRFtsAoOnFKKYO7VRxGVOD0QiLR2LcBrAOAJ4vl4jWkNNB +zjEby0kt0nqm9WO45YhGBBMRAgAGBQJABH++AAoJEIHC9+viE7aSlEQAn0jJOYsh +0BaCzK7uCiHwV4KvMiZqAJ9fru1ModJdUTN/16dRG0imAJKhCIhGBBMRAgAGBQJA +C1JDAAoJEGtw7Nldw/RzI4IAn1xUC9quEoyAbYUvgj0OaEhIlccvAKC26LisG96K +wErSP1Tg+ixXxSkc3IhGBBMRAgAGBQJA9TxWAAoJEF5UgINlDViCpzMAni3HC2SC +Xda/KKfpWxac/RdGUzJ5AJ0QC3u11GHeAD4JrM0pLKTBLUxMlYhGBBMRAgAGBQJB +WMVYAAoJEObKgOUdJeNXa0QAoJlmX4rq4joxNtmA8PHgknGmUug9AJ9JFa3n6SA6 +O/SVUex+5sS2Ol00rohGBBMRAgAGBQJBjuccAAoJEFuWgBDgT5qJCewAn3x8pxFw +1xYeOiu3aEwprGZWc2tiAJ0VX1RQrs2NLSZVATLWg5x8xzt9FYhJBDARAgAJBQI+ +DTRdAh0AAAoJEIvYLm8wuUtcIYgAnjJSBE2O1tJTiSrPIW0Jb+kh/xsXAJ9E+4NA +rWqdnQFdM58AzjEzlLeV9rQZTWFyayBDb3ggPG1hcmtAdWt3ZWIuY29tPokAlQMF +EDMRY/LurUz9SaVj2QEB83kD/jdJ0A2z81nqi7LEC8oRZI8Oc2QcjetI/KdufuiR +Ku0V4JDdXB7QHR+SzMEQBn3NufH+z/UsqeuJR/LOF1mEl+Rl/GAPDLqzqyZqBhay +bP8sVp4PMbcSPbRVJ7qCGx6pw+xwkvTo9SDXcskLgsWWBhwIMR4aXzU2bft97TEh +SGU0iQA/AwUQM9vDiGfM5V5WR8xwEQI3uQCg3I89jtujpNviFZQgARGzVf6Eu1MA +n1WN+fCGzkxNwr/2K51xZ5h8PWp8iQA/AwUQOspyZ/1viMYh0KcbEQKIIwCgoRWV +UPW16urENfzQ8T3OPRr2xoMAoP09unnhIUsA/yPH5EgbXGrS/9PdiQIVAwUQPqRY +gs1j0d2E+SZPAQK8Cg//WwGDf4tsPUyuZ+Lb9i0zwVoVjC792tIyvh9Q+shxna4l +m9k2ddmzErvSeXyRe3A4ct8sgBZh1f0bXUQk2x3X0knri762rFpeQ3lvUPG0g/Ok +ZD2AQLrHl/u93Hhm5ojpyZMU8amB4iqPwVgX3VuMLep46RfzAFQ1rf4JMdmvh2EQ +cHD/80IE0Cazh0s4hvejrFwwhiUVKZRVZlcZ6m4uCulQZzD6T7eYHfU8ijXIiMqo +eu/glQjg2YUoe55E4GS8G0I6ALKChE7GZ7PpTXuHoTMLdcSfLQQUfLaptIUsDQyS +EJM8euhYtpn+G9xnaX5dMeDSZDNzIQ18x/qgLfqClr1dVjirjknwfdyyEzgvhX+H +UpMhfkSRN5qd5rQncp5GyqWT74luilto7i6m8drmNnlFKnrzal3mXvH+/QLXwMpM +BQY8tvLWCWL5nmzvRfXjvd29/CeP7x9c2s6eMac0oFV+Ib8/Qex4FRq9GF4fH8lP +WsxZ6jPHuH4bdMDPrtz8TJFeEPCy4P/pKfWCioJGBm5NRdltNRTA61PgMTeVUK7G +dwd066ywo38Hf6YITohU+BSAtPrwRuq6wNCMt52UN3+vAsDkmxBIaW/xK9j0r+LQ +GYCTMnUSv6f0jh+BHZz8xwkdoptU6QGupVm4FbOD44cROqyelIbJB74+mdGm5imJ +AJUDBTA//s647q1M/UmlY9kBAfuJBACdJkVfhC2TlOtNvj3CNKKHnPCSg+g84kTh +9kwKPoPEWoiEHItk/BqSJY7+vdy26eUDWLsr4OzrWvWOYiuKFReSkrk7uL7mPieJ +GYNCYOGO+LIA/8q2mMkCBF86BY54DxF3KMZ5X8LpvrjgxY+iT4ty2OoF3cSLiylp +yt/DwQ59QokCHAQQAQIABgUCQX8sFQAKCRCq4+bOZqFEaNdNEAChi7q/CjEDxowk +UXw6EpsrMlfs2QnbmXRZBDzrzhXuYas3sYkvhJl9PTl8KKBQzk31qcsn8oWc4pOh +ozwwoVj6kXQQdrVOObhxLKcp/wh4L2giWcMzNB9uBbIUTp7ak1wIlnwq74kvyuRH +gMxYBJ3reMKMcEMbHfBVoS99Br1GGXbBpBKtbtQODyJWB22VHJylTCsAXKQ5ktL4 +aPbStyJ9NFBvs/o214O/JNGtR0ySAOmuN8ytBwfRW1gb8PrpwSU8v6j7OU8Hapk+ +325A1/o3Acbram8bbL+1DQ1KXkkwvK627apjqBEV6wMCouznNu6ERpapZWVlE+Mt +MgRKE3QoBYitvPz+mbqd5ttznLkWaN1uupMAYXfpNBFXRKlSXatOzRpFgwf8KJE2 +3d0YI7NmzQKhWyfwQ+0hNHCUnMfuQSnpH8wGBjNH+AFo0sLe+EyTyqa8++eRsTqj +ZRscXezdl2PuPOdKxY9VBYLx1TNcorgceajF7a0faViuQaR6IDiMYpoYqzXDGuMy +aAlUELzLUPUmoGrTJkK0ltPL+ZGGAk/BC5DhD9SbxT3oPgHEZkJQZwsVN4dVacC+ +T/uZkImspNW2vf6nZ/tGtvUUDTbskRdUCaLZ5xefnz+gFiLGI31DU9OdxeZbetVt +f6mZNtToVzXnyq+PIFbT3xqNxHwRLIhGBBARAgAGBQI6NxW7AAoJEN7dhLlEN2zc +H1IAn28uZU7W7ipawo7DoSabb1FkZRefAJ42HaWNrSqcEgBDYfXZvjStCH/fZ4hG +BBARAgAGBQI6Xi0mAAoJECNvPhUlN7VRZLIAmgPOIx8kd25qU4kpz4yOc0j88XDl +AJ4l9DGjandMt1qBGzGvlDJGO2kTNohGBBARAgAGBQI70JOfAAoJEFWW3Qzpv2U9 +9k8An0LioH7vUEx2iYnE0bIQVBWPvijKAJ9S+N7/BbX+E0QbGSWzuVsEdwQ5+YkA +RgQQEQIABgUCPd0q9AAKCRBVkeLAZmTAeKSUAJ9+5U7gj4AkDWNTQbi0JCExB4x0 +qwCfWqNJjzdo6lHBzf4rvkZdEQ2f8paJAEYEEBECAAYFAj3hcQIACgkQMuwXWTCi +HVWMbgCg/33EcsjhDPVl+ediUO2TuJ2MoYwAoNuZqoMB2EJTWLkq14ha6zkM1X8D +iQBGBBARAgAGBQI+pFfaAAoJEDGGzQRPCfBVc1UAoNXysAgyr0VizQx9vxK8UiY0 +PjiXAKCbX62nB/F+RMvyRRrZ55P+F+xSwohGBBARAgAGBQJCK63nAAoJEOYbpIkV +67mr554AoKo+Q/nsymocXLStgtQC+7AQZymxAJ9Jd5iHZf4R3hVDl5phQH7IyuuW +34hGBBIRAgAGBQJAWIbFAAoJEMiB3UdK56tH20gAoIu80L4lRxsuMc3Kl1aRjTP6 +O4BmAJ9X4sdddtYTkk+Zh+xEA3igOWX0XohGBBMRAgAGBQI9DyzcAAoJEEq61lpJ +wpzCbCoAoMC94ZeKg1Tl12jD90iistw2IJRzAKCHfR2PAJYxjWzJvWc7PPT1lj9Z +D4hGBBMRAgAGBQI93RElAAoJEEzETQAR34fpgOUAniSAl9TMx7RA2l68XRjJm4hn +c6nrAJ459a49JmI/JfaqGI542+1o89/1aohGBBMRAgAGBQI+U5aSAAoJENjDuVLp +Grm57l4AoIoEEnqZZxBfh+ASmqwJ00iAg1KVAJ9Z8jzAKJ80r46e72IoSUws5IB/ +DYhGBBMRAgAGBQI/egclAAoJEBhZ0B9ne6HsPhIAn0iiaKPZzu2Gixl4Kro8l30d +D+MeAJ9YjO/fjFQ9DUqpd0ZxdevGZofvCIhGBBMRAgAGBQI/wcWSAAoJEDYVIteC +q3vR77AAniRLS5k06FMwFf8zhjJlRjAwbcdjAJ4gJxs1LSLVzzBlmUU4QrYDLham +ZIhGBBMRAgAGBQJABH++AAoJEIHC9+viE7aSm5kAnjIDS7K9MrIrOElA+lwnDsOo +GWZAAJwJudIPx1JBZwxijdDxcmid7k7PSYhGBBMRAgAGBQJAC1JDAAoJEGtw7Nld +w/RzeqMAn2xXXajj2GxDDMNZqkNzBjZME1nhAJ91PzI0flS5S7bSUpzSmjIDW29Z +RrQZTWFyayBDb3ggPG1qY0BhcGFjaGUub3JnPokAlQMFEDnhoc/urUz9SaVj2QEB +J/UEALArEG/mixNmkkiIqx2Kb8/Ysc61T3U17yTFN2vvxDzpwdLPxXQTED8VYqQ4 ++AQcAidxci00fS3eka1RsBxi5PzfRjs4mAtl0RazNBxuynvaeUrRx5npIVET+i4O +VyfJqKi7byXgkaW22qLTzI7otxfexAPzANpCGhSgJ73CD95qiQA/AwUQOspycv1v +iMYh0KcbEQIywwCg8ZGLF8wA0B3ArQ7AWNrIwfQZXQ8AniQ/tTGVHcORT/nBM5l0 +Yv/NFEcmiQCVAwUQOstTJRsIDEUnGa81AQHdeAP/Yz1flyCqMi2bi8f0KOQAQ699 +iHQqMNPL39YDSZUNxe9X1FkYwydaZIqDXINmngDyVYRCSTpXFkQzBbU9O2wWU4DI +RBPZCJFC1Lq0VOPxf1pnprQ95gXk/JLbSG8nNheluiCR6YEW1QOax9dOhKg7pTPU +Tep5NhggwHTWkiZe92mJAhUDBRA+pFiDzWPR3YT5Jk8BAtE/D/9xk6zix7wK3TeP +Lpmp/pXX/n3GIWhE6AePnSpX80CIfcYRNXwCWVVs9sQlcuOC3iHT807mTAnupg/u +q7O+2jwAy/OoFGL5ylZRPaJafLCwRPdquJvm3b5CJ9cYCiJ2prqlh2/7gQpSe3DL +r4pLKoobRVrIma3H06OmXZyYS3cIJmDEnmIqdCnAbfW1G59C92yR8YMjPimGa3yJ +MKONtxPdhrjKMZjHJEH1WrX/7TobPl1h8LszOuFfKGYUiQD6qPaiCN5XRl7X3e/H +stY7vxs8drtvyeSg35HApn/AJw286ei0hpbOAWsxXYePx5RVZVwwAvgniN8HpheS +yEpj9L6IFYZUY88x7yu9upXCS+Jgiu/vlXXQuVk3XaorStNeivivjIifq2+QP/Zm +JbHaCrmr1RnTWM9A7dotnGEU06PXd9u3wTpDbp3wffhp79VqGzuXr0slIOHjJgG/ +N4De9s3NT7AAldckJyBom37rGacYirc/p/CjvUyXjbI6HsMuc2GfQeMzD7QejrW4 +4PXAGnxm3KFwi4CjJNk1JMx5MviYaBi6GseUGTrNb3dSCD8+RNLGrQfFY1+rjqWG ++pjcDmxqdo3Hfyst+ui7PrECD9E0fNYE5pQB6jMiJ4YqTf+GVMTCa8nJKII4kGuK +dk3MKDUfyqAIMh+u7u69SfCJa/wxv4kBFQMFE0Jf0DtFTRlUR0H/mQEBA3cH+wZG +sQDeor3w9X0ceBYRTV68O87rsn0GtdX2CUCmNmd5kTMzKcIn77ra91gvfGSN91EF +5EWs8+sg7gcFCiCTbeKriOjXeL+c47X+cEjoa1cLFMJeXnOyhL7oC2KYSt2yLStN +uMomfNzhoifUzlI5VPE7eS9e65vSc+IpCToZBmHZHGseF5QS8ITDzCjqkyVObgSe +j0C7fcB1tpyLnKlyOiij5R4AZw2f+8BMEcGSWyzQBCSBq175dOduEReTkv92e5rp +UtcWd65ZsziXD51JY8qykJzvyZziTE42jwaLAPi7LRBsqi/xX+1oPcpBuWxoIDJL +1LNWtPCcqG7Xo9xAoFCJAhwEEAECAAYFAkF/LBgACgkQquPmzmahRGiFKA//fkXV +fkSyx/Ft30SvBmByA+6H9+sy5GXOgQe2dC0zBPTww0UX8/0lJ4k1Ei2KwcWW8kZu +hWm8thgRsCmZwtrw6WVV3URRh3JMX27xm4EhVKMvC+xqkCY5v7poMS0HFGvCfVk8 +RNxMJQMN0iLKKOaU0/1rMTzNnqA+Cif0laeBoGNKNF9OD69vfEaf/3U3t2SEiDQY +VjqVuqU0+XVv4jXBnlwtY1XY67OWyIcLn60IkbAAVfsSW5s6foFaBfXDtMvXWelR +gvSn1LQ7/QVolUS7wLgbkqoaQkJQhEM8rI10fBACMIMhKmJ/1DvpXZkUG1pSMNRH +smn0T8GMZG9nL13yOfahbhJrmBsY6vHyU/m+6+KIOd02i/jMPOPJ3pPQvlQ90K7p +0ZephIPJtYYHlVM5RXCwazXsm5rlNB5LrUY1Cje++VdbxlkvHN59CInKFkYBEWDm +hfSdzUEwqPYdgrart/xey7Y+w8SAkcbd65ef9pKI8WTB5UwkrgUyFUg8Q9pv/my4 +D29HexTQoWXip5Jg6ohACzFkACr/qVLwWdHSKI3SKaH16P0T99B1Fep6t3hY6v9I +Eh71gl6Saca3ag5zw+XyJnt7ntLOYf/l625/MTFFWcT8Wc2mXZ9bOszfZNxYhoLF +xt4fs21jq4DyiAPsWml6caHYJkhAa9i57FjsYbWIRgQQEQIABgUCO9CTnwAKCRBV +lt0M6b9lPV0GAJsHzqlmk8CRTdG8//Ty5cSUTtCfmQCgh1DC9y9jdcqkdAl0ztgu +NHw47DKIRgQQEQIABgUCPB/kZQAKCRBudrHI8aOrvYRhAJ9/pPQ+0ztsbMg846Zv +IjTy+wcAdACfYq5t8HIDupDyzKs9Wnb61S+blbeIRgQQEQIABgUCPFF21QAKCRCh +UPwthaj3i/d9AKDuHK4d07k7T27iXNWG6EsdPoZZQACg6e5+mTFgZHFG9odW3gcn +tfazsc+JAEYEEBECAAYFAjxqpM0ACgkQu+iXKGr9suh4ogCcDqexb2yOkYbOIy7T +u5a8hhV+pI8AoKJwbmokFHTc/IqC68yBuaVoF9TDiQBGBBARAgAGBQI8aqUQAAoJ +ECGRgM3bQqYObkIAnit3UaYBa0kRSiZk8L0rkjXdpL33AJ4kccIPIHN/D3OWbXiL +rkNSmmaQH4kARgQQEQIABgUCPd0rHwAKCRBVkeLAZmTAeAXVAKDMuq+O1UGD4XcI +Ndva1TbgtTo6lwCdE8Aym++ehBmhI+8TYRy+yIRkbOmJAEYEEBECAAYFAj3g8L4A +CgkQMuwXWTCiHVWgTgCgx6iYyMaR2nsbkU2DaI7AUhfwDcEAniOSsZOIpFfyOSs/ +pPiXCpWlRXsviEYEEBECAAYFAj4r+n0ACgkQZjW2wN6IXdOJSwCfRv0IhvT1jMOA +yXJGN0xPZqkjUXIAn0TV92IVHMyRSCCfjPGUhZIOERx/iQBGBBARAgAGBQI+pFcN +AAoJEDGGzQRPCfBVnLQAn37Yfz7gDbt4iLiybCWRbyVmmYiXAKC5EUQ4qUkNrI23 +bBj+/57ppshFe4hGBBARAgAGBQJCK63nAAoJEOYbpIkV67mr6SgAoLf6RZAkMNg5 +BCi4WMRnn62O/S08AJkBjrIHgkaCM0BtDNMkZXd0dbwSwIhGBBARAgAGBQJDmISx +AAoJEFQUZr6xLcGb6p4AoIr8/C7/tVGYW5xewnXZ1TE+xuLlAJ4s/AO0jwfQfFJj +kxvE2hPKM3Zk94hGBBARAgAGBQJDmI2lAAoJEDebzld4aIv1//UAoNvPQ6cJDYz5 +YLrYwUL1qq6+P7WWAJ9EBXP5EWqKp5iRJcqtKqq6gNZUDYhGBBARAgAGBQJIP+Uc +AAoJEJ6pE3mBTTdrCM8AniNzwdK0egOyNW9YEVpKozeykQxpAJ97VliYhhnXCO24 +tKJAcnPRVmqdEohGBBIRAgAGBQJAWIbFAAoJEMiB3UdK56tHySkAn1dmTX67d5OP +JFW2633X0rQ9rswsAJ9g+XOCnaNUmG57GK+WmbExEpPDOIhGBBIRAgAGBQJAYtEk +AAoJECbcEWqoXz32tooAmwW+pG8Ctz4ENRRk1MnDrSTSK9XlAJ4yJUSa/4RCFF0H +E4KB0uD9RN7YcIhGBBMRAgAGBQI9DyzcAAoJEEq61lpJwpzCP+MAoMdNBnr7sjBq +H0op6s+4cLkfGyzQAJ92C1bBq+3q8n152E+fsf7t2PUubYhGBBMRAgAGBQI9pELy +AAoJEIvYLm8wuUtcMRMAn2qBlINeKeWKrkTMITDn3EcidWKwAJ9aEyBHy7UGTevr +9e4BUdmK/r1gk4hGBBMRAgAGBQI93RAXAAoJEFz9N/rMeMiTlLAAnjBVm8cqj672 +t7grsUZJ30Urgi+NAKDyJ2cDfXsLMUfpz2WcTrovxHwT8IhGBBMRAgAGBQI93REl +AAoJEEzETQAR34fp3HoAnA2860a7hYXqbR6s9au8ZSJYljYrAJ9uTk/NEGBCbMTg +kwDbFoUkee+AqYhGBBMRAgAGBQI+U5aSAAoJENjDuVLpGrm5wo0AnRROvia4b1ZO +EEJSV5alEC/ZnSQCAJ4nz4q0wi5eLXfV2dtwx+jz/V89RIhGBBMRAgAGBQI/egcl +AAoJEBhZ0B9ne6Hs3yQAn0+aZiFvTJhmqkqUNrarb2E9L4I2AJ9PGTSke5P6j9Kh +SmHh0eNdm4/bbIhGBBMRAgAGBQI/wcWSAAoJEDYVIteCq3vROGkAn0LCooDX1yq6 +Z81HxIknF5Ji1JMTAJwLlOYkw65hM6QuM7Se1QZdcscN/ohGBBMRAgAGBQJABH++ +AAoJEIHC9+viE7aSZ/sAnRzgSosC9+V6lgHIRfOQ1AWCutBjAJwJHHgIHbOq2xVK +HD5SLcmpEkWSCohGBBMRAgAGBQJAC1JDAAoJEGtw7Nldw/RzXnIAoP3Qq84Yd0pB +GY1S+iAghKLvsgx/AJ96bQF4+XyfkEgXanyvdXy9CHKQr4hGBBMRAgAGBQJA9TxX +AAoJEF5UgINlDViCb1gAoK+K2DOOgKERH3bdorIy/WIawhNPAJ9R4s/neXOT82fz ++9yv4SNk+xzsQohGBBMRAgAGBQJBWMVZAAoJEObKgOUdJeNX8/MAn2BzGi5+0awo +L9XdNbl/+RxO2CKkAJ9AhydDWW8sFVY2thmpIfIG6H4NEIhGBBMRAgAGBQJBjucc +AAoJEFuWgBDgT5qJeQwAn2/H2/w16IU7s8903nWqlxqSsog0AJ9sm96+wHrh7TgH +cQ+KlBia+nS+hIhJBDARAgAJBQI+DTRdAh0AAAoJEIvYLm8wuUtcnqgAn2kYIHE9 +tlar53PWKGdMd7LG++xcAJ9cTxMVNTvDED1wuA0zc3OEozNpSLQZTWFyayBDb3gg +PG1qY0ByZWRoYXQuY29tPokAlQMFEDnhofnurUz9SaVj2QEBJxcD/017e1bFJGNc +ISL2dIvINhnXnzHxL6B66exG+8+1pFkR8e/EvgEvXHMs2+AqDfUxkb1PNSoq/u/m +/VpJGEWoObuSkiwiqUYrmXcJGElUQyHMLDKSLQQhG4PkeSp0T2yX+Fk+5F3vIOdK +53jsD21zXqB5QD7TjCLSGkU+BiLuLGX6iQA/AwUQOspyeP1viMYh0KcbEQLMNwCg +qnAhaObs1O1xKJvNh571+5Ejw7QAniKjp8xzGwK6ZgwHJJy8XJrI6dieiQIVAwUQ +PqRYgs1j0d2E+SZPAQL6Cg//SJ5zFcNZwmpsqLNopZYa0/L4b3gRN0rsHMBD5BaB +GF7m05bS7LCZhTt9tNn5m1h0Az7a+NcGFAfKNpoKq1OTzCb2KH2JGYXri2upgoEb +ZS0OUr5ZR3HIwx3ku7wGl7pVVjXBpKXl85JnEXgoKOlm6uIwqpji2uQfpYX8MMio +z74sda/FBU9Tzi1zbsYu0WramkqKwwVWdGW7BxrBHYsO2Z242+M6VQHbekuT28cb +VIJ1Xd0vP/dF3fzQcibs6+W/LRSDyb5Z5UbbWLs0MlX2oEFkDQx5A6meEhB99jM9 +/WbHHifcatg59vHWnNPkkuAJTr7wpi6LPKJdtmkuYg8IGq6n7FjhhjCtAvwdgWeC ++PAjpkAzsGACj/u3TCSBt8pp0mifY0DReF6pLcUfZpmQSMwtu3ymCvsWkZ5qTdPd +mc26A9iWnTjpNWNN3l92YFvWrHbA423crDNBL3yH/OAGNdLGcJ/f1rW3xzt/oRZ6 +0Y5sVzt/jUIf1SgK4Sw56jH/XaoS65Il2Ll3eAG2O6ULCg08krEkTEUhpG8OKnmN +zrmyPuyc/8RqTmML2WmpyJmwyR6y1n4ruG1QDhuUqVeDbuvMjoUyVGQnxfOGMVyZ +0BrNs2/Y5uM0FPUHF6kTjPwuWranlBleVH+dRzMxo6d493LLYB2NGPKLSa6ezpfS +YLOJAJUDBRNAn3eRGwgMRScZrzUBAVimA/0ccmqUiNBWDF8AeNK6P/P6sFZ+54Fz +/WMyij3gJVpWIyxiVFxd98H13QpL0rJTsFAbHhWeOeAuTu7BtRGHwbXmB0Qhw3mm +7UwQwc1lixWvPTX2uIiiWfFvinxIwd+7VA7Lz9TCjFvLwp964Bq6GCXIyMSpmZfd +4ClAHr4csOGJxIkBFQMFE0Jf0DtFTRlUR0H/mQEBgDQH/2gLOGumxjRRASPT1DRI +xIZp5Fp1tABWgEvZj+exb+13uwOr3X/Lv3M0mo8JVlUVMXbsBVtMtq4kLj/Y0xim +htFdb7nv7xJwrO9A4q6Els46Zr6mh9eRBFl9AxGixAzhjTvrdfM/RDEateA2+RuI +YmmepkHnvvEYZ0C5q5pqvo/og5hxdvJHV05URXXxbF10NmK0K/aZ27xSv5A2MLFr +K7Xo0qn2pIO99+dH7tZBQAlJJ0u3U2IAEX6dW7OYR1p1cajhkJx+6I32bWixF/kU +3xflXk5UFKm6PVPMQPdIvSS5LnzUSN2iqgHqGllr4CxeTPP3IyJlBJ0jcYa9EP8G +wUSJAhwEEAECAAYFAkF/LAUACgkQquPmzmahRGhwHg/8CHAOtHqWKHhqXsWlkUPX +D8IXHdbUw/WRdw4ZXV4wK0pehrzzLFhLaLDd3NBnMe9LeH0F/YARg89Rn4f2bIxw +w+HprCFLcUgiomziQn/hSyAnwztc+r6p6qrEf4dLGMN1WXpx+6OeGLG51qMatbWD +kdtDjQ8PIWO5ifB6eb5oj+HiNoJ62d+exuto3AIylmrq+EvzCdVyqmsYHxjHhUER +AsRyzjxP9o9Kdv7KE+S3WCxTcdXdfatP1WAd5Du5WbJMUbX8u/B/458ap/l87Uxd +Y1nRXqVrwEhT/vrM1YPxymcf3vBbgjZTajsddVwDzRLRtmYq2vnBSinpDt6OdLkF +EHoizFdEf80wowDtBh/EG51NdF5c+SFLce3WNgHfgqYSe8vrJXhb9mHJpLw3zLZj +BiPbiS4xLsNWIGla8AUnhwZCgxxzTjKVZ6nRLp1IbvC40ZMhfGObWLCGH4wOt0tt +ex/EQet9ZUY8NTsy9ZSaJIEykIImXQYpUq1+l4BVNaB5+YdVbf6kIPz/CWgDKY9l +918dw2O/t5qpWB+NmyqQH6/jEelwOaaUhvu07X86Uw0GZKKTVunkzB00j6I2MEIB +YjlSIanFPfflxKZC2+7dFh4qfUMgGfb+JOSBqBdHuPtksBna8K28CI3h7/Acb2+9 +RIRbn6/GZyd6yj4XPp3TR6uIRgQQEQIABgUCO8wKigAKCRChUPwthaj3i4gqAKC6 +7ZkCrpAZWQKPJdwTw6zn6GsyVwCfQyoy5lGIuGBu0je6You3NEakk36IRgQQEQIA +BgUCO9CTnwAKCRBVlt0M6b9lPaepAJ95aOucDKsv12xvkYHiZa0EJNL+bQCfXsy1 +VOaFbX5x+ibwGRb4vLLnUYaIRgQQEQIABgUCPB/kZgAKCRBudrHI8aOrvZfSAJ9n +Um/M6Ou0o4uDyNKOL351kFsnmACgw9lilXurgbdtBaAZ48jLqZfpwxOJAEYEEBEC +AAYFAjxqpM0ACgkQu+iXKGr9sujtBwCg31cMbdi4Ss+TTJEv67WyP3QhESEAnjHw +1kOrI07bSP408fAEqueiGTeZiQBGBBARAgAGBQI8aqUQAAoJECGRgM3bQqYOd7gA +njjBoLwHHHraqbH0WwmWjbUxaD4XAJ93AQPTJjb6QIqCsPdVBVK41zu9IYkARgQQ +EQIABgUCPd0rFAAKCRBVkeLAZmTAeO8UAKDIqfxLevuzssGdhFEba0NPtU0NNgCg +poqPDTAvdGsf4ZIO9aOeMbzertOJAEYEEBECAAYFAj3g8MUACgkQMuwXWTCiHVVB +BQCfetJylp/yjm8BQo5Sa0SBe2Xu1tsAn37Q+GA59Ayb/apg2B57n+0wWQICiEYE +EBECAAYFAj4r+n0ACgkQZjW2wN6IXdPS4ACcD2SWANWId+IS+gxm8+jtgoxYDyIA +oLpoGnL5yrUX9V5lb5dTiQLBW7mQiQBGBBARAgAGBQI+pFcNAAoJEDGGzQRPCfBV +KN4AnikRahLcHkIHIaU4rRxjNy3BQjVlAKDJ/eUong1iNx8DJ76WIRp7MtVjBYhG +BBARAgAGBQJCK63iAAoJEOYbpIkV67mr/xcAniZFpL6HbGWe0VUYvnLanDIBgR95 +AJ9x5Dm+bCcIUkfqxi7ZpBkrwXtaaYhGBBARAgAGBQJDmISvAAoJEFQUZr6xLcGb +1UsAmQEEssiSDbFtiWQu0OM+rl0ztsmnAJ4kY2ondUEZWsdct3QS8ZE0hpLBSIhG +BBARAgAGBQJDmI2YAAoJEDebzld4aIv1ye4AnAg8HsS7zwUF+TZUgeF/442ACHmA +AJsEV9gKLJeLtiPiJN2+ikcd81845IhGBBARAgAGBQJIP+UWAAoJEJ6pE3mBTTdr +zT8An3yF7p8M592smPGc384BBPRFaf8wAJ0c8/HwopOQw8MgGs4aEfGe0d/3CYhG +BBIRAgAGBQJAWIbFAAoJEMiB3UdK56tHLKEAn1wokVVNh7P8J/+NDQD70rHwWm23 +AKCfPxSRh2PytUAg2WKBmsva4xPTQ4hGBBIRAgAGBQJAYtEeAAoJECbcEWqoXz32 +UBIAn07wew+6lzSTaeX3ZR4/x2oLFoCxAJ4uLgHVuC4JifULAHE0fmZnl/iuHIhG +BBMRAgAGBQI9DyzdAAoJEEq61lpJwpzC6T8An2TMEEKSqg5gbrA4qvFSYt2K+L2Y +AJwLn+ijrxMydaKSlxY1k3xJVUNdGYhGBBMRAgAGBQI9pELyAAoJEIvYLm8wuUtc +2CkAoJ28MIz2gmDGXQgk09DwLtT3ueF0AKCi2E5JRcmmGpMBJwkc7ZdDzs0/I4hG +BBMRAgAGBQI93RElAAoJEEzETQAR34fpwH4AnR7/FFpwfa9JvI2KGKlTUheKuZDu +AJ43qmr+w2y+NseyMqCdSsyWCETfFYhGBBMRAgAGBQI+U5aSAAoJENjDuVLpGrm5 +cVYAmwVR1P1T8R+iVKS2rpgZ9qfZ6JbRAJ46neZUV8300hVOsNbHF0LAdAVRVohG +BBMRAgAGBQI+02l5AAoJELe3RcLFV1VCLjgAn2/Zf5VI/cYJhxK+oedWkilvxfGF +AKCCG/BqSo2m2wmj3kWLh0ExAbPT0ohGBBMRAgAGBQI/egcdAAoJEBhZ0B9ne6Hs +R58AoICX/kZv7fIgkL9cwb2KXszHR/0aAJ0foJT25uZSv+3vfqVr6MKx1VctGohG +BBMRAgAGBQI/wcWPAAoJEDYVIteCq3vRQywAn1X65SzANKEQS0Rw+kQUPDNLCVXB +AKDObzsyYC++VungE1WYoiW6XplXPIhGBBMRAgAGBQJABH+2AAoJEIHC9+viE7aS +aBkAnjiMq5SsQWE1TFCkRhMDu3sLukdSAKCFhl2WBiOhZ8nhlZglIgYwRMo+LYhG +BBMRAgAGBQJAC1I7AAoJEGtw7Nldw/RzC+4An1jgbx5Td3XjH84CgJafCoGmqUIk +AKCphv6vi5DuEG8iy7H4bnUD+VJqt4hGBBMRAgAGBQJA9TxUAAoJEF5UgINlDViC +GE8AoL9TKZFL9L+hF0i86Oovm9dkzjKyAJ9xsCZ2nnIn2cYoFcf7nUCQgLM0rohG +BBMRAgAGBQJBWMVWAAoJEObKgOUdJeNXxDMAnRZlZgT4gORKzP6eGASoOVdmY6aO +AJ9xoDnTO6cKtWjwYTitFbszTOD7xYhGBBMRAgAGBQJBjucXAAoJEFuWgBDgT5qJ +/uAAn3fzRuRD0CyOmC7FlhvjEtyEM3a+AKCUl1Sm1qWIvc+chF9zRcnW3TuxlYhJ +BDARAgAJBQI+DTRdAh0AAAoJEIvYLm8wuUtce+wAoKnnM7ZQlnk6Jt9nt4cttNHo +UrreAJ9zaKwZWP2exTw20WO2hn3DqQQAbrQnVGhhd3RlIEZyZWVtYWlsIE1lbWJl +ciA8bWFya0B1a3dlYi5jb20+iQCVAwUQNGFfj5dgIMVmPTs/AQH1SQP+Ps74i6sE +/HubCUY4Ww8dseRWarz+FJyFDe7rttHTEBjESFsaIbb22UFYIt/jSS3HXpi11v72 +9VNgBl2oNzboiP6Pe4F4kNMN/0y/maENtRQz1spfxNdT2RY3YQ5P7boNNm+GNH84 +vLc8gpDvlxh52he8lu3JRVIizxJ9nZrUVgqJAEYEEBECAAYFAj3dKukACgkQVZHi +wGZkwHik2ACgkYCcgp4vbyZejRyqhHylEr06aV8An22CfdklGu38/U9tbXA2C+nY +3VrjtgAAABdNYXJrIENveCA8bWFya0Bhd2UuY29tPokAlQMFEDQvYTHurUz9SaVj +2QEB/hMD/ix6pAa+4ZgFQNRAc7fC+I4uGWvXoI8N8wtgiJi//8Kc1vjtvTylLPKV +BDsy1ihsbVOjD3NUEkH95TNI3QhVeCwJPl2e3GgFl253hj8Jai9snHj75pXjQXq0 +NxQ/JRSrEAqrFM7+yRLPs7zDwsMoc2Ox5emq4joVa3syZUEwW7LxiQEVAwUQNLEL +tdZUWxzPwQD1AQFWIQf/RtyM8Rw01RdQXH5fA2jLaQlwD/VG1dlxqAcLKVQIKR77 +iBPdfcrWLyexGgQmltuVTGs5U1XPf7dff21NP79aglvD9hll82L5wZQybNpy2o6/ +66EPp4OWF1/WG7JhuCRfy53H983ERZnqGD4YeBafLHI9oGAixZ9G/+cFsxPde3Lv +7Ij/1HwpeNAHJQibBkpdq29Kye/+PHgE0HTMSapYXN/YVTCpEFzE46YnD/BjzZ/E +1UClvcsWZVoqPR46HARVQNu+MfoR/WSBAOj65Dt5oBZTcLoQ7TyDcd4gvLhdzLUo ++kboGTjtHLvesaAWKLSWtKY6G8Iy7R5+Ms0helLFaIg/AwUQNNhrm1F+HqlP3KvB +EQIFGwCgjvdd8FwQqogX0AU+RepKEWUUb20An3yfmNeIxRMfnHwnQyFI4w9JeP3Y +iD8DBRA6ynJX/W+IxiHQpxsRAjd/AKCSXqSmTnrzlnpgYwMESQiKQxfOywCeNuUy +0q65a+C/ayC7t6F6ih9+bcWIRgQQEQIABgUCOG/pBQAKCRAXWVXOQ77mqABMAKCg +O+LVARom7t/XmRw4w4TO9IkM9gCgh2URPU7tqECsr+WuVfC/v/7evVWIRgQQEQIA +BgUCOjcVtAAKCRDe3YS5RDds3Dz/AJ9UaB2vKuteTC+gm80f028DPbmCegCg3ZM1 +Rt2WMDS/wHW7nQJ/xnyg8PuIRgQQEQIABgUCO8wKhAAKCRChUPwthaj3i+wvAJ0a ++3dLzfhNVttfF4yLRaJy8ONqkwCeMVKz7Enbos1EJzrs3UfMdseMhMiIRgQQEQIA +BgUCO9CTnAAKCRBVlt0M6b9lPSdNAJ92qffxJFFh4gbf4sg+oF04Ovf0nACaA4fb +83aGMDZn/hAw6OtDiAiCkA+2AAAAGU1hcmsgQ294IDxtamNAYXBhY2hlLm9yZz6J +AJUDBRA54aHP7q1M/UmlY9kBASf1BACwKxBv5osTZpJIiKsdim/P2LHOtU91Ne8k +xTdr78Q86cHSz8V0ExA/FWKkOPgEHAIncXItNH0t3pGtUbAcYuT830Y7OJgLZdEW +szQcbsp72nlK0ceZ6SFRE/ouDlcnyaiou28l4JGlttqi08yO6LcX3sQD8wDaQhoU +oCe9wg/eaog/AwUQOspycv1viMYh0KcbEQIywwCg8ZGLF8wA0B3ArQ7AWNrIwfQZ +XQ8AniQ/tTGVHcORT/nBM5l0Yv/NFEcmiQCVAwUQOstTJRsIDEUnGa81AQHdeAP/ +Yz1flyCqMi2bi8f0KOQAQ699iHQqMNPL39YDSZUNxe9X1FkYwydaZIqDXINmngDy +VYRCSTpXFkQzBbU9O2wWU4DIRBPZCJFC1Lq0VOPxf1pnprQ95gXk/JLbSG8nNhel +uiCR6YEW1QOax9dOhKg7pTPUTep5NhggwHTWkiZe92mIRgQQEQIABgUCO9CTnwAK +CRBVlt0M6b9lPV0GAJsHzqlmk8CRTdG8//Ty5cSUTtCfmQCgh1DC9y9jdcqkdAl0 +ztguNHw47DK2AAAAGU1hcmsgQ294IDxtamNAcmVkaGF0LmNvbT6JAJUDBRA54aH5 +7q1M/UmlY9kBAScXA/9Ne3tWxSRjXCEi9nSLyDYZ158x8S+geunsRvvPtaRZEfHv +xL4BL1xzLNvgKg31MZG9TzUqKv7v5v1aSRhFqDm7kpIsIqlGK5l3CRhJVEMhzCwy +ki0EIRuD5HkqdE9sl/hZPuRd7yDnSud47A9tc16geUA+04wi0hpFPgYi7ixl+og/ +AwUQOspyeP1viMYh0KcbEQLMNwCgqnAhaObs1O1xKJvNh571+5Ejw7QAniKjp8xz +GwK6ZgwHJJy8XJrI6dieiEYEEBECAAYFAjvMCooACgkQoVD8LYWo94uIKgCguu2Z +Aq6QGVkCjyXcE8Os5+hrMlcAn0MqMuZRiLhgbtI3umKLtzRGpJN+iEYEEBECAAYF +AjvQk58ACgkQVZbdDOm/ZT2nqQCfeWjrnAyrL9dsb5GB4mWtBCTS/m0An17MtVTm +hW1+cfom8BkW+Lyy51GG +=r/SQ -----END PGP PUBLIC KEY BLOCK----- EOGPG -gpg --verify $SRC_DIR/$SRC.asc $SRC_DIR/$SRC || echo WARNING: Could not check signature or WRONG signature found. -sleep 3 +gpg --verify $SRC_DIR/$SRC.asc $SRC_DIR/$SRC || exit $ERROR_GPG if [ "$ARCH" == "x86_64" ]; then LIBDIR=/usr/lib64 @@ -241,21 +581,22 @@ relink() { } cd $TMP -tar xvf$tarflag $SRC_DIR/$SRC +rm -rf $PKG1 $PKG2 openssl-$VERSION || exit 1 +tar xvf $SRC_DIR/$SRC || exit $ERROR_TAR cd openssl-$VERSION -# Use .so.0, not .so.0.9.7: -zcat $CWD/openssl.soname.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit +# Use .so.0, not .so.0.9.8: +zcat $CWD/openssl.soname.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit $ERROR_PATCH # Fix CAN-2005-2969 (SSL 2.0 rollback bug): for vulnerable in 0.9.7g 0.9.7f 0.9.7e 0.9.7d 0.9.7c 0.9.7b 0.9.7a 0.9.7 0.9.8; do if [ "$VERSION" == "$vulnerable" ]; then - zcat $CWD/patch-CAN-2005-2969.diff.gz | patch -p0 --backup --verbose --suffix=.orig || exit + zcat $CWD/patch-CAN-2005-2969.diff.gz | patch -p0 --backup --verbose --suffix=.orig || exit $ERROR_PATCH fi done if [ "$ARCH" = "i486" ]; then # Build with -march=i486 -mcpu=i686: - zcat $CWD/openssl.optsx86.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit + zcat $CWD/openssl.optsx86.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit $ERROR_PATCH fi chown -R root.root . mkdir -p $PKG1/usr/doc/openssl-$VERSION @@ -268,9 +609,20 @@ find $PKG1/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \; # MDC-2: 4,908,861 13/03/2007, not included. # IDEA: 5,214,703 25/05/2010, not included. # RC5: 5,724,428 03/03/2015, not included. -./config --prefix=/usr --openssldir=/etc/ssl no-mdc2 no-idea no-rc5 shared -make -j4 -make install INSTALL_PREFIX=$PKG1 +./config --prefix=/usr --openssldir=/etc/ssl no-mdc2 no-idea no-rc5 shared || exit $ERROR_CONF + +make depend || exit $ERROR_MAKE + +# Use -j1 here if you know what's good for you. +make || exit $ERROR_MAKE + +make install INSTALL_PREFIX=$PKG1 || exit $ERROR_INSTALL + +# Add a cron script to warn root if a certificate is going to expire soon: +mkdir -p $PKG1/etc/cron.daily +zcat $CWD/certwatch.gz > $PKG1/etc/cron.daily/certwatch.new +chmod 755 $PKG1/etc/cron.daily/certwatch.new + mv $PKG1/etc/ssl/openssl.cnf $PKG1/etc/ssl/openssl.cnf.new if [ "$ARCH" == "x86_64" ]; then @@ -299,9 +651,9 @@ done cd $PKG1 chmod 755 usr/lib/pkgconfig mkdir -p install -zcat $CWD/doinst.sh.gz > install/doinst.sh +zcat $CWD/doinst.sh-openssl.gz > install/doinst.sh cat $CWD/slack-desc.openssl > install/slack-desc -makepkg -l y -c n $REPOS/${NAME1}.tgz +makepkg -l y -c n $REPOS/${NAME1}.tgz || exit $ERROR_MKPKG # Make runtime package: @@ -326,9 +678,9 @@ find $PKG2/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \; find $PKG2/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \; cd $PKG2 mkdir -p install -zcat $CWD/doinst.sh.gz > install/doinst.sh +zcat $CWD/doinst.sh-openssl-solibs.gz > install/doinst.sh cat $CWD/slack-desc.openssl-solibs > install/slack-desc -makepkg -l y -c n $REPOS/${NAME2}.tgz +makepkg -l y -c n $REPOS/${NAME2}.tgz || exit $ERROR_MKPKG if [ "$CLEANUP" == "yes" ]; then rm -rf $TMP diff --git a/patches/openssl/openssl.soname.diff.gz b/patches/openssl/openssl.soname.diff.gz index c45092b0..c02ce5e1 100644 Binary files a/patches/openssl/openssl.soname.diff.gz and b/patches/openssl/openssl.soname.diff.gz differ diff --git a/patches/pcre/pcre.SlackBuild b/patches/pcre/pcre.SlackBuild new file mode 100755 index 00000000..e1415131 --- /dev/null +++ b/patches/pcre/pcre.SlackBuild @@ -0,0 +1,197 @@ +#!/bin/bash +# +# pcre.SlackBuild is free software; you can redistribute +# it and/or modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the License, +# or any later version. +# +# pcre.SlackBuild is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +# +# slackbuild for pcre, by Silvio Rhatto +# requires: +# tested: pcre-7.7 +# + +# Look for slackbuildrc +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + +# Set variables +CWD="$(pwd)" +SRC_NAME="pcre" +PKG_NAME="pcre" +ARCH=${ARCH:=i486} +SRC_VERSION=${VERSION:=7.7} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1rha} +SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME +TMP=${TMP:=/tmp} +PKG=${PKG:=$TMP/package-$PKG_NAME} +REPOS=${REPOS:=$TMP} +PREFIX=${PREFIX:=/usr} +PKG_WORK="$TMP/$SRC_NAME" +CONF_OPTIONS=${CONF_OPTIONS:="--enable-utf8 --mandir=/usr/man"} +NUMJOBS=${NUMJOBS:=""} + +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIR="$PREFIX/lib64" + LDFLAGS="-L/lib64 -L/usr/lib64" +fi + +# Set error codes (used by createpkg) +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 + +# Clean up any leftovers of previous builds +rm -rf "$PKG_WORK" 2> /dev/null +rm -rf "$PKG" 2> /dev/null + +# Create directories if necessary +mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR +mkdir -p "$PKG" || exit $ERROR_MKDIR +mkdir -p "$REPOS" || exit $ERROR_MKDIR +mkdir -p "$PKG_WORK" || exit $ERROR_MKDIR + +# Dowload source if necessary +SRC="$SRC_NAME-$VERSION.tar.bz2" +URL="http://downloads.sourceforge.net/pcre/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! bunzip2 -t "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi + +# Import minimized signing key from +if echo [[SIGNING KEY URL]] | grep -q -v "SIGNING KEY URL"; then + lynx -dump [[SIGNING KEY URL]] | gpg --import || exit $ERROR_GPG +elif echo FB0F43D8 | grep -q -v "SIGNING KEY ID"; then + gpg --recv-keys FB0F43D8 || exit $ERROR_GPG +else + gpg --import << EOKEY || exit $ERROR_GPG +[[SIGNING KEY]] +EOKEY +fi + +# Download source's signature if necessary and check it +if echo [[SIGNING URL]] | grep -q -v "SIGNING URL"; then + SIGNATURE="`basename [[SIGNING URL]]`" + if [ ! -s "$SRC_DIR/$SIGNATURE" ]; then + wget "[[SIGNING URL]]" -O "$SRC_DIR/$SIGNATURE" || exit $ERROR_WGET + fi +else + if [ -s "$SRC_DIR/$SRC.sig" ]; then + SIGNATURE="$SRC.sig" + elif [ -s "$SRC_DIR/$SRC.asc" ]; then + SIGNATURE="$SRC.asc" + else + echo Trying to get signature file from $URL.sig... + if wget "$URL.sig" -O "$SRC_DIR/$SRC.sig"; then + SIGNATURE="$SRC.sig" + else + rm $SRC_DIR/$SRC.sig + echo Trying to get signature file from $URL.asc... + if wget "$URL.asc" -O "$SRC_DIR/$SRC.asc"; then + SIGNATURE="$SRC.asc" + else + rm $SRC_DIR/$SRC.asc + echo "Error getting source's signature file" + exit $ERROR_GPG + fi + fi + fi +fi + +echo Checking $SRC_DIR/$SRC with gpg using $SRC_DIR/$SIGNATURE... +gpg --verify "$SRC_DIR/$SIGNATURE" "$SRC_DIR/$SRC" || exit $ERROR_GPG +echo Success. + +# Untar +cd "$PKG_WORK" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +PKG_SRC="$PWD/`ls -l | awk '/^d/ { print $NF }'`" +cd "$PKG_SRC" + +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" $CONF_OPTIONS || exit $ERROR_CONF + +# Compile +make $NUMJOBS || exit $ERROR_MAKE + +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL + +# Strip binaries +( cd "$PKG" + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Install documentation +DOCS="AUTHORS COPYING INSTALL LICENCE NEWS NON-UNIX-USE README" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +for doc in $DOCS; do + if [ -f "$doc" ]; then + cp -a $doc "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" + fi +done + +# Add package description (slack-desc) +mkdir -p "$PKG/install" || exit $ERROR_MKDIR +cat << EODESC > "$PKG/install/slack-desc" +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler---------------------------------------------------------| +pcre: pcre (Perl-compatible regular expression library) +pcre: +pcre: The PCRE library is a set of functions that implement regular +pcre: expression pattern matching using the same syntax and semantics as +pcre: Perl 5, with just a few differences (documented in the man page). +pcre: +pcre: The PCRE library is used by KDE's Konqueror browser. +pcre: +pcre: +pcre: +pcre: +EODESC + +# Build the package +cd "$PKG" +makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG + +# Delete source and build directories if requested +if [ "$CLEANUP" == "yes" ]; then + rm -rf "$PKG_WORK" "$PKG" +fi diff --git a/patches/php/php.SlackBuild b/patches/php/php.SlackBuild index 4240d7a1..4cf904f0 100755 --- a/patches/php/php.SlackBuild +++ b/patches/php/php.SlackBuild @@ -26,18 +26,31 @@ # Changed by rhatto at riseup.net to fit slack.sarava.org needs # -# needs a function from simplepkg, but slightly changed +# needs a function from simplepkg function default_version { # get version from /etc/slackware-version - if [ -f "$1/etc/slackware-version" ]; then # TODO: this changes :/ - cat $1/etc/slackware-version | awk '{ print $2 }' | sed -e 's/.0$//' | tr -d . + if [ -f "$1/etc/slackware-version" ]; then + cat $1/etc/slackware-version | awk '{ print $2 }' | sed -e 's/.0$//' + elif [ -f "$1/etc/slamd64-version" ]; then + cat $1/etc/slamd64-version | awk '{ print $2 }' | sed -e 's/.0$//' + elif [ -f "$1/etc/bluewhite64-version" ]; then + cat $1/etc/bluewhite64-version | awk '{ print $2 }' | sed -e 's/.0$//' + elif [ -f "$1/etc/sflack-version" ]; then + cat $1/etc/sflack-version | awk '{ print $2 }' | sed -e 's/.0$//' else - echo "none" + aaa_base="`basename $(ls $1/var/log/packages/aaa_base-[0-9]* 2> /dev/null)`" + echo `package_version $aaa_base` fi } +function distro_version { + + default_version | tr -d . + +} + if [ -s "slack-required" ]; then echo Recomended and required packages for building php are: cat slack-required | sed -e 's/^/\t/' @@ -60,7 +73,7 @@ fi PACKAGE="php" PHP_SERIES=${PHP_SERIES:=5} -VERSION=${VERSION:=5.2.5} +VERSION=${VERSION:=5.2.6} PINE=${PINE:=4.64} ARCH=${ARCH:=i486} BUILD=${BUILD:=1rha} @@ -81,15 +94,15 @@ SRC="$PACKAGE-$VERSION.tar.bz2" URL="http://br.php.net/distributions/$SRC" # pear modules -DB="DB-1.7.11.tgz" +DB="DB-1.7.13.tgz" HTTP="HTTP-1.4.0.tgz" MAIL="Mail-1.1.14.tgz" -SMTP="Net_SMTP-1.2.10.tgz" -SOCKET="Net_Socket-1.0.8.tgz" +SMTP="Net_SMTP-1.3.1.tgz" +SOCKET="Net_Socket-1.0.9.tgz" PARSER="XML_Parser-1.2.8.tgz" RPC="XML_RPC-1.5.1.tgz" TAR="Archive_Tar-1.3.2.tgz" -GETOPT="Console_Getopt-1.2.2.tgz" +GETOPT="Console_Getopt-1.2.3.tgz" TEMPLATE="HTML_Template_IT-1.2.1.tgz" PEAR="http://pear.php.net/get" @@ -177,7 +190,7 @@ mkdir -p $TMP cd $TMP # changed since slackware 12.0 -if (( `default_version` >= 120 )); then +if (( `distro_version` >= 120 )); then mkdir -p $PKG/etc/httpd mkdir -p $PKG/etc/php # A trick from DaMouse to enable building php into $PKG. @@ -277,7 +290,7 @@ php_configure() { if [ "$PHP_SERIES" == "5" ]; then - if (( `default_version` >= 120 )); then + if (( `distro_version` >= 120 )); then $CONFIG_FILES="--with-config-file-scan-dir=/etc/php --with-config-file-path=/etc/httpd" $SNMP="--with-snmp=shared,/usr" $MBSTRING="--enable-mbstring=shared" @@ -451,7 +464,7 @@ php_configure() { # Make the Apache module version of PHP: echo "***START APACHE MODULE***" -if (( `default_version` >= 120 )); then +if (( `distro_version` >= 120 )); then php_configure --with-apxs2=/usr/sbin/apxs || exit $ERROR_CONF else php_configure --disable-static --with-apxs=/usr/sbin/apxs --enable-discard-path || exit $ERROR_CONF @@ -540,7 +553,7 @@ mkdir -p $PKG/etc/apache cp -a php.ini-dist php.ini-recommended $PKG/etc/apache if [ "$PHP_SERIES" == "5" ]; then - if (( `default_version` >= 120 )); then + if (( `distro_version` >= 120 )); then cp -a $CWD/mod_php$PHP_SERIES-apache2.conf.example $PKG/etc/apache/mod_php.conf.example else cp -a $CWD/mod_php$PHP_SERIES-apache1.3.conf.example $PKG/etc/apache/mod_php.conf.example @@ -555,7 +568,7 @@ chown root:root $PKG/etc/apache/* # This can go now. rm -f $PKG/etc/apache/httpd* -if (( `default_version` >= 120 )); then +if (( `distro_version` >= 120 )); then # Session directory for PHP: mkdir -p $PKG/var/lib/php chmod 770 $PKG/var/lib/php -- cgit v1.2.3