slackware-current/source/n/wpa_supplicant/wpa_supplicant.SlackBuild
Patrick J Volkerding 48e09f463d Fri Sep 21 18:51:07 UTC 2018
a/eudev-3.2.6-x86_64-1.txz:  Upgraded.
a/glibc-solibs-2.28-x86_64-2.txz:  Upgraded.
a/grub-2.02-x86_64-3.txz:  Rebuilt.
  Patched to fix compatibility with recent xfsprogs. Thanks to Markus Wiesner.
a/kernel-generic-4.14.71-x86_64-1.txz:  Upgraded.
a/kernel-huge-4.14.71-x86_64-1.txz:  Upgraded.
a/kernel-modules-4.14.71-x86_64-1.txz:  Upgraded.
ap/opus-tools-0.2-x86_64-1.txz:  Upgraded.
ap/sqlite-3.25.1-x86_64-1.txz:  Upgraded.
d/icecream-20180905_cdc6ff8-x86_64-1.txz:  Upgraded.
d/kernel-headers-4.14.71-x86-1.txz:  Upgraded.
d/llvm-7.0.0-x86_64-1.txz:  Upgraded.
  Shared library .so-version bump.
k/kernel-source-4.14.71-noarch-1.txz:  Upgraded.
l/ffmpeg-3.4.4-x86_64-2.txz:  Rebuilt.
  Don't try to link with Samba since the latest version is not compatible.
l/glibc-2.28-x86_64-2.txz:  Upgraded.
  All packages have been patched where needed for glibc-2.28 and compile
  tested here. Thanks to nobodino for the help.
l/glibc-i18n-2.28-x86_64-2.txz:  Upgraded.
l/glibc-profile-2.28-x86_64-2.txz:  Upgraded.
l/gst-plugins-base-1.14.3-x86_64-1.txz:  Upgraded.
l/gst-plugins-good-1.14.3-x86_64-1.txz:  Upgraded.
l/gst-plugins-libav-1.14.3-x86_64-1.txz:  Upgraded.
l/gstreamer-1.14.3-x86_64-1.txz:  Upgraded.
l/imagemagick-6.9.10_11-x86_64-1.txz:  Upgraded.
l/libopusenc-0.2-x86_64-1.txz:  Added.
l/librsvg-2.44.3-x86_64-1.txz:  Upgraded.
l/opus-1.3_rc2-x86_64-1.txz:  Upgraded.
l/opusfile-0.11-x86_64-1.txz:  Upgraded.
l/soprano-2.9.4-x86_64-3.txz:  Rebuilt.
  Recompiled to drop virtuoso dependency.
l/virtuoso-ose-6.1.8-x86_64-9.txz:  Removed.
  Even KDE4 has migrated away from actually using this for anything. The last
  thing in Slackware that was dependent on it was Soprano, which has been
  recompiled to no longer use it.
n/postfix-3.3.1-x86_64-2.txz:  Rebuilt.
  Recompiled so that it quits whining about OpenSSL. Thanks to shastah.
x/mesa-18.2.1-x86_64-1.txz:  Upgraded.
  Compiled against llvm-7.0.0.
x/xf86-video-vmware-13.3.0-x86_64-2.txz:  Rebuilt.
  Recompiled against llvm-7.0.0.
x/xterm-336-x86_64-1.txz:  Upgraded.
extra/pure-alsa-system/ffmpeg-3.4.4-x86_64-2_alsa.txz:  Rebuilt.
  Don't try to link with Samba since the latest version is not compatible.
extra/pure-alsa-system/gst-plugins-good-1.14.3-x86_64-1_alsa.txz:  Upgraded.
isolinux/initrd.img:  Rebuilt.
kernels/*:  Upgraded.
usb-and-pxe-installers/usbboot.img:  Rebuilt.
2018-09-22 09:00:39 +02:00

194 lines
7.1 KiB
Bash
Executable file

#!/bin/bash
# Copyright 2004-2008 Eric Hameleers, Eindhoven, NL
# Copyright 2008-2018 Patrick J. Volkerding, Sebeka, MN, USA
# Permission to use, copy, modify, and distribute this software for
# any purpose with or without fee is hereby granted, provided that
# the above copyright notice and this permission notice appear in all
# copies.
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
# -----------------------------------------------------------------------------
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=wpa_supplicant
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-6}
SRCVERSION=$(printf $VERSION | tr _ -)
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
exit 0
fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
elif [ "$ARCH" = "arm" ]; then
SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "armel" ]; then
SLKCFLAGS="-O2 -march=armv4t"
LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf ${PKGNAM}-${SRCVERSION}
tar xvf $CWD/${PKGNAM}-${SRCVERSION}.tar.?z* || exit 1
cd ${PKGNAM}-${SRCVERSION}
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
zcat $CWD/2017-1/rebased-v2.6-0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch.gz | patch -p1 || exit 1
zcat $CWD/2017-1/rebased-v2.6-0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch.gz | patch -p1 || exit 1
zcat $CWD/2017-1/rebased-v2.6-0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch.gz | patch -p1 || exit 1
zcat $CWD/2017-1/rebased-v2.6-0004-Prevent-installation-of-an-all-zero-TK.patch.gz | patch -p1 || exit 1
zcat $CWD/2017-1/rebased-v2.6-0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch.gz | patch -p1 || exit 1
zcat $CWD/2017-1/rebased-v2.6-0006-TDLS-Reject-TPK-TK-reconfiguration.patch.gz | patch -p1 || exit 1
zcat $CWD/2017-1/rebased-v2.6-0007-WNM-Ignore-WNM-Sleep-Mode-Response-without-pending-r.patch.gz | patch -p1 || exit 1
zcat $CWD/2017-1/rebased-v2.6-0008-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch.gz | patch -p1 || exit 1
# Fixup various paths in the dbus service file
zcat $CWD/patches/dbus-service-file-args.diff.gz | patch -p1 --verbose || exit 1
# Eliminate some logspam
zcat $CWD/patches/quiet-scan-results-message.diff.gz | patch -p1 --verbose || exit 1
# Apply a few other patches from Fedora
zcat $CWD/patches/assoc-timeout.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/flush-debug-output.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/rh1451834-nl80211-Fix-race-condition-in-detecting-MAC-change.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/rh1497640-pae-validate-input-before-pointer.patch.gz | patch -p1 --verbose || exit 1
# Support OpenSSL-1.1.x:
zcat $CWD/patches/Fix-openssl-1-1-private-key-callback.patch.gz | patch -p1 --verbose || exit 1
cd wpa_supplicant
# Create the configuration file for building wpa_supplicant:
cat $CWD/config/dot.config > .config
# Build the usual binaries
CFLAGS="$SLKCFLAGS" \
make $NUMJOBS \
BINDIR=/usr/sbin \
LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1
# Build the Qt4 GUI client
CFLAGS="$SLKCFLAGS" \
make $NUMJOBS \
wpa_gui-qt4 \
BINDIR=/usr/sbin \
LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1
# Make sure man pages are built
make -C doc/docbook man
# This goes into the doc directory later on:
mv wpa_supplicant.conf wpa_supplicant.conf.sample
# Install binaries:
mkdir -p $PKG/usr/sbin $PKG/usr/bin
cp wpa_supplicant wpa_passphrase wpa_cli $PKG/usr/sbin/
cp wpa_gui-qt4/wpa_gui $PKG/usr/bin/
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
# Install dbus configuration file:
mkdir -p $PKG/etc/dbus-1/system.d/
cp dbus/dbus-wpa_supplicant.conf \
$PKG/etc/dbus-1/system.d/dbus-wpa_supplicant.conf
mkdir -p $PKG/usr/share/dbus-1/system-services
install -m644 dbus/*.service $PKG/usr/share/dbus-1/system-services/
# Install a .desktop file and icon for wpa_gui:
# (converted from the wpa_gui.svg in the source)
mkdir -p $PKG/usr/share/{applications,pixmaps}
cat $CWD/config/wpa_gui.desktop > $PKG/usr/share/applications/wpa_gui.desktop
cat $CWD/config/wpa_gui.png > $PKG/usr/share/pixmaps/wpa_gui.png
# Install a logrotate config
mkdir -p $PKG/etc/logrotate.d
cat $CWD/config/wpa_supplicant.logrotate > $PKG/etc/logrotate.d/wpa_supplicant.new
# Install man pages:
for m in 5 8; do
mkdir -p $PKG/usr/man/man${m}
cp doc/docbook/*.${m} $PKG/usr/man/man${m}/
done
find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
# Install a default configuration file (only readable by root):
mkdir -p $PKG/etc
cat $CWD/config/wpa_supplicant.conf > $PKG/etc/wpa_supplicant.conf.new
chmod 600 $PKG/etc/wpa_supplicant.conf.new
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
ChangeLog ../COPYING README README-{P2P,WPS} examples *.txt *.sample $CWD/README.slackware \
$PKG/usr/doc/$PKGNAM-$VERSION
chown -R root:root $PKG/usr/doc/$PKGNAM-$VERSION/*
chmod -R a-w $PKG/usr/doc/$PKGNAM-$VERSION/*
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
if [ -r ChangeLog ]; then
DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
zcat $CWD/doinst.sh.gz >> $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.txz