aboutsummaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rw-r--r--patches/glib2/glib2.SlackBuild153
-rwxr-xr-xpatches/gnutls/gnutls.SlackBuild197
-rwxr-xr-xpatches/libgcrypt/libgcrypt.SlackBuild197
-rwxr-xr-xpatches/libpng/libpng.SlackBuild10
-rwxr-xr-xpatches/libxml2/libxml2.SlackBuild153
-rwxr-xr-xpatches/libxslt/libxslt.SlackBuild153
-rw-r--r--patches/openssl/certwatch.gzbin0 -> 1727 bytes
-rw-r--r--patches/openssl/doinst.sh-openssl-solibs.gzbin0 -> 281 bytes
-rw-r--r--patches/openssl/doinst.sh-openssl.gzbin0 -> 336 bytes
-rwxr-xr-xpatches/openssl/openssl.SlackBuild678
-rw-r--r--patches/openssl/openssl.soname.diff.gzbin340 -> 283 bytes
-rwxr-xr-xpatches/pcre/pcre.SlackBuild197
-rwxr-xr-xpatches/php/php.SlackBuild41
13 files changed, 1593 insertions, 186 deletions
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
--- /dev/null
+++ b/patches/openssl/certwatch.gz
Binary files 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
--- /dev/null
+++ b/patches/openssl/doinst.sh-openssl-solibs.gz
Binary files differ
diff --git a/patches/openssl/doinst.sh-openssl.gz b/patches/openssl/doinst.sh-openssl.gz
new file mode 100644
index 00000000..aa74c81a
--- /dev/null
+++ b/patches/openssl/doinst.sh-openssl.gz
Binary files 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
+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
+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
--- a/patches/openssl/openssl.soname.diff.gz
+++ b/patches/openssl/openssl.soname.diff.gz
Binary files 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