summaryrefslogtreecommitdiffstats
path: root/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'libraries')
-rw-r--r--libraries/Atlas-C++/Atlas-C++.SlackBuild2
-rw-r--r--libraries/CEGUI0.7/CEGUI0.7.SlackBuild2
-rw-r--r--libraries/FreeImage/FreeImage.SlackBuild5
-rw-r--r--libraries/PyQt5/PyQt5.SlackBuild4
-rw-r--r--libraries/PyQt5/PyQt5.info2
-rw-r--r--libraries/SDL2/README7
-rw-r--r--libraries/SDL2/SDL2.SlackBuild93
-rw-r--r--libraries/SDL2/SDL2.info10
-rw-r--r--libraries/SDL2/slack-desc19
-rw-r--r--libraries/SDL2_image/README4
-rw-r--r--libraries/SDL2_image/SDL2_image.SlackBuild99
-rw-r--r--libraries/SDL2_image/SDL2_image.info10
-rw-r--r--libraries/SDL2_image/slack-desc19
-rw-r--r--libraries/SDL2_mixer/README11
-rw-r--r--libraries/SDL2_mixer/SDL2_mixer.SlackBuild99
-rw-r--r--libraries/SDL2_mixer/SDL2_mixer.info10
-rw-r--r--libraries/SDL2_mixer/slack-desc19
-rw-r--r--libraries/SDL2_net/README3
-rw-r--r--libraries/SDL2_net/SDL2_net.SlackBuild100
-rw-r--r--libraries/SDL2_net/SDL2_net.info10
-rw-r--r--libraries/SDL2_net/slack-desc19
-rw-r--r--libraries/SDL2_ttf/README4
-rw-r--r--libraries/SDL2_ttf/SDL2_ttf.SlackBuild99
-rw-r--r--libraries/SDL2_ttf/SDL2_ttf.info10
-rw-r--r--libraries/SDL2_ttf/slack-desc19
-rw-r--r--libraries/SDL_sound/SDL_sound.SlackBuild1
-rw-r--r--libraries/SFGUI/SFGUI.SlackBuild6
-rw-r--r--libraries/SFGUI/SFGUI.info6
-rw-r--r--libraries/agg/agg.SlackBuild1
-rw-r--r--libraries/agg/patches/0016-bad-const.patch12
-rw-r--r--libraries/bamf/bamf.SlackBuild2
-rw-r--r--libraries/beignet/beignet.SlackBuild4
-rw-r--r--libraries/beignet/beignet.info6
-rw-r--r--libraries/beignet/llvm6.patch30
-rw-r--r--libraries/ccrtp/ccrtp.SlackBuild2
-rw-r--r--libraries/ccrtp/ccrtp.info6
-rw-r--r--libraries/cuneiform/cuneiform-gcc.patch98
-rw-r--r--libraries/cuneiform/cuneiform.SlackBuild12
-rw-r--r--libraries/efivar/README1
-rw-r--r--libraries/efivar/efivar.SlackBuild95
-rw-r--r--libraries/efivar/efivar.info10
-rw-r--r--libraries/efivar/slack-desc19
-rw-r--r--libraries/fuzzylite/fuzzylite.SlackBuild6
-rw-r--r--libraries/fuzzylite/fuzzylite.info6
-rw-r--r--libraries/gstreamer-editing-services/gstreamer-editing-services.SlackBuild2
-rw-r--r--libraries/gstreamer-editing-services/gstreamer-editing-services.info6
-rw-r--r--libraries/gstreamermm/fix_warnings.patch15
-rw-r--r--libraries/gstreamermm/gstreamermm.SlackBuild3
-rw-r--r--libraries/gtkglext/0002-GCC-8-fixes.patch34
-rw-r--r--libraries/gtkglext/gtkglext.SlackBuild2
-rw-r--r--libraries/hpx/gcc7.patch23
-rw-r--r--libraries/hpx/hpx.SlackBuild4
-rw-r--r--libraries/http-parser/http-parser.SlackBuild2
-rw-r--r--libraries/id3lib/README13
-rw-r--r--libraries/id3lib/id3lib.SlackBuild119
-rw-r--r--libraries/id3lib/id3lib.info10
-rw-r--r--libraries/id3lib/patches/id3lib-3.8.3-GCC43FIX-1.patch90
-rw-r--r--libraries/id3lib/patches/id3lib_3.8.3_UTF16_writing_bug.patch39
-rw-r--r--libraries/id3lib/patches/id3lib_Doxyfile.patch22
-rw-r--r--libraries/id3lib/slack-desc19
-rw-r--r--libraries/jansson/0001-Enable-Bsymbolic-functions-linker-flag-whenever-poss.patch76
-rw-r--r--libraries/jansson/README1
-rw-r--r--libraries/jansson/jansson.SlackBuild104
-rw-r--r--libraries/jansson/jansson.info10
-rw-r--r--libraries/jansson/slack-desc19
-rw-r--r--libraries/json-glib/README3
-rw-r--r--libraries/json-glib/json-glib.SlackBuild97
-rw-r--r--libraries/json-glib/json-glib.info10
-rw-r--r--libraries/json-glib/slack-desc19
-rw-r--r--libraries/lame/CVE-2017-15018.patch.gzbin307 -> 0 bytes
-rw-r--r--libraries/lame/README3
-rw-r--r--libraries/lame/lame.SlackBuild113
-rw-r--r--libraries/lame/lame.info10
-rw-r--r--libraries/lame/slack-desc19
-rw-r--r--libraries/libart-lgpl/README3
-rw-r--r--libraries/libart-lgpl/libart-lgpl.SlackBuild (renamed from libraries/libopusenc/libopusenc.SlackBuild)17
-rw-r--r--libraries/libart-lgpl/libart-lgpl.info10
-rw-r--r--libraries/libart-lgpl/slack-desc (renamed from libraries/libtxc_dxtn/slack-desc)23
-rw-r--r--libraries/libbluray/README15
-rw-r--r--libraries/libbluray/libbluray.SlackBuild111
-rw-r--r--libraries/libbluray/libbluray.info10
-rw-r--r--libraries/libbluray/slack-desc19
-rw-r--r--libraries/libc++/README5
-rw-r--r--libraries/libc++/libc++.SlackBuild130
-rw-r--r--libraries/libc++/libc++.info14
-rw-r--r--libraries/libc++/slack-desc19
-rw-r--r--libraries/libclaw/lib.patch11
-rw-r--r--libraries/libclaw/libclaw.SlackBuild6
-rw-r--r--libraries/libclaw/patches/01_libclaw-1.7.4-libdir.patch36
-rw-r--r--libraries/libclaw/patches/02_libclaw-1.7.4-gcc62.patch89
-rw-r--r--libraries/libclaw/patches/03_libclaw-1.7.4-gcc7.patch36
-rw-r--r--libraries/libdbus-c++/gcc47.patch10
-rw-r--r--libraries/libdbus-c++/libdbus-c++.SlackBuild22
-rw-r--r--libraries/libdbus-c++/libdbus-c++.info6
-rw-r--r--libraries/libdbus-c++/nested_variant_map.patch11
-rw-r--r--libraries/libdbus-c++/patches/libdbus-c++-gcc7.patch11
-rw-r--r--libraries/libdbus-c++/patches/libdbus-c++-glibmm-2.43.patch13
-rw-r--r--libraries/libdbus-c++/patches/libdbus-c++-nodocdatetime.patch25
-rw-r--r--libraries/libdbus-c++/patches/libdbus-c++-noreturn.patch21
-rw-r--r--libraries/libdbus-c++/patches/libdbus-c++-pthread.patch11
-rw-r--r--libraries/libdbus-c++/patches/libdbus-c++-sover.patch28
-rw-r--r--libraries/libedit/README11
-rw-r--r--libraries/libedit/libedit.SlackBuild105
-rw-r--r--libraries/libedit/libedit.info10
-rw-r--r--libraries/libedit/slack-desc19
-rw-r--r--libraries/libetpan/libetpan.SlackBuild4
-rw-r--r--libraries/libetpan/libetpan.info6
-rw-r--r--libraries/libevhtp/libevhtp.SlackBuild10
-rw-r--r--libraries/libevhtp/libevhtp.info6
-rw-r--r--libraries/libffado/libffado.SlackBuild23
-rw-r--r--libraries/libffado/libffado.info8
-rw-r--r--libraries/libgda/libgda.SlackBuild8
-rw-r--r--libraries/libgda/libgda.info2
-rw-r--r--libraries/libgexiv2/README3
-rw-r--r--libraries/libgexiv2/libgexiv2.SlackBuild95
-rw-r--r--libraries/libgexiv2/libgexiv2.info10
-rw-r--r--libraries/libgexiv2/slack-desc19
-rw-r--r--libraries/libgnome/libgnome.SlackBuild6
-rw-r--r--libraries/libgnome/libgnome.info2
-rw-r--r--libraries/libgnomecanvas/libgnomecanvas.info2
-rw-r--r--libraries/libgnomeui/libgnomeui.SlackBuild6
-rw-r--r--libraries/libidn2/README5
-rw-r--r--libraries/libidn2/libidn2.SlackBuild107
-rw-r--r--libraries/libidn2/libidn2.info10
-rw-r--r--libraries/libidn2/slack-desc19
-rw-r--r--libraries/libindicator3/libindicator3.SlackBuild2
-rw-r--r--libraries/libinput/README11
-rw-r--r--libraries/libinput/libinput.SlackBuild93
-rw-r--r--libraries/libinput/libinput.info10
-rw-r--r--libraries/libinput/slack-desc19
-rw-r--r--libraries/libircclient/libircclient.SlackBuild4
-rw-r--r--libraries/libkqueue/libkqueue.SlackBuild4
-rw-r--r--libraries/libkqueue/libkqueue.info6
-rw-r--r--libraries/libmemcached/libmemcached.SlackBuild2
-rw-r--r--libraries/libmp4v2/libmp4v2.SlackBuild2
-rw-r--r--libraries/libmusicbrainz/libmusicbrainz.SlackBuild2
-rw-r--r--libraries/libmwaw/libmwaw.SlackBuild2
-rw-r--r--libraries/liboauth/liboauth-1.0.3-openssl-1.1.0-2.patch147
-rw-r--r--libraries/liboauth/liboauth.SlackBuild3
-rw-r--r--libraries/libopusenc/README2
-rw-r--r--libraries/libopusenc/libopusenc.info10
-rw-r--r--libraries/libopusenc/slack-desc19
-rw-r--r--libraries/libpqxx/libpqxx.SlackBuild16
-rw-r--r--libraries/libpqxx/libpqxx.info8
-rw-r--r--libraries/libqinfinity/libqinfinity.SlackBuild2
-rw-r--r--libraries/libqxt/libqxt-gcc6.patch11
-rw-r--r--libraries/libqxt/libqxt.SlackBuild3
-rw-r--r--libraries/libsearpc/libsearpc.SlackBuild14
-rw-r--r--libraries/libsearpc/libsearpc.info4
-rw-r--r--libraries/libsidplayfp/libsidplayfp.SlackBuild8
-rw-r--r--libraries/libsidplayfp/libsidplayfp.info6
-rw-r--r--libraries/libsodium/README2
-rw-r--r--libraries/libsodium/libsodium.SlackBuild98
-rw-r--r--libraries/libsodium/libsodium.info10
-rw-r--r--libraries/libsodium/slack-desc19
-rw-r--r--libraries/libtorrent/libtorrent-openssl-1.1.patch105
-rw-r--r--libraries/libtorrent/libtorrent.SlackBuild4
-rw-r--r--libraries/libtxc_dxtn/README5
-rw-r--r--libraries/libtxc_dxtn/libtxc_dxtn.SlackBuild96
-rw-r--r--libraries/libtxc_dxtn/libtxc_dxtn.info10
-rw-r--r--libraries/libunwind/README9
-rw-r--r--libraries/libunwind/libunwind.SlackBuild104
-rw-r--r--libraries/libunwind/libunwind.info10
-rw-r--r--libraries/libunwind/slack-desc19
-rw-r--r--libraries/libvirt-python/libvirt-python.SlackBuild2
-rw-r--r--libraries/libvirt-python/libvirt-python.info6
-rw-r--r--libraries/libvirt/libvirt.SlackBuild2
-rw-r--r--libraries/libvirt/libvirt.info6
-rw-r--r--libraries/libwacom/README5
-rw-r--r--libraries/libwacom/libwacom.SlackBuild102
-rw-r--r--libraries/libwacom/libwacom.info10
-rw-r--r--libraries/libwacom/slack-desc19
-rw-r--r--libraries/libwebp/README18
-rw-r--r--libraries/libwebp/libwebp.SlackBuild99
-rw-r--r--libraries/libwebp/libwebp.info10
-rw-r--r--libraries/libwebp/slack-desc19
-rw-r--r--libraries/libwebsockets/libwebsockets.SlackBuild2
-rw-r--r--libraries/libwebsockets/libwebsockets.info6
-rw-r--r--libraries/libwps/libwps.SlackBuild2
-rw-r--r--libraries/libzdb/libzdb.SlackBuild1
-rw-r--r--libraries/libzrtpcpp/libzrtpcpp.SlackBuild4
-rw-r--r--libraries/libzrtpcpp/libzrtpcpp.info6
-rw-r--r--libraries/live555/live555.SlackBuild4
-rw-r--r--libraries/med/med.SlackBuild1
-rw-r--r--libraries/npth/README11
-rw-r--r--libraries/npth/npth.SlackBuild95
-rw-r--r--libraries/npth/npth.info10
-rw-r--r--libraries/npth/slack-desc19
-rw-r--r--libraries/ocl-icd/README19
-rw-r--r--libraries/ocl-icd/ocl-icd.SlackBuild109
-rw-r--r--libraries/ocl-icd/ocl-icd.info10
-rw-r--r--libraries/ocl-icd/slack-desc19
-rw-r--r--libraries/openbabel/openbabel.SlackBuild14
-rw-r--r--libraries/openbabel/openbabel.info6
-rw-r--r--libraries/pcre2/README2
-rw-r--r--libraries/pcre2/pcre2.SlackBuild103
-rw-r--r--libraries/pcre2/pcre2.info10
-rw-r--r--libraries/pcre2/slack-desc19
-rw-r--r--libraries/physfs/physfs.SlackBuild2
-rw-r--r--libraries/podofo/podofo.SlackBuild2
-rw-r--r--libraries/poppler-qt5/poppler-qt5.SlackBuild54
-rw-r--r--libraries/poppler-qt5/poppler-qt5.info6
-rw-r--r--libraries/ptlib/ptlib-2.10.10-mga-bison-parameter.patch39
-rw-r--r--libraries/ptlib/ptlib-2.10.11-bison_fixes-2.patch2951
-rw-r--r--libraries/ptlib/ptlib.SlackBuild3
-rw-r--r--libraries/python3-PyQt5/python3-PyQt5.SlackBuild4
-rw-r--r--libraries/python3-pillow/README8
-rw-r--r--libraries/python3-pillow/python3-pillow.SlackBuild107
-rw-r--r--libraries/python3-pillow/python3-pillow.info10
-rw-r--r--libraries/python3-pillow/slack-desc19
-rw-r--r--libraries/qt5-webkit/qt5-webkit.SlackBuild4
-rw-r--r--libraries/qt5-webkit/qt5-webkit.info6
-rw-r--r--libraries/qt5/patches/0001-QSslSocket-OpenSSL-1.1-backend.patch4238
-rw-r--r--libraries/qt5/patches/qtwebengine-5.9.6-gcc8.patch24
-rw-r--r--libraries/qt5/qt5.SlackBuild13
-rw-r--r--libraries/rapidjson/rapidjson.SlackBuild2
-rw-r--r--libraries/rudiments/rudiments.SlackBuild8
-rw-r--r--libraries/rudiments/rudiments.info6
-rw-r--r--libraries/sdformat/cmake.patch20
-rw-r--r--libraries/sdformat/sdformat.SlackBuild3
-rw-r--r--libraries/tls/tls.SlackBuild5
-rw-r--r--libraries/tls/tls.info6
-rw-r--r--libraries/totem-pl-parser/totem-pl-parser.SlackBuild42
-rw-r--r--libraries/totem-pl-parser/totem-pl-parser.info8
-rw-r--r--libraries/ucl/ucl.SlackBuild1
-rw-r--r--libraries/ucommon/ucommon.SlackBuild2
-rw-r--r--libraries/ucommon/ucommon.info6
-rw-r--r--libraries/vte2/README7
-rw-r--r--libraries/vte2/fix_meta_alt_keybinding.patch74
-rw-r--r--libraries/vte2/slack-desc (renamed from libraries/vte3/slack-desc)22
-rw-r--r--libraries/vte2/vte.escape.cpu.usage.diff89
-rw-r--r--libraries/vte2/vte2.SlackBuild (renamed from libraries/vte3/vte3.SlackBuild)26
-rw-r--r--libraries/vte2/vte2.info10
-rw-r--r--libraries/vte3/README7
-rw-r--r--libraries/vte3/vte3.info10
-rw-r--r--libraries/webkit2gtk/webkit2gtk.info2
-rw-r--r--libraries/webkitgtk3/webkitgtk3.SlackBuild4
-rw-r--r--libraries/wvstreams/patches/0001-Use-explicit-cast-and-prevent-compiler-error.patch50
-rw-r--r--libraries/wvstreams/patches/05_gcc.diff13
-rw-r--r--libraries/wvstreams/patches/openssl-buildfix.patch16
-rw-r--r--libraries/wvstreams/wvstreams.SlackBuild9
-rw-r--r--libraries/xf86-input-libinput/README20
-rw-r--r--libraries/xf86-input-libinput/slack-desc19
-rw-r--r--libraries/xf86-input-libinput/xf86-input-libinput.SlackBuild116
-rw-r--r--libraries/xf86-input-libinput/xf86-input-libinput.info10
-rw-r--r--libraries/xml-security-c/xml-security-c.SlackBuild3
-rw-r--r--libraries/xml-security-c/xmlsec-1.6.1-cxx11.patch11
-rw-r--r--libraries/xulrunner/README12
-rw-r--r--libraries/xulrunner/ftfntfmt.patch35
-rw-r--r--libraries/xulrunner/gold/gold2
-rw-r--r--libraries/xulrunner/gold/ld2
-rw-r--r--libraries/xulrunner/slack-desc19
-rw-r--r--libraries/xulrunner/xulrunner.SlackBuild162
-rw-r--r--libraries/xulrunner/xulrunner.info10
-rw-r--r--libraries/yaml-cpp/boost_patch.diff11
-rw-r--r--libraries/yaml-cpp/yaml-cpp.SlackBuild2
256 files changed, 8629 insertions, 4511 deletions
diff --git a/libraries/Atlas-C++/Atlas-C++.SlackBuild b/libraries/Atlas-C++/Atlas-C++.SlackBuild
index ebd6a108a4..0d55715acd 100644
--- a/libraries/Atlas-C++/Atlas-C++.SlackBuild
+++ b/libraries/Atlas-C++/Atlas-C++.SlackBuild
@@ -70,7 +70,7 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -Wno-error=deprecated" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/CEGUI0.7/CEGUI0.7.SlackBuild b/libraries/CEGUI0.7/CEGUI0.7.SlackBuild
index 30917134f4..18d54dd14a 100644
--- a/libraries/CEGUI0.7/CEGUI0.7.SlackBuild
+++ b/libraries/CEGUI0.7/CEGUI0.7.SlackBuild
@@ -72,7 +72,7 @@ find -L . \
patch -p1 < $CWD/CEGUI.patch
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -fpermissive" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/FreeImage/FreeImage.SlackBuild b/libraries/FreeImage/FreeImage.SlackBuild
index 9787e0772a..d5e41f6c16 100644
--- a/libraries/FreeImage/FreeImage.SlackBuild
+++ b/libraries/FreeImage/FreeImage.SlackBuild
@@ -57,8 +57,11 @@ find -L . \
# Thanks to Christoph Willing
patch -p0 < $CWD/010_avoid-raw-literal.diff
+# Needed for glibc >= 2.27
+sed -i "s#powf64#dc_&#g" Source/LibRawLite/internal/dcraw_common.cpp || exit 1
+
CFLAGS="$SLKCFLAGS -fexceptions -fvisibility=hidden -DNO_LCMS" \
-CXXFLAGS="$SLKCFLAGS -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy" \
+CXXFLAGS="$SLKCFLAGS -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy -Wno-narrowing" \
make INSTALLDIR=$PKG/usr/lib${LIBDIRSUFFIX} DESTDIR=$PKG
make install INSTALLDIR=$PKG/usr/lib${LIBDIRSUFFIX} DESTDIR=$PKG
diff --git a/libraries/PyQt5/PyQt5.SlackBuild b/libraries/PyQt5/PyQt5.SlackBuild
index 4d8e348aea..42672d2a0d 100644
--- a/libraries/PyQt5/PyQt5.SlackBuild
+++ b/libraries/PyQt5/PyQt5.SlackBuild
@@ -94,8 +94,8 @@ export CXXFLAGS="$SLKCFLAGS"
python configure.py \
--confirm-license \
--verbose \
- --sip=/usr/bin/python2-sip \
- --sip-incdir="/usr/include/python$PYTHONVER/python2-sip" \
+ --sip=/usr/bin/sip \
+ --sip-incdir=/usr/include/python${PYTHONVER} \
-q /usr/bin/qmake-qt5
make
diff --git a/libraries/PyQt5/PyQt5.info b/libraries/PyQt5/PyQt5.info
index 2ae0c1f377..a25896b60b 100644
--- a/libraries/PyQt5/PyQt5.info
+++ b/libraries/PyQt5/PyQt5.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.9.2/PyQt5_gpl
MD5SUM="33d6d2ab8183da17ac18b8132a4b278e"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="qt5-webkit python2-sip enum34"
+REQUIRES="qt5-webkit enum34"
MAINTAINER="David Woodfall"
EMAIL="dave@dawoodfall.net"
diff --git a/libraries/SDL2/README b/libraries/SDL2/README
deleted file mode 100644
index 8e26524439..0000000000
--- a/libraries/SDL2/README
+++ /dev/null
@@ -1,7 +0,0 @@
-Simple DirectMedia Layer is a cross-platform development library designed to
-provide low-level access to audio, keyboard, mouse, joystick, and graphics
-hardware via OpenGL.
-
-SDL is written in C and works natively with C++.
-
-This is safe to install alongside Slackware's SDL libraries.
diff --git a/libraries/SDL2/SDL2.SlackBuild b/libraries/SDL2/SDL2.SlackBuild
deleted file mode 100644
index dec9caf2d2..0000000000
--- a/libraries/SDL2/SDL2.SlackBuild
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for SDL2
-
-# Copyright 2013 Dugan Chen Canada
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=SDL2
-VERSION=${VERSION:-2.0.8}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-mkdir -p build
-cd build
- cmake \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DLIB_SUFFIX=${LIBDIRSUFFIX} \
- -DCMAKE_BUILD_TYPE=Release ..
- make
- make install DESTDIR=$PKG
-cd ..
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a *.txt docs/*.md $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/SDL2/SDL2.info b/libraries/SDL2/SDL2.info
deleted file mode 100644
index bbb7cc90c3..0000000000
--- a/libraries/SDL2/SDL2.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="SDL2"
-VERSION="2.0.8"
-HOMEPAGE="https://libsdl.org"
-DOWNLOAD="https://www.libsdl.org/release/SDL2-2.0.8.tar.gz"
-MD5SUM="3800d705cef742c6a634f202c37f263f"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Dugan Chen"
-EMAIL="thedoogster [at] gmail [dot] com"
diff --git a/libraries/SDL2/slack-desc b/libraries/SDL2/slack-desc
deleted file mode 100644
index fa23090367..0000000000
--- a/libraries/SDL2/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-SDL2: SDL2 (Simple DirectMedia Layer Version 2)
-SDL2:
-SDL2: Simple DirectMedia Layer is a cross-platform development library
-SDL2: designed to provide low-level access to audio, keyboard, mouse,
-SDL2: joystick, and graphics hardware ia via OpenGL.
-SDL2:
-SDL2: SDL is written in C and works natively with C++.
-SDL2:
-SDL2: https://libsdl.org
-SDL2:
-SDL2:
diff --git a/libraries/SDL2_image/README b/libraries/SDL2_image/README
deleted file mode 100644
index efd18ed49e..0000000000
--- a/libraries/SDL2_image/README
+++ /dev/null
@@ -1,4 +0,0 @@
-SDL2_image is a simple library to load images of various formats as
-SDL surfaces. It is safe to install alongside Slackware's SDL libraries.
-
-libwebp is an optional dependency.
diff --git a/libraries/SDL2_image/SDL2_image.SlackBuild b/libraries/SDL2_image/SDL2_image.SlackBuild
deleted file mode 100644
index 882b6e018b..0000000000
--- a/libraries/SDL2_image/SDL2_image.SlackBuild
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for SDL2_image
-
-# Copyright 2013 Dugan Chen Canada
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=SDL2_image
-VERSION=${VERSION:-2.0.3}
-BUILD=${BUILD:-2}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --enable-static=no \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux \
- --enable-jpg-shared=no
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a *.txt $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/SDL2_image/SDL2_image.info b/libraries/SDL2_image/SDL2_image.info
deleted file mode 100644
index b3de3808ba..0000000000
--- a/libraries/SDL2_image/SDL2_image.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="SDL2_image"
-VERSION="2.0.3"
-HOMEPAGE="https://www.libsdl.org/projects/SDL_image/"
-DOWNLOAD="https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.3.tar.gz"
-MD5SUM="c6baf6dfa80fa8a66853661a36a6034e"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="SDL2"
-MAINTAINER="Dugan Chen"
-EMAIL="thedoogster [at] gmail [dot] com"
diff --git a/libraries/SDL2_image/slack-desc b/libraries/SDL2_image/slack-desc
deleted file mode 100644
index c92a593f27..0000000000
--- a/libraries/SDL2_image/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-SDL2_image: SDL2_image (image loading library)
-SDL2_image:
-SDL2_image: SDL2_image is a simple image loading library. It loads images of
-SDL2_image: various formats as SDL surfaces and textures.
-SDL2_image:
-SDL2_image: https://www.libsdl.org/projects/SDL_image/
-SDL2_image:
-SDL2_image:
-SDL2_image:
-SDL2_image:
-SDL2_image:
diff --git a/libraries/SDL2_mixer/README b/libraries/SDL2_mixer/README
deleted file mode 100644
index 5d39240c67..0000000000
--- a/libraries/SDL2_mixer/README
+++ /dev/null
@@ -1,11 +0,0 @@
-SDL2_mixer is a sample multi-channel audio mixer library. It supports
-any number of simultaneously playing channels of 16-bit stereo audio,
-plus a single channel of music.
-
-It is safe to install alongside Slackware's SDL libraries.
-
-Optional dependencies are:
-
-* libmodplug (for MOD support)
-* fluidsynth (for MIDI support via SDL_SOUNDFONTS)
-* smpeg2 (for MP3 support, not available on SBo)
diff --git a/libraries/SDL2_mixer/SDL2_mixer.SlackBuild b/libraries/SDL2_mixer/SDL2_mixer.SlackBuild
deleted file mode 100644
index 378d64a604..0000000000
--- a/libraries/SDL2_mixer/SDL2_mixer.SlackBuild
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for SDL2_mixer
-
-# Copyright 2013-2015 Dugan Chen Canada
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=SDL2_mixer
-VERSION=${VERSION:-2.0.2}
-BUILD=${BUILD:-2}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --enable-static=no \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/examples
-cp -a *.txt $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a playmus.c playwave.c $PKG/usr/doc/$PRGNAM-$VERSION/examples
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/SDL2_mixer/SDL2_mixer.info b/libraries/SDL2_mixer/SDL2_mixer.info
deleted file mode 100644
index 0ce8957d96..0000000000
--- a/libraries/SDL2_mixer/SDL2_mixer.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="SDL2_mixer"
-VERSION="2.0.2"
-HOMEPAGE="https://www.libsdl.org/projects/SDL_mixer/"
-DOWNLOAD="https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.2.tar.gz"
-MD5SUM="aaa0551393993c14a13f72b339c0ed6c"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="SDL2"
-MAINTAINER="Dugan Chen"
-EMAIL="thedoogster [at] gmail [dot] com"
diff --git a/libraries/SDL2_mixer/slack-desc b/libraries/SDL2_mixer/slack-desc
deleted file mode 100644
index bf7934c6ee..0000000000
--- a/libraries/SDL2_mixer/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-SDL2_mixer: SDL2_mixer (sample multi-channel audio mixer library)
-SDL2_mixer:
-SDL2_mixer: SDL_mixer is a sample multi-channel audio mixer library. It supports
-SDL2_mixer: any number of simultaneously playing channels of 16-bit stereo audio,
-SDL2_mixer: plus a single channel of music.
-SDL2_mixer:
-SDL2_mixer: https://www.libsdl.org/projects/SDL_mixer/
-SDL2_mixer:
-SDL2_mixer:
-SDL2_mixer:
-SDL2_mixer:
diff --git a/libraries/SDL2_net/README b/libraries/SDL2_net/README
deleted file mode 100644
index 3f3e632887..0000000000
--- a/libraries/SDL2_net/README
+++ /dev/null
@@ -1,3 +0,0 @@
-This SDL2 extension is a small cross platform networking library.
-
-It is safe to install alongside Slackware's SDL libraries.
diff --git a/libraries/SDL2_net/SDL2_net.SlackBuild b/libraries/SDL2_net/SDL2_net.SlackBuild
deleted file mode 100644
index ac25dc3fe3..0000000000
--- a/libraries/SDL2_net/SDL2_net.SlackBuild
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for SDL2_net
-
-# Copyright 2013 Dugan Chen Canada
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=SDL2_net
-VERSION=${VERSION:-2.0.1}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i486 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --enable-static=no \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux \
- --disable-gui
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/demo
-cp -a *.txt $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a chat.cpp chat.h chatd.c $PKG/usr/doc/$PRGNAM-$VERSION/demo
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/SDL2_net/SDL2_net.info b/libraries/SDL2_net/SDL2_net.info
deleted file mode 100644
index d607b71b3f..0000000000
--- a/libraries/SDL2_net/SDL2_net.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="SDL2_net"
-VERSION="2.0.1"
-HOMEPAGE="https://www.libsdl.org/projects/SDL_net/"
-DOWNLOAD="https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.0.1.tar.gz"
-MD5SUM="5c1d9d1cfa63301b141cb5c0de2ea7c4"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="SDL2"
-MAINTAINER="Dugan Chen"
-EMAIL="thedoogster [at] gmail [dot] com"
diff --git a/libraries/SDL2_net/slack-desc b/libraries/SDL2_net/slack-desc
deleted file mode 100644
index 3f45345ca4..0000000000
--- a/libraries/SDL2_net/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-SDL2_net: SDL2_net (cross platform networking library)
-SDL2_net:
-SDL2_net: This is a small cross platform networking library.
-SDL2_net:
-SDL2_net:
-SDL2_net:
-SDL2_net:
-SDL2_net:
-SDL2_net:
-SDL2_net:
-SDL2_net:
diff --git a/libraries/SDL2_ttf/README b/libraries/SDL2_ttf/README
deleted file mode 100644
index ac5e99801e..0000000000
--- a/libraries/SDL2_ttf/README
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a sample library which allows you to use TrueType fonts
-in your SDL2 applications.
-
-It is safe to install alongside Slackware's SDL packages.
diff --git a/libraries/SDL2_ttf/SDL2_ttf.SlackBuild b/libraries/SDL2_ttf/SDL2_ttf.SlackBuild
deleted file mode 100644
index fb3177ba19..0000000000
--- a/libraries/SDL2_ttf/SDL2_ttf.SlackBuild
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for SDL2_ttf
-
-# Copyright 2013 Dugan Chen Canada
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=SDL2_ttf
-VERSION=${VERSION:-2.0.14}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i486 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --enable-static=no \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/examples
-cp -a *.txt $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a showfont.c $PKG/usr/doc/$PRGNAM-$VERSION/examples
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/SDL2_ttf/SDL2_ttf.info b/libraries/SDL2_ttf/SDL2_ttf.info
deleted file mode 100644
index e81eed0c1d..0000000000
--- a/libraries/SDL2_ttf/SDL2_ttf.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="SDL2_ttf"
-VERSION="2.0.14"
-HOMEPAGE="https://www.libsdl.org/projects/SDL_ttf/"
-DOWNLOAD="https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.14.tar.gz"
-MD5SUM="e53c05e1e7f1382c316afd6c763388b1"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="SDL2"
-MAINTAINER="Dugan Chen"
-EMAIL="thedoogster [at] gmail [dot] com"
diff --git a/libraries/SDL2_ttf/slack-desc b/libraries/SDL2_ttf/slack-desc
deleted file mode 100644
index dbd7fee216..0000000000
--- a/libraries/SDL2_ttf/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-SDL2_ttf: SDL2_ttf (SDL2 truetype font library)
-SDL2_ttf:
-SDL2_ttf: This is a sample library which allows you to use
-SDL2_ttf: TrueType fonts in your SDL applications.
-SDL2_ttf:
-SDL2_ttf:
-SDL2_ttf:
-SDL2_ttf:
-SDL2_ttf:
-SDL2_ttf:
-SDL2_ttf:
diff --git a/libraries/SDL_sound/SDL_sound.SlackBuild b/libraries/SDL_sound/SDL_sound.SlackBuild
index 3098531f6a..4d69722942 100644
--- a/libraries/SDL_sound/SDL_sound.SlackBuild
+++ b/libraries/SDL_sound/SDL_sound.SlackBuild
@@ -75,6 +75,7 @@ CXXFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--sysconfdir=/etc \
--disable-static \
+ --disable-physfs \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--build=$ARCH-slackware-linux
diff --git a/libraries/SFGUI/SFGUI.SlackBuild b/libraries/SFGUI/SFGUI.SlackBuild
index 4d1707634a..9c6a1a9004 100644
--- a/libraries/SFGUI/SFGUI.SlackBuild
+++ b/libraries/SFGUI/SFGUI.SlackBuild
@@ -10,7 +10,7 @@
# without any warranty.
PRGNAM=SFGUI
-VERSION=${VERSION:-0.3.0}
+VERSION=${VERSION:-0.3.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -47,7 +47,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-unzip $CWD/$PRGNAM-$VERSION.zip || unzip $CWD/$VERSION.zip
+unzip $CWD/$PRGNAM-$VERSION.zip
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
@@ -79,7 +79,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a README CHANGELOG FONT.LICENSE LICENSE AUTHORS $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a README.md CHANGELOG.md FONT.LICENSE.md LICENSE.md AUTHORS.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/libraries/SFGUI/SFGUI.info b/libraries/SFGUI/SFGUI.info
index 5caf3c14b3..e3c218e78e 100644
--- a/libraries/SFGUI/SFGUI.info
+++ b/libraries/SFGUI/SFGUI.info
@@ -1,8 +1,8 @@
PRGNAM="SFGUI"
-VERSION="0.3.0"
+VERSION="0.3.2"
HOMEPAGE="http://sfgui.sfml-dev.de/p/"
-DOWNLOAD="https://github.com/TankOs/SFGUI/archive/0.3.0.zip"
-MD5SUM="9e704175dca7c8632e9f72a321c21e25"
+DOWNLOAD="https://github.com/TankOs/SFGUI/archive/0.3.2/SFGUI-0.3.2.zip"
+MD5SUM="a396d2a0516a84c0d68bcdf2236f5a98"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="SFML"
diff --git a/libraries/agg/agg.SlackBuild b/libraries/agg/agg.SlackBuild
index 02a9477479..619b80b00f 100644
--- a/libraries/agg/agg.SlackBuild
+++ b/libraries/agg/agg.SlackBuild
@@ -71,6 +71,7 @@ CXXFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
+ --disable-examples \
--disable-static \
--build=$ARCH-slackware-linux
diff --git a/libraries/agg/patches/0016-bad-const.patch b/libraries/agg/patches/0016-bad-const.patch
new file mode 100644
index 0000000000..045e77ba13
--- /dev/null
+++ b/libraries/agg/patches/0016-bad-const.patch
@@ -0,0 +1,12 @@
+diff -u -r agg-2.5/include/agg_renderer_outline_aa.h agg-2.5-const/include/agg_renderer_outline_aa.h
+--- agg-2.5/include/agg_renderer_outline_aa.h 2006-10-09 06:07:08.000000000 +0200
++++ agg-2.5-const/include/agg_renderer_outline_aa.h 2018-06-16 23:09:16.500057814 +0200
+@@ -1375,7 +1375,7 @@
+ //---------------------------------------------------------------------
+ void profile(const line_profile_aa& prof) { m_profile = &prof; }
+ const line_profile_aa& profile() const { return *m_profile; }
+- line_profile_aa& profile() { return *m_profile; }
++ line_profile_aa& profile() { return *const_cast<line_profile_aa*>(m_profile); }
+
+ //---------------------------------------------------------------------
+ int subpixel_width() const { return m_profile->subpixel_width(); }
diff --git a/libraries/bamf/bamf.SlackBuild b/libraries/bamf/bamf.SlackBuild
index 4ee3a85b1c..6982535729 100644
--- a/libraries/bamf/bamf.SlackBuild
+++ b/libraries/bamf/bamf.SlackBuild
@@ -69,7 +69,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
+CFLAGS="$SLKCFLAGS -Wno-error=deprecated-declarations" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
diff --git a/libraries/beignet/beignet.SlackBuild b/libraries/beignet/beignet.SlackBuild
index ce61606dea..1d7a06dcdd 100644
--- a/libraries/beignet/beignet.SlackBuild
+++ b/libraries/beignet/beignet.SlackBuild
@@ -24,7 +24,7 @@
# -----------------------------------------------------------------------------
PRGNAM=beignet
-VERSION=${VERSION:-1.3.1}
+VERSION=${VERSION:-1.3.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
DOCS="README.md docs NEWS.mdwn COPYING"
@@ -75,6 +75,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+patch -p1 < $CWD/llvm6.patch
+
mkdir -p build
cd build
cmake \
diff --git a/libraries/beignet/beignet.info b/libraries/beignet/beignet.info
index dae99c57d9..fff7aa7b6d 100644
--- a/libraries/beignet/beignet.info
+++ b/libraries/beignet/beignet.info
@@ -1,8 +1,8 @@
PRGNAM="beignet"
-VERSION="1.3.1"
+VERSION="1.3.2"
HOMEPAGE="https://01.org/beignet"
-DOWNLOAD="https://01.org/sites/default/files/beignet-1.3.1-source.tar.gz"
-MD5SUM="850886a71a34672ca26a42046d0bb442"
+DOWNLOAD="https://01.org/sites/default/files/beignet-1.3.2-source.tar.gz"
+MD5SUM="a577ab18d67a891c8767b8ea62253543"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/beignet/llvm6.patch b/libraries/beignet/llvm6.patch
new file mode 100644
index 0000000000..f3634e2389
--- /dev/null
+++ b/libraries/beignet/llvm6.patch
@@ -0,0 +1,30 @@
+diff -uprb Beignet-1.3.2-Source.orig/backend/src/llvm/llvm_to_gen.cpp Beignet-1.3.2-Source/backend/src/llvm/llvm_to_gen.cpp
+--- Beignet-1.3.2-Source.orig/backend/src/llvm/llvm_to_gen.cpp 2017-10-24 09:04:48.000000000 +0300
++++ Beignet-1.3.2-Source/backend/src/llvm/llvm_to_gen.cpp 2018-03-16 16:08:54.669963824 +0200
+@@ -322,7 +322,11 @@ namespace gbe
+ DataLayout DL(&mod);
+
+ gbeDiagnosticContext dc;
++#if LLVM_VERSION_MAJOR >= 6
++ mod.getContext().setDiagnosticHandlerCallBack(&gbeDiagnosticHandler,&dc);
++#else
+ mod.getContext().setDiagnosticHandler(&gbeDiagnosticHandler,&dc);
++#endif
+
+ #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 37
+ mod.setDataLayout(DL);
+diff -uprb Beignet-1.3.2-Source.orig/backend/src/llvm/llvm_unroll.cpp Beignet-1.3.2-Source/backend/src/llvm/llvm_unroll.cpp
+--- Beignet-1.3.2-Source.orig/backend/src/llvm/llvm_unroll.cpp 2017-10-24 09:04:48.000000000 +0300
++++ Beignet-1.3.2-Source/backend/src/llvm/llvm_unroll.cpp 2018-03-16 16:09:47.736403557 +0200
+@@ -205,7 +205,9 @@ namespace gbe {
+ if (parentTripCount != 0 && currTripCount * parentTripCount > 32) {
+ //Don't change the unrollID if doesn't force unroll.
+ //setUnrollID(parentL, false);
+-#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 38
++#if LLVM_VERSION_MAJOR >= 6
++ loopInfo.erase(parentL);
++#elif LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 38
+ loopInfo.markAsRemoved(parentL);
+ #else
+ LPM.deleteLoopFromQueue(parentL);
+Only in Beignet-1.3.2-Source: build
diff --git a/libraries/ccrtp/ccrtp.SlackBuild b/libraries/ccrtp/ccrtp.SlackBuild
index 04fff8c2b7..9ea1685863 100644
--- a/libraries/ccrtp/ccrtp.SlackBuild
+++ b/libraries/ccrtp/ccrtp.SlackBuild
@@ -24,7 +24,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=ccrtp
-VERSION=${VERSION:-2.0.9}
+VERSION=${VERSION:-2.1.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/ccrtp/ccrtp.info b/libraries/ccrtp/ccrtp.info
index 38929c008d..0232990714 100644
--- a/libraries/ccrtp/ccrtp.info
+++ b/libraries/ccrtp/ccrtp.info
@@ -1,8 +1,8 @@
PRGNAM="ccrtp"
-VERSION="2.0.9"
+VERSION="2.1.2"
HOMEPAGE="http://www.gnu.org/software/ccrtp/"
-DOWNLOAD="ftp://ftp.gnu.org/pub/gnu/ccrtp/ccrtp-2.0.9.tar.gz"
-MD5SUM="f2e143c2558fbbe5715a1f04be2fb692"
+DOWNLOAD="ftp://ftp.gnu.org/pub/gnu/ccrtp/ccrtp-2.1.2.tar.gz"
+MD5SUM="e6792cbd8b705901c205a509bd7f812f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="ucommon"
diff --git a/libraries/cuneiform/cuneiform-gcc.patch b/libraries/cuneiform/cuneiform-gcc.patch
new file mode 100644
index 0000000000..4b51da8e84
--- /dev/null
+++ b/libraries/cuneiform/cuneiform-gcc.patch
@@ -0,0 +1,98 @@
+diff -wbBur cuneiform-linux-1.1.0/cuneiform_src/Kern/include/utf8-tables.h cuneiform-linux-1.1.0.q/cuneiform_src/Kern/include/utf8-tables.h
+--- cuneiform-linux-1.1.0/cuneiform_src/Kern/include/utf8-tables.h 2011-04-19 16:49:57.000000000 +0400
++++ cuneiform-linux-1.1.0.q/cuneiform_src/Kern/include/utf8-tables.h 2017-07-05 16:35:34.338871445 +0300
+@@ -68,7 +68,7 @@
+ #endif
+
+
+-const char win1250_to_utf8[][4] = {
++const unsigned char win1250_to_utf8[][4] = {
+ {0, 0, 0, 0},
+ {1, 0, 0, 0},
+ {2, 0, 0, 0},
+@@ -328,7 +328,7 @@
+ };
+
+
+-const char win1251_to_utf8[][4] = {
++const unsigned char win1251_to_utf8[][4] = {
+ {0, 0, 0, 0},
+ {1, 0, 0, 0},
+ {2, 0, 0, 0},
+@@ -587,7 +587,7 @@
+ {209, 143, 0, 0},
+ };
+
+-const char win1252_to_utf8[][4] = {
++const unsigned char win1252_to_utf8[][4] = {
+ {0, 0, 0, 0},
+ {1, 0, 0, 0},
+ {2, 0, 0, 0},
+@@ -847,7 +847,7 @@
+ };
+
+
+-const char win1254_to_utf8[][4] = {
++const unsigned char win1254_to_utf8[][4] = {
+ {0, 0, 0, 0},
+ {1, 0, 0, 0},
+ {2, 0, 0, 0},
+@@ -1107,7 +1107,7 @@
+ };
+
+
+-const char win1257_to_utf8[][4] = {
++const unsigned char win1257_to_utf8[][4] = {
+ {0, 0, 0, 0},
+ {1, 0, 0, 0},
+ {2, 0, 0, 0},
+diff -wbBur cuneiform-linux-1.1.0/cuneiform_src/Kern/rfrmt/sources/main/stdafx.h
+cuneiform-linux-1.1.0.q/cuneiform_src/Kern/rfrmt/sources/main/stdafx.h
+--- cuneiform-linux-1.1.0/cuneiform_src/Kern/rfrmt/sources/main/stdafx.h 2011-04-19 16:49:57.000000000 +0400
++++ cuneiform-linux-1.1.0.q/cuneiform_src/Kern/rfrmt/sources/main/stdafx.h 2017-07-05 16:37:23.528866265 +0300
+@@ -74,6 +74,9 @@
+ //отключаем warning о слишком длинных stl'ных именах
+ #pragma warning(disable:4786)
+
++#undef min
++#undef max
++
+ #include <vector>
+ typedef std::vector<uint16_t> vectorWord;
+
+diff -wbBur cuneiform-linux-1.1.0/cuneiform_src/Kern/rimage/sources/main/cricontrol.cpp
+cuneiform-linux-1.1.0.q/cuneiform_src/Kern/rimage/sources/main/cricontrol.cpp
+--- cuneiform-linux-1.1.0/cuneiform_src/Kern/rimage/sources/main/cricontrol.cpp 2011-04-19 16:49:57.000000000 +0400
++++ cuneiform-linux-1.1.0.q/cuneiform_src/Kern/rimage/sources/main/cricontrol.cpp 2017-07-05 16:33:02.962211959 +0300
+@@ -594,8 +594,8 @@
+ return FALSE;
+ }
+
+- wNewHeight = (mbMarginsFlag ? abs(mrMargins.rmBottomMarg - mrMargins.rmTopMarg) : mpSourceDIB->GetLinesNumber());
+- wNewWidth = (mbMarginsFlag ? abs(mrMargins.rmLeftMarg - mrMargins.rmRightMarg) : mpSourceDIB->GetLineWidth());
++ wNewHeight = (mbMarginsFlag ? std::abs((long int)(mrMargins.rmBottomMarg - mrMargins.rmTopMarg)) : mpSourceDIB->GetLinesNumber());
++ wNewWidth = (mbMarginsFlag ? std::abs((long int)(mrMargins.rmLeftMarg - mrMargins.rmRightMarg)) : mpSourceDIB->GetLineWidth());
+ mpSourceDIB->GetResolutionDPM( &wXResolution, &wYResolution);
+
+ if ( !mpDestinationDIB->CreateDIBBegin( wNewWidth, wNewHeight, BitCount) )
+diff -wbBur cuneiform-linux-1.1.0/cuneiform_src/Kern/rout/src/codetables.cpp cuneiform-linux-1.1.0.q/cuneiform_src/Kern/rout/src/codetables.cpp
+--- cuneiform-linux-1.1.0/cuneiform_src/Kern/rout/src/codetables.cpp 2011-04-19 16:49:57.000000000 +0400
++++ cuneiform-linux-1.1.0.q/cuneiform_src/Kern/rout/src/codetables.cpp 2017-07-05 16:36:05.178869982 +0300
+@@ -939,11 +939,11 @@
+
+ const char * getUTF8Str(const unsigned char in, const int codepage) {
+ switch(codepage) {
+- case 1250 : return win1250_to_utf8[in];
+- case 1251 : return win1251_to_utf8[in];
+- case 1252 : return win1252_to_utf8[in];
+- case 1254 : return win1254_to_utf8[in];
+- case 1257 : return win1257_to_utf8[in];
++ case 1250 : return (const char *)win1250_to_utf8[in];
++ case 1251 : return (const char *)win1251_to_utf8[in];
++ case 1252 : return (const char *)win1252_to_utf8[in];
++ case 1254 : return (const char *)win1254_to_utf8[in];
++ case 1257 : return (const char *)win1257_to_utf8[in];
+ default : return "?";
+ }
+ }
+
diff --git a/libraries/cuneiform/cuneiform.SlackBuild b/libraries/cuneiform/cuneiform.SlackBuild
index 10103d58f8..f2294c52f2 100644
--- a/libraries/cuneiform/cuneiform.SlackBuild
+++ b/libraries/cuneiform/cuneiform.SlackBuild
@@ -11,7 +11,7 @@ TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -22,8 +22,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -53,6 +53,9 @@ find -L . \
sed -i 's/\r//g' cuneiform_src/Addfiles/license.txt
+# Thanks to ARCH Linux
+patch -p1 < $CWD/cuneiform-gcc.patch
+
mkdir build
cd build
cmake \
@@ -70,8 +73,7 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- issues.txt readme.txt original*.rtf cuneiform_src/Addfiles/license.txt \
+cp -a issues.txt readme.txt original*.rtf cuneiform_src/Addfiles/license.txt \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/libraries/efivar/README b/libraries/efivar/README
deleted file mode 100644
index 18459b204f..0000000000
--- a/libraries/efivar/README
+++ /dev/null
@@ -1 +0,0 @@
-efivar - Tools and libraries to manipulate EFI variables
diff --git a/libraries/efivar/efivar.SlackBuild b/libraries/efivar/efivar.SlackBuild
deleted file mode 100644
index 3efd31403f..0000000000
--- a/libraries/efivar/efivar.SlackBuild
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for efivar
-
-# Copyright 2017-2018 Andrew Clemons, Wellington New Zealand
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=efivar
-VERSION=${VERSION:-36}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-SLKCFLAGS="$SLKCFLAGS -flto"
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-make -j1 libdir=/usr/lib$LIBDIRSUFFIX/ mandir=/usr/man/
-make -j1 install DESTDIR=$PKG/ libdir=/usr/lib$LIBDIRSUFFIX/ mandir=/usr/man/
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- COPYING README.md TODO \
- $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/efivar/efivar.info b/libraries/efivar/efivar.info
deleted file mode 100644
index 8a85b2a280..0000000000
--- a/libraries/efivar/efivar.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="efivar"
-VERSION="36"
-HOMEPAGE="https://github.com/rhboot/efivar"
-DOWNLOAD="https://github.com/rhboot/efivar/archive/36/efivar-36.tar.gz"
-MD5SUM="76c65e96ec3a0086809fb91a493b11b5"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Andrew Clemons"
-EMAIL="andrew.clemons@gmail.com"
diff --git a/libraries/efivar/slack-desc b/libraries/efivar/slack-desc
deleted file mode 100644
index f2eca450ba..0000000000
--- a/libraries/efivar/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-efivar: efivar (Tools and library to manipulate EFI variables.)
-efivar:
-efivar: Tools and libraries to manipulate EFI variables
-efivar:
-efivar: https://github.com/rhboot/efivar
-efivar:
-efivar:
-efivar:
-efivar:
-efivar:
-efivar:
diff --git a/libraries/fuzzylite/fuzzylite.SlackBuild b/libraries/fuzzylite/fuzzylite.SlackBuild
index 70961c4d7c..d75feb8637 100644
--- a/libraries/fuzzylite/fuzzylite.SlackBuild
+++ b/libraries/fuzzylite/fuzzylite.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=fuzzylite
-VERSION=${VERSION:-5.1}
+VERSION=${VERSION:-6.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -60,7 +60,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz || tar xvf $CWD/v$VERSION.tar.gz
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
@@ -91,7 +91,7 @@ fi
rm $PKG/usr/lib${LIBDIRSUFFIX}/libfuzzylite-static.a
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHOR ChangeLog README.md LICENSE COPYING* $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHOR README.md LICENSE COPYING* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/libraries/fuzzylite/fuzzylite.info b/libraries/fuzzylite/fuzzylite.info
index f81b2e5914..ee96c5ed57 100644
--- a/libraries/fuzzylite/fuzzylite.info
+++ b/libraries/fuzzylite/fuzzylite.info
@@ -1,8 +1,8 @@
PRGNAM="fuzzylite"
-VERSION="5.1"
+VERSION="6.0"
HOMEPAGE="https://www.fuzzylite.com"
-DOWNLOAD="https://github.com/fuzzylite/fuzzylite/archive/v5.1.tar.gz"
-MD5SUM="fcee03636fa417847d703e55cf11e34f"
+DOWNLOAD="https://github.com/fuzzylite/fuzzylite/archive/v6.0/fuzzylite-6.0.tar.gz"
+MD5SUM="34f3e1b27aa2abd9210b7d90f9d45785"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/gstreamer-editing-services/gstreamer-editing-services.SlackBuild b/libraries/gstreamer-editing-services/gstreamer-editing-services.SlackBuild
index 6ba6fb2d4d..e23a1b1b71 100644
--- a/libraries/gstreamer-editing-services/gstreamer-editing-services.SlackBuild
+++ b/libraries/gstreamer-editing-services/gstreamer-editing-services.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=gstreamer-editing-services
-VERSION=${VERSION:-1.6.2}
+VERSION=${VERSION:-1.14.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/gstreamer-editing-services/gstreamer-editing-services.info b/libraries/gstreamer-editing-services/gstreamer-editing-services.info
index e58125ace5..f11b134a9f 100644
--- a/libraries/gstreamer-editing-services/gstreamer-editing-services.info
+++ b/libraries/gstreamer-editing-services/gstreamer-editing-services.info
@@ -1,8 +1,8 @@
PRGNAM="gstreamer-editing-services"
-VERSION="1.6.2"
+VERSION="1.14.0"
HOMEPAGE="https://gstreamer.freedesktop.org/modules/gst-editing-services.html"
-DOWNLOAD="https://gstreamer.freedesktop.org/src/gstreamer-editing-services/gstreamer-editing-services-1.6.2.tar.xz"
-MD5SUM="76a1aa3f08af4c56b08d784aea46b712"
+DOWNLOAD="https://gstreamer.freedesktop.org/src/gstreamer-editing-services/gstreamer-editing-services-1.14.0.tar.xz"
+MD5SUM="6f49450e692f6a5e328e57be811d2d82"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/gstreamermm/fix_warnings.patch b/libraries/gstreamermm/fix_warnings.patch
new file mode 100644
index 0000000000..fccb480a11
--- /dev/null
+++ b/libraries/gstreamermm/fix_warnings.patch
@@ -0,0 +1,15 @@
+Author: Marcin Kolny <marcin.kolny@gmail.com>
+Description: Fix warnings
+Origin: https://git.gnome.org/browse/gstreamermm/commit/gstreamer/gstreamermm/check.cc?id=c5006faf05bc4b46767d30f42bcb6157836b7540
+Last-update: 2016-09-25
+--- a/gstreamer/gstreamermm/check.cc
++++ b/gstreamer/gstreamermm/check.cc
+@@ -54,7 +54,7 @@
+
+ element = ElementFactory::create_element (factory, factory);
+
+- ThrowIf (element, "Could not create a '" + factory + "' element");
++ ThrowIf (!!element, "Could not create a '" + factory + "' element");
+ CheckRefCount (element->gobj(), factory, 1);
+
+ return element;
diff --git a/libraries/gstreamermm/gstreamermm.SlackBuild b/libraries/gstreamermm/gstreamermm.SlackBuild
index 73ece14f12..d6c0925fd9 100644
--- a/libraries/gstreamermm/gstreamermm.SlackBuild
+++ b/libraries/gstreamermm/gstreamermm.SlackBuild
@@ -69,6 +69,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Needed for gcc >= 7.x - Thanks to opensuse
+patch -p1 < $CWD/fix_warnings.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS -std=c++11" \
./configure \
diff --git a/libraries/gtkglext/0002-GCC-8-fixes.patch b/libraries/gtkglext/0002-GCC-8-fixes.patch
new file mode 100644
index 0000000000..266f5fefc1
--- /dev/null
+++ b/libraries/gtkglext/0002-GCC-8-fixes.patch
@@ -0,0 +1,34 @@
+From 1fe275cd7dfa9f3a6db771b0cb945d96787e72cf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ralf=20Cors=C3=A9pius?= <corsepiu@fedoraproject.org>
+Date: Thu, 15 Mar 2018 15:56:20 +0100
+Subject: [PATCH 2/2] GCC-8 fixes.
+
+---
+ gdk/gdkglshapes.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gdk/gdkglshapes.c b/gdk/gdkglshapes.c
+index f72abba..9d1197f 100644
+--- a/gdk/gdkglshapes.c
++++ b/gdk/gdkglshapes.c
+@@ -544,7 +544,7 @@ static GLfloat idata[12][3] =
+ {-Z, -X, 0}
+ };
+
+-static int index[20][3] =
++static int iindex[20][3] =
+ {
+ {0, 4, 1},
+ {0, 9, 4},
+@@ -574,7 +574,7 @@ icosahedron(GLenum shadeType)
+ int i;
+
+ for (i = 19; i >= 0; i--) {
+- drawtriangle(i, idata, index, shadeType);
++ drawtriangle(i, idata, iindex, shadeType);
+ }
+ }
+
+--
+2.14.3
+
diff --git a/libraries/gtkglext/gtkglext.SlackBuild b/libraries/gtkglext/gtkglext.SlackBuild
index 4aa77fbbfe..f0d5d41c8c 100644
--- a/libraries/gtkglext/gtkglext.SlackBuild
+++ b/libraries/gtkglext/gtkglext.SlackBuild
@@ -72,6 +72,8 @@ find -L . \
# Don't disable deprecated stuff
patch -p1 < $CWD/gtkglext-no-deprecated-flags.patch
+# From fedora - conflicting definition
+patch -p1 < $CWD/0002-GCC-8-fixes.patch
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
diff --git a/libraries/hpx/gcc7.patch b/libraries/hpx/gcc7.patch
new file mode 100644
index 0000000000..ab8d5cb94a
--- /dev/null
+++ b/libraries/hpx/gcc7.patch
@@ -0,0 +1,23 @@
+From cc15d1c67144200f070e74d80b6d840df0a16ee3 Mon Sep 17 00:00:00 2001
+From: Thomas Heller <thomas.heller@cs.fau.de>
+Date: Thu, 4 May 2017 08:15:13 +0200
+Subject: [PATCH] Fixing uninitialized usage warning with gcc 7
+
+---
+ src/runtime/parcelset/parcel.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/runtime/parcelset/parcel.cpp b/src/runtime/parcelset/parcel.cpp
+index 0f86c4043a1..56714af4c7b 100644
+--- a/src/runtime/parcelset/parcel.cpp
++++ b/src/runtime/parcelset/parcel.cpp
+@@ -47,7 +47,8 @@ namespace hpx { namespace parcelset
+ creation_time_(util::high_resolution_timer::now()),
+ #endif
+ source_id_(naming::invalid_gid),
+- dest_(naming::invalid_gid)
++ dest_(naming::invalid_gid),
++ has_continuation_(false)
+ {}
+
+ parcel_data::parcel_data(naming::gid_type&& dest, naming::address&& addr,
diff --git a/libraries/hpx/hpx.SlackBuild b/libraries/hpx/hpx.SlackBuild
index 0dbdd285e9..5156a21773 100644
--- a/libraries/hpx/hpx.SlackBuild
+++ b/libraries/hpx/hpx.SlackBuild
@@ -69,11 +69,15 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# From upstream
+patch -p1 < $CWD/gcc7.patch
+
mkdir -p build
cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DHPX_WITH_CXX11=On \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB=lib${LIBDIRSUFFIX} \
-DCMAKE_BUILD_TYPE=Release \
diff --git a/libraries/http-parser/http-parser.SlackBuild b/libraries/http-parser/http-parser.SlackBuild
index 07fbfbc886..8480b8afbf 100644
--- a/libraries/http-parser/http-parser.SlackBuild
+++ b/libraries/http-parser/http-parser.SlackBuild
@@ -69,7 +69,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
+CFLAGS="$SLKCFLAGS -Wno-error=implicit-fallthrough=" \
make install \
PREFIX=$PKG/usr \
LIBDIR=$PKG/usr/lib${LIBDIRSUFFIX}
diff --git a/libraries/id3lib/README b/libraries/id3lib/README
deleted file mode 100644
index 1200e808a8..0000000000
--- a/libraries/id3lib/README
+++ /dev/null
@@ -1,13 +0,0 @@
-This package provides a software library for manipulating ID3v1 and
-ID3v2 tags. It provides a convenient interface for software
-developers to include standards-compliant ID3v1/2 tagging
-capabilities in their applications.
-Features include identification of valid tags, automatic size
-conversions, (re)synchronisation of tag frames, seamless tag
-(de)compression, and optional padding facilities.
-
-This has been patched with the latest UTF16bugfix patch so that
-it correctly writes UTF8 and 16 files.
-
-This SlackBuild is heavily based on alienBob's, but with added
-patch for correct UTF handling and some other minor changes.
diff --git a/libraries/id3lib/id3lib.SlackBuild b/libraries/id3lib/id3lib.SlackBuild
deleted file mode 100644
index d0b72264bf..0000000000
--- a/libraries/id3lib/id3lib.SlackBuild
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for id3lib
-
-# Copyright 2006 Halim Issa <yallaone@gmail.com>
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS 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 AUTHOR 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.
-
-# Heavily based on original slackbuild by AlienBOB.
-# Modified by Robby Workman <rworkman@slackbuilds.org>
-
-PRGNAM=id3lib
-VERSION=${VERSION:-3.8.3}
-BUILD=${BUILD:-2}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i486 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- SLKLDFLAGS="-L/usr/lib64"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-patch -p1 < $CWD/patches/id3lib_3.8.3_UTF16_writing_bug.patch
-patch -p1 < $CWD/patches/id3lib-3.8.3-GCC43FIX-1.patch
-patch -p1 -d doc < $CWD/patches/id3lib_Doxyfile.patch
-
-# iomanip.h is obsolete; use the standard c++ header
-sed -i "s%iomanip.h%iomanip%g" configure
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --localstatedir=/var \
- --sysconfdir=/etc \
- --enable-static=no \
- --enable-debug=no \
- --build=$ARCH-slackware-linux
-
-make
-make docs 2>/dev/null || true
-make install DESTDIR=$PKG
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-# Strip down the doc and examples directories so we can copy w/impunity
-for i in doc/ examples/; do \
- find $i \
- \( -name 'Makefile*' -or -name '*.ps.gz' -or -name '*.pdf' -or -name '*.in' \
- \) -exec rm {} \; ; done
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- AUTHORS COPYING ChangeLog HISTORY NEWS README THANKS TODO doc/* \
- $PKG/usr/doc/$PRGNAM-$VERSION
-find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 0644 {} \;
-# Remove the massive amount of API docs
-rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/api
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-chmod -R o-w $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/id3lib/id3lib.info b/libraries/id3lib/id3lib.info
deleted file mode 100644
index 17d22bb8c7..0000000000
--- a/libraries/id3lib/id3lib.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="id3lib"
-VERSION="3.8.3"
-HOMEPAGE="http://id3lib.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/id3lib/id3lib-3.8.3.tar.gz"
-MD5SUM="19f27ddd2dda4b2d26a559a4f0f402a7"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Yalla-One"
-EMAIL="yallaone@gmail.com"
diff --git a/libraries/id3lib/patches/id3lib-3.8.3-GCC43FIX-1.patch b/libraries/id3lib/patches/id3lib-3.8.3-GCC43FIX-1.patch
deleted file mode 100644
index cae30e1870..0000000000
--- a/libraries/id3lib/patches/id3lib-3.8.3-GCC43FIX-1.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-Submitted By: zippo zippo@oppiz.net
-Date: 2008-10-28
-Initial Package Version: 3.8.3
-Upstream Status: Unknown
-Origin: zippo@oppiz.net
-Description:Fixes things up for GCC-4.3.2
-
-diff -Naur id3lib-3.8.3/examples/demo_convert.cpp 32/id3lib-3.8.3/examples/demo_convert.cpp
---- id3lib-3.8.3/examples/demo_convert.cpp 2003-03-02 00:23:00.000000000 +0000
-+++ 32/id3lib-3.8.3/examples/demo_convert.cpp 2008-10-29 20:10:04.000000000 +0000
-@@ -84,7 +84,7 @@
- }
- }
-
--int main( unsigned int argc, char * const argv[])
-+int main(int argc, char * const argv[])
- {
- flags_t ulFlag = ID3TT_ALL;
- gengetopt_args_info args;
-diff -Naur id3lib-3.8.3/examples/demo_copy.cpp 32/id3lib-3.8.3/examples/demo_copy.cpp
---- id3lib-3.8.3/examples/demo_copy.cpp 2003-03-02 00:23:00.000000000 +0000
-+++ 32/id3lib-3.8.3/examples/demo_copy.cpp 2008-10-29 20:10:54.000000000 +0000
-@@ -81,7 +81,7 @@
- }
- }
-
--int main( unsigned int argc, char * const argv[])
-+int main(int argc, char * const argv[])
- {
- int ulFlag = ID3TT_ID3;
- ID3D_INIT_DOUT();
-diff -Naur id3lib-3.8.3/examples/demo_info.cpp 32/id3lib-3.8.3/examples/demo_info.cpp
---- id3lib-3.8.3/examples/demo_info.cpp 2003-03-02 00:23:00.000000000 +0000
-+++ 32/id3lib-3.8.3/examples/demo_info.cpp 2008-10-29 20:09:31.000000000 +0000
-@@ -309,7 +309,7 @@
-
- #define DEBUG
-
--int main( unsigned int argc, char * const argv[])
-+int main(int argc, char * const argv[])
- {
- ID3D_INIT_DOUT();
-
-diff -Naur id3lib-3.8.3/examples/demo_tag.cpp 32/id3lib-3.8.3/examples/demo_tag.cpp
---- id3lib-3.8.3/examples/demo_tag.cpp 2003-03-02 00:23:00.000000000 +0000
-+++ 32/id3lib-3.8.3/examples/demo_tag.cpp 2008-10-29 20:10:26.000000000 +0000
-@@ -46,7 +46,7 @@
- os << "v2";
- }
-
--int main( unsigned int argc, char * const argv[])
-+int main(int argc, char * const argv[])
- {
- int ulFlag = ID3TT_ID3;
- ID3D_INIT_DOUT();
-diff -Naur id3lib-3.8.3/include/id3/id3lib_strings.h 32/id3lib-3.8.3/include/id3/id3lib_strings.h
---- id3lib-3.8.3/include/id3/id3lib_strings.h 2003-03-02 00:23:00.000000000 +0000
-+++ 32/id3lib-3.8.3/include/id3/id3lib_strings.h 2008-10-29 20:03:28.000000000 +0000
-@@ -30,6 +30,7 @@
- #define _ID3LIB_STRINGS_H_
-
- #include <string>
-+#include "string.h"
-
- #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000))
- namespace std
-diff -Naur id3lib-3.8.3/include/id3/writers.h 32/id3lib-3.8.3/include/id3/writers.h
---- id3lib-3.8.3/include/id3/writers.h 2003-03-02 00:23:00.000000000 +0000
-+++ 32/id3lib-3.8.3/include/id3/writers.h 2008-10-29 20:05:56.000000000 +0000
-@@ -30,7 +30,7 @@
-
- #include "id3/writer.h"
- #include "id3/id3lib_streams.h"
--//#include <string.h>
-+#include "string.h"
-
- class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer
- {
-diff -Naur id3lib-3.8.3/src/field.cpp 32/id3lib-3.8.3/src/field.cpp
---- id3lib-3.8.3/src/field.cpp 2003-03-02 00:23:00.000000000 +0000
-+++ 32/id3lib-3.8.3/src/field.cpp 2008-10-29 20:02:19.000000000 +0000
-@@ -33,6 +33,8 @@
- #include "readers.h"
- #include <assert.h>
-
-+#include "string.h"
-+
- using namespace dami;
-
- // This is used for unimplemented frames so that their data is preserved when
diff --git a/libraries/id3lib/patches/id3lib_3.8.3_UTF16_writing_bug.patch b/libraries/id3lib/patches/id3lib_3.8.3_UTF16_writing_bug.patch
deleted file mode 100644
index b05d2cf298..0000000000
--- a/libraries/id3lib/patches/id3lib_3.8.3_UTF16_writing_bug.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -ruN id3lib-3.8.3.orig/ChangeLog id3lib-3.8.3/ChangeLog
---- id3lib-3.8.3.orig/ChangeLog 2003-03-02 01:23:00.000000000 +0100
-+++ id3lib-3.8.3/ChangeLog 2006-02-22 00:33:59.946214472 +0100
-@@ -1,3 +1,8 @@
-+2006-02-17 Jerome Couderc
-+
-+ * Patch from Spoon to fix UTF-16 writing bug
-+ http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
-+
- 2003-03-02 Sunday 17:38 Thijmen Klok <thijmen@id3lib.org>
-
- * THANKS (1.20): added more people
-diff -ruN id3lib-3.8.3.orig/src/io_helpers.cpp id3lib-3.8.3/src/io_helpers.cpp
---- id3lib-3.8.3.orig/src/io_helpers.cpp 2003-03-02 01:23:00.000000000 +0100
-+++ id3lib-3.8.3/src/io_helpers.cpp 2006-02-22 00:35:02.926639992 +0100
-@@ -363,11 +363,22 @@
- // Write the BOM: 0xFEFF
- unicode_t BOM = 0xFEFF;
- writer.writeChars((const unsigned char*) &BOM, 2);
-+ // Patch from Spoon : 2004-08-25 14:17
-+ // http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
-+ // Wrong code
-+ //for (size_t i = 0; i < size; i += 2)
-+ //{
-+ // unicode_t ch = (data[i] << 8) | data[i+1];
-+ // writer.writeChars((const unsigned char*) &ch, 2);
-+ //}
-+ // Right code
-+ unsigned char *pdata = (unsigned char *) data.c_str();
- for (size_t i = 0; i < size; i += 2)
- {
-- unicode_t ch = (data[i] << 8) | data[i+1];
-+ unicode_t ch = (pdata[i] << 8) | pdata[i+1];
- writer.writeChars((const unsigned char*) &ch, 2);
- }
-+ // End patch
- }
- return writer.getCur() - beg;
- }
diff --git a/libraries/id3lib/patches/id3lib_Doxyfile.patch b/libraries/id3lib/patches/id3lib_Doxyfile.patch
deleted file mode 100644
index 76288cbb05..0000000000
--- a/libraries/id3lib/patches/id3lib_Doxyfile.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/Doxyfile.in 2005-01-05 14:27:05.000000000 +0100
-+++ b/Doxyfile.in 2005-01-05 14:30:19.000000000 +0100
-@@ -263,14 +263,17 @@
-
- INPUT = ../src \
- ../include/id3/field.h \
-- ../include/id3/frame.h \
- ../include/id3/globals.h \
-+ ../include/id3/helpers.h \
-+ ../include/id3/id3lib_frame.h \
-+ ../include/id3/id3lib_streams.h \
-+ ../include/id3/id3lib_strings.h \
- ../include/id3/misc_support.h \
- ../include/id3/reader.h \
- ../include/id3/readers.h \
- ../include/id3/sized_types.h \
- ../include/id3/tag.h \
-- ../include/id3/tag.h \
-+ ../include/id3/utils.h \
- ../include/id3/writer.h \
- ../include/id3/writers.h
-
diff --git a/libraries/id3lib/slack-desc b/libraries/id3lib/slack-desc
deleted file mode 100644
index ccfa45ce29..0000000000
--- a/libraries/id3lib/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-id3lib: id3lib (id3 tag manipulation library)
-id3lib:
-id3lib: This package provides a software library for manipulating ID3v1 and
-id3lib: ID3v2 tags. It provides a convenient interface for software
-id3lib: developers to include standards-compliant ID3v1/2 tagging
-id3lib: capabilities in their applications.
-id3lib:
-id3lib: Features include identification of valid tags, automatic size
-id3lib: conversions, (re)synchronisation of tag frames, seamless tag
-id3lib: (de)compression, and optional padding facilities.
-id3lib:
diff --git a/libraries/jansson/0001-Enable-Bsymbolic-functions-linker-flag-whenever-poss.patch b/libraries/jansson/0001-Enable-Bsymbolic-functions-linker-flag-whenever-poss.patch
deleted file mode 100644
index 509a28c3fb..0000000000
--- a/libraries/jansson/0001-Enable-Bsymbolic-functions-linker-flag-whenever-poss.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From c14f07092f76b5bc4098cee528122bd0d418e10e Mon Sep 17 00:00:00 2001
-Message-Id: <c14f07092f76b5bc4098cee528122bd0d418e10e.1533366596.git.mprivozn@redhat.com>
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Sat, 4 Aug 2018 08:58:26 +0200
-Subject: [PATCH] Enable -Bsymbolic-functions linker flag whenever possible
-
-It was discovered fairly recently that JSON parsing libraries use
-common pattern to name their exported symbols (they all use
-json_ prefix). So eventually it happens that two symbols from two
-different libraries have the same name. This will lead to cryptic
-crashes (see [1] and [2]). Linking with -Bsymbolic-functions
-prevents this.
-
-1: https://gitlab.gnome.org/GNOME/json-glib/issues/33
-2: https://groups.google.com/forum/#!topic/jansson-users/7Efx-RI45IU
-
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- configure.ac | 29 +++++++++++++++++++++++++++++
- src/Makefile.am | 3 ++-
- 2 files changed, 31 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index ca12b59..735fe89 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -107,6 +107,35 @@ AC_ARG_ENABLE([initial-hashtable-order],
- AC_DEFINE_UNQUOTED([INITIAL_HASHTABLE_ORDER], [$initial_hashtable_order],
- [Number of buckets new object hashtables contain is 2 raised to this power. E.g. 3 -> 2^3 = 8.])
-
-+AC_ARG_ENABLE([Bsymbolic],
-+ [AS_HELP_STRING([--disable-Bsymbolic],
-+ [Avoid linking with -Bsymbolic-function])],
-+ [], [with_Bsymbolic=check])
-+
-+if test "x$with_Bsymbolic" != "xno" ; then
-+ AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
-+ saved_LDFLAGS="${LDFLAGS}"
-+ LDFLAGS=-Wl,-Bsymbolic-functions
-+ AC_TRY_LINK(
-+ [], [int main (void) { return 0; }],
-+ [AC_MSG_RESULT([yes])
-+ have_Bsymbolic=yes],
-+ [AC_MSG_RESULT([no])
-+ have_Bsymbolic=no]
-+ )
-+ LDFLAGS="${saved_LDFLAGS}"
-+
-+ if test "x$with_Bsymbolic" = "xcheck" ; then
-+ with_Bsymbolic=$have_Bsymbolic;
-+ fi
-+ if test "x$with_Bsymbolic:x$have_Bsymbolic" = "xyes:xno" ; then
-+ AC_MSG_ERROR([linker support is required for -Bsymbolic])
-+ fi
-+fi
-+
-+AS_IF([test "x$with_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions])
-+AC_SUBST(JSON_BSYMBOLIC_LDFLAGS)
-+
- if test x$GCC = xyes; then
- AC_MSG_CHECKING(for -Wno-format-truncation)
- wnoformat_truncation="-Wno-format-truncation"
-diff --git a/src/Makefile.am b/src/Makefile.am
-index f823195..63ff7c1 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -24,4 +24,5 @@ libjansson_la_SOURCES = \
- libjansson_la_LDFLAGS = \
- -no-undefined \
- -export-symbols-regex '^json_' \
-- -version-info 15:0:11
-+ -version-info 15:0:11 \
-+ @JSON_BSYMBOLIC_LDFLAGS@
---
-2.16.4
-
diff --git a/libraries/jansson/README b/libraries/jansson/README
deleted file mode 100644
index 658898eea1..0000000000
--- a/libraries/jansson/README
+++ /dev/null
@@ -1 +0,0 @@
-Jansson is a C library for encoding, decoding and manipulating JSON data.
diff --git a/libraries/jansson/jansson.SlackBuild b/libraries/jansson/jansson.SlackBuild
deleted file mode 100644
index 49bc52ca0a..0000000000
--- a/libraries/jansson/jansson.SlackBuild
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for jansson
-
-# Copyright 2014-2018 Larry Hajali <larryhaja[at]gmail[dot]com>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=jansson
-VERSION=${VERSION:-2.11}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-# Patch to fix conflicting json_* symbols.
-# Ref: https://groups.google.com/forum/#!topic/jansson-users/7Efx-RI45IU
-patch -p1 < $CWD/0001-Enable-Bsymbolic-functions-linker-flag-whenever-poss.patch
-autoreconf -ivf
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --enable-static=no \
- --disable-silent-rules \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a CHANGES LICENSE README.rst $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/jansson/jansson.info b/libraries/jansson/jansson.info
deleted file mode 100644
index 40aff8df23..0000000000
--- a/libraries/jansson/jansson.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="jansson"
-VERSION="2.11"
-HOMEPAGE="http://www.digip.org/jansson/"
-DOWNLOAD="http://www.digip.org/jansson/releases/jansson-2.11.tar.bz2"
-MD5SUM="289ca8cbd2df31de9bda7e5220754d25"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Larry Hajali"
-EMAIL="larryhaja[at]gmail[dot]com"
diff --git a/libraries/jansson/slack-desc b/libraries/jansson/slack-desc
deleted file mode 100644
index 9379939173..0000000000
--- a/libraries/jansson/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-jansson: jansson (C library)
-jansson:
-jansson: Jansson is a C library for encoding, decoding and manipulating JSON
-jansson: data.
-jansson:
-jansson: Homepage: http://www.digip.org/jansson/
-jansson:
-jansson:
-jansson:
-jansson:
-jansson:
diff --git a/libraries/json-glib/README b/libraries/json-glib/README
deleted file mode 100644
index 84d3d2669b..0000000000
--- a/libraries/json-glib/README
+++ /dev/null
@@ -1,3 +0,0 @@
-JSON-GLib is a library providing serialization and deserialization
-support for the JavaScript Object Notation (JSON) format described
-by RFC 4627.
diff --git a/libraries/json-glib/json-glib.SlackBuild b/libraries/json-glib/json-glib.SlackBuild
deleted file mode 100644
index acf870593e..0000000000
--- a/libraries/json-glib/json-glib.SlackBuild
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/sh
-#
-# Slackware build script for JSON-Glib
-#
-# Copyright 2009-2017 Erik W. Hanson, Minneapolis, MN, USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=json-glib
-VERSION=${VERSION:-1.2.8}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i486 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -eu
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var/lib \
- --mandir=/usr/man \
- --disable-static \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --build=$ARCH-slackware-linux
-
-make
-make install-strip DESTDIR=$PKG
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a ABOUT-NLS COPYING ChangeLog NEWS $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-ln -s /usr/share/gtk-doc/html/json-glib $PKG/usr/doc/$PRGNAM-$VERSION/html
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/json-glib/json-glib.info b/libraries/json-glib/json-glib.info
deleted file mode 100644
index 50a013fe73..0000000000
--- a/libraries/json-glib/json-glib.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="json-glib"
-VERSION="1.2.8"
-HOMEPAGE="http://live.gnome.org/JsonGlib"
-DOWNLOAD="http://ftp.acc.umu.se/pub/GNOME/sources/json-glib/1.2/json-glib-1.2.8.tar.xz"
-MD5SUM="ff31e7d0594df44318e12facda3d086e"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Erik Hanson"
-EMAIL="erik@slackbuilds.org"
diff --git a/libraries/json-glib/slack-desc b/libraries/json-glib/slack-desc
deleted file mode 100644
index 3f96be22b3..0000000000
--- a/libraries/json-glib/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-json-glib: json-glib (a de/serialization library for the JS Object Notation)
-json-glib:
-json-glib: JSON-GLib is a library providing serialization and deserialization
-json-glib: support for the JavaScript Object Notation (JSON) format described
-json-glib: by RFC 4627.
-json-glib:
-json-glib: Homepage: http://live.gnome.org/JsonGlib
-json-glib:
-json-glib:
-json-glib:
-json-glib:
diff --git a/libraries/lame/CVE-2017-15018.patch.gz b/libraries/lame/CVE-2017-15018.patch.gz
deleted file mode 100644
index 30d768d4f0..0000000000
--- a/libraries/lame/CVE-2017-15018.patch.gz
+++ /dev/null
Binary files differ
diff --git a/libraries/lame/README b/libraries/lame/README
deleted file mode 100644
index b196d4079f..0000000000
--- a/libraries/lame/README
+++ /dev/null
@@ -1,3 +0,0 @@
-LAME is an educational tool to be used for learning about MP3 encoding.
-The goal of the LAME project is to use the open source model to improve
-the psycho acoustics, noise shaping, and speed of MP3.
diff --git a/libraries/lame/lame.SlackBuild b/libraries/lame/lame.SlackBuild
deleted file mode 100644
index 2b44132473..0000000000
--- a/libraries/lame/lame.SlackBuild
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for lame
-
-# Copyright 2006 Martin Lefebvre <dadexter@gmail.com>
-# Copyright 2008,2010 Michiel van Wessem, Manchester, United Kingdom
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=lame
-VERSION=${VERSION:-3.99.5}
-BUILD=${BUILD:-2}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-# Fix for the newer gcc
-# http://www.linuxfromscratch.org/blfs/view/svn/multimedia/lame.html
-case $(uname -m) in
- i?86) sed -i -e '/xmmintrin\.h/d' configure ;;
-esac
-
-# Fix CVE-2017-15018
-zcat $CWD/CVE-2017-15018.patch.gz | patch -p1
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --htmldir=/usr/doc/$PRGNAM-$VERSION \
- --enable-nasm \
- --enable-static=no \
- --build=$ARCH-slackware-linux
-
-make pkgdocdir=/usr/doc/$PRGNAM-$VERSION
-make install pkgdocdir=/usr/doc/$PRGNAM-$VERSION DESTDIR=$PKG
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a API COPYING ChangeLog DEFINES HACKING INSTALL* LICENSE README* \
- STYLEGUIDE TODO USAGE $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/lame/lame.info b/libraries/lame/lame.info
deleted file mode 100644
index 88b34affad..0000000000
--- a/libraries/lame/lame.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="lame"
-VERSION="3.99.5"
-HOMEPAGE="http://lame.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/lame/lame-3.99.5.tar.gz"
-MD5SUM="84835b313d4a8b68f5349816d33e07ce"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Michiel van Wessem"
-EMAIL="michiel@slackbuilds.org"
diff --git a/libraries/lame/slack-desc b/libraries/lame/slack-desc
deleted file mode 100644
index c8c2c6d12e..0000000000
--- a/libraries/lame/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-lame: lame (LAME Ain't an Mp3 Encoder)
-lame:
-lame: LAME is an educational tool to be used for learning about MP3
-lame: encoding. The goal of the LAME project is to use the open source
-lame: model to improve the psycho acoustics, noise shaping, and speed of
-lame: MP3.
-lame:
-lame:
-lame:
-lame:
-lame:
diff --git a/libraries/libart-lgpl/README b/libraries/libart-lgpl/README
new file mode 100644
index 0000000000..1dfaf798f6
--- /dev/null
+++ b/libraries/libart-lgpl/README
@@ -0,0 +1,3 @@
+Libart is a library for high-performance 2D graphics. It was used by
+both KDE and GNOME. This is the LGPL'd component of the library.
+Raph Levien <raph@acm.org> is the author of libart.
diff --git a/libraries/libopusenc/libopusenc.SlackBuild b/libraries/libart-lgpl/libart-lgpl.SlackBuild
index 199690a36a..27801d55a5 100644
--- a/libraries/libopusenc/libopusenc.SlackBuild
+++ b/libraries/libart-lgpl/libart-lgpl.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/sh
-# Slackware build script for libopusenc
+# Slackware build script for libart-lgpl
-# Copyright 2017 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
+# Copyright 2018 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,8 +22,8 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PRGNAM=libopusenc
-VERSION=${VERSION:-0.2.1}
+PRGNAM=libart-lgpl
+VERSION=${VERSION:-r14.0.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -54,13 +54,15 @@ else
LIBDIRSUFFIX=""
fi
+DOCS="AUTHORS COPYING ChangeLog NEWS README"
+
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+tar xvf $CWD/$PRGNAM-$VERSION.tar.?z*
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
@@ -78,8 +80,7 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
- --enable-static=no \
- --enable-fixed-point \
+ --disable-static \
--build=$ARCH-slackware-linux
make
@@ -89,7 +90,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/libraries/libart-lgpl/libart-lgpl.info b/libraries/libart-lgpl/libart-lgpl.info
new file mode 100644
index 0000000000..13a7454980
--- /dev/null
+++ b/libraries/libart-lgpl/libart-lgpl.info
@@ -0,0 +1,10 @@
+PRGNAM="libart-lgpl"
+VERSION="r14.0.4"
+HOMEPAGE="http://mirror.git.trinitydesktop.org/cgit/libart-lgpl/"
+DOWNLOAD="http://ponce.cc/slackware/sources/repo/libart-lgpl-r14.0.4.tar.xz"
+MD5SUM="12e8ee49a6c843fad3a4be9b3514104a"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Matteo Bernardini"
+EMAIL="ponce@slackbuilds.org"
diff --git a/libraries/libtxc_dxtn/slack-desc b/libraries/libart-lgpl/slack-desc
index 86695e02b8..eb0120d1d0 100644
--- a/libraries/libtxc_dxtn/slack-desc
+++ b/libraries/libart-lgpl/slack-desc
@@ -6,14 +6,15 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-libtxc_dxtn: libtxc_dxtn (S3TC for Mesa)
-libtxc_dxtn:
-libtxc_dxtn: Support for using precompressed textures with hardware decompression
-libtxc_dxtn: in Mesa (currently used by most new games).
-libtxc_dxtn:
-libtxc_dxtn:
-libtxc_dxtn:
-libtxc_dxtn:
-libtxc_dxtn:
-libtxc_dxtn:
-libtxc_dxtn:
+libart-lgpl: libart_lgpl (graphics library)
+libart-lgpl:
+libart-lgpl: Libart is a library for high-performance 2D graphics. It was used by
+libart-lgpl: both KDE and GNOME. This is the LGPL'd component of the library.
+libart-lgpl: Raph Levien <raph@acm.org> is the author of libart.
+libart-lgpl:
+libart-lgpl: homepage: http://mirror.git.trinitydesktop.org/cgit/libart-lgpl/
+libart-lgpl:
+libart-lgpl:
+libart-lgpl:
+libart-lgpl:
+libart-lgpl:
diff --git a/libraries/libbluray/README b/libraries/libbluray/README
deleted file mode 100644
index aab8dd8f96..0000000000
--- a/libraries/libbluray/README
+++ /dev/null
@@ -1,15 +0,0 @@
-libbluray is an open-source library designed for Blu-Ray Discs playback for
-media players, like VLC or MPlayer. libbluray integrates navigation, playlist
-parsing, menus and BD-J. libbluray is DRM-circumvention free, and thus, safe to
-integrate in your software.
-
-Optional runtime dependencies: libaacs and libbdplus
-
-Optional build time dependency is graphviz, apache-ant and jdk. To build the
-extra bdjava capabilities, apache-ant and jdk are needed. Then run the
-slackbuild as:
-
- BDJAVA=yes sh libbluray.SlackBuild
-
-Most commercial Blu-Ray are protected by AACS or BD+ technologies and this
-library is not enough to playback those discs.
diff --git a/libraries/libbluray/libbluray.SlackBuild b/libraries/libbluray/libbluray.SlackBuild
deleted file mode 100644
index 7139257bd1..0000000000
--- a/libraries/libbluray/libbluray.SlackBuild
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libbluray
-
-# Copyright 2011-2018 Larry Hajali <larryhaja[at]gmail[dot]com>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libbluray
-VERSION=${VERSION:-1.0.2}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-# Hack for compiling xine plugin bindings for libbluray.
-sed -i -e '/pkg-config libbluray/d' -e 's|0644|0755|' player_wrappers/xine/Makefile
-
-# If you want bdjava enabled then set BDAJVA=yes to the slackbuild.
-if [ "${BDJAVA:-no}" == 'yes' ]; then
- OPT_ARGS="--enable-bdjava-jar"
-else
- OPT_ARGS="--disable-bdjava-jar"
-fi
-
-CFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --disable-silent-rules \
- --enable-static=no \
- $OPT_ARGS \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-# Install the xine bluray plugin
-CFLAGS="$SLKCFLAGS -I$PKG/usr/include" \
-LDFLAGS="-L$PKG/usr/lib$LIBDIRSUFFIX" \
-LIBS_BD="-lbluray" \
-make -C player_wrappers/xine DESTDIR=$PKG install
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a COPYING README.txt player_wrappers/xine/HOWTO $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libbluray/libbluray.info b/libraries/libbluray/libbluray.info
deleted file mode 100644
index 9017e9f30f..0000000000
--- a/libraries/libbluray/libbluray.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libbluray"
-VERSION="1.0.2"
-HOMEPAGE="http://www.videolan.org/developers/libbluray.html"
-DOWNLOAD="http://ftp.videolan.org/pub/videolan/libbluray/1.0.2/libbluray-1.0.2.tar.bz2"
-MD5SUM="3d90c9ac32a299e0a18df077f6dc9515"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Larry Hajali"
-EMAIL="larryhaja[at]gmail[dot]com"
diff --git a/libraries/libbluray/slack-desc b/libraries/libbluray/slack-desc
deleted file mode 100644
index 920e26f2a7..0000000000
--- a/libraries/libbluray/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libbluray: libbluray (Blu-Ray Disc playback library)
-libbluray:
-libbluray: libbluray is an open-source library designed for Blu-Ray Discs
-libbluray: playback for media players, like VLC or MPlayer.
-libbluray:
-libbluray: Homepage: http://www.videolan.org/developers/libbluray.html
-libbluray:
-libbluray:
-libbluray:
-libbluray:
-libbluray:
diff --git a/libraries/libc++/README b/libraries/libc++/README
deleted file mode 100644
index 6573443a04..0000000000
--- a/libraries/libc++/README
+++ /dev/null
@@ -1,5 +0,0 @@
-libc++ is the LLVM C++ standard library, targeting C++11.
-This SlackBuild will produce a version of libc++ that uses the
-libc++abi ABI interface.
-
-Note that the experimental library is NOT built by this script.
diff --git a/libraries/libc++/libc++.SlackBuild b/libraries/libc++/libc++.SlackBuild
deleted file mode 100644
index ec6f66d40b..0000000000
--- a/libraries/libc++/libc++.SlackBuild
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libc++
-
-# Copyright 2017 Coastal Carolina University
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libc++
-VERSION=${VERSION:-3.8.0}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-SOURCES=(
- llvm-${VERSION}.src.tar.xz
- libcxxabi-${VERSION}.src.tar.xz
- libcxx-${VERSION}.src.tar.xz
-)
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-
-cd $TMP
-rm -rf llvm-${VERSION}
-tar xvf $CWD/${SOURCES[0]}
-mv llvm-${VERSION}.src llvm-${VERSION}
-
-cd llvm-${VERSION}/projects
-tar xvf $CWD/${SOURCES[1]}
-tar xvf $CWD/${SOURCES[2]}
-mv libcxx-${VERSION}.src libcxx
-mv libcxxabi-${VERSION}.src libcxxabi
-cd ..
-
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-cd $TMP
-rm -rf build
-mkdir -p build
-
-cd build
-CC=clang CXX=clang++ cmake \
- -G "Unix Makefiles" \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DLLVM_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
- -DLLVM_ENABLE_SPHINX=ON \
- -DLIBCXX_INCLUDE_DOCS=ON \
- ../llvm-${VERSION}
-
-# This break with unknown option: LLVM_BUILD_32_BITS
-#make cxx docs-libcxx-html
-make install-libcxx DESTDIR=${PKG}
-make install-libcxxabi DESTDIR=${PKG}
-
-cd ..
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp llvm-${VERSION}/projects/libcxx/CREDITS.TXT \
- $PKG/usr/doc/${PRGNAM}-${VERSION}/libcxx-CREDITS.TXT
-cp llvm-${VERSION}/projects/libcxx/LICENSE.TXT \
- $PKG/usr/doc/${PRGNAM}-${VERSION}/libcxx-LICENSE.TXT
-cp llvm-${VERSION}/projects/libcxxabi/CREDITS.TXT \
- $PKG/usr/doc/${PRGNAM}-${VERSION}/libcxxabi-CREDITS.TXT
-cp llvm-${VERSION}/projects/libcxx/LICENSE.TXT \
- $PKG/usr/doc/${PRGNAM}-${VERSION}/libcxxabi-LICENSE.TXT
-#cp -a build/projects/libcxx/docs/html $PKG/usr/doc/${PRGNAM}-${VERSION}
-
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libc++/libc++.info b/libraries/libc++/libc++.info
deleted file mode 100644
index 7d803612bb..0000000000
--- a/libraries/libc++/libc++.info
+++ /dev/null
@@ -1,14 +0,0 @@
-PRGNAM="libc++"
-VERSION="3.8.0"
-HOMEPAGE="http://libcxx.llvm.org/"
-DOWNLOAD="http://releases.llvm.org/3.8.0/llvm-3.8.0.src.tar.xz \
- http://releases.llvm.org/3.8.0/libcxx-3.8.0.src.tar.xz \
- http://releases.llvm.org/3.8.0/libcxxabi-3.8.0.src.tar.xz"
-MD5SUM="07a7a74f3c6bd65de4702bf941b511a0 \
- d6e0bdbbee39f7907ad74fd56d03b88a \
- bbe6b4d72c7c5978550d370af529bcf7"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="libunwind Sphinx"
-MAINTAINER="Dr. Mike Murphy"
-EMAIL="mmurphy2@coastal.edu"
diff --git a/libraries/libc++/slack-desc b/libraries/libc++/slack-desc
deleted file mode 100644
index d59c7ba0fc..0000000000
--- a/libraries/libc++/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libc++: libc++ (LLVM C++ standard library implementation)
-libc++:
-libc++: libc++ is a new implementation of the C++ standard library,
-libc++: targeting C++11.
-libc++:
-libc++:
-libc++:
-libc++:
-libc++:
-libc++: Project Website: http://libcxx.llvm.org/
-libc++:
diff --git a/libraries/libclaw/lib.patch b/libraries/libclaw/lib.patch
deleted file mode 100644
index 8ea8694e1a..0000000000
--- a/libraries/libclaw/lib.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- libclaw-1.7.4/CMakeLists.orig.txt 2015-05-14 17:54:05.443919651 +0300
-+++ libclaw-1.7.4/CMakeLists.txt 2015-05-14 17:54:22.925701098 +0300
-@@ -30,7 +30,7 @@
- set( CLAW_CODE_DIR claw/code/ )
- set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/include/" )
- set( CLAW_INSTALLDIR_SOURCE include/claw/ )
--set( CLAW_INSTALLDIR_LIB lib/ )
-+set( CLAW_INSTALLDIR_LIB lib64/ )
- set( CLAW_INSTALLDIR_DOC share/doc/libclaw${CLAW_VERSION_MAJOR}/ )
- set( CLAW_TRANSLATIONS_INSTALL_DIR "share/locale" )
- set( CLAW_EXECUTABLE_DIR bin/ )
diff --git a/libraries/libclaw/libclaw.SlackBuild b/libraries/libclaw/libclaw.SlackBuild
index 1cee1fa691..7b426f6ace 100644
--- a/libraries/libclaw/libclaw.SlackBuild
+++ b/libraries/libclaw/libclaw.SlackBuild
@@ -69,9 +69,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-if [ "$ARCH" = "x86_64" ]; then
- patch -p1 < $CWD/lib.patch
-fi
+# Apply some patches from fedora
+for i in $CWD/patches/*.patch ; do patch -p1 < $i ; done
mkdir -p build
cd build
@@ -79,6 +78,7 @@ cd build
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=$LIBDIRSUFFIX \
-DCMAKE_BUILD_TYPE=Release ..
make
make install DESTDIR=$PKG
diff --git a/libraries/libclaw/patches/01_libclaw-1.7.4-libdir.patch b/libraries/libclaw/patches/01_libclaw-1.7.4-libdir.patch
new file mode 100644
index 0000000000..7e1172f22b
--- /dev/null
+++ b/libraries/libclaw/patches/01_libclaw-1.7.4-libdir.patch
@@ -0,0 +1,36 @@
+diff -up libclaw-1.7.4/claw-config.in.libdir libclaw-1.7.4/claw-config.in
+--- libclaw-1.7.4/claw-config.in.libdir 2013-07-03 13:34:38.000000000 -0600
++++ libclaw-1.7.4/claw-config.in 2016-12-29 16:58:52.140591117 -0700
+@@ -140,7 +140,7 @@ while test $# -gt 0; do
+ echo -I$CLAW_INCLUDE_DIRECTORY
+ ;;
+ --libs)
+- libdirs="-L${exec_prefix}/lib "
++ libdirs="-L${exec_prefix}/@CLAW_INSTALLDIR_LIB@ "
+
+ echo -n "$libdirs"
+ echo $(print_libraries)
+diff -up libclaw-1.7.4/CMakeLists.txt.libdir libclaw-1.7.4/CMakeLists.txt
+--- libclaw-1.7.4/CMakeLists.txt.libdir 2016-12-29 16:50:24.124507641 -0700
++++ libclaw-1.7.4/CMakeLists.txt 2016-12-29 16:50:24.137508590 -0700
+@@ -30,7 +30,7 @@ endif(SVN_ENTRIES)
+ set( CLAW_CODE_DIR claw/code/ )
+ set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/include/" )
+ set( CLAW_INSTALLDIR_SOURCE include/claw/ )
+-set( CLAW_INSTALLDIR_LIB lib/ )
++set( CLAW_INSTALLDIR_LIB "lib${LIB_SUFFIX}/" )
+ set( CLAW_INSTALLDIR_DOC share/doc/libclaw${CLAW_VERSION_MAJOR}/ )
+ set( CLAW_TRANSLATIONS_INSTALL_DIR "share/locale" )
+ set( CLAW_EXECUTABLE_DIR bin/ )
+diff -up libclaw-1.7.4/cmake-module/CMakeLists.txt.libdir libclaw-1.7.4/cmake-module/CMakeLists.txt
+--- libclaw-1.7.4/cmake-module/CMakeLists.txt.libdir 2013-07-03 13:34:38.000000000 -0600
++++ libclaw-1.7.4/cmake-module/CMakeLists.txt 2016-12-29 16:50:24.148509393 -0700
+@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.6)
+ project(claw:cmake-modules)
+
+ if( NOT CLAW_CMAKE_MODULES_INSTALL_PATH )
+- set( CLAW_CMAKE_MODULES_INSTALL_PATH "share/cmake/libclaw" )
++ set( CLAW_CMAKE_MODULES_INSTALL_PATH "lib${LIB_SUFFIX}/cmake/libclaw" )
+ endif( NOT CLAW_CMAKE_MODULES_INSTALL_PATH )
+
+ set( CLAW_CMAKE_MODULES
diff --git a/libraries/libclaw/patches/02_libclaw-1.7.4-gcc62.patch b/libraries/libclaw/patches/02_libclaw-1.7.4-gcc62.patch
new file mode 100644
index 0000000000..e1da77043d
--- /dev/null
+++ b/libraries/libclaw/patches/02_libclaw-1.7.4-gcc62.patch
@@ -0,0 +1,89 @@
+From a13a75306bba55538ba7d5188ffc1a7eb34f173b Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Mon, 28 Nov 2016 10:21:33 +0100
+Subject: [PATCH 1/2] Deal with correct getline() type
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ libclaw-1.7.4/claw/code/configuration_file.cpp:
+ In member function ‘bool claw::configuration_file::get_line(std::istream&,
+ const claw::configuration_file::syntax_description&, std::__cxx11::string&) const’:
+ libclaw-1.7.4/claw/code/configuration_file.cpp:444:39: error: cannot convert
+ ‘std::basic_istream<char>’ to ‘bool’ in initialization
+ bool result = text::getline(is, line);
+---
+ claw/code/configuration_file.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/claw/code/configuration_file.cpp b/claw/code/configuration_file.cpp
+index e7bb26a..3839cff 100644
+--- a/claw/code/configuration_file.cpp
++++ b/claw/code/configuration_file.cpp
+@@ -441,7 +441,7 @@ claw::configuration_file::file_end() const
+ bool claw::configuration_file::get_line
+ ( std::istream& is, const syntax_description& syntax, std::string& line ) const
+ {
+- bool result = text::getline(is, line);
++ bool result = text::getline(is, line).good();
+
+ if ( result )
+ {
+--
+2.9.3
+
+From cadc97d9626307d2f1fcf113099c9c4ca0f7cf6b Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Mon, 28 Nov 2016 10:09:33 +0100
+Subject: [PATCH 2/2] Do something random to make C++ happy
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ In file included from /usr/include/boost/bind.hpp:22:0, libclaw-1.7.4/claw/code/tween/single_tweener.cpp:32:
+ /usr/include/boost/bind/bind.hpp: In instantiation of ‘void boost::_bi::list2<A1, A2>::operator()(boost::_bi::type<void>, F&, A&, int) [with F = void (*)(double&, double&); A = boost::_bi::rrlist1<double>; A1 = boost::reference_wrapper<double>; A2 = boost::arg<1>]’:
+ /usr/include/boost/bind/bind.hpp:1234:50: required from ‘boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(A1&&) [with A1 = double; R = void; F = void (*)(double&, double&); L = boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> >; boost::_bi::bind_t<R, F, L>::result_type = void]’
+ /usr/include/boost/function/function_template.hpp:159:11: required from ‘static void boost::detail::function::void_function_obj_invoker1<FunctionObj, R, T0>::invoke(boost::detail::function::function_buffer&, T0) [with FunctionObj = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double]’
+ /usr/include/boost/function/function_template.hpp:937:38: required from ‘void boost::function1<R, T1>::assign_to(Functor) [with Functor = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double]’
+ /usr/include/boost/function/function_template.hpp:727:7: required from ‘boost::function1<R, T1>::function1(Functor, typename boost::enable_if_c<(! boost::is_integral<Functor>::value), int>::type) [with Functor = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double; typename boost::enable_if_c<(! boost::is_integral<Functor>::value), int>::type = int]’
+ /usr/include/boost/function/function_template.hpp:1073:16: required from ‘boost::function<R(T0)>::function(Functor, typename boost::enable_if_c<(! boost::is_integral<Functor>::value), int>::type) [with Functor = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double; typename boost::enable_if_c<(! boost::is_integral<Functor>::value), int>::type = int]’
+ /usr/include/boost/function/function_template.hpp:1126:5: required from ‘typename boost::enable_if_c<(! boost::is_integral<Functor>::value), boost::function<R(T0)>&>::type boost::function<R(T0)>::operator=(Functor) [with Functor = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double; typename boost::enable_if_c<(! boost::is_integral<Functor>::value), boost::function<R(T0)>&>::type = boost::function<void(double)>&]’
+ libclaw-1.7.4/claw/code/tween/single_tweener.cpp:125:62: required from here
+ /usr/include/boost/bind/bind.hpp:319:35: error: invalid initialization of non-const reference of type ‘double&’ from an rvalue of type ‘double’
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CMakeFiles/claw_tween-static.dir/build.make:89: recipe for target 'CMakeFiles/claw_tween-static.dir/claw/code/tween/single_tweener.cpp.o' failed
+---
+ claw/code/tween/single_tweener.cpp | 2 +-
+ claw/tween/single_tweener.hpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/claw/code/tween/single_tweener.cpp b/claw/code/tween/single_tweener.cpp
+index 2a3c7fe..d173eec 100644
+--- a/claw/code/tween/single_tweener.cpp
++++ b/claw/code/tween/single_tweener.cpp
+@@ -241,7 +241,7 @@ double claw::tween::single_tweener::do_update( double dt )
+ const double result = dt - t;
+ m_date += t;
+
+- const double val( get_value() );
++ double val( get_value() );
+
+ m_callback(val);
+
+diff --git a/claw/tween/single_tweener.hpp b/claw/tween/single_tweener.hpp
+index 9f05671..f730cfa 100644
+--- a/claw/tween/single_tweener.hpp
++++ b/claw/tween/single_tweener.hpp
+@@ -51,7 +51,7 @@ namespace claw
+ public:
+ /** \brief The type of the function called when the single_tweener is
+ updated. */
+- typedef boost::function<void (double)> update_function;
++ typedef boost::function<void (double&)> update_function;
+
+ /** \brief The type of the function used to compute the new value. */
+ typedef boost::function<double (double)> easing_function;
+--
+2.9.3
+
diff --git a/libraries/libclaw/patches/03_libclaw-1.7.4-gcc7.patch b/libraries/libclaw/patches/03_libclaw-1.7.4-gcc7.patch
new file mode 100644
index 0000000000..dd89e3e256
--- /dev/null
+++ b/libraries/libclaw/patches/03_libclaw-1.7.4-gcc7.patch
@@ -0,0 +1,36 @@
+Patch taken from upstream and edited for use in Fedora:
+
+commit 6033275773313fe052f6e222321a8ec87587fbe6
+Author: Julien Jorge <julien.jorge@iscool-e.com>
+Date: Thu Apr 24 20:39:18 2014 +0200
+
+ Fix various errors pointed by clang on iOS.
+
+diff --git a/claw/impl/box_2d.tpp b/claw/impl/box_2d.tpp
+index e4b6936..71f3883 100644
+--- a/claw/impl/box_2d.tpp
++++ b/claw/impl/box_2d.tpp
+@@ -136,8 +136,8 @@ template<typename U>
+ claw::math::box_2d<U> claw::math::box_2d<T>::cast_value_type_to() const
+ {
+ return claw::math::box_2d<U>
+- ( first_point.cast_value_type_to<U>(),
+- second_point.cast_value_type_to<U>() );
++ ( first_point.template cast_value_type_to<U>(),
++ second_point.template cast_value_type_to<U>() );
+ } // box_2d::cast_value_type_to()
+
+ /*----------------------------------------------------------------------------*/
+diff --git a/claw/impl/rectangle.tpp b/claw/impl/rectangle.tpp
+index 9e6f14a..3c3c8f3 100644
+--- a/claw/impl/rectangle.tpp
++++ b/claw/impl/rectangle.tpp
+@@ -140,7 +140,7 @@ template<typename U>
+ claw::math::rectangle<U> claw::math::rectangle<T>::cast_value_type_to() const
+ {
+ return claw::math::rectangle<U>
+- ( position.cast_value_type_to<U>(), (U)width, (U)height );
++ ( position.template cast_value_type_to<U>(), (U)width, (U)height );
+ } // rectangle::cast_value_type_to()
+
+ /*----------------------------------------------------------------------------*/
diff --git a/libraries/libdbus-c++/gcc47.patch b/libraries/libdbus-c++/gcc47.patch
deleted file mode 100644
index 6a82773006..0000000000
--- a/libraries/libdbus-c++/gcc47.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/eventloop-integration.cpp.orig 2012-05-09 11:22:09.683290763 +0200
-+++ src/eventloop-integration.cpp 2012-05-09 11:22:44.313288912 +0200
-@@ -38,6 +38,7 @@
- #include <cassert>
- #include <sys/poll.h>
- #include <fcntl.h>
-+#include <unistd.h>
-
- using namespace DBus;
- using namespace std;
diff --git a/libraries/libdbus-c++/libdbus-c++.SlackBuild b/libraries/libdbus-c++/libdbus-c++.SlackBuild
index 3df02abcb3..77bbd394c2 100644
--- a/libraries/libdbus-c++/libdbus-c++.SlackBuild
+++ b/libraries/libdbus-c++/libdbus-c++.SlackBuild
@@ -23,13 +23,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libdbus-c++
-VERSION=${VERSION:-0.9.0}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-20160924_e3455d2}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -60,22 +60,20 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Fix compiling with newer gcc versions
-patch -p0 -i $CWD/gcc47.patch
+# Apply some patches (thanks opensuse!)
+for i in $CWD/patches/*.patch ; do patch -p0 < $i ; done
-# Fix https://sourceforge.net/p/dbus-cplusplus/bugs/5/
-patch -p1 -i $CWD/nested_variant_map.patch
+./bootstrap
-LDFLAGS="-lpthread" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/libraries/libdbus-c++/libdbus-c++.info b/libraries/libdbus-c++/libdbus-c++.info
index df6ec8de77..264ec943dc 100644
--- a/libraries/libdbus-c++/libdbus-c++.info
+++ b/libraries/libdbus-c++/libdbus-c++.info
@@ -1,8 +1,8 @@
PRGNAM="libdbus-c++"
-VERSION="0.9.0"
+VERSION="20160924_e3455d2"
HOMEPAGE="http://dbus-cplusplus.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/dbus-cplusplus/libdbus-c++-0.9.0.tar.gz"
-MD5SUM="e752116f523fa88ef041e63d3dee4de2"
+DOWNLOAD="http://ponce.cc/slackware/sources/repo/libdbus-c++-20160924_e3455d2.tar.xz"
+MD5SUM="f6aa26e23d73fa0f02d03e68932f8be7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libdbus-c++/nested_variant_map.patch b/libraries/libdbus-c++/nested_variant_map.patch
deleted file mode 100644
index 8b41ed3a3a..0000000000
--- a/libraries/libdbus-c++/nested_variant_map.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- libdbus-c++-0.9.0/src/message.cpp 2016-02-20 12:15:52.069704535 +0100
-+++ libdbus-c++-0.9.0-patch/src/message.cpp 2016-02-20 12:31:34.159854472 +0100
-@@ -347,6 +347,7 @@
- (
- (DBusMessageIter *) & (to._iter),
- from.type(),
-- from.type() == DBUS_TYPE_VARIANT ? NULL : sig,
-+ from.type() == DBUS_TYPE_DICT_ENTRY ||
-+ from.type() == DBUS_TYPE_STRUCT ? NULL : sig,
- (DBusMessageIter *) & (to_container._iter)
- );
diff --git a/libraries/libdbus-c++/patches/libdbus-c++-gcc7.patch b/libraries/libdbus-c++/patches/libdbus-c++-gcc7.patch
new file mode 100644
index 0000000000..42efd3ab8a
--- /dev/null
+++ b/libraries/libdbus-c++/patches/libdbus-c++-gcc7.patch
@@ -0,0 +1,11 @@
+Index: src/pipe.cpp
+===================================================================
+--- src/pipe.cpp.orig 2011-11-30 00:16:31.000000000 +0200
++++ src/pipe.cpp 2017-03-27 10:34:55.261175583 +0200
+@@ -83,5 +83,5 @@ ssize_t Pipe::read(void *buffer, unsigne
+ void Pipe::signal()
+ {
+ // TODO: ignoring return of read/write generates warning; maybe relevant for eventloop work...
+- ::write(_fd_write, '\0', 1);
++ ::write(_fd_write, 0, 1);
+ }
diff --git a/libraries/libdbus-c++/patches/libdbus-c++-glibmm-2.43.patch b/libraries/libdbus-c++/patches/libdbus-c++-glibmm-2.43.patch
new file mode 100644
index 0000000000..56bce80d17
--- /dev/null
+++ b/libraries/libdbus-c++/patches/libdbus-c++-glibmm-2.43.patch
@@ -0,0 +1,13 @@
+--- examples/glib/dbus-browser.h.orig 2016-09-24 11:03:56.000000000 +0200
++++ examples/glib/dbus-browser.h 2017-06-21 14:58:48.350046047 +0200
+@@ -1,9 +1,9 @@
+ #ifndef __DEMO_DBUS_BROWSER_H
+ #define __DEMO_DBUS_BROWSER_H
+
++#include <gtkmm.h>
+ #include <dbus-c++/dbus.h>
+ #include <dbus-c++/glib-integration.h>
+-#include <gtkmm.h>
+
+ #include "dbus-glue.h"
+
diff --git a/libraries/libdbus-c++/patches/libdbus-c++-nodocdatetime.patch b/libraries/libdbus-c++/patches/libdbus-c++-nodocdatetime.patch
new file mode 100644
index 0000000000..68684c8add
--- /dev/null
+++ b/libraries/libdbus-c++/patches/libdbus-c++-nodocdatetime.patch
@@ -0,0 +1,25 @@
+Index: doc/foot.html
+===================================================================
+--- doc/foot.html.orig 2016-09-24 11:03:56.000000000 +0200
++++ doc/foot.html 2017-04-10 15:51:55.951931300 +0200
+@@ -10,7 +10,6 @@
+ <table><tr>
+ <td></td>
+ <td class="copyright">Copyright &copy;$year DBus-C++ Project</td>
+- <td class="generated">Docs generated $datetime</td>
+ </tr></table>
+ </div>
+
+Index: doc/Doxyfile.in
+===================================================================
+--- doc/Doxyfile.in.orig 2016-09-24 11:03:56.000000000 +0200
++++ doc/Doxyfile.in 2017-04-10 15:54:18.748279756 +0200
+@@ -836,7 +836,7 @@ HTML_STYLESHEET = @srcdir@/dbus-c
+ # page will contain the date and time when the page was generated. Setting
+ # this to NO can help when comparing the output of multiple runs.
+
+-HTML_TIMESTAMP = YES
++HTML_TIMESTAMP = NO
+
+ # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+ # files or namespaces will be aligned in HTML using tables. If set to
diff --git a/libraries/libdbus-c++/patches/libdbus-c++-noreturn.patch b/libraries/libdbus-c++/patches/libdbus-c++-noreturn.patch
new file mode 100644
index 0000000000..b87abf331f
--- /dev/null
+++ b/libraries/libdbus-c++/patches/libdbus-c++-noreturn.patch
@@ -0,0 +1,21 @@
+Index: include/dbus-c++/util.h
+===================================================================
+--- include/dbus-c++/util.h.orig 2011-11-28 17:03:19.000000000 +0200
++++ include/dbus-c++/util.h 2012-03-11 13:21:18.851849466 +0200
+@@ -243,6 +243,7 @@ public:
+ // TODO: think about return type in this case
+ // this assert should help me to find the use case where it's needed...
+ //assert (false);
++ return _cb->call(param);
+ }
+
+ R call(P param) const
+@@ -255,6 +256,8 @@ public:
+ // TODO: think about return type in this case
+ // this assert should help me to find the use case where it's needed...
+ //assert (false);
++ return _cb->call(param);
++
+ }
+
+ bool empty() const
diff --git a/libraries/libdbus-c++/patches/libdbus-c++-pthread.patch b/libraries/libdbus-c++/patches/libdbus-c++-pthread.patch
new file mode 100644
index 0000000000..38b3878ac2
--- /dev/null
+++ b/libraries/libdbus-c++/patches/libdbus-c++-pthread.patch
@@ -0,0 +1,11 @@
+Index: dbus-c++-1.pc.in
+===================================================================
+--- dbus-c++-1.pc.in.orig 2011-11-28 22:52:01.000000000 +0200
++++ dbus-c++-1.pc.in 2012-03-11 15:49:36.452603560 +0200
+@@ -7,5 +7,5 @@ Name: @PACKAGE@
+ Description: Native C++ bindings for D-Bus
+ Requires: dbus-1
+ Version: @VERSION@
+-Libs: -L${libdir} -ldbus-c++-1
++Libs: -L${libdir} -ldbus-c++-1 -lpthread
+ Cflags: -I${includedir}/dbus-c++-1 -DDBUS_API_SUBJECT_TO_CHANGE
diff --git a/libraries/libdbus-c++/patches/libdbus-c++-sover.patch b/libraries/libdbus-c++/patches/libdbus-c++-sover.patch
new file mode 100644
index 0000000000..3517991846
--- /dev/null
+++ b/libraries/libdbus-c++/patches/libdbus-c++-sover.patch
@@ -0,0 +1,28 @@
+Index: src/Makefile.am
+===================================================================
+--- src/Makefile.am.orig 2016-09-24 11:03:56.000000000 +0200
++++ src/Makefile.am 2017-03-28 14:53:22.941031645 +0200
+@@ -28,6 +28,9 @@ libdbus_c___1_la_CXXFLAGS = \
+ -I$(top_srcdir)/include \
+ -Wno-unused-parameter
+
++libdbus_c___1_la_LDFLAGS= \
++ -version-info "$(SOVER)"
++
+ libdbus_c___1_la_LIBADD = \
+ $(dbus_LIBS)
+
+Index: src/integration/glib/Makefile.am
+===================================================================
+--- src/integration/glib/Makefile.am.orig 2016-09-24 11:03:56.000000000 +0200
++++ src/integration/glib/Makefile.am 2017-03-28 15:04:24.695822590 +0200
+@@ -16,6 +16,9 @@ libdbus_c___glib_1_la_LIBADD = \
+ $(dbus_LIBS) \
+ $(glib_LIBS)
+
++libdbus_c___glib_1_la_LDFLAGS= \
++ -version-info "$(SOVER)"
++
+ AM_CPPFLAGS = \
+ $(dbus_CFLAGS) \
+ $(glib_CFLAGS)
diff --git a/libraries/libedit/README b/libraries/libedit/README
deleted file mode 100644
index 026d498ff5..0000000000
--- a/libraries/libedit/README
+++ /dev/null
@@ -1,11 +0,0 @@
-This is an autotool- and libtoolized port of the NetBSD Editline
-library (libedit). This Berkeley-style licensed command line editor
-library provides generic line editing, history, and tokenization
-functions, similar to those found in GNU Readline.
-
-The slackbuild has a build time variable called LIBEDIT_WIDEC, which if set to
-`yes', turns on the wide character support of the built libedit library.
-Although the support is there, initial testing shows that it acts weird, and
-displays Unicode byte sequences instead of the real typed-in characters. You
-can experiment with it, but don't count on it until it is cleared up.
-The default build option was and is disabled widechar support.
diff --git a/libraries/libedit/libedit.SlackBuild b/libraries/libedit/libedit.SlackBuild
deleted file mode 100644
index 7e2106e79d..0000000000
--- a/libraries/libedit/libedit.SlackBuild
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libedit
-
-# Copyright 2011 Mikko Värri, Finland
-# Copyright 2013-2017 LEVAI Daniel <leva@ecentrum.hu>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libedit
-VERSION=${VERSION:-20170329_3.1}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-SRC_VERSION=$(echo $VERSION | tr _ -)
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$SRC_VERSION
-tar xvf $CWD/$PRGNAM-$SRC_VERSION.tar.gz
-cd $PRGNAM-$SRC_VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -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 {} \;
-
-if [ "${LIBEDIT_WIDEC}" = 'yes' ];then
- LIBEDIT_WIDEC='--enable-widec'
-else
- LIBEDIT_WIDEC='--disable-widec'
-fi
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --mandir=/usr/man \
- --disable-static \
- --build=$ARCH-slackware-linux \
- "${LIBEDIT_WIDEC}"
-
-make
-make install-strip DESTDIR=$PKG
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a COPYING ChangeLog INSTALL THANKS $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libedit/libedit.info b/libraries/libedit/libedit.info
deleted file mode 100644
index 39459bdcd4..0000000000
--- a/libraries/libedit/libedit.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libedit"
-VERSION="20170329_3.1"
-HOMEPAGE="http://www.thrysoee.dk/editline/"
-DOWNLOAD="http://thrysoee.dk/editline/libedit-20170329-3.1.tar.gz"
-MD5SUM="c57a0690e62ef523c083598730272cfd"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="LEVAI Daniel"
-EMAIL="leva@ecentrum.hu"
diff --git a/libraries/libedit/slack-desc b/libraries/libedit/slack-desc
deleted file mode 100644
index e500ae85a3..0000000000
--- a/libraries/libedit/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libedit: libedit (Command line editor library)
-libedit:
-libedit: This is an autotool- and libtoolized port of the NetBSD Editline
-libedit: library (libedit). This Berkeley-style licensed command line editor
-libedit: library provides generic line editing, history, and tokenization
-libedit: functions, similar to those found in GNU Readline.
-libedit:
-libedit: Homepage: http://www.thrysoee.dk/editline/
-libedit:
-libedit:
-libedit:
diff --git a/libraries/libetpan/libetpan.SlackBuild b/libraries/libetpan/libetpan.SlackBuild
index f6fd171474..dfd2d4ed0e 100644
--- a/libraries/libetpan/libetpan.SlackBuild
+++ b/libraries/libetpan/libetpan.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libetpan
-VERSION=${VERSION:-1.8}
+VERSION=${VERSION:-20180425_d2b340b}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -60,7 +60,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz || tar xvf $CWD/$VERSION.tar.gz
+tar xvf $CWD/$PRGNAM-$VERSION.tar.?z*
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
diff --git a/libraries/libetpan/libetpan.info b/libraries/libetpan/libetpan.info
index bcb9e82e04..5c4b4bdd0b 100644
--- a/libraries/libetpan/libetpan.info
+++ b/libraries/libetpan/libetpan.info
@@ -1,8 +1,8 @@
PRGNAM="libetpan"
-VERSION="1.8"
+VERSION="20180425_d2b340b"
HOMEPAGE="http://www.etpan.org/"
-DOWNLOAD="https://github.com/dinhviethoa/libetpan/archive/1.8.tar.gz"
-MD5SUM="65fa7a40548e3b29eb789dd4ac719726"
+DOWNLOAD="http://ponce.cc/slackware/sources/repo/libetpan-20180425_d2b340b.tar.xz"
+MD5SUM="4251480552abb3b372ac24b3cf826d51"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libevhtp/libevhtp.SlackBuild b/libraries/libevhtp/libevhtp.SlackBuild
index 4b6993221c..0697ea8e9c 100644
--- a/libraries/libevhtp/libevhtp.SlackBuild
+++ b/libraries/libevhtp/libevhtp.SlackBuild
@@ -25,13 +25,13 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libevhtp
-VERSION=${VERSION:-1.2.10}
+VERSION=${VERSION:-1.2.16}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -42,8 +42,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -74,6 +74,8 @@ find -L . \
# fix wrong version number
sed -i "s/@PROJECT_VERSION@/${VERSION}/" evhtp.pc.in
+sed -i "s|/lib/pkgconfig|/lib$LIBDIRSUFFIX/pkgconfig|" CMakeLists.txt
+
mkdir -p build
cd build
cmake \
diff --git a/libraries/libevhtp/libevhtp.info b/libraries/libevhtp/libevhtp.info
index 64efb10f0f..cdd66ddc85 100644
--- a/libraries/libevhtp/libevhtp.info
+++ b/libraries/libevhtp/libevhtp.info
@@ -1,8 +1,8 @@
PRGNAM="libevhtp"
-VERSION="1.2.10"
+VERSION="1.2.16"
HOMEPAGE="https://github.com/criticalstack/libevhtp"
-DOWNLOAD="https://github.com/criticalstack/libevhtp/archive/1.2.10/libevhtp-1.2.10.tar.gz"
-MD5SUM="e7261c7e34654f78047431d169b88806"
+DOWNLOAD="https://github.com/criticalstack/libevhtp/archive/1.2.16/libevhtp-1.2.16.tar.gz"
+MD5SUM="6eebc21fe41201612ac814764bf7474a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libffado/libffado.SlackBuild b/libraries/libffado/libffado.SlackBuild
index f0bc67fb3b..ca8687e62b 100644
--- a/libraries/libffado/libffado.SlackBuild
+++ b/libraries/libffado/libffado.SlackBuild
@@ -23,13 +23,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libffado
-VERSION=${VERSION:-2.2.1}
+VERSION=${VERSION:-2.4.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
TARGET="i386"
elif [ "$ARCH" = "i686" ]; then
@@ -69,25 +69,18 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Use our CFLAGS
-sed -i "s/-O2 -DNDEBUG/$SLKCFLAGS -DNDEBUG/" SConstruct
-
-patch -p1 < $CWD/libffado-mixer.patch
-
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -std=gnu++11 -Wno-deprecated-declarations" \
scons \
PREFIX=/usr \
LIBDIR=/usr/lib${LIBDIRSUFFIX} \
DIST_TARGET="$TARGET" \
- COMPILE_FLAGS="$CFLAGS -std=gnu++11" \
+ CUSTOM_ENV="True" \
DEBUG="False"
scons \
- --implicit-deps-unchanged \
- PREFIX=/usr \
- LIBDIR=/usr/lib${LIBDIRSUFFIX} \
- DIST_TARGET="$TARGET" \
- DEBUG="False" \
DESTDIR=$PKG \
+ WILL_DEAL_WITH_XDG_MYSELF="True" \
install
mkdir -p $PKG/usr/share/{applications,pixmaps}
diff --git a/libraries/libffado/libffado.info b/libraries/libffado/libffado.info
index 04eee7ed85..9abbad539d 100644
--- a/libraries/libffado/libffado.info
+++ b/libraries/libffado/libffado.info
@@ -1,10 +1,10 @@
PRGNAM="libffado"
-VERSION="2.2.1"
+VERSION="2.4.1"
HOMEPAGE="http://www.ffado.org/"
-DOWNLOAD="http://www.ffado.org/files/libffado-2.2.1.tgz"
-MD5SUM="e113d828835051f835fb4a329cb0cbd4"
+DOWNLOAD="http://www.ffado.org/files/libffado-2.4.1.tgz"
+MD5SUM="58d42bae946a9a98d0c8e4efa56f99f5"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="libconfig libiec61883 libxml++"
+REQUIRES="libconfig libdbus-c++ libiec61883 libxml++"
MAINTAINER="Heinz Wiesinger"
EMAIL="pprkut@liwjatan.at"
diff --git a/libraries/libgda/libgda.SlackBuild b/libraries/libgda/libgda.SlackBuild
index 57d2e2823e..ea38540a6e 100644
--- a/libraries/libgda/libgda.SlackBuild
+++ b/libraries/libgda/libgda.SlackBuild
@@ -69,8 +69,16 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# https://github.com/voidlinux/void-packages/commit/f16a2d557e84f5d7f5ece8b2022aab4fd17aa0ce
+for f in $(find . -type f -exec file "{}" \; | grep "C source" | cut -d ':' -f1); do
+ echo "${f}"
+ recode ISO-8859-1..UTF-8 "${f}"
+done
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
+LIBCRYPTO_CFLAGS="$CFLAGS -I/usr/include/openssl-1.0" \
+LIBCRYPTO_LIBS="-L/usr/lib${LIBDIRSUFFIX}/openssl-1.0" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/libgda/libgda.info b/libraries/libgda/libgda.info
index f8d6f787e3..f4297bd16a 100644
--- a/libraries/libgda/libgda.info
+++ b/libraries/libgda/libgda.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://ftp.gnome.org/pub/GNOME/sources/libgda/5.2/libgda-5.2.4.tar.xz
MD5SUM="d008c9e9af2e9cd35dfe550cfbfd99d6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="recode"
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/libraries/libgexiv2/README b/libraries/libgexiv2/README
deleted file mode 100644
index 40c7cae33c..0000000000
--- a/libraries/libgexiv2/README
+++ /dev/null
@@ -1,3 +0,0 @@
-gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.
-It allows for GNOME applications to easily inspect and update
-EXIF, IPTC, and XMP metadata in photo files of various formats.
diff --git a/libraries/libgexiv2/libgexiv2.SlackBuild b/libraries/libgexiv2/libgexiv2.SlackBuild
deleted file mode 100644
index be7abf73da..0000000000
--- a/libraries/libgexiv2/libgexiv2.SlackBuild
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for entangle
-
-# Copyright 2014 Soydaner Ulker Istanbul,Turkey
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libgexiv2
-SRCNAM=gexiv2
-VERSION=${VERSION:-0.10.3}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i486 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $SRCNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.xz
-cd $SRCNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --enable-introspection \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING NEWS README THANKS $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libgexiv2/libgexiv2.info b/libraries/libgexiv2/libgexiv2.info
deleted file mode 100644
index 6942a4f407..0000000000
--- a/libraries/libgexiv2/libgexiv2.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libgexiv2"
-VERSION="0.10.3"
-HOMEPAGE="https://wiki.gnome.org/gexiv2"
-DOWNLOAD="http://ftp.gnome.org/pub/GNOME/sources/gexiv2/0.10/gexiv2-0.10.3.tar.xz"
-MD5SUM="f255100a009027d4eaa0f075bb79c655"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="vala"
-MAINTAINER="Soydaner Ulker"
-EMAIL="soydaner@kahverengi.com"
diff --git a/libraries/libgexiv2/slack-desc b/libraries/libgexiv2/slack-desc
deleted file mode 100644
index ae4dcb9130..0000000000
--- a/libraries/libgexiv2/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libgexiv2: libgexiv2 (GObject wrapper around Exiv2 library)
-libgexiv2:
-libgexiv2: gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.
-libgexiv2: It allows for GNOME applications to easily inspect and update EXIF,
-libgexiv2: IPTC, and XMP metadata in photo files of various formats.
-libgexiv2: Homepage: https://wiki.gnome.org/gexiv2
-libgexiv2:
-libgexiv2:
-libgexiv2:
-libgexiv2:
-libgexiv2:
diff --git a/libraries/libgnome/libgnome.SlackBuild b/libraries/libgnome/libgnome.SlackBuild
index 15083db758..a05779e965 100644
--- a/libraries/libgnome/libgnome.SlackBuild
+++ b/libraries/libgnome/libgnome.SlackBuild
@@ -69,6 +69,12 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# https://github.com/voidlinux/void-packages/commit/f16a2d557e84f5d7f5ece8b2022aab4fd17aa0ce
+for f in $(find . -type f -exec file "{}" \; | grep "C source" | cut -d ':' -f1); do
+ echo "${f}"
+ recode ISO-8859-1..UTF-8 "${f}"
+done
+
# Fix for the newer glib
sed -i "/-DG_DISABLE_DEPRECATED/d" libgnome/Makefile.*
diff --git a/libraries/libgnome/libgnome.info b/libraries/libgnome/libgnome.info
index 5b173bffdb..1fe704d75d 100644
--- a/libraries/libgnome/libgnome.info
+++ b/libraries/libgnome/libgnome.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://ftp.gnome.org/pub/GNOME/sources/libgnome/2.32/libgnome-2.32.1.
MD5SUM="a4345e6087ae6195d65a4674ffdca559"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="gnome-vfs"
+REQUIRES="gnome-vfs recode"
MAINTAINER="Erik Hanson"
EMAIL="erik@slackbuilds.org"
diff --git a/libraries/libgnomecanvas/libgnomecanvas.info b/libraries/libgnomecanvas/libgnomecanvas.info
index 5d5066e396..4c42aff604 100644
--- a/libraries/libgnomecanvas/libgnomecanvas.info
+++ b/libraries/libgnomecanvas/libgnomecanvas.info
@@ -5,6 +5,6 @@ DOWNLOAD="http://ftp.gnome.org/pub/gnome/sources/libgnomecanvas/2.30/libgnomecan
MD5SUM="ffcbb719c671ff5cd86e59aeba8d0b92"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="libart-lgpl"
MAINTAINER="Erik Hanson"
EMAIL="erik@slackbuilds.org"
diff --git a/libraries/libgnomeui/libgnomeui.SlackBuild b/libraries/libgnomeui/libgnomeui.SlackBuild
index d048a25b90..948f6d7fdc 100644
--- a/libraries/libgnomeui/libgnomeui.SlackBuild
+++ b/libraries/libgnomeui/libgnomeui.SlackBuild
@@ -69,6 +69,12 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# https://github.com/voidlinux/void-packages/commit/f16a2d557e84f5d7f5ece8b2022aab4fd17aa0ce
+for f in $(find . -type f -exec file "{}" \; | grep "C source" | cut -d ':' -f1); do
+ echo "${f}"
+ recode ISO-8859-1..UTF-8 "${f}"
+done
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
diff --git a/libraries/libidn2/README b/libraries/libidn2/README
deleted file mode 100644
index 972855606d..0000000000
--- a/libraries/libidn2/README
+++ /dev/null
@@ -1,5 +0,0 @@
-GNU Libidn is a fully documented implementation of the Stringprep,
-Punycode and IDNA 2003 specifications. Libidn's purpose is to encode
-and decode internationalized domain names.
-
-The libidn2 package does not clash with Slackware's libidn package.
diff --git a/libraries/libidn2/libidn2.SlackBuild b/libraries/libidn2/libidn2.SlackBuild
deleted file mode 100644
index 8ccfaa4583..0000000000
--- a/libraries/libidn2/libidn2.SlackBuild
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libidn2
-
-# Copyright 2017 Mohammad Etemaddar Iran
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libidn2
-VERSION=${VERSION:-2.0.4}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.lz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -size 0 -delete
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-rm -f $PKG/usr/info/dir
-gzip -9 $PKG/usr/info/*.info*
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- ABOUT-NLS AUTHORS CONTRIBUTING.md COPYING* INSTALL NEWS README* \
- $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libidn2/libidn2.info b/libraries/libidn2/libidn2.info
deleted file mode 100644
index b07454fe03..0000000000
--- a/libraries/libidn2/libidn2.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libidn2"
-VERSION="2.0.4"
-HOMEPAGE="https://www.gnu.org/software/libidn/"
-DOWNLOAD="https://ftp.gnu.org/gnu/libidn/libidn2-2.0.4.tar.lz"
-MD5SUM="376e879081abe810449389ffcc300585"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Mohammad Etemaddar"
-EMAIL="mohammad.etemaddar@gmail.com"
diff --git a/libraries/libidn2/slack-desc b/libraries/libidn2/slack-desc
deleted file mode 100644
index 251ce06f1c..0000000000
--- a/libraries/libidn2/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libidn2: libidn2 (GNU IDN Library version 2)
-libidn2:
-libidn2: GNU Libidn is a fully documented implementation of the Stringprep,
-libidn2: Punycode and IDNA 2003 specifications. Libidn's purpose is to encode
-libidn2: and decode internationalized domain names.
-libidn2:
-libidn2: The libidn2 package does not clash with Slackware's libidn package.
-libidn2:
-libidn2:
-libidn2:
-libidn2:
diff --git a/libraries/libindicator3/libindicator3.SlackBuild b/libraries/libindicator3/libindicator3.SlackBuild
index 0fc7a67f17..4987b1e670 100644
--- a/libraries/libindicator3/libindicator3.SlackBuild
+++ b/libraries/libindicator3/libindicator3.SlackBuild
@@ -70,7 +70,7 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
./autogen.sh
-CFLAGS="$SLKCFLAGS -Wno-deprecated -Wno-deprecated-declarations" \
+CFLAGS="$SLKCFLAGS -Wno-deprecated -Wno-deprecated-declarations -Wno-error=incompatible-pointer-types" \
CXXFLAGS="$SLKCFLAGS -Wno-deprecated -Wno-deprecated-declarations" \
./configure \
--prefix=/usr \
diff --git a/libraries/libinput/README b/libraries/libinput/README
deleted file mode 100644
index 6ffad5d887..0000000000
--- a/libraries/libinput/README
+++ /dev/null
@@ -1,11 +0,0 @@
-libinput (Input device library)
-
-libinput is a library to handle input devices in Wayland compositors
-and to provide a generic X.Org input driver.
-
-It provides device detection, device handling, input device event
-processing and abstraction so minimize the amount of custom input
-code compositors need to provide the common set of functionality
-that users expect. Input event processing includes scaling touch
-coordinates, generating pointer events from touchpads, pointer
-acceleration, etc.
diff --git a/libraries/libinput/libinput.SlackBuild b/libraries/libinput/libinput.SlackBuild
deleted file mode 100644
index 37a7da6815..0000000000
--- a/libraries/libinput/libinput.SlackBuild
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-#
-# Slackware build script for libinput.
-#
-# Copyright 2016-2018 Edinaldo P. Silva, Rio de Janeiro, Brazil.
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libinput
-VERSION=${VERSION:-1.12.3}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-rm -rf $TMP/$PRGNAM-$VERSION
-cd $TMP
-tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-meson --prefix /usr --libdir lib${LIBDIRSUFFIX} --mandir /usr/man \
- build -Ddebug-gui="false" -Dtests="false" -Ddocumentation="false" \
--Dudev-dir="/lib/udev"
-
-DESTDIR=$PKG ninja -C build all install
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -r COPYING README.md doc/ $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libinput/libinput.info b/libraries/libinput/libinput.info
deleted file mode 100644
index 4098738a73..0000000000
--- a/libraries/libinput/libinput.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libinput"
-VERSION="1.12.3"
-HOMEPAGE="https://www.freedesktop.org/wiki/Software/libinput"
-DOWNLOAD="https://www.freedesktop.org/software/libinput/libinput-1.12.3.tar.xz"
-MD5SUM="083d6bf311d5e1e3a62440dc634bb8f0"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="libwacom meson graphviz python-evdev pyudev"
-MAINTAINER="Edinaldo P. Silva"
-EMAIL="edps.mundognu@gmail.com"
diff --git a/libraries/libinput/slack-desc b/libraries/libinput/slack-desc
deleted file mode 100644
index 385f7da66f..0000000000
--- a/libraries/libinput/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libinput: libinput (Input device library)
-libinput:
-libinput: libinput is a library to handle input devices in Wayland compositors
-libinput: and to provide a generic X.Org input driver.
-libinput:
-libinput: Home page: http://www.freedesktop.org/wiki/Software/libinput/
-libinput:
-libinput:
-libinput:
-libinput:
-libinput:
diff --git a/libraries/libircclient/libircclient.SlackBuild b/libraries/libircclient/libircclient.SlackBuild
index 70d4361559..b53a7626bc 100644
--- a/libraries/libircclient/libircclient.SlackBuild
+++ b/libraries/libircclient/libircclient.SlackBuild
@@ -73,6 +73,10 @@ find -L . \
# example: error: 'LIBIRC_RFC_RPL_ENDOFNAMES' was not declared in this scope
patch -p1 < $CWD/libircclient-1.6-rfc.patch
+# for openssl-1.1.x
+sed -i "s|SSL_library_init|OPENSSL_init_ssl|" configure.in
+autoreconf -vif
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/libraries/libkqueue/libkqueue.SlackBuild b/libraries/libkqueue/libkqueue.SlackBuild
index a989d26944..5b7c6208af 100644
--- a/libraries/libkqueue/libkqueue.SlackBuild
+++ b/libraries/libkqueue/libkqueue.SlackBuild
@@ -25,7 +25,7 @@
# Modified by the slackbuilds.org project.
PRGNAM=libkqueue
-VERSION=${VERSION:-2.0.1}
+VERSION=${VERSION:-2.1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -75,6 +75,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+autoreconf -fi
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
diff --git a/libraries/libkqueue/libkqueue.info b/libraries/libkqueue/libkqueue.info
index 6cd089bc9f..f4b2e5d9d1 100644
--- a/libraries/libkqueue/libkqueue.info
+++ b/libraries/libkqueue/libkqueue.info
@@ -1,8 +1,8 @@
PRGNAM="libkqueue"
-VERSION="2.0.1"
+VERSION="2.1.0"
HOMEPAGE="https://github.com/mheily/libkqueue"
-DOWNLOAD="http://sourceforge.net/projects/libkqueue/files/libkqueue-2.0/libkqueue-2.0.1.tar.gz"
-MD5SUM="3d939aa5fa83a870aee71f2181b22994"
+DOWNLOAD="https://github.com/mheily/libkqueue/archive/v2.1.0/libkqueue-2.1.0.tar.gz"
+MD5SUM="e8f7cb2287d3c8b05dc413cd41c032fa"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libmemcached/libmemcached.SlackBuild b/libraries/libmemcached/libmemcached.SlackBuild
index 3cc3e35ca1..aa21736960 100644
--- a/libraries/libmemcached/libmemcached.SlackBuild
+++ b/libraries/libmemcached/libmemcached.SlackBuild
@@ -82,7 +82,7 @@ export PATH="/usr/libexec:$PATH"
patch -p1 < $CWD/patches/libmemcached-fix-linking-with-libpthread.patch
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -fpermissive" \
./configure \
--prefix=/usr \
--exec-prefix=/usr \
diff --git a/libraries/libmp4v2/libmp4v2.SlackBuild b/libraries/libmp4v2/libmp4v2.SlackBuild
index e1550512cf..ad61013270 100644
--- a/libraries/libmp4v2/libmp4v2.SlackBuild
+++ b/libraries/libmp4v2/libmp4v2.SlackBuild
@@ -81,7 +81,7 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -fpermissive" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/libmusicbrainz/libmusicbrainz.SlackBuild b/libraries/libmusicbrainz/libmusicbrainz.SlackBuild
index e378f14ade..85ea239ddb 100644
--- a/libraries/libmusicbrainz/libmusicbrainz.SlackBuild
+++ b/libraries/libmusicbrainz/libmusicbrainz.SlackBuild
@@ -52,7 +52,7 @@ find -L . \
patch -p1 < $CWD/libmusicbrainz-2.1.5-include_stringh.patch
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -Wno-narrowing" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/libmwaw/libmwaw.SlackBuild b/libraries/libmwaw/libmwaw.SlackBuild
index 9f81e7f543..47bf361aff 100644
--- a/libraries/libmwaw/libmwaw.SlackBuild
+++ b/libraries/libmwaw/libmwaw.SlackBuild
@@ -75,7 +75,7 @@ case "${DOC:-0}" in
esac
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -Wno-error=implicit-fallthrough= -Wno-error=int-in-bool-context" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/liboauth/liboauth-1.0.3-openssl-1.1.0-2.patch b/libraries/liboauth/liboauth-1.0.3-openssl-1.1.0-2.patch
new file mode 100644
index 0000000000..eafd3eb9bf
--- /dev/null
+++ b/libraries/liboauth/liboauth-1.0.3-openssl-1.1.0-2.patch
@@ -0,0 +1,147 @@
+Submitted by: DJ Lucas (dj_AT_linuxfromscratch_DOT_org)
+Date: 2017-05-27
+Initial Package Version: 1.0.3
+Update by: Bruce Dubbs
+Date: 2017-06-14
+Upstream Status: Submitted
+Origin: https://github.com/x42/liboauth/issues/9
+Description: Fixes build issue with OpenSSL-1.1.0.
+Update: Additional fix from upstream. Three lines changed.
+
+diff -Naurp liboauth-1.0.3-orig/src/hash.c liboauth-1.0.3/src/hash.c
+--- liboauth-1.0.3-orig/src/hash.c 2013-10-04 08:02:50.000000000 -0500
++++ liboauth-1.0.3/src/hash.c 2017-05-27 00:51:04.708633351 -0500
+@@ -362,6 +362,11 @@ looser:
+ #include "oauth.h" // base64 encode fn's.
+ #include <openssl/hmac.h>
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000
++#define EVP_MD_CTX_new EVP_MD_CTX_create
++#define EVP_MD_CTX_free EVP_MD_CTX_destroy
++#endif
++
+ char *oauth_sign_hmac_sha1 (const char *m, const char *k) {
+ return(oauth_sign_hmac_sha1_raw (m, strlen(m), k, strlen(k)));
+ }
+@@ -386,7 +391,7 @@ char *oauth_sign_rsa_sha1 (const char *m
+ unsigned char *sig = NULL;
+ unsigned char *passphrase = NULL;
+ unsigned int len=0;
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+
+ EVP_PKEY *pkey;
+ BIO *in;
+@@ -399,24 +404,31 @@ char *oauth_sign_rsa_sha1 (const char *m
+ return xstrdup("liboauth/OpenSSL: can not read private key");
+ }
+
++ md_ctx = EVP_MD_CTX_new();
++ if (md_ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++
+ len = EVP_PKEY_size(pkey);
+ sig = (unsigned char*)xmalloc((len+1)*sizeof(char));
+
+- EVP_SignInit(&md_ctx, EVP_sha1());
+- EVP_SignUpdate(&md_ctx, m, strlen(m));
+- if (EVP_SignFinal (&md_ctx, sig, &len, pkey)) {
++ EVP_SignInit(md_ctx, EVP_sha1());
++ EVP_SignUpdate(md_ctx, m, strlen(m));
++ if (EVP_SignFinal (md_ctx, sig, &len, pkey)) {
+ char *tmp;
+ sig[len] = '\0';
+ tmp = oauth_encode_base64(len,sig);
+ OPENSSL_free(sig);
+ EVP_PKEY_free(pkey);
++ EVP_MD_CTX_free(md_ctx);
+ return tmp;
+ }
++ EVP_MD_CTX_free(md_ctx);
+ return xstrdup("liboauth/OpenSSL: rsa-sha1 signing failed");
+ }
+
+ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ EVP_PKEY *pkey;
+ BIO *in;
+ X509 *cert = NULL;
+@@ -437,13 +449,18 @@ int oauth_verify_rsa_sha1 (const char *m
+ return -2;
+ }
+
++ md_ctx = EVP_MD_CTX_new();
++ if (md_ctx == NULL) {
++ return -2;
++ }
++
+ b64d= (unsigned char*) xmalloc(sizeof(char)*strlen(s));
+ slen = oauth_decode_base64(b64d, s);
+
+- EVP_VerifyInit(&md_ctx, EVP_sha1());
+- EVP_VerifyUpdate(&md_ctx, m, strlen(m));
+- err = EVP_VerifyFinal(&md_ctx, b64d, slen, pkey);
+- EVP_MD_CTX_cleanup(&md_ctx);
++ EVP_VerifyInit(md_ctx, EVP_sha1());
++ EVP_VerifyUpdate(md_ctx, m, strlen(m));
++ err = EVP_VerifyFinal(md_ctx, b64d, slen, pkey);
++ EVP_MD_CTX_free(pkey);
+ EVP_PKEY_free(pkey);
+ xfree(b64d);
+ return (err);
+@@ -455,35 +472,41 @@ int oauth_verify_rsa_sha1 (const char *m
+ */
+ char *oauth_body_hash_file(char *filename) {
+ unsigned char fb[BUFSIZ];
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ size_t len=0;
+ unsigned char *md;
+ FILE *F= fopen(filename, "r");
+ if (!F) return NULL;
+
+- EVP_MD_CTX_init(&ctx);
+- EVP_DigestInit(&ctx,EVP_sha1());
++ ctx = EVP_MD_CTX_new();
++ if (ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++ EVP_DigestInit(ctx,EVP_sha1());
+ while (!feof(F) && (len=fread(fb,sizeof(char),BUFSIZ, F))>0) {
+- EVP_DigestUpdate(&ctx, fb, len);
++ EVP_DigestUpdate(ctx, fb, len);
+ }
+ fclose(F);
+ len=0;
+ md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char));
+- EVP_DigestFinal(&ctx, md,(unsigned int*) &len);
+- EVP_MD_CTX_cleanup(&ctx);
++ EVP_DigestFinal(ctx, md,(unsigned int*) &len);
++ EVP_MD_CTX_free(ctx);
+ return oauth_body_hash_encode(len, md);
+ }
+
+ char *oauth_body_hash_data(size_t length, const char *data) {
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ size_t len=0;
+ unsigned char *md;
+ md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char));
+- EVP_MD_CTX_init(&ctx);
+- EVP_DigestInit(&ctx,EVP_sha1());
+- EVP_DigestUpdate(&ctx, data, length);
+- EVP_DigestFinal(&ctx, md,(unsigned int*) &len);
+- EVP_MD_CTX_cleanup(&ctx);
++ ctx = EVP_MD_CTX_new();
++ if (ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++ EVP_DigestInit(ctx,EVP_sha1());
++ EVP_DigestUpdate(ctx, data, length);
++ EVP_DigestFinal(ctx, md,(unsigned int*) &len);
++ EVP_MD_CTX_free(ctx);
+ return oauth_body_hash_encode(len, md);
+ }
+
diff --git a/libraries/liboauth/liboauth.SlackBuild b/libraries/liboauth/liboauth.SlackBuild
index 819e22333a..9f225f8676 100644
--- a/libraries/liboauth/liboauth.SlackBuild
+++ b/libraries/liboauth/liboauth.SlackBuild
@@ -77,6 +77,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# port to openssl-1.1.x
+patch -p1 < $CWD/liboauth-1.0.3-openssl-1.1.0-2.patch
+
# compile in clean dir
mkdir -v build
cd build
diff --git a/libraries/libopusenc/README b/libraries/libopusenc/README
deleted file mode 100644
index 44dab27110..0000000000
--- a/libraries/libopusenc/README
+++ /dev/null
@@ -1,2 +0,0 @@
-libopusenc is a library that provides an easy way to encode Ogg
-Opus files.
diff --git a/libraries/libopusenc/libopusenc.info b/libraries/libopusenc/libopusenc.info
deleted file mode 100644
index 2347f6e5a3..0000000000
--- a/libraries/libopusenc/libopusenc.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libopusenc"
-VERSION="0.2.1"
-HOMEPAGE="https://opus-codec.org/"
-DOWNLOAD="https://archive.mozilla.org/pub/opus/libopusenc-0.2.1.tar.gz"
-MD5SUM="f038ea0f4168d184c76b42d293697c57"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="opus"
-MAINTAINER="Willy Sudiarto Raharjo"
-EMAIL="willysr@slackbuilds.org"
diff --git a/libraries/libopusenc/slack-desc b/libraries/libopusenc/slack-desc
deleted file mode 100644
index 041704af97..0000000000
--- a/libraries/libopusenc/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libopusenc: libopusenc (High-level Opus decoding library)
-libopusenc:
-libopusenc: libopusenc is a library that provides an easy way to encode Ogg
-libopusenc: Opus files.
-libopusenc:
-libopusenc:
-libopusenc:
-libopusenc: Project site: https://opus-codec.org/
-libopusenc:
-libopusenc:
-libopusenc:
diff --git a/libraries/libpqxx/libpqxx.SlackBuild b/libraries/libpqxx/libpqxx.SlackBuild
index d3a2f26995..270b23ccf4 100644
--- a/libraries/libpqxx/libpqxx.SlackBuild
+++ b/libraries/libpqxx/libpqxx.SlackBuild
@@ -20,8 +20,8 @@
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libpqxx
-VERSION=${VERSION:-4.0.1}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-20170619_7809d4a}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -51,7 +51,7 @@ else
LIBDIRSUFFIX=""
fi
-DOCS="AUTHORS COPYING ChangeLog INSTALL README README-UPGRADE VERSION"
+DOCS="AUTHORS COPYING INSTALL README.md README-UPGRADE VERSION"
set -e
@@ -59,14 +59,14 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -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 {} \;
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
diff --git a/libraries/libpqxx/libpqxx.info b/libraries/libpqxx/libpqxx.info
index 7e980da303..3db1d82ad0 100644
--- a/libraries/libpqxx/libpqxx.info
+++ b/libraries/libpqxx/libpqxx.info
@@ -1,8 +1,8 @@
PRGNAM="libpqxx"
-VERSION="4.0.1"
-HOMEPAGE="http://pqxx.org/development/libpqxx/"
-DOWNLOAD="http://pqxx.org/download/software/libpqxx/libpqxx-4.0.1.tar.gz"
-MD5SUM="6ea888b9ba85dd7cef1b182dc5f223a2"
+VERSION="20170619_7809d4a"
+HOMEPAGE="https://github.com/jtv/libpqxx"
+DOWNLOAD="http://ponce.cc/slackware/sources/repo/libpqxx-20170619_7809d4a.tar.xz"
+MD5SUM="675dd58d48f87b7c421d8ccaafd97f34"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="postgresql"
diff --git a/libraries/libqinfinity/libqinfinity.SlackBuild b/libraries/libqinfinity/libqinfinity.SlackBuild
index 4820de7ca0..751f619b74 100644
--- a/libraries/libqinfinity/libqinfinity.SlackBuild
+++ b/libraries/libqinfinity/libqinfinity.SlackBuild
@@ -58,7 +58,7 @@ mkdir -p build
cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -Wno-error=narrowing" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DCMAKE_BUILD_TYPE=Release ..
diff --git a/libraries/libqxt/libqxt-gcc6.patch b/libraries/libqxt/libqxt-gcc6.patch
new file mode 100644
index 0000000000..519646d6eb
--- /dev/null
+++ b/libraries/libqxt/libqxt-gcc6.patch
@@ -0,0 +1,11 @@
+--- a/src/core/qxtslotjob.cpp 2011-11-24 16:10:32.000000000 -0600
++++ b/src/core/qxtslotjob.cpp 2016-03-07 16:20:32.758268253 -0600
+@@ -174,7 +174,7 @@ This uses QxtSignalWaiter so it will _no
+
+ QVariant QxtFuture::delayedResult(int msec)
+ {
+- if (!waiter->wait(msec, false))
++ if (!waiter->wait(msec, NULL))
+ return QVariant();
+ return job->result();
+ }
diff --git a/libraries/libqxt/libqxt.SlackBuild b/libraries/libqxt/libqxt.SlackBuild
index 870d2ead16..fe260941aa 100644
--- a/libraries/libqxt/libqxt.SlackBuild
+++ b/libraries/libqxt/libqxt.SlackBuild
@@ -74,6 +74,9 @@ find -L . \
# Fix linking during the xrandr test
sed -i "s|lXrandr$|lXrandr -lX11|" config.tests/xrandr/xrandr.pro
+# Thanks to Archlinux for this
+patch -p1 < $CWD/libqxt-gcc6.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure -prefix /usr -libdir /usr/lib$LIBDIRSUFFIX
diff --git a/libraries/libsearpc/libsearpc.SlackBuild b/libraries/libsearpc/libsearpc.SlackBuild
index 56aed9cbda..99407b59c5 100644
--- a/libraries/libsearpc/libsearpc.SlackBuild
+++ b/libraries/libsearpc/libsearpc.SlackBuild
@@ -25,13 +25,13 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libsearpc
-VERSION=${VERSION:-3.0.7}
+VERSION=${VERSION:-3.1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -42,8 +42,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -61,8 +61,8 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION-latest
-tar xvf $CWD/v$VERSION.tar.gz || tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
@@ -88,7 +88,7 @@ make
make install-strip DESTDIR=$PKG
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING INSTALL README.markdown $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS LICENSE.txt INSTALL README.markdown $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/libraries/libsearpc/libsearpc.info b/libraries/libsearpc/libsearpc.info
index 24f2e679a6..292bc4baa5 100644
--- a/libraries/libsearpc/libsearpc.info
+++ b/libraries/libsearpc/libsearpc.info
@@ -1,7 +1,7 @@
PRGNAM="libsearpc"
-VERSION="3.0.7"
+VERSION="3.1.0"
HOMEPAGE="http://seafile.com/"
-DOWNLOAD="https://github.com/haiwen/libsearpc/archive/v3.0.7.tar.gz"
+DOWNLOAD="https://github.com/haiwen/libsearpc/archive/v3.1.0/libsearpc-3.1.0.tar.gz"
MD5SUM="1d20e93e0fb39f98c907e633d9f1b11b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/libraries/libsidplayfp/libsidplayfp.SlackBuild b/libraries/libsidplayfp/libsidplayfp.SlackBuild
index 8406a5fb5d..f9c3c6aae0 100644
--- a/libraries/libsidplayfp/libsidplayfp.SlackBuild
+++ b/libraries/libsidplayfp/libsidplayfp.SlackBuild
@@ -25,13 +25,13 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libsidplayfp
-VERSION=${VERSION:-1.8.6}
+VERSION=${VERSION:-1.8.7}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -42,8 +42,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/libraries/libsidplayfp/libsidplayfp.info b/libraries/libsidplayfp/libsidplayfp.info
index 1a24881670..ad709ec1ca 100644
--- a/libraries/libsidplayfp/libsidplayfp.info
+++ b/libraries/libsidplayfp/libsidplayfp.info
@@ -1,8 +1,8 @@
PRGNAM="libsidplayfp"
-VERSION="1.8.6"
+VERSION="1.8.7"
HOMEPAGE="https://sourceforge.net/projects/sidplay-residfp/"
-DOWNLOAD="http://downloads.sourceforge.net/project/sidplay-residfp/libsidplayfp/1.8/libsidplayfp-1.8.6.tar.gz"
-MD5SUM="fe1a88baa347cb896234327f61e62428"
+DOWNLOAD="http://downloads.sourceforge.net/sidplay-residfp/libsidplayfp-1.8.7.tar.gz"
+MD5SUM="9f6d46a1c2572cc2a6837173895d6f21"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="xa"
diff --git a/libraries/libsodium/README b/libraries/libsodium/README
deleted file mode 100644
index d401f6c292..0000000000
--- a/libraries/libsodium/README
+++ /dev/null
@@ -1,2 +0,0 @@
-libsodium is a portable fork of NaCl with a compatible API. It is a software
-library for network communication, encryption, decryption, signatures, etc.
diff --git a/libraries/libsodium/libsodium.SlackBuild b/libraries/libsodium/libsodium.SlackBuild
deleted file mode 100644
index 51e59a4539..0000000000
--- a/libraries/libsodium/libsodium.SlackBuild
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libsodium
-
-# Copyright 2018 T3slider <t3slider@gmail.com>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libsodium
-VERSION=${VERSION:-1.0.16}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --enable-static=no \
- --build=$ARCH-slackware-linux
-
-make
-make check
-make install-strip DESTDIR=$PKG
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- AUTHORS ChangeLog LICENSE README.markdown THANKS \
- $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libsodium/libsodium.info b/libraries/libsodium/libsodium.info
deleted file mode 100644
index ca9cfd144e..0000000000
--- a/libraries/libsodium/libsodium.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libsodium"
-VERSION="1.0.16"
-HOMEPAGE="https://github.com/jedisct1/libsodium"
-DOWNLOAD="https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz"
-MD5SUM="37b18839e57e7a62834231395c8e962b"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="T3slider"
-EMAIL="t3slider@gmail.com"
diff --git a/libraries/libsodium/slack-desc b/libraries/libsodium/slack-desc
deleted file mode 100644
index 9f9b669bc6..0000000000
--- a/libraries/libsodium/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libsodium: libsodium (a library for network communication and cryptography)
-libsodium:
-libsodium: libsodium is a portable fork of NaCl with a compatible API. It is
-libsodium: a software library for network communication, encryption, decryption,
-libsodium: signatures, etc.
-libsodium:
-libsodium: https://github.com/jedisct1/libsodium
-libsodium:
-libsodium:
-libsodium:
-libsodium:
diff --git a/libraries/libtorrent/libtorrent-openssl-1.1.patch b/libraries/libtorrent/libtorrent-openssl-1.1.patch
new file mode 100644
index 0000000000..55d0cb901b
--- /dev/null
+++ b/libraries/libtorrent/libtorrent-openssl-1.1.patch
@@ -0,0 +1,105 @@
+From 4607bbf78040789dee29266878ce109136b984ef Mon Sep 17 00:00:00 2001
+From: rakshasa <sundell.software@gmail.com>
+Date: Tue, 20 Dec 2016 19:51:02 +0900
+Subject: [PATCH] Added support for openssl 1.1.
+
+---
+ configure.ac | 4 ++++
+ src/utils/diffie_hellman.cc | 36 ++++++++++++++++++++++++++++++++++--
+ 2 files changed, 38 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 65e34872..27e33570 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -69,12 +69,15 @@ AC_ARG_ENABLE(openssl,
+ [ --disable-openssl Don't use OpenSSL's SHA1 implementation.],
+ [
+ if test "$enableval" = "yes"; then
++dnl move to scripts.
+ PKG_CHECK_MODULES(OPENSSL, libcrypto,
+ CXXFLAGS="$CXXFLAGS $OPENSSL_CFLAGS";
+ LIBS="$LIBS $OPENSSL_LIBS")
+
+ AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
+ AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
++ AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
++
+ else
+ AC_DEFINE(USE_NSS_SHA, 1, Using Mozilla's SHA1 implementation.)
+ fi
+@@ -85,6 +88,7 @@ AC_ARG_ENABLE(openssl,
+
+ AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
+ AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
++ AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
+ ]
+ )
+
+diff --git a/src/utils/diffie_hellman.cc b/src/utils/diffie_hellman.cc
+index aa653d45..7ec13165 100644
+--- a/src/utils/diffie_hellman.cc
++++ b/src/utils/diffie_hellman.cc
+@@ -54,11 +54,23 @@ DiffieHellman::DiffieHellman(const unsigned char *prime, int primeLength,
+ m_secret(NULL), m_size(0) {
+
+ #ifdef USE_OPENSSL
++
+ m_dh = DH_new();
++
++#ifdef USE_OPENSSL_1_1
++ BIGNUM * const dh_p = BN_bin2bn(prime, primeLength, NULL);
++ BIGNUM * const dh_g = BN_bin2bn(generator, generatorLength, NULL);
++
++ if (dh_p == NULL || dh_g == NULL ||
++ !DH_set0_pqg(m_dh, dh_p, NULL, dh_g))
++ throw internal_error("Could not generate Diffie-Hellman parameters");
++#else
+ m_dh->p = BN_bin2bn(prime, primeLength, NULL);
+ m_dh->g = BN_bin2bn(generator, generatorLength, NULL);
++#endif
+
+ DH_generate_key(m_dh);
++
+ #else
+ throw internal_error("Compiled without encryption support.");
+ #endif
+@@ -74,7 +86,19 @@ DiffieHellman::~DiffieHellman() {
+ bool
+ DiffieHellman::is_valid() const {
+ #ifdef USE_OPENSSL
++ if (m_dh == NULL)
++ return false;
++
++#ifdef USE_OPENSSL_1_1
++ const BIGNUM *pub_key;
++
++ DH_get0_key(m_dh, &pub_key, NULL);
++
++ return pub_key != NULL;
++#else
+ return m_dh != NULL && m_dh->pub_key != NULL;
++#endif
++
+ #else
+ return false;
+ #endif
+@@ -103,8 +127,16 @@ DiffieHellman::store_pub_key(unsigned char* dest, unsigned int length) {
+ #ifdef USE_OPENSSL
+ std::memset(dest, 0, length);
+
+- if ((int)length >= BN_num_bytes(m_dh->pub_key))
+- BN_bn2bin(m_dh->pub_key, dest + length - BN_num_bytes(m_dh->pub_key));
++ const BIGNUM *pub_key;
++
++#ifdef USE_OPENSSL_1_1
++ DH_get0_key(m_dh, &pub_key, NULL);
++#else
++ pub_key = m_dh->pub_key;
++#endif
++
++ if ((int)length >= BN_num_bytes(pub_key))
++ BN_bn2bin(pub_key, dest + length - BN_num_bytes(pub_key));
+ #endif
+ }
+
diff --git a/libraries/libtorrent/libtorrent.SlackBuild b/libraries/libtorrent/libtorrent.SlackBuild
index feb2231046..b1d0d4cce8 100644
--- a/libraries/libtorrent/libtorrent.SlackBuild
+++ b/libraries/libtorrent/libtorrent.SlackBuild
@@ -51,6 +51,10 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+sed -i '/AM_PATH_CPPUNIT/d' configure.ac
+patch -p1 < $CWD/libtorrent-openssl-1.1.patch
+./autogen.sh
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/libraries/libtxc_dxtn/README b/libraries/libtxc_dxtn/README
deleted file mode 100644
index a20c465fa6..0000000000
--- a/libraries/libtxc_dxtn/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This library provides the GL_EXT_texture_compression_s3tc extenstion for Mesa
-for using precompressed textures with hardware decompression (precompressed
-textures are used by most modern games).
-
-Due to US patent restrictions, this library is not part of Mesa itself.
diff --git a/libraries/libtxc_dxtn/libtxc_dxtn.SlackBuild b/libraries/libtxc_dxtn/libtxc_dxtn.SlackBuild
deleted file mode 100644
index 49192eecb0..0000000000
--- a/libraries/libtxc_dxtn/libtxc_dxtn.SlackBuild
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libtxc_dxtn
-
-# Copyright 2012 Carlos Corbacho <carlos@strangeworlds.co.uk>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libtxc_dxtn
-VERSION=${VERSION:-1.0.1}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i486 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -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 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libtxc_dxtn/libtxc_dxtn.info b/libraries/libtxc_dxtn/libtxc_dxtn.info
deleted file mode 100644
index 57831f2652..0000000000
--- a/libraries/libtxc_dxtn/libtxc_dxtn.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libtxc_dxtn"
-VERSION="1.0.1"
-HOMEPAGE="https://people.freedesktop.org/~cbrill/libtxc_dxtn/"
-DOWNLOAD="https://people.freedesktop.org/~cbrill/libtxc_dxtn/libtxc_dxtn-1.0.1.tar.bz2"
-MD5SUM="7105107f07ac49753f4b61ba9d0c79c5"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Carlos Corbacho"
-EMAIL="carlos@strangeworlds.co.uk"
diff --git a/libraries/libunwind/README b/libraries/libunwind/README
deleted file mode 100644
index c650d3ee47..0000000000
--- a/libraries/libunwind/README
+++ /dev/null
@@ -1,9 +0,0 @@
-Libunwind is a portable and efficient C programming interface
-to determine the call-chain of a program.
-
-The API is useful in a number of applications:
-
-* debuggers
-* introspection
-* efficient setjmp()
-* ...
diff --git a/libraries/libunwind/libunwind.SlackBuild b/libraries/libunwind/libunwind.SlackBuild
deleted file mode 100644
index 6d9dbe168f..0000000000
--- a/libraries/libunwind/libunwind.SlackBuild
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libunwind
-
-# Copyright 2013 tjohann <thorsten.johannvorderbrueggen@t-online.de>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libunwind
-VERSION=${VERSION:-1.1}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i486 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-DOCS="AUTHORS COPYING ChangeLog INSTALL LICENSE NEWS README TODO"
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -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 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --disable-static \
- --build=$ARCH-slackware-linux
-
-make
-# make pdf # doesn't work
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libunwind/libunwind.info b/libraries/libunwind/libunwind.info
deleted file mode 100644
index 4f4c7c124b..0000000000
--- a/libraries/libunwind/libunwind.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libunwind"
-VERSION="1.1"
-HOMEPAGE="http://www.nongnu.org/libunwind/"
-DOWNLOAD="http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.1.tar.gz"
-MD5SUM="fb4ea2f6fbbe45bf032cd36e586883ce"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="tjohann"
-EMAIL="thorsten.johannvorderbrueggen@t-online.de"
diff --git a/libraries/libunwind/slack-desc b/libraries/libunwind/slack-desc
deleted file mode 100644
index 3fe00993a0..0000000000
--- a/libraries/libunwind/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libunwind: libunwind (C programming interface to determine the call-chain)
-libunwind:
-libunwind: It is a portable and efficient C programming interface
-libunwind: to determine the call-chain of a program.
-libunwind: The API is useful in a number of applications:
-libunwind: * debuggers
-libunwind: * introspection
-libunwind: * efficient setjmp()
-libunwind: * ...
-libunwind:
-libunwind: Homepage: http://www.nongnu.org/libunwind
diff --git a/libraries/libvirt-python/libvirt-python.SlackBuild b/libraries/libvirt-python/libvirt-python.SlackBuild
index 9688b5afe4..6e660e841f 100644
--- a/libraries/libvirt-python/libvirt-python.SlackBuild
+++ b/libraries/libvirt-python/libvirt-python.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libvirt-python
-VERSION=${VERSION:-4.5.0}
+VERSION=${VERSION:-4.7.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/libvirt-python/libvirt-python.info b/libraries/libvirt-python/libvirt-python.info
index 0670df4073..947a32e371 100644
--- a/libraries/libvirt-python/libvirt-python.info
+++ b/libraries/libvirt-python/libvirt-python.info
@@ -1,8 +1,8 @@
PRGNAM="libvirt-python"
-VERSION="4.5.0"
+VERSION="4.7.0"
HOMEPAGE="http://libvirt.org"
-DOWNLOAD="https://libvirt.org/sources/python/libvirt-python-4.5.0.tar.gz"
-MD5SUM="0c1b66a8878d6436b036565060707f73"
+DOWNLOAD="https://libvirt.org/sources/python/libvirt-python-4.7.0.tar.gz"
+MD5SUM="32cf281199367aec2881c96d1bd80dc6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libvirt"
diff --git a/libraries/libvirt/libvirt.SlackBuild b/libraries/libvirt/libvirt.SlackBuild
index c1941baaed..f66ddf5928 100644
--- a/libraries/libvirt/libvirt.SlackBuild
+++ b/libraries/libvirt/libvirt.SlackBuild
@@ -5,7 +5,7 @@
# Maintained by Robby Workman <rworkman@slackbuilds.org>
PRGNAM=libvirt
-VERSION=${VERSION:-4.5.0}
+VERSION=${VERSION:-4.7.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/libvirt/libvirt.info b/libraries/libvirt/libvirt.info
index f8186d1ad3..6dd92edb0e 100644
--- a/libraries/libvirt/libvirt.info
+++ b/libraries/libvirt/libvirt.info
@@ -1,8 +1,8 @@
PRGNAM="libvirt"
-VERSION="4.5.0"
+VERSION="4.7.0"
HOMEPAGE="http://libvirt.org"
-DOWNLOAD="https://libvirt.org/sources/libvirt-4.5.0.tar.xz"
-MD5SUM="692b2d00907438ed08a68813d3177cd3"
+DOWNLOAD="https://libvirt.org/sources/libvirt-4.7.0.tar.xz"
+MD5SUM="38da6c33250dcbc0a6d68de5c758262b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="yajl urlgrabber"
diff --git a/libraries/libwacom/README b/libraries/libwacom/README
deleted file mode 100644
index 6ee0b09e28..0000000000
--- a/libraries/libwacom/README
+++ /dev/null
@@ -1,5 +0,0 @@
-libwacom (Library to identify Wacom tablets and their features)
-
-Manages the libraries, configuration, and diagnostic tools for Wacom
-tablets running under Linux. It also maintains updated Linux kernel
-drivers and Xorg/XFree86 XInput drivers.
diff --git a/libraries/libwacom/libwacom.SlackBuild b/libraries/libwacom/libwacom.SlackBuild
deleted file mode 100644
index 3828b9962b..0000000000
--- a/libraries/libwacom/libwacom.SlackBuild
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/sh
-#
-# Slackware build script for libwacom.
-#
-# Copyright 2016-2018 Edinaldo P. Silva, Rio de Janeiro, Brazil.
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=libwacom
-VERSION=${VERSION:-0.32}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$(uname -m)" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$(uname -m) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$PRGNAM-$VERSION.tar.gz
-mv $PRGNAM-$PRGNAM-$VERSION $PRGNAM-$VERSION
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./autogen.sh \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --disable-static \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp COPYING NEWS README $PKG/usr/doc/$PRGNAM-$VERSION/
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libwacom/libwacom.info b/libraries/libwacom/libwacom.info
deleted file mode 100644
index 55ce69c2fb..0000000000
--- a/libraries/libwacom/libwacom.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libwacom"
-VERSION="0.32"
-HOMEPAGE="https://github.com/linuxwacom/libwacom"
-DOWNLOAD="https://github.com/linuxwacom/libwacom/archive/libwacom-0.32/libwacom-libwacom-0.32.tar.gz"
-MD5SUM="9582656b7088b650e81c4d84a5bac658"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Edinaldo P. Silva"
-EMAIL="edps.mundognu@gmail.com"
diff --git a/libraries/libwacom/slack-desc b/libraries/libwacom/slack-desc
deleted file mode 100644
index 35db81dc05..0000000000
--- a/libraries/libwacom/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libwacom: libwacom (Library to identify Wacom tablets and their features)
-libwacom:
-libwacom: Manages the libraries, configuration, and diagnostic tools for Wacom
-libwacom: tablets running under Linux. It also maintains updated Linux kernel
-libwacom: drivers and Xorg/XFree86 XInput drivers.
-libwacom:
-libwacom: Home Page: https://github.com/linuxwacom/libwacom
-libwacom:
-libwacom:
-libwacom:
-libwacom:
diff --git a/libraries/libwebp/README b/libraries/libwebp/README
deleted file mode 100644
index 1ea4235291..0000000000
--- a/libraries/libwebp/README
+++ /dev/null
@@ -1,18 +0,0 @@
-WebP is a method of lossy compression that can be used on photographic
-images. The degree of compression is adjustable so a user can choose
-the trade-off between file size and image quality.
-WebP typically achieves an average of 39% more compression than JPEG
-and JPEG 2000, without loss of image quality.
-
-WebP is a new image format that provides lossless and lossy compression for
-images on the web. WebP lossless images are 26% smaller in size compared to
-PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at
-equivalent SSIM index.
-
-WebP supports lossless transparency (also known as alpha channel) with just 22%
-additional bytes. Transparency is also supported with lossy compression and
-typically provides 3x smaller file sizes compared to PNG when lossy compression
-is acceptable for the red/green/blue color channels.
-
-Webmasters and web developers can use the WebP image format to create smaller
-and richer images that can help make the web faster.
diff --git a/libraries/libwebp/libwebp.SlackBuild b/libraries/libwebp/libwebp.SlackBuild
deleted file mode 100644
index 8a5dd5aee2..0000000000
--- a/libraries/libwebp/libwebp.SlackBuild
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for webP
-# written by powtrix (@gmail.com)
-
-PRGNAM=libwebp
-VERSION=${VERSION:-1.0.0}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --disable-static \
- --disable-silent-rules \
- --enable-everything \
- --enable-swap-16bit-csp \
- --enable-experimental \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-(
- cd swig
- # Fix temporary working directory.
- sed -i "/^tmpdir/s|=.*|= 'tmpdir'|" setup.py
- CFLAGS="$SLKCFLAGS -I$PKG/usr/include" \
- LDFLAGS="-L$PKG/usr/lib${LIBDIRSUFFIX} -lwebp" \
- python setup.py install --root=$PKG
- # Install the python3 module if python3 is installed
- if $(python3 -c 'import sys' 2>/dev/null); then
- CFLAGS="$SLKCFLAGS -I$PKG/usr/include" \
- LDFLAGS="-L$PKG/usr/lib${LIBDIRSUFFIX} -lwebp" \
- python3 setup.py install --root=$PKG
- fi
-)
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING ChangeLog NEWS PATENTS README $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/libwebp/libwebp.info b/libraries/libwebp/libwebp.info
deleted file mode 100644
index ab878d2a72..0000000000
--- a/libraries/libwebp/libwebp.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libwebp"
-VERSION="1.0.0"
-HOMEPAGE="https://developers.google.com/speed/webp/"
-DOWNLOAD="https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.0.tar.gz"
-MD5SUM="967b8f087cb392e6cc94d5e116a120c0"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="powtrix"
-EMAIL="powtrix@gmail.com"
diff --git a/libraries/libwebp/slack-desc b/libraries/libwebp/slack-desc
deleted file mode 100644
index c37e841aaf..0000000000
--- a/libraries/libwebp/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-libwebp: libwebp (WebP photo compression library)
-libwebp:
-libwebp: WebP is a method of lossy compression that can be used on
-libwebp: photographic images. The degree of compression is adjustable so a
-libwebp: user can choose the trade-off between file size and image quality.
-libwebp: WebP typically achieves an average of 39% more compression than
-libwebp: JPEG and JPEG 2000, without loss of image quality.
-libwebp:
-libwebp: Homepage: https://developers.google.com/speed/webp/
-libwebp:
-libwebp:
diff --git a/libraries/libwebsockets/libwebsockets.SlackBuild b/libraries/libwebsockets/libwebsockets.SlackBuild
index 597f9e9ecc..d4207fb091 100644
--- a/libraries/libwebsockets/libwebsockets.SlackBuild
+++ b/libraries/libwebsockets/libwebsockets.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libwebsockets
-VERSION=${VERSION:-2.0.2}
+VERSION=${VERSION:-2.2.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/libwebsockets/libwebsockets.info b/libraries/libwebsockets/libwebsockets.info
index 9f832a06a7..690337fcab 100644
--- a/libraries/libwebsockets/libwebsockets.info
+++ b/libraries/libwebsockets/libwebsockets.info
@@ -1,8 +1,8 @@
PRGNAM="libwebsockets"
-VERSION="2.0.2"
+VERSION="2.2.1"
HOMEPAGE="https://libwebsockets.org/"
-DOWNLOAD="https://github.com/warmcat/libwebsockets/archive/v2.0.2/libwebsockets-2.0.2.tar.gz"
-MD5SUM="778c920a580fba1f943c84e9702e7b26"
+DOWNLOAD="https://github.com/warmcat/libwebsockets/archive/v2.2.1/libwebsockets-2.2.1.tar.gz"
+MD5SUM="1f641cde2ab3687db3d553f68fe0f620"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libwps/libwps.SlackBuild b/libraries/libwps/libwps.SlackBuild
index 838e0c09dd..4e14aff208 100644
--- a/libraries/libwps/libwps.SlackBuild
+++ b/libraries/libwps/libwps.SlackBuild
@@ -75,7 +75,7 @@ case "${DOC:-0}" in
esac
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -Wno-error=implicit-fallthrough=" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/libzdb/libzdb.SlackBuild b/libraries/libzdb/libzdb.SlackBuild
index 00f439ba09..2267542660 100644
--- a/libraries/libzdb/libzdb.SlackBuild
+++ b/libraries/libzdb/libzdb.SlackBuild
@@ -83,7 +83,6 @@ CXXFLAGS="$SLKCFLAGS" \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--enable-static=no \
--enable-protected \
- --enable-openssl \
--enable-sqliteunlock \
--with-mysql \
--with-sqlite=/usr/include \
diff --git a/libraries/libzrtpcpp/libzrtpcpp.SlackBuild b/libraries/libzrtpcpp/libzrtpcpp.SlackBuild
index 0fe58e8c8d..a717ac8ec9 100644
--- a/libraries/libzrtpcpp/libzrtpcpp.SlackBuild
+++ b/libraries/libzrtpcpp/libzrtpcpp.SlackBuild
@@ -24,7 +24,7 @@
PRGNAM=libzrtpcpp
SRCNAM=ZRTPCPP
-VERSION=${VERSION:-4.1.2}
+VERSION=${VERSION:-4.6.6}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -55,7 +55,7 @@ else
LIBDIRSUFFIX=""
fi
-DOCS="AUTHORS COPYING ChangeLog INSTALL NEWS README.md $CWD/$PRGNAM.SlackBuild"
+DOCS="AUTHORS COPYING ChangeLog INSTALL README.md $CWD/$PRGNAM.SlackBuild"
set -e
diff --git a/libraries/libzrtpcpp/libzrtpcpp.info b/libraries/libzrtpcpp/libzrtpcpp.info
index 362f787ee7..280482cd0a 100644
--- a/libraries/libzrtpcpp/libzrtpcpp.info
+++ b/libraries/libzrtpcpp/libzrtpcpp.info
@@ -1,8 +1,8 @@
PRGNAM="libzrtpcpp"
-VERSION="4.1.2"
+VERSION="4.6.6"
HOMEPAGE="http://www.gnutelephony.org/"
-DOWNLOAD="https://github.com/wernerd/ZRTPCPP/archive/V4.1.2.tar.gz"
-MD5SUM="dd13e50d0106eb38132fd74bd024664c"
+DOWNLOAD="https://github.com/wernerd/ZRTPCPP/archive/V4.6.6/ZRTPCPP-4.6.6.tar.gz"
+MD5SUM="e4f4fd0b5f228782cde398fbcff5d139"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="ccrtp"
diff --git a/libraries/live555/live555.SlackBuild b/libraries/live555/live555.SlackBuild
index a4441215d5..0e3699f1f0 100644
--- a/libraries/live555/live555.SlackBuild
+++ b/libraries/live555/live555.SlackBuild
@@ -62,6 +62,10 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# This header isn't shipped in glibc >= 2.26 anymore
+# https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27xlocale.h.27
+sed -i 's/#include <xlocale.h>.*/#include <locale.h>/' liveMedia/include/Locale.hh
+
for f in $(find . -type f |xargs grep -l "PREFIX =") ; do echo $f; sed -i -e "/PREFIX =/c\PREFIX = \/usr" $f ; done
for f in $(find . -type f |xargs grep -l "LIBDIR =") ; do echo $f; sed -i -e "/LIBDIR =/c\LIBDIR = \$(PREFIX)\/lib$LIBDIRSUFFIX" $f ; done
diff --git a/libraries/med/med.SlackBuild b/libraries/med/med.SlackBuild
index 9256b4e3b0..a9e8ff100d 100644
--- a/libraries/med/med.SlackBuild
+++ b/libraries/med/med.SlackBuild
@@ -79,6 +79,7 @@ CXXFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--enable-fortran \
+ --disable-python \
--disable-static \
--build=$ARCH-slackware-linux
diff --git a/libraries/npth/README b/libraries/npth/README
deleted file mode 100644
index b89f596996..0000000000
--- a/libraries/npth/README
+++ /dev/null
@@ -1,11 +0,0 @@
-npth (New GNU Portable Threads Library)
-
-nPth is a library to provide the GNU Pth API and thus a non-preemptive
-threads implementation.
-
-In contrast to GNU Pth is is based on the system's standard threads
-implementation. This allows the use of libraries which are not compatible
-to GNU Pth. Experience with a Windows Pth emulation showed that this
-is a solid way to provide a co-routine based framework.
-
-This library is required to compile GnuPG 2.1.
diff --git a/libraries/npth/npth.SlackBuild b/libraries/npth/npth.SlackBuild
deleted file mode 100644
index 861782029e..0000000000
--- a/libraries/npth/npth.SlackBuild
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for nPth
-
-# Copyright 2016 pyllyukko
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=npth
-VERSION=${VERSION:-1.5}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux
-
-make
-make install-strip DESTDIR=$PKG
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING.LIB ChangeLog HACKING INSTALL NEWS README VERSION \
- $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/npth/npth.info b/libraries/npth/npth.info
deleted file mode 100644
index d56047d8c5..0000000000
--- a/libraries/npth/npth.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="npth"
-VERSION="1.5"
-HOMEPAGE="https://www.gnupg.org/related_software/npth/index.html"
-DOWNLOAD="https://gnupg.org/ftp/gcrypt/npth/npth-1.5.tar.bz2"
-MD5SUM="9ba2dc4302d2f32c66737c43ed191b1b"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="pyllyukko"
-EMAIL="pyllyukko AT maimed dot org"
diff --git a/libraries/npth/slack-desc b/libraries/npth/slack-desc
deleted file mode 100644
index fa1c3c2ab7..0000000000
--- a/libraries/npth/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-npth: npth (New GNU Portable Threads Library)
-npth:
-npth: nPth is a library to provide the GNU Pth API and thus a non-preemptive
-npth: threads implementation.
-npth:
-npth: In contrast to GNU Pth is is based on the system's standard threads
-npth: implementation. This allows the use of libraries which are not
-npth: compatible to GNU Pth. Experience with a Windows Pth emulation showed
-npth: that this is a solid way to provide a co-routine based framework.
-npth:
-npth: Homepage: https://www.gnupg.org/related_software/npth/index.html
diff --git a/libraries/ocl-icd/README b/libraries/ocl-icd/README
deleted file mode 100644
index 3a939287d6..0000000000
--- a/libraries/ocl-icd/README
+++ /dev/null
@@ -1,19 +0,0 @@
-ocl-icd: free OpenCL ICD Loader
-
-OpenCL implementations are provided as ICD (Installable Client Driver). An
-OpenCL program can use several ICD thanks to the use of an ICD Loader as
-provided by this project. This free ICD Loader can load any (free or non free)
-ICD.
-
-NOTE: ocl-icd should not be needed on systems where graphics drivers
-by AMD or Nvidia already provide an OpenCL ICD Loader implementation.
-To check if you already have an ICD loader, run this as root:
-
- ldconfig -p | grep -i opencl
-
-If nothing is printed out, then your system probably lacks an ICD
-implementation (libOpenCL.so* objects) and you need this package.
-
-If something is printed out, then you don't need this package, as it
-would probably overwrite the ICD loader that came with your graphics
-drivers.
diff --git a/libraries/ocl-icd/ocl-icd.SlackBuild b/libraries/ocl-icd/ocl-icd.SlackBuild
deleted file mode 100644
index 3c699bf126..0000000000
--- a/libraries/ocl-icd/ocl-icd.SlackBuild
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for ocl-icd
-
-# Copyright (c) 2017 Alan Alberghini <414N@slacky.it>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-# -----------------------------------------------------------------------------
-#
-# Build history:
-#
-# 1 - Initial release.
-
-PRGNAM=ocl-icd
-VERSION=${VERSION:-2.2.11}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-DOCS="README NEWS COPYING"
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/${PRGNAM}-${VERSION}.tar.gz
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --enable-official-khronos-headers \
- --disable-debug \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- $DOCS \
- $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/ocl-icd/ocl-icd.info b/libraries/ocl-icd/ocl-icd.info
deleted file mode 100644
index afc9e0c87d..0000000000
--- a/libraries/ocl-icd/ocl-icd.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="ocl-icd"
-VERSION="2.2.11"
-HOMEPAGE="https://forge.imag.fr/projects/ocl-icd/"
-DOWNLOAD="https://forge.imag.fr/frs/download.php/814/ocl-icd-2.2.11.tar.gz"
-MD5SUM="32335dc7dd3ea2a4b994ca87f2f80554"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Alan Alberghini"
-EMAIL="414N@slacky.it"
diff --git a/libraries/ocl-icd/slack-desc b/libraries/ocl-icd/slack-desc
deleted file mode 100644
index cbaa8ef2ba..0000000000
--- a/libraries/ocl-icd/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-ocl-icd: ocl-icd (OpenCL ICD Loader)
-ocl-icd:
-ocl-icd: OpenCL implementations are provided as ICD (Installable Client
-ocl-icd: Driver). An OpenCL program can use several ICD thanks to the use of an
-ocl-icd: ICD Loader as provided by this project. This free ICD Loader can load
-ocl-icd: any (free or non free) ICD.
-ocl-icd:
-ocl-icd:
-ocl-icd:
-ocl-icd: Homepage:
-ocl-icd: https://forge.imag.fr/projects/ocl-icd/
diff --git a/libraries/openbabel/openbabel.SlackBuild b/libraries/openbabel/openbabel.SlackBuild
index 7bd54ad595..426fab52d4 100644
--- a/libraries/openbabel/openbabel.SlackBuild
+++ b/libraries/openbabel/openbabel.SlackBuild
@@ -25,7 +25,8 @@
# Thanks to Daniil Bratashov (dn2010@gmail.com) for the cmake conversion
PRGNAM=openbabel
-VERSION=${VERSION:-2.3.2}
+VERSION=${VERSION:-2.4.1}
+SRCVER=$(echo $VERSION | tr . -)
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -61,9 +62,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf $PRGNAM-$PRGNAM-$SRCVER
+tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz
+cd $PRGNAM-$PRGNAM-$SRCVER
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -71,9 +72,6 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Patch for gcc-5 thanks to Arch
-patch -p0 < $CWD/gcc-5.patch
-
mkdir -p build
cd build
cmake \
@@ -95,7 +93,7 @@ find $PKG/usr/man -type f -exec gzip -9 {} \;
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
- ChangeLog AUTHORS COPYING NEWS README THANKS doc/*.html \
+ AUTHORS COPYING NEWS.md README.md THANKS authors.txt doc/*.html \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/libraries/openbabel/openbabel.info b/libraries/openbabel/openbabel.info
index ff15c8591e..112968ba8a 100644
--- a/libraries/openbabel/openbabel.info
+++ b/libraries/openbabel/openbabel.info
@@ -1,8 +1,8 @@
PRGNAM="openbabel"
-VERSION="2.3.2"
+VERSION="2.4.1"
HOMEPAGE="http://openbabel.sourceforge.net"
-DOWNLOAD="http://downloads.sourceforge.net/openbabel/openbabel-2.3.2.tar.gz"
-MD5SUM="9b0007560d9d838b40ab4ad06daf5610"
+DOWNLOAD="https://github.com/openbabel/openbabel/archive/openbabel-2-4-1/openbabel-2-4-1.tar.gz"
+MD5SUM="c0e0aefeef0f9f2bb2c78109d65c30a5"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="jdk"
diff --git a/libraries/pcre2/README b/libraries/pcre2/README
deleted file mode 100644
index 604c47269f..0000000000
--- a/libraries/pcre2/README
+++ /dev/null
@@ -1,2 +0,0 @@
-PCRE2 is a re-working of the original PCRE library to provide an entirely new
-API.
diff --git a/libraries/pcre2/pcre2.SlackBuild b/libraries/pcre2/pcre2.SlackBuild
deleted file mode 100644
index 98affad11e..0000000000
--- a/libraries/pcre2/pcre2.SlackBuild
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for pcre2
-
-# Copyright 2016-2018 Larry Hajali <larryhaja[at]gmail[dot]com>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=pcre2
-VERSION=${VERSION:-10.32}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
-cd $PRGNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --disable-silent-rules \
- --enable-static=no \
- --enable-pcre2-16 \
- --enable-pcre2-32 \
- --enable-jit \
- --enable-pcre2grep-libz \
- --enable-pcre2grep-libbz2 \
- --enable-pcre2test-libreadline \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/pcre2/pcre2.info b/libraries/pcre2/pcre2.info
deleted file mode 100644
index 6ab3dfe22b..0000000000
--- a/libraries/pcre2/pcre2.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="pcre2"
-VERSION="10.32"
-HOMEPAGE="http://www.pcre.org/"
-DOWNLOAD="https://downloads.sourceforge.net/pcre/pcre2-10.32.tar.bz2"
-MD5SUM="8a096287153fb994970df3570e90fcb5"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Larry Hajali"
-EMAIL="larryhaja[at]gmail[dot]com"
diff --git a/libraries/pcre2/slack-desc b/libraries/pcre2/slack-desc
deleted file mode 100644
index 5eaf0e0af3..0000000000
--- a/libraries/pcre2/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-pcre2: pcre2 (Perl 5-style regular expressions. 2nd version)
-pcre2:
-pcre2: PCRE2 is a re-working of the original PCRE library to provide an
-pcre2: entirely new API.
-pcre2:
-pcre2: Homepage: http://www.pcre.org/
-pcre2:
-pcre2:
-pcre2:
-pcre2:
-pcre2:
diff --git a/libraries/physfs/physfs.SlackBuild b/libraries/physfs/physfs.SlackBuild
index 67e7602d4e..dc88c69e1d 100644
--- a/libraries/physfs/physfs.SlackBuild
+++ b/libraries/physfs/physfs.SlackBuild
@@ -72,7 +72,7 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
cmake \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS -Wno-error=maybe-uninitialized" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DPHYSFS_BUILD_SHARED=ON \
-DPHYSFS_BUILD_STATIC=OFF \
diff --git a/libraries/podofo/podofo.SlackBuild b/libraries/podofo/podofo.SlackBuild
index 926b5372d3..2f54c18414 100644
--- a/libraries/podofo/podofo.SlackBuild
+++ b/libraries/podofo/podofo.SlackBuild
@@ -69,6 +69,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+sed -i "s/BINARY_DIR}\/objects\"/BINARY_DIR}\/objects\" || true/" test/TokenizerTest/CMakeLists.txt
+
# Fix mandir directory.
sed -i 's|share/man|man|' CMakeLists.txt
# Fix building podofo on x86 with cppunit.
diff --git a/libraries/poppler-qt5/poppler-qt5.SlackBuild b/libraries/poppler-qt5/poppler-qt5.SlackBuild
index ce99c22afc..40e56259da 100644
--- a/libraries/poppler-qt5/poppler-qt5.SlackBuild
+++ b/libraries/poppler-qt5/poppler-qt5.SlackBuild
@@ -23,8 +23,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=poppler-qt5
-VERSION=${VERSION:-0.45.0}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-0.68.0}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -56,8 +56,8 @@ fi
set -e
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
+rm -rf $PKG ${PKG}_2
+mkdir -p $TMP $PKG ${PKG}_2 $OUTPUT
cd $TMP
rm -rf ${PRGNAM/-*/}-$VERSION
tar xvf $CWD/${PRGNAM/-*/}-$VERSION.tar.xz
@@ -69,32 +69,38 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
+mkdir build
+cd build
CXXFLAGS="$SLKCFLAGS -std=c++11" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --enable-xpdf-headers \
- --enable-poppler-qt4 \
- --enable-poppler-qt5 \
- --disable-silent-rules \
- --enable-cairo-output \
- --mandir=/usr/man \
- --disable-static \
- --without-testdatadir \
- --enable-zlib \
- --build=$ARCH-slackware-linux
-
+cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_MANDIR=/usr/man \
+ -DBUILD_SHARED_LIBS=ON \
+ -DENABLE_QT5=ON \
+ -DENABLE_CMS=lcms2 \
+ -DENABLE_DCTDECODER=libjpeg \
+ -DENABLE_GTK_DOC=ON \
+ -DENABLE_LIBOPENJPEG=openjpeg2 \
+ -DENABLE_XPDF_HEADERS=ON \
+ -DENABLE_ZLIB=ON \
+ -DENABLE_ZLIB_UNCOMPRESS=ON \
+ -DBUILD_GTK_TESTS=OFF \
+ -DBUILD_QT5_TESTS=OFF \
+ -DBUILD_CPP_TESTS=OFF \
+ ..
make
-make -C qt5 install DESTDIR=$PKG
-
-mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
-install -m 0644 $PRGNAM.pc $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
+make install DESTDIR=${PKG}_2
+cd ..
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+mkdir -p $PKG/usr/{bin,lib$LIBDIRSUFFIX/pkgconfig,include/poppler}
+mv ${PKG}_2/usr/lib$LIBDIRSUFFIX/lib$PRGNAM.* $PKG/usr/lib$LIBDIRSUFFIX/
+mv ${PKG}_2/usr/lib$LIBDIRSUFFIX/pkgconfig/$PRGNAM.pc $PKG/usr/lib$LIBDIRSUFFIX/pkgconfig
+mv ${PKG}_2/usr/bin/pdfdetach $PKG/usr/bin/
+mv ${PKG}_2/usr/include/poppler/qt5 $PKG/usr/include/poppler/
+
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README COPYING $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/libraries/poppler-qt5/poppler-qt5.info b/libraries/poppler-qt5/poppler-qt5.info
index e99b4f6e11..f681888f2c 100644
--- a/libraries/poppler-qt5/poppler-qt5.info
+++ b/libraries/poppler-qt5/poppler-qt5.info
@@ -1,8 +1,8 @@
PRGNAM="poppler-qt5"
-VERSION="0.45.0"
+VERSION="0.68.0"
HOMEPAGE="https://poppler.freedesktop.org/"
-DOWNLOAD="https://poppler.freedesktop.org/poppler-0.45.0.tar.xz"
-MD5SUM="a66e8c3cf6dab91dab5ba90d362c6063"
+DOWNLOAD="https://poppler.freedesktop.org/poppler-0.68.0.tar.xz"
+MD5SUM="722ea5837cdfaae4c98607987000de30"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="qt5"
diff --git a/libraries/ptlib/ptlib-2.10.10-mga-bison-parameter.patch b/libraries/ptlib/ptlib-2.10.10-mga-bison-parameter.patch
deleted file mode 100644
index fcc8d0d2e7..0000000000
--- a/libraries/ptlib/ptlib-2.10.10-mga-bison-parameter.patch
+++ /dev/null
@@ -1,39 +0,0 @@
---- ptlib-2.10.11/./src/ptlib/common/getdate.y 2013-08-15 01:20:26.000000000 +0200
-+++ /mnt/chroot/cauldron/home/dan/rpm/BUILD/ptlib-2.10.11/src/ptlib/common/getdate.y 2013-12-15 00:24:27.866481490 +0100
-@@ -121,9 +121,9 @@
- static int yylex();
-
- #ifdef __GNUC__
--static int yyerror(char const *msg);
-+static int yyerror(void *, char const *msg);
- #else
--static void yyerror(char const *msg);
-+static void yyerror(void *, char const *msg);
- #endif
-
-
-@@ -132,7 +132,8 @@
-
- %}
-
--%pure_parser
-+%pure-parser
-+%parse-param {void *parseParam}
-
- %union {
- time_t Number;
-@@ -1018,12 +1019,12 @@
- #endif
-
- #ifdef __GNUC__
--int yyerror(const char * s)
-+int yyerror(void *var, const char * s)
- {
- return 0;
- }
- #else
--static void yyerror(const char * s)
-+static void yyerror(void *var, const char * s)
- {
- }
- #endif
diff --git a/libraries/ptlib/ptlib-2.10.11-bison_fixes-2.patch b/libraries/ptlib/ptlib-2.10.11-bison_fixes-2.patch
new file mode 100644
index 0000000000..7f5d66cf24
--- /dev/null
+++ b/libraries/ptlib/ptlib-2.10.11-bison_fixes-2.patch
@@ -0,0 +1,2951 @@
+Submitted By: Armin K. <krejzi at email dot com>
+Updated By: Bruce Dubbs <bduubs at linuxfromscratch dot org>
+Date: 2013-08-20
+ 2016-05-04
+Initial Package Version: 2.10.10
+Upstream Status: Reported
+Origin: Self
+Description: Adds pregenerated C file which isn't generated correctly
+ with Bison 3.0.
+Update: Add fixes for gcc-6
+
+diff -Naur ptlib-2.10.11.orig/include/ptlib/critsec.h ptlib-2.10.11/include/ptlib/critsec.h
+--- ptlib-2.10.11.orig/include/ptlib/critsec.h 2013-08-14 18:20:32.000000000 -0500
++++ ptlib-2.10.11/include/ptlib/critsec.h 2016-05-04 19:40:01.626203961 -0500
+@@ -40,7 +40,7 @@
+ #if P_HAS_ATOMIC_INT
+
+ #if defined(__GNUC__)
+-# if __GNUC__ >= 4 && __GNUC_MINOR__ >= 2
++# if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 2) || __GNUC__ >= 5
+ # include <ext/atomicity.h>
+ # else
+ # include <bits/atomicity.h>
+diff -Naur ptlib-2.10.11.orig/make/unix.mak ptlib-2.10.11/make/unix.mak
+--- ptlib-2.10.11.orig/make/unix.mak 2013-08-14 18:20:27.000000000 -0500
++++ ptlib-2.10.11/make/unix.mak 2016-05-04 19:38:50.921583820 -0500
+@@ -729,4 +729,6 @@
+
+ LDLIBS += -l$(PTLIB_BASE)$(LIB_TYPE)
+
++STDCCFLAGS += -Wno-deprecated-declarations
++
+ # End of unix.mak
+diff -Naur ptlib-2.10.11.orig/src/ptlib/common/getdate.tab.c ptlib-2.10.11/src/ptlib/common/getdate.tab.c
+--- ptlib-2.10.11.orig/src/ptlib/common/getdate.tab.c 1969-12-31 18:00:00.000000000 -0600
++++ ptlib-2.10.11/src/ptlib/common/getdate.tab.c 2016-05-04 19:38:59.892281859 -0500
+@@ -0,0 +1,2884 @@
++/* A Bison parser, made by GNU Bison 2.7.12-4996. */
++
++/* Bison implementation for Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
++
++ This program 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 3 of the License, or
++ (at your option) any later version.
++
++ This program 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, see <http://www.gnu.org/licenses/>. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
++
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
++
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
++
++/* All symbols defined below should begin with yy or YY, to avoid
++ infringing on user name space. This should be done even for local
++ variables, as they might otherwise be expanded by user macros.
++ There are some unavoidable exceptions within include files to
++ define necessary library symbols; they are noted "INFRINGES ON
++ USER NAME SPACE" below. */
++
++/* Identify Bison output. */
++#define YYBISON 1
++
++/* Bison version. */
++#define YYBISON_VERSION "2.7.12-4996"
++
++/* Skeleton name. */
++#define YYSKELETON_NAME "yacc.c"
++
++/* Pure parsers. */
++#define YYPURE 1
++
++/* Push parsers. */
++#define YYPUSH 0
++
++/* Pull parsers. */
++#define YYPULL 1
++
++
++
++
++/* Copy the first part of user declarations. */
++/* Line 371 of yacc.c */
++#line 1 "ptlib/common/getdate.y"
++
++/*
++** Originally written by Steven M. Bellovin <smb@research.att.com> while
++** at the University of North Carolina at Chapel Hill. Later tweaked by
++** a couple of people on Usenet. Completely overhauled by Rich $alz
++** <rsalz@bbn.com> and Jim Berets <jberets@bbn.com> in August, 1990;
++**
++** Major hack to coerce it into use with the Equivalence Portable
++** Windows Library.
++**
++** This grammar has 10 shift/reduce conflicts.
++**
++** This code is in the public domain and has no copyright.
++*/
++/* SUPPRESS 287 on yaccpar_sccsid *//* Unused static variable */
++/* SUPPRESS 288 on yyerrlab *//* Label unused */
++
++
++#include <time.h>
++#include <string.h>
++#include <ctype.h>
++#include <stdlib.h>
++
++#ifndef EOF
++#include <stdio.h>
++#endif
++
++
++#ifdef _WIN32
++#ifdef _MSC_VER
++#pragma warning(disable:4131 4701 4996)
++#endif
++#define STDAPICALLTYPE __stdcall
++#define MSDOS
++#else
++#define STDAPICALLTYPE
++#endif
++
++
++extern int STDAPICALLTYPE PTimeGetChar(void * stream);
++extern void STDAPICALLTYPE PTimeUngetChar(void * stream, int c);
++int STDAPICALLTYPE PTimeGetDateOrder();
++int STDAPICALLTYPE PTimeIsMonthName(const char *, int, int);
++int STDAPICALLTYPE PTimeIsDayName(const char *, int, int);
++
++
++#define EPOCH 1970
++#define HOUR(x) ((time_t)(x) * 60)
++#define SECSPERDAY (24L * 60L * 60L)
++
++
++/*
++** An entry in the lexical lookup table.
++*/
++typedef struct _TABLE {
++ char *name;
++ int type;
++ time_t value;
++} TABLE;
++
++
++/*
++** Daylight-savings mode: on, off, or not yet known.
++*/
++typedef enum _DSTMODE {
++ DSTon, DSToff, DSTmaybe
++} DSTMODE;
++
++/*
++** Meridian: am, pm, or 24-hour style.
++*/
++typedef enum _MERIDIAN {
++ MERam, MERpm, MER24
++} MERIDIAN;
++
++
++/*
++** Global variables. We could get rid of most of these by using a good
++** union as the yacc stack. (This routine was originally written before
++** yacc had the %union construct.) Maybe someday; right now we only use
++** the %union very rarely.
++*/
++struct Variables {
++ void *yyInput;
++ DSTMODE yyDSTmode;
++ time_t yyDayOrdinal;
++ time_t yyDayNumber;
++ int yyHaveDate;
++ int yyHaveDay;
++ int yyHaveRel;
++ int yyHaveTime;
++ int yyHaveZone;
++ time_t yyTimezone;
++ time_t yyDay;
++ time_t yyHour;
++ time_t yyMinutes;
++ time_t yyMonth;
++ time_t yySeconds;
++ time_t yyYear;
++ MERIDIAN yyMeridian;
++ time_t yyRelMonth;
++ time_t yyRelSeconds;
++};
++
++#define VARIABLE ((struct Variables*)parseParam)
++
++
++#define YYPURE 1
++#define YYLEX_PARAM VARIABLE
++#define YYPARSE_PARAM parseParam
++
++#define yyparse PTime_yyparse
++#define yylex PTime_yylex
++#define yyerror PTime_yyerror
++
++#define GCC_VERSION (__GNUC__ * 10000 \
++ + __GNUC_MINOR__ * 100 \
++ + __GNUC_PATCHLEVEL__)
++
++static int yyparse(void *);
++static int yylex();
++
++#ifdef __GNUC__
++static int yyerror(char const *msg);
++#else
++static void yyerror(char const *msg);
++#endif
++
++
++static void SetPossibleDate(struct Variables*, time_t, time_t, time_t);
++
++
++
++/* Line 371 of yacc.c */
++#line 202 "ptlib/common/getdate.tab.c"
++
++# ifndef YY_NULL
++# if defined __cplusplus && 201103L <= __cplusplus
++# define YY_NULL nullptr
++# else
++# define YY_NULL 0
++# endif
++# endif
++
++/* Enabling verbose error messages. */
++#ifdef YYERROR_VERBOSE
++# undef YYERROR_VERBOSE
++# define YYERROR_VERBOSE 1
++#else
++# define YYERROR_VERBOSE 0
++#endif
++
++
++/* Enabling traces. */
++#ifndef YYDEBUG
++# define YYDEBUG 0
++#endif
++#if YYDEBUG
++extern int yydebug;
++#endif
++
++/* Tokens. */
++#ifndef YYTOKENTYPE
++# define YYTOKENTYPE
++ /* Put the tokens into the symbol table, so that GDB and other debuggers
++ know about them. */
++ enum yytokentype {
++ tAGO = 258,
++ tDAY = 259,
++ tDAYZONE = 260,
++ tID = 261,
++ tMERIDIAN = 262,
++ tMINUTE_UNIT = 263,
++ tMONTH = 264,
++ tMONTH_UNIT = 265,
++ tSNUMBER = 266,
++ tS4DIGITNUMBER = 267,
++ tUNUMBER = 268,
++ t4DIGITNUMBER = 269,
++ t6DIGITNUMBER = 270,
++ t8DIGITNUMBER = 271,
++ tSEC_UNIT = 272,
++ tZONE = 273,
++ tMILZONE = 274,
++ tRFC3339 = 275,
++ tDST = 276
++ };
++#endif
++
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
++{
++/* Line 387 of yacc.c */
++#line 137 "ptlib/common/getdate.y"
++
++ time_t Number;
++ enum _MERIDIAN Meridian;
++
++
++/* Line 387 of yacc.c */
++#line 269 "ptlib/common/getdate.tab.c"
++} YYSTYPE;
++# define YYSTYPE_IS_TRIVIAL 1
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
++# define YYSTYPE_IS_DECLARED 1
++#endif
++
++
++#ifdef YYPARSE_PARAM
++#if defined __STDC__ || defined __cplusplus
++int yyparse (void *YYPARSE_PARAM);
++#else
++int yyparse ();
++#endif
++#else /* ! YYPARSE_PARAM */
++#if defined __STDC__ || defined __cplusplus
++int yyparse (void);
++#else
++int yyparse ();
++#endif
++#endif /* ! YYPARSE_PARAM */
++
++
++
++/* Copy the second part of user declarations. */
++
++/* Line 390 of yacc.c */
++#line 296 "ptlib/common/getdate.tab.c"
++
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
++
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
++# endif
++#endif
++
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
++
++#ifndef YY_
++# if defined YYENABLE_NLS && YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
++# endif
++# endif
++# ifndef YY_
++# define YY_(Msgid) Msgid
++# endif
++#endif
++
++#ifndef __attribute__
++/* This feature is available in gcc versions 2.5 and later. */
++# if (! defined __GNUC__ || __GNUC__ < 2 \
++ || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
++# define __attribute__(Spec) /* empty */
++# endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(E) ((void) (E))
++#else
++# define YYUSE(E) /* empty */
++#endif
++
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(N) (N)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int yyi)
++#else
++static int
++YYID (yyi)
++ int yyi;
++#endif
++{
++ return yyi;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
++
++/* The parser invokes alloca or malloc; define the necessary symbols. */
++
++# ifdef YYSTACK_USE_ALLOCA
++# if YYSTACK_USE_ALLOCA
++# ifdef __GNUC__
++# define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
++# ifndef EXIT_SUCCESS
++# define EXIT_SUCCESS 0
++# endif
++# endif
++# endif
++# endif
++# endif
++
++# ifdef YYSTACK_ALLOC
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
++# endif
++# else
++# define YYSTACK_ALLOC YYMALLOC
++# define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined EXIT_SUCCESS \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef EXIT_SUCCESS
++# define EXIT_SUCCESS 0
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# endif
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
++
++
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
++
++/* A type that is properly aligned for any stack member. */
++union yyalloc
++{
++ yytype_int16 yyss_alloc;
++ YYSTYPE yyvs_alloc;
++};
++
++/* The size of the maximum gap between one aligned stack and the next. */
++# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
++
++/* The size of an array large to enough to hold all stacks, each with
++ N elements. */
++# define YYSTACK_BYTES(N) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
++ + YYSTACK_GAP_MAXIMUM)
++
++# define YYCOPY_NEEDED 1
++
++/* Relocate STACK from its old location to the new one. The
++ local variables YYSIZE and YYSTACKSIZE give the old and new number of
++ elements in the stack, and YYPTR gives the new location of the
++ stack. Advance YYPTR to a properly aligned location for the next
++ stack. */
++# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
++ do \
++ { \
++ YYSIZE_T yynewbytes; \
++ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
++ Stack = &yyptr->Stack_alloc; \
++ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
++ yyptr += yynewbytes / sizeof (*yyptr); \
++ } \
++ while (YYID (0))
++
++#endif
++
++#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
++/* Copy COUNT objects from SRC to DST. The source and destination do
++ not overlap. */
++# ifndef YYCOPY
++# if defined __GNUC__ && 1 < __GNUC__
++# define YYCOPY(Dst, Src, Count) \
++ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
++# else
++# define YYCOPY(Dst, Src, Count) \
++ do \
++ { \
++ YYSIZE_T yyi; \
++ for (yyi = 0; yyi < (Count); yyi++) \
++ (Dst)[yyi] = (Src)[yyi]; \
++ } \
++ while (YYID (0))
++# endif
++# endif
++#endif /* !YYCOPY_NEEDED */
++
++/* YYFINAL -- State number of the termination state. */
++#define YYFINAL 2
++/* YYLAST -- Last index in YYTABLE. */
++#define YYLAST 105
++
++/* YYNTOKENS -- Number of terminals. */
++#define YYNTOKENS 25
++/* YYNNTS -- Number of nonterminals. */
++#define YYNNTS 12
++/* YYNRULES -- Number of rules. */
++#define YYNRULES 51
++/* YYNRULES -- Number of states. */
++#define YYNSTATES 63
++
++/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
++#define YYUNDEFTOK 2
++#define YYMAXUTOK 276
++
++#define YYTRANSLATE(YYX) \
++ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
++
++/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
++static const yytype_uint8 yytranslate[] =
++{
++ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 23, 2, 2, 24, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 22, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
++ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 21
++};
++
++#if YYDEBUG
++/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
++ YYRHS. */
++static const yytype_uint8 yyprhs[] =
++{
++ 0, 0, 3, 4, 7, 9, 11, 13, 15, 17,
++ 19, 22, 25, 28, 33, 38, 45, 52, 54, 56,
++ 59, 61, 63, 66, 69, 73, 79, 84, 86, 90,
++ 93, 98, 101, 105, 108, 110, 113, 116, 118, 121,
++ 124, 126, 129, 132, 134, 136, 138, 140, 142, 144,
++ 146, 147
++};
++
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int8 yyrhs[] =
++{
++ 26, 0, -1, -1, 26, 27, -1, 28, -1, 29,
++ -1, 31, -1, 30, -1, 32, -1, 35, -1, 13,
++ 7, -1, 14, 12, -1, 15, 12, -1, 34, 22,
++ 34, 36, -1, 34, 22, 34, 12, -1, 34, 22,
++ 34, 22, 34, 36, -1, 34, 22, 34, 22, 34,
++ 12, -1, 18, -1, 5, -1, 18, 21, -1, 19,
++ -1, 4, -1, 4, 23, -1, 34, 4, -1, 34,
++ 24, 34, -1, 34, 24, 34, 24, 34, -1, 34,
++ 11, 11, 20, -1, 16, -1, 34, 9, 11, -1,
++ 9, 34, -1, 9, 34, 23, 34, -1, 34, 9,
++ -1, 34, 9, 34, -1, 33, 3, -1, 33, -1,
++ 34, 8, -1, 11, 8, -1, 8, -1, 11, 17,
++ -1, 34, 17, -1, 17, -1, 11, 10, -1, 34,
++ 10, -1, 10, -1, 13, -1, 14, -1, 15, -1,
++ 13, -1, 14, -1, 15, -1, -1, 7, -1
++};
++
++/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
++static const yytype_uint16 yyrline[] =
++{
++ 0, 153, 153, 154, 157, 160, 163, 166, 169, 172,
++ 175, 181, 189, 197, 203, 210, 216, 226, 230, 235,
++ 239, 249, 253, 257, 263, 266, 269, 273, 278, 282,
++ 289, 294, 301, 306, 310, 313, 316, 319, 322, 325,
++ 328, 331, 334, 337, 342, 345, 348, 353, 379, 390,
++ 407, 410
++};
++#endif
++
++#if YYDEBUG || YYERROR_VERBOSE || 0
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++static const char *const yytname[] =
++{
++ "$end", "error", "$undefined", "tAGO", "tDAY", "tDAYZONE", "tID",
++ "tMERIDIAN", "tMINUTE_UNIT", "tMONTH", "tMONTH_UNIT", "tSNUMBER",
++ "tS4DIGITNUMBER", "tUNUMBER", "t4DIGITNUMBER", "t6DIGITNUMBER",
++ "t8DIGITNUMBER", "tSEC_UNIT", "tZONE", "tMILZONE", "tRFC3339", "tDST",
++ "':'", "','", "'/'", "$accept", "spec", "item", "time", "zone", "day",
++ "date", "rel", "relunit", "unumber", "number", "o_merid", YY_NULL
++};
++#endif
++
++# ifdef YYPRINT
++/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
++ token YYLEX-NUM. */
++static const yytype_uint16 yytoknum[] =
++{
++ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
++ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
++ 275, 276, 58, 44, 47
++};
++# endif
++
++/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
++static const yytype_uint8 yyr1[] =
++{
++ 0, 25, 26, 26, 27, 27, 27, 27, 27, 27,
++ 28, 28, 28, 28, 28, 28, 28, 29, 29, 29,
++ 29, 30, 30, 30, 31, 31, 31, 31, 31, 31,
++ 31, 31, 31, 32, 32, 33, 33, 33, 33, 33,
++ 33, 33, 33, 33, 34, 34, 34, 35, 35, 35,
++ 36, 36
++};
++
++/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
++static const yytype_uint8 yyr2[] =
++{
++ 0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
++ 2, 2, 2, 4, 4, 6, 6, 1, 1, 2,
++ 1, 1, 2, 2, 3, 5, 4, 1, 3, 2,
++ 4, 2, 3, 2, 1, 2, 2, 1, 2, 2,
++ 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
++ 0, 1
++};
++
++/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
++ Performed when YYTABLE doesn't specify something else to do. Zero
++ means the default is an error. */
++static const yytype_uint8 yydefact[] =
++{
++ 2, 0, 1, 21, 18, 37, 0, 43, 0, 44,
++ 45, 46, 27, 40, 17, 20, 3, 4, 5, 7,
++ 6, 8, 34, 0, 9, 22, 44, 45, 46, 29,
++ 36, 41, 38, 10, 11, 12, 19, 33, 23, 35,
++ 31, 42, 0, 39, 0, 0, 0, 28, 32, 0,
++ 50, 24, 30, 26, 51, 14, 0, 13, 0, 50,
++ 25, 16, 15
++};
++
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int8 yydefgoto[] =
++{
++ -1, 1, 16, 17, 18, 19, 20, 21, 22, 23,
++ 24, 57
++};
++
++/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
++ STATE-NUM. */
++#define YYPACT_NINF -27
++static const yytype_int8 yypact[] =
++{
++ -27, 49, -27, -10, -27, -27, -11, -27, 1, 10,
++ 69, 86, -27, -27, -9, -27, -27, -27, -27, -27,
++ -27, -27, 13, -3, -27, -27, -27, -27, -27, 8,
++ -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
++ 30, -27, 9, -27, -11, -11, -11, -27, -27, 12,
++ 15, 18, -27, -27, -27, -27, -11, -27, -11, 23,
++ -27, -27, -27
++};
++
++/* YYPGOTO[NTERM-NUM]. */
++static const yytype_int8 yypgoto[] =
++{
++ -27, -27, -27, -27, -27, -27, -27, -27, -27, -6,
++ -27, -26
++};
++
++/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
++ positive, shift that token. If negative, reduce the rule which
++ number is the opposite. If YYTABLE_NINF, syntax error. */
++#define YYTABLE_NINF -50
++static const yytype_int8 yytable[] =
++{
++ 29, 38, 26, 27, 28, 39, 40, 41, 42, 30,
++ -47, 31, 36, 25, 43, -47, 37, 33, 32, 44,
++ 49, 45, 54, -47, -47, -47, -47, 55, -47, -47,
++ 54, 46, 53, 62, 48, 61, 0, 56, 50, 51,
++ 52, 47, 58, 26, 27, 28, 0, 0, 0, 2,
++ 59, 0, 60, 3, 4, 0, 0, 5, 6, 7,
++ 8, 0, 9, 10, 11, 12, 13, 14, 15, -48,
++ 0, 0, 0, 0, -48, 0, 0, 0, 0, 0,
++ 0, 34, -48, -48, -48, -48, -49, -48, -48, 0,
++ 0, -49, 0, 0, 0, 0, 0, 0, 35, -49,
++ -49, -49, -49, 0, -49, -49
++};
++
++#define yypact_value_is_default(Yystate) \
++ (!!((Yystate) == (-27)))
++
++#define yytable_value_is_error(Yytable_value) \
++ YYID (0)
++
++static const yytype_int8 yycheck[] =
++{
++ 6, 4, 13, 14, 15, 8, 9, 10, 11, 8,
++ 0, 10, 21, 23, 17, 5, 3, 7, 17, 22,
++ 11, 24, 7, 13, 14, 15, 16, 12, 18, 19,
++ 7, 23, 20, 59, 40, 12, -1, 22, 44, 45,
++ 46, 11, 24, 13, 14, 15, -1, -1, -1, 0,
++ 56, -1, 58, 4, 5, -1, -1, 8, 9, 10,
++ 11, -1, 13, 14, 15, 16, 17, 18, 19, 0,
++ -1, -1, -1, -1, 5, -1, -1, -1, -1, -1,
++ -1, 12, 13, 14, 15, 16, 0, 18, 19, -1,
++ -1, 5, -1, -1, -1, -1, -1, -1, 12, 13,
++ 14, 15, 16, -1, 18, 19
++};
++
++/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
++ symbol of state STATE-NUM. */
++static const yytype_uint8 yystos[] =
++{
++ 0, 26, 0, 4, 5, 8, 9, 10, 11, 13,
++ 14, 15, 16, 17, 18, 19, 27, 28, 29, 30,
++ 31, 32, 33, 34, 35, 23, 13, 14, 15, 34,
++ 8, 10, 17, 7, 12, 12, 21, 3, 4, 8,
++ 9, 10, 11, 17, 22, 24, 23, 11, 34, 11,
++ 34, 34, 34, 20, 7, 12, 22, 36, 24, 34,
++ 34, 12, 36
++};
++
++#define yyerrok (yyerrstatus = 0)
++#define yyclearin (yychar = YYEMPTY)
++#define YYEMPTY (-2)
++#define YYEOF 0
++
++#define YYACCEPT goto yyacceptlab
++#define YYABORT goto yyabortlab
++#define YYERROR goto yyerrorlab
++
++
++/* Like YYERROR except do call yyerror. This remains here temporarily
++ to ease the transition to the new meaning of YYERROR, for GCC.
++ Once GCC version 2 has supplanted version 1, this can go. However,
++ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
++ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
++ discussed. */
++
++#define YYFAIL goto yyerrlab
++#if defined YYFAIL
++ /* This is here to suppress warnings from the GCC cpp's
++ -Wunused-macros. Normally we don't worry about that warning, but
++ some users do, and we want to make it easy for users to remove
++ YYFAIL uses, which will produce warnings from Bison 2.5. */
++#endif
++
++#define YYRECOVERING() (!!yyerrstatus)
++
++#define YYBACKUP(Token, Value) \
++do \
++ if (yychar == YYEMPTY) \
++ { \
++ yychar = (Token); \
++ yylval = (Value); \
++ YYPOPSTACK (yylen); \
++ yystate = *yyssp; \
++ goto yybackup; \
++ } \
++ else \
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
++ YYERROR; \
++ } \
++while (YYID (0))
++
++/* Error token number */
++#define YYTERROR 1
++#define YYERRCODE 256
++
++
++/* This macro is provided for backward compatibility. */
++#ifndef YY_LOCATION_PRINT
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++#endif
++
++
++/* YYLEX -- calling `yylex' with the right arguments. */
++#ifdef YYLEX_PARAM
++# define YYLEX yylex (&yylval, YYLEX_PARAM)
++#else
++# define YYLEX yylex (&yylval)
++#endif
++
++/* Enable debugging if requested. */
++#if YYDEBUG
++
++# ifndef YYFPRINTF
++# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
++# define YYFPRINTF fprintf
++# endif
++
++# define YYDPRINTF(Args) \
++do { \
++ if (yydebug) \
++ YYFPRINTF Args; \
++} while (YYID (0))
++
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ FILE *yyo = yyoutput;
++ YYUSE (yyo);
++ if (!yyvaluep)
++ return;
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ YYUSE (yytype);
++}
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
++ YYFPRINTF (yyoutput, ")");
++}
++
++/*------------------------------------------------------------------.
++| yy_stack_print -- Print the state stack from its BOTTOM up to its |
++| TOP (included). |
++`------------------------------------------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
++#else
++static void
++yy_stack_print (yybottom, yytop)
++ yytype_int16 *yybottom;
++ yytype_int16 *yytop;
++#endif
++{
++ YYFPRINTF (stderr, "Stack now");
++ for (; yybottom <= yytop; yybottom++)
++ {
++ int yybot = *yybottom;
++ YYFPRINTF (stderr, " %d", yybot);
++ }
++ YYFPRINTF (stderr, "\n");
++}
++
++# define YY_STACK_PRINT(Bottom, Top) \
++do { \
++ if (yydebug) \
++ yy_stack_print ((Bottom), (Top)); \
++} while (YYID (0))
++
++
++/*------------------------------------------------.
++| Report that the YYRULE is going to be reduced. |
++`------------------------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
++#else
++static void
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
++ int yyrule;
++#endif
++{
++ int yynrhs = yyr2[yyrule];
++ int yyi;
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ YYFPRINTF (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
++ YYFPRINTF (stderr, "\n");
++ }
++}
++
++# define YY_REDUCE_PRINT(Rule) \
++do { \
++ if (yydebug) \
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
++
++/* Nonzero means print parse trace. It is left uninitialized so that
++ multiple parsers can coexist. */
++int yydebug;
++#else /* !YYDEBUG */
++# define YYDPRINTF(Args)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
++# define YY_STACK_PRINT(Bottom, Top)
++# define YY_REDUCE_PRINT(Rule)
++#endif /* !YYDEBUG */
++
++
++/* YYINITDEPTH -- initial size of the parser's stacks. */
++#ifndef YYINITDEPTH
++# define YYINITDEPTH 200
++#endif
++
++/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
++ if the built-in stack extension method is used).
++
++ Do not make this value too large; the results are undefined if
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
++ evaluated with infinite-precision integer arithmetic. */
++
++#ifndef YYMAXDEPTH
++# define YYMAXDEPTH 10000
++#endif
++
++
++#if YYERROR_VERBOSE
++
++# ifndef yystrlen
++# if defined __GLIBC__ && defined _STRING_H
++# define yystrlen strlen
++# else
++/* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static YYSIZE_T
++yystrlen (const char *yystr)
++#else
++static YYSIZE_T
++yystrlen (yystr)
++ const char *yystr;
++#endif
++{
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
++ continue;
++ return yylen;
++}
++# endif
++# endif
++
++# ifndef yystpcpy
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
++# define yystpcpy stpcpy
++# else
++/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
++ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static char *
++yystpcpy (char *yydest, const char *yysrc)
++#else
++static char *
++yystpcpy (yydest, yysrc)
++ char *yydest;
++ const char *yysrc;
++#endif
++{
++ char *yyd = yydest;
++ const char *yys = yysrc;
++
++ while ((*yyd++ = *yys++) != '\0')
++ continue;
++
++ return yyd - 1;
++}
++# endif
++# endif
++
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
++
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
++
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
++
++ if (! yyres)
++ return yystrlen (yystr);
++
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
++ about the unexpected token YYTOKEN for the state stack whose top is
++ YYSSP.
++
++ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
++ not large enough to hold the message. In that case, also set
++ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
++ required number of bytes is too large to store. */
++static int
++yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
++ yytype_int16 *yyssp, int yytoken)
++{
++ YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
++ YYSIZE_T yysize = yysize0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ /* Internationalized format string. */
++ const char *yyformat = YY_NULL;
++ /* Arguments of yyformat. */
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ /* Number of reported tokens (one for the "unexpected", one per
++ "expected"). */
++ int yycount = 0;
++
++ /* There are many possibilities here to consider:
++ - Assume YYFAIL is not used. It's too flawed to consider. See
++ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
++ for details. YYERROR is fine as it does not invoke this
++ function.
++ - If this state is a consistent state with a default action, then
++ the only way this function was invoked is if the default action
++ is an error action. In that case, don't check for expected
++ tokens because there are none.
++ - The only way there can be no lookahead present (in yychar) is if
++ this state is a consistent state with a default action. Thus,
++ detecting the absence of a lookahead is sufficient to determine
++ that there is no unexpected or expected token to report. In that
++ case, just report a simple "syntax error".
++ - Don't assume there isn't a lookahead just because this state is a
++ consistent state with a default action. There might have been a
++ previous inconsistent state, consistent state with a non-default
++ action, or user semantic action that manipulated yychar.
++ - Of course, the expected token list depends on states to have
++ correct lookahead information, and it depends on the parser not
++ to perform extra reductions after fetching a lookahead from the
++ scanner and before detecting a syntax error. Thus, state merging
++ (from LALR or IELR) and default reductions corrupt the expected
++ token list. However, the list is correct for canonical LR with
++ one exception: it will still contain any token that will not be
++ accepted due to an error action in a later state.
++ */
++ if (yytoken != YYEMPTY)
++ {
++ int yyn = yypact[*yyssp];
++ yyarg[yycount++] = yytname[yytoken];
++ if (!yypact_value_is_default (yyn))
++ {
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. In other words, skip the first -YYN actions for
++ this state because they are default actions. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yyx;
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
++ && !yytable_value_is_error (yytable[yyx + yyn]))
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ {
++ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
++ if (! (yysize <= yysize1
++ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
++ return 2;
++ yysize = yysize1;
++ }
++ }
++ }
++ }
++
++ switch (yycount)
++ {
++# define YYCASE_(N, S) \
++ case N: \
++ yyformat = S; \
++ break
++ YYCASE_(0, YY_("syntax error"));
++ YYCASE_(1, YY_("syntax error, unexpected %s"));
++ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
++ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
++ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
++ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
++# undef YYCASE_
++ }
++
++ {
++ YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
++ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
++ return 2;
++ yysize = yysize1;
++ }
++
++ if (*yymsg_alloc < yysize)
++ {
++ *yymsg_alloc = 2 * yysize;
++ if (! (yysize <= *yymsg_alloc
++ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
++ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
++ return 1;
++ }
++
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ {
++ char *yyp = *yymsg;
++ int yyi = 0;
++ while ((*yyp = *yyformat) != '\0')
++ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyformat += 2;
++ }
++ else
++ {
++ yyp++;
++ yyformat++;
++ }
++ }
++ return 0;
++}
++#endif /* YYERROR_VERBOSE */
++
++/*-----------------------------------------------.
++| Release the memory associated to this symbol. |
++`-----------------------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
++#else
++static void
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
++ int yytype;
++ YYSTYPE *yyvaluep;
++#endif
++{
++ YYUSE (yyvaluep);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
++
++ YYUSE (yytype);
++}
++
++
++
++
++/*----------.
++| yyparse. |
++`----------*/
++
++#ifdef YYPARSE_PARAM
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
++#else /* ! YYPARSE_PARAM */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void)
++#else
++int
++yyparse ()
++
++#endif
++#endif
++{
++/* The lookahead symbol. */
++int yychar;
++
++
++#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
++/* Suppress an incorrect diagnostic about yylval being uninitialized. */
++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
++ _Pragma ("GCC diagnostic push") \
++ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
++ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
++# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
++ _Pragma ("GCC diagnostic pop")
++#else
++/* Default value used for initialization, for pacifying older GCCs
++ or non-GCC compilers. */
++static YYSTYPE yyval_default;
++# define YY_INITIAL_VALUE(Value) = Value
++#endif
++#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
++# define YY_IGNORE_MAYBE_UNINITIALIZED_END
++#endif
++#ifndef YY_INITIAL_VALUE
++# define YY_INITIAL_VALUE(Value) /* Nothing. */
++#endif
++
++/* The semantic value of the lookahead symbol. */
++YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
++
++ /* Number of syntax errors so far. */
++ int yynerrs;
++
++ int yystate;
++ /* Number of tokens to shift before error messages enabled. */
++ int yyerrstatus;
++
++ /* The stacks and their tools:
++ `yyss': related to states.
++ `yyvs': related to semantic values.
++
++ Refer to the stacks through separate pointers, to allow yyoverflow
++ to reallocate them elsewhere. */
++
++ /* The state stack. */
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss;
++ yytype_int16 *yyssp;
++
++ /* The semantic value stack. */
++ YYSTYPE yyvsa[YYINITDEPTH];
++ YYSTYPE *yyvs;
++ YYSTYPE *yyvsp;
++
++ YYSIZE_T yystacksize;
++
++ int yyn;
++ int yyresult;
++ /* Lookahead token as an internal (translated) token number. */
++ int yytoken = 0;
++ /* The variables used to return semantic value and location from the
++ action routines. */
++ YYSTYPE yyval;
++
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
++
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
++
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
++
++ yyssp = yyss = yyssa;
++ yyvsp = yyvs = yyvsa;
++ yystacksize = YYINITDEPTH;
++
++ YYDPRINTF ((stderr, "Starting parse\n"));
++
++ yystate = 0;
++ yyerrstatus = 0;
++ yynerrs = 0;
++ yychar = YYEMPTY; /* Cause a token to be read. */
++ goto yysetstate;
++
++/*------------------------------------------------------------.
++| yynewstate -- Push a new state, which is found in yystate. |
++`------------------------------------------------------------*/
++ yynewstate:
++ /* In all cases, when you get here, the value and location stacks
++ have just been pushed. So pushing a state here evens the stacks. */
++ yyssp++;
++
++ yysetstate:
++ *yyssp = yystate;
++
++ if (yyss + yystacksize - 1 <= yyssp)
++ {
++ /* Get the current used size of the three stacks, in elements. */
++ YYSIZE_T yysize = yyssp - yyss + 1;
++
++#ifdef yyoverflow
++ {
++ /* Give user a chance to reallocate the stack. Use copies of
++ these so that the &'s don't force the real ones into
++ memory. */
++ YYSTYPE *yyvs1 = yyvs;
++ yytype_int16 *yyss1 = yyss;
++
++ /* Each stack pointer address is followed by the size of the
++ data in use in that stack, in bytes. This used to be a
++ conditional around just the two extra args, but that might
++ be undefined if yyoverflow is a macro. */
++ yyoverflow (YY_("memory exhausted"),
++ &yyss1, yysize * sizeof (*yyssp),
++ &yyvs1, yysize * sizeof (*yyvsp),
++ &yystacksize);
++
++ yyss = yyss1;
++ yyvs = yyvs1;
++ }
++#else /* no yyoverflow */
++# ifndef YYSTACK_RELOCATE
++ goto yyexhaustedlab;
++# else
++ /* Extend the stack our own way. */
++ if (YYMAXDEPTH <= yystacksize)
++ goto yyexhaustedlab;
++ yystacksize *= 2;
++ if (YYMAXDEPTH < yystacksize)
++ yystacksize = YYMAXDEPTH;
++
++ {
++ yytype_int16 *yyss1 = yyss;
++ union yyalloc *yyptr =
++ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
++ if (! yyptr)
++ goto yyexhaustedlab;
++ YYSTACK_RELOCATE (yyss_alloc, yyss);
++ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
++# undef YYSTACK_RELOCATE
++ if (yyss1 != yyssa)
++ YYSTACK_FREE (yyss1);
++ }
++# endif
++#endif /* no yyoverflow */
++
++ yyssp = yyss + yysize - 1;
++ yyvsp = yyvs + yysize - 1;
++
++ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
++ (unsigned long int) yystacksize));
++
++ if (yyss + yystacksize - 1 <= yyssp)
++ YYABORT;
++ }
++
++ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
++
++ if (yystate == YYFINAL)
++ YYACCEPT;
++
++ goto yybackup;
++
++/*-----------.
++| yybackup. |
++`-----------*/
++yybackup:
++
++ /* Do appropriate processing given the current state. Read a
++ lookahead token if we need one and don't already have one. */
++
++ /* First try to decide what to do without reference to lookahead token. */
++ yyn = yypact[yystate];
++ if (yypact_value_is_default (yyn))
++ goto yydefault;
++
++ /* Not known => get a lookahead token if don't already have one. */
++
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ if (yychar == YYEMPTY)
++ {
++ YYDPRINTF ((stderr, "Reading a token: "));
++ yychar = YYLEX;
++ }
++
++ if (yychar <= YYEOF)
++ {
++ yychar = yytoken = YYEOF;
++ YYDPRINTF ((stderr, "Now at end of input.\n"));
++ }
++ else
++ {
++ yytoken = YYTRANSLATE (yychar);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
++ }
++
++ /* If the proper action on seeing token YYTOKEN is to reduce or to
++ detect an error, take that action. */
++ yyn += yytoken;
++ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
++ goto yydefault;
++ yyn = yytable[yyn];
++ if (yyn <= 0)
++ {
++ if (yytable_value_is_error (yyn))
++ goto yyerrlab;
++ yyn = -yyn;
++ goto yyreduce;
++ }
++
++ /* Count tokens shifted since error; after three, turn off error
++ status. */
++ if (yyerrstatus)
++ yyerrstatus--;
++
++ /* Shift the lookahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token. */
++ yychar = YYEMPTY;
++
++ yystate = yyn;
++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
++ *++yyvsp = yylval;
++ YY_IGNORE_MAYBE_UNINITIALIZED_END
++
++ goto yynewstate;
++
++
++/*-----------------------------------------------------------.
++| yydefault -- do the default action for the current state. |
++`-----------------------------------------------------------*/
++yydefault:
++ yyn = yydefact[yystate];
++ if (yyn == 0)
++ goto yyerrlab;
++ goto yyreduce;
++
++
++/*-----------------------------.
++| yyreduce -- Do a reduction. |
++`-----------------------------*/
++yyreduce:
++ /* yyn is the number of a rule to reduce with. */
++ yylen = yyr2[yyn];
++
++ /* If YYLEN is nonzero, implement the default value of the action:
++ `$$ = $1'.
++
++ Otherwise, the following line sets YYVAL to garbage.
++ This behavior is undocumented and Bison
++ users should not rely upon it. Assigning to YYVAL
++ unconditionally makes the parser a bit smaller, and it avoids a
++ GCC warning that YYVAL may be used uninitialized. */
++ yyval = yyvsp[1-yylen];
++
++
++ YY_REDUCE_PRINT (yyn);
++ switch (yyn)
++ {
++ case 4:
++/* Line 1787 of yacc.c */
++#line 157 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHaveTime++;
++ }
++ break;
++
++ case 5:
++/* Line 1787 of yacc.c */
++#line 160 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHaveZone++;
++ }
++ break;
++
++ case 6:
++/* Line 1787 of yacc.c */
++#line 163 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHaveDate++;
++ }
++ break;
++
++ case 7:
++/* Line 1787 of yacc.c */
++#line 166 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHaveDay++;
++ }
++ break;
++
++ case 8:
++/* Line 1787 of yacc.c */
++#line 169 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHaveRel++;
++ }
++ break;
++
++ case 10:
++/* Line 1787 of yacc.c */
++#line 175 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHour = (yyvsp[(1) - (2)].Number);
++ VARIABLE->yyMinutes = 0;
++ VARIABLE->yySeconds = 0;
++ VARIABLE->yyMeridian = (yyvsp[(2) - (2)].Meridian);
++ }
++ break;
++
++ case 11:
++/* Line 1787 of yacc.c */
++#line 181 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHour = (yyvsp[(1) - (2)].Number)/100;
++ VARIABLE->yyMinutes = (yyvsp[(1) - (2)].Number)%100;
++ VARIABLE->yySeconds = 0;
++ VARIABLE->yyMeridian = MER24;
++ VARIABLE->yyDSTmode = DSToff;
++ VARIABLE->yyTimezone = - ((yyvsp[(2) - (2)].Number) % 100 + ((yyvsp[(2) - (2)].Number) / 100) * 60);
++ }
++ break;
++
++ case 12:
++/* Line 1787 of yacc.c */
++#line 189 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHour = (yyvsp[(1) - (2)].Number)/10000;
++ VARIABLE->yyMinutes = ((yyvsp[(1) - (2)].Number)/100)%100;
++ VARIABLE->yySeconds = (yyvsp[(1) - (2)].Number) % 100;
++ VARIABLE->yyMeridian = MER24;
++ VARIABLE->yyDSTmode = DSToff;
++ VARIABLE->yyTimezone = - ((yyvsp[(2) - (2)].Number) % 100 + ((yyvsp[(2) - (2)].Number) / 100) * 60);
++ }
++ break;
++
++ case 13:
++/* Line 1787 of yacc.c */
++#line 197 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHour = (yyvsp[(1) - (4)].Number);
++ VARIABLE->yyMinutes = (yyvsp[(3) - (4)].Number);
++ VARIABLE->yySeconds = 0;
++ VARIABLE->yyMeridian = (yyvsp[(4) - (4)].Meridian);
++ }
++ break;
++
++ case 14:
++/* Line 1787 of yacc.c */
++#line 203 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHour = (yyvsp[(1) - (4)].Number);
++ VARIABLE->yyMinutes = (yyvsp[(3) - (4)].Number);
++ VARIABLE->yyMeridian = MER24;
++ VARIABLE->yyDSTmode = DSToff;
++ VARIABLE->yyTimezone = - ((yyvsp[(4) - (4)].Number) % 100 + ((yyvsp[(4) - (4)].Number) / 100) * 60);
++ }
++ break;
++
++ case 15:
++/* Line 1787 of yacc.c */
++#line 210 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHour = (yyvsp[(1) - (6)].Number);
++ VARIABLE->yyMinutes = (yyvsp[(3) - (6)].Number);
++ VARIABLE->yySeconds = (yyvsp[(5) - (6)].Number);
++ VARIABLE->yyMeridian = (yyvsp[(6) - (6)].Meridian);
++ }
++ break;
++
++ case 16:
++/* Line 1787 of yacc.c */
++#line 216 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyHour = (yyvsp[(1) - (6)].Number);
++ VARIABLE->yyMinutes = (yyvsp[(3) - (6)].Number);
++ VARIABLE->yySeconds = (yyvsp[(5) - (6)].Number);
++ VARIABLE->yyMeridian = MER24;
++ VARIABLE->yyDSTmode = DSToff;
++ VARIABLE->yyTimezone = - ((yyvsp[(6) - (6)].Number) % 100 + ((yyvsp[(6) - (6)].Number) / 100) * 60);
++ }
++ break;
++
++ case 17:
++/* Line 1787 of yacc.c */
++#line 226 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyTimezone = (yyvsp[(1) - (1)].Number);
++ VARIABLE->yyDSTmode = DSToff;
++ }
++ break;
++
++ case 18:
++/* Line 1787 of yacc.c */
++#line 230 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyTimezone = (yyvsp[(1) - (1)].Number);
++ VARIABLE->yyDSTmode = DSTon;
++ }
++ break;
++
++ case 19:
++/* Line 1787 of yacc.c */
++#line 235 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyTimezone = (yyvsp[(1) - (2)].Number);
++ VARIABLE->yyDSTmode = DSTon;
++ }
++ break;
++
++ case 20:
++/* Line 1787 of yacc.c */
++#line 239 "ptlib/common/getdate.y"
++ {
++ if (VARIABLE->yyHaveTime > 0) {
++ VARIABLE->yyTimezone = (yyvsp[(1) - (1)].Number);
++ VARIABLE->yyDSTmode = DSToff;
++ }
++ else
++ VARIABLE->yyHaveZone--;
++ }
++ break;
++
++ case 21:
++/* Line 1787 of yacc.c */
++#line 249 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyDayOrdinal = 1;
++ VARIABLE->yyDayNumber = (yyvsp[(1) - (1)].Number);
++ }
++ break;
++
++ case 22:
++/* Line 1787 of yacc.c */
++#line 253 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyDayOrdinal = 1;
++ VARIABLE->yyDayNumber = (yyvsp[(1) - (2)].Number);
++ }
++ break;
++
++ case 23:
++/* Line 1787 of yacc.c */
++#line 257 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyDayOrdinal = (yyvsp[(1) - (2)].Number);
++ VARIABLE->yyDayNumber = (yyvsp[(2) - (2)].Number);
++ }
++ break;
++
++ case 24:
++/* Line 1787 of yacc.c */
++#line 263 "ptlib/common/getdate.y"
++ {
++ SetPossibleDate(VARIABLE, (yyvsp[(1) - (3)].Number), (yyvsp[(3) - (3)].Number), VARIABLE->yyYear);
++ }
++ break;
++
++ case 25:
++/* Line 1787 of yacc.c */
++#line 266 "ptlib/common/getdate.y"
++ {
++ SetPossibleDate(VARIABLE, (yyvsp[(1) - (5)].Number), (yyvsp[(3) - (5)].Number), (yyvsp[(5) - (5)].Number));
++ }
++ break;
++
++ case 26:
++/* Line 1787 of yacc.c */
++#line 269 "ptlib/common/getdate.y"
++ {
++ /* ISO 8601 format. yyyy-mm-dd. */
++ SetPossibleDate(VARIABLE, (yyvsp[(1) - (4)].Number), -(yyvsp[(2) - (4)].Number), -(yyvsp[(3) - (4)].Number));
++ }
++ break;
++
++ case 27:
++/* Line 1787 of yacc.c */
++#line 273 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyDay= ((yyvsp[(1) - (1)].Number))%100;
++ VARIABLE->yyMonth= ((yyvsp[(1) - (1)].Number)/100)%100;
++ VARIABLE->yyYear = (yyvsp[(1) - (1)].Number)/10000;
++ }
++ break;
++
++ case 28:
++/* Line 1787 of yacc.c */
++#line 278 "ptlib/common/getdate.y"
++ {
++ /* e.g. 17-JUN-1992. */
++ SetPossibleDate(VARIABLE, (yyvsp[(1) - (3)].Number), (yyvsp[(2) - (3)].Number), -(yyvsp[(3) - (3)].Number));
++ }
++ break;
++
++ case 29:
++/* Line 1787 of yacc.c */
++#line 282 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyMonth = (yyvsp[(1) - (2)].Number);
++ if ((yyvsp[(2) - (2)].Number) > 31)
++ VARIABLE->yyYear = (yyvsp[(2) - (2)].Number);
++ else
++ VARIABLE->yyDay = (yyvsp[(2) - (2)].Number);
++ }
++ break;
++
++ case 30:
++/* Line 1787 of yacc.c */
++#line 289 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyMonth = (yyvsp[(1) - (4)].Number);
++ VARIABLE->yyDay = (yyvsp[(2) - (4)].Number);
++ VARIABLE->yyYear = (yyvsp[(4) - (4)].Number);
++ }
++ break;
++
++ case 31:
++/* Line 1787 of yacc.c */
++#line 294 "ptlib/common/getdate.y"
++ {
++ if ((yyvsp[(1) - (2)].Number) > 31)
++ VARIABLE->yyYear = (yyvsp[(1) - (2)].Number);
++ else
++ VARIABLE->yyDay = (yyvsp[(1) - (2)].Number);
++ VARIABLE->yyMonth = (yyvsp[(2) - (2)].Number);
++ }
++ break;
++
++ case 32:
++/* Line 1787 of yacc.c */
++#line 301 "ptlib/common/getdate.y"
++ {
++ SetPossibleDate(VARIABLE, (yyvsp[(1) - (3)].Number), (yyvsp[(2) - (3)].Number), (yyvsp[(3) - (3)].Number));
++ }
++ break;
++
++ case 33:
++/* Line 1787 of yacc.c */
++#line 306 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelSeconds = -VARIABLE->yyRelSeconds;
++ VARIABLE->yyRelMonth = -VARIABLE->yyRelMonth;
++ }
++ break;
++
++ case 35:
++/* Line 1787 of yacc.c */
++#line 313 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number) * 60L;
++ }
++ break;
++
++ case 36:
++/* Line 1787 of yacc.c */
++#line 316 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number) * 60L;
++ }
++ break;
++
++ case 37:
++/* Line 1787 of yacc.c */
++#line 319 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelSeconds += (yyvsp[(1) - (1)].Number) * 60L;
++ }
++ break;
++
++ case 38:
++/* Line 1787 of yacc.c */
++#line 322 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelSeconds += (yyvsp[(1) - (2)].Number);
++ }
++ break;
++
++ case 39:
++/* Line 1787 of yacc.c */
++#line 325 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelSeconds += (yyvsp[(1) - (2)].Number);
++ }
++ break;
++
++ case 40:
++/* Line 1787 of yacc.c */
++#line 328 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelSeconds++;
++ }
++ break;
++
++ case 41:
++/* Line 1787 of yacc.c */
++#line 331 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
++ }
++ break;
++
++ case 42:
++/* Line 1787 of yacc.c */
++#line 334 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
++ }
++ break;
++
++ case 43:
++/* Line 1787 of yacc.c */
++#line 337 "ptlib/common/getdate.y"
++ {
++ VARIABLE->yyRelMonth += (yyvsp[(1) - (1)].Number);
++ }
++ break;
++
++ case 44:
++/* Line 1787 of yacc.c */
++#line 342 "ptlib/common/getdate.y"
++ {
++ (yyval.Number) = (yyvsp[(1) - (1)].Number);
++ }
++ break;
++
++ case 45:
++/* Line 1787 of yacc.c */
++#line 345 "ptlib/common/getdate.y"
++ {
++ (yyval.Number) = (yyvsp[(1) - (1)].Number);
++ }
++ break;
++
++ case 46:
++/* Line 1787 of yacc.c */
++#line 348 "ptlib/common/getdate.y"
++ {
++ (yyval.Number) = (yyvsp[(1) - (1)].Number);
++ }
++ break;
++
++ case 47:
++/* Line 1787 of yacc.c */
++#line 353 "ptlib/common/getdate.y"
++ {
++ if (VARIABLE->yyHaveTime && VARIABLE->yyHaveDate && !VARIABLE->yyHaveRel)
++ VARIABLE->yyYear = (yyvsp[(1) - (1)].Number);
++ else {
++ if((yyvsp[(1) - (1)].Number)>240000) {
++ VARIABLE->yyHaveDate++;
++ VARIABLE->yyDay= ((yyvsp[(1) - (1)].Number))%100;
++ VARIABLE->yyMonth= ((yyvsp[(1) - (1)].Number)/100)%100;
++ VARIABLE->yyYear = (yyvsp[(1) - (1)].Number)/10000;
++ }
++ else {
++ VARIABLE->yyHaveTime++;
++ if ((yyvsp[(1) - (1)].Number) < 10000) {
++ VARIABLE->yyHour = (yyvsp[(1) - (1)].Number) / 100;
++ VARIABLE->yyMinutes = (yyvsp[(1) - (1)].Number) % 100;
++ VARIABLE->yySeconds = 0;
++ }
++ else {
++ VARIABLE->yyHour = (yyvsp[(1) - (1)].Number)/10000;
++ VARIABLE->yyMinutes = ((yyvsp[(1) - (1)].Number)/100)%100;
++ VARIABLE->yySeconds = (yyvsp[(1) - (1)].Number) % 100;
++ }
++ VARIABLE->yyMeridian = MER24;
++ }
++ }
++ }
++ break;
++
++ case 48:
++/* Line 1787 of yacc.c */
++#line 379 "ptlib/common/getdate.y"
++ {
++ if (VARIABLE->yyHaveTime && VARIABLE->yyHaveDate && !VARIABLE->yyHaveRel)
++ VARIABLE->yyYear = (yyvsp[(1) - (1)].Number);
++ else {
++ VARIABLE->yyHaveTime++;
++ VARIABLE->yyHour = (yyvsp[(1) - (1)].Number)/100;
++ VARIABLE->yyMinutes = (yyvsp[(1) - (1)].Number)%100;
++ VARIABLE->yySeconds = 0;
++ VARIABLE->yyMeridian = MER24;
++ }
++ }
++ break;
++
++ case 49:
++/* Line 1787 of yacc.c */
++#line 390 "ptlib/common/getdate.y"
++ {
++ if (!VARIABLE->yyHaveDate && (yyvsp[(1) - (1)].Number)>240000) {
++ VARIABLE->yyHaveDate++;
++ VARIABLE->yyDay= ((yyvsp[(1) - (1)].Number))%100;
++ VARIABLE->yyMonth= ((yyvsp[(1) - (1)].Number)/100)%100;
++ VARIABLE->yyYear = (yyvsp[(1) - (1)].Number)/10000;
++ }
++ else if (!VARIABLE->yyHaveTime) {
++ VARIABLE->yyHaveTime++;
++ VARIABLE->yyHour = (yyvsp[(1) - (1)].Number)/10000;
++ VARIABLE->yyMinutes = ((yyvsp[(1) - (1)].Number)/100)%100;
++ VARIABLE->yySeconds = (yyvsp[(1) - (1)].Number) % 100;
++ VARIABLE->yyMeridian = MER24;
++ }
++ }
++ break;
++
++ case 50:
++/* Line 1787 of yacc.c */
++#line 407 "ptlib/common/getdate.y"
++ {
++ (yyval.Meridian) = MER24;
++ }
++ break;
++
++ case 51:
++/* Line 1787 of yacc.c */
++#line 410 "ptlib/common/getdate.y"
++ {
++ (yyval.Meridian) = (yyvsp[(1) - (1)].Meridian);
++ }
++ break;
++
++
++/* Line 1787 of yacc.c */
++#line 2031 "ptlib/common/getdate.tab.c"
++ default: break;
++ }
++ /* User semantic actions sometimes alter yychar, and that requires
++ that yytoken be updated with the new translation. We take the
++ approach of translating immediately before every use of yytoken.
++ One alternative is translating here after every semantic action,
++ but that translation would be missed if the semantic action invokes
++ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
++ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
++ incorrect destructor might then be invoked immediately. In the
++ case of YYERROR or YYBACKUP, subsequent parser actions might lead
++ to an incorrect destructor call or verbose syntax error message
++ before the lookahead is translated. */
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
++
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
++
++ *++yyvsp = yyval;
++
++ /* Now `shift' the result of the reduction. Determine what state
++ that goes to, based on the state we popped back to and the rule
++ number reduced by. */
++
++ yyn = yyr1[yyn];
++
++ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
++ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
++ yystate = yytable[yystate];
++ else
++ yystate = yydefgoto[yyn - YYNTOKENS];
++
++ goto yynewstate;
++
++
++/*------------------------------------.
++| yyerrlab -- here on detecting error |
++`------------------------------------*/
++yyerrlab:
++ /* Make sure we have latest lookahead translation. See comments at
++ user semantic actions for why this is necessary. */
++ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
++
++ /* If not already recovering from an error, report this error. */
++ if (!yyerrstatus)
++ {
++ ++yynerrs;
++#if ! YYERROR_VERBOSE
++ yyerror (YY_("syntax error"));
++#else
++# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
++ yyssp, yytoken)
++ {
++ char const *yymsgp = YY_("syntax error");
++ int yysyntax_error_status;
++ yysyntax_error_status = YYSYNTAX_ERROR;
++ if (yysyntax_error_status == 0)
++ yymsgp = yymsg;
++ else if (yysyntax_error_status == 1)
++ {
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
++ if (!yymsg)
++ {
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
++ yysyntax_error_status = 2;
++ }
++ else
++ {
++ yysyntax_error_status = YYSYNTAX_ERROR;
++ yymsgp = yymsg;
++ }
++ }
++ yyerror (yymsgp);
++ if (yysyntax_error_status == 2)
++ goto yyexhaustedlab;
++ }
++# undef YYSYNTAX_ERROR
++#endif
++ }
++
++
++
++ if (yyerrstatus == 3)
++ {
++ /* If just tried and failed to reuse lookahead token after an
++ error, discard it. */
++
++ if (yychar <= YYEOF)
++ {
++ /* Return failure if at end of input. */
++ if (yychar == YYEOF)
++ YYABORT;
++ }
++ else
++ {
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
++ yychar = YYEMPTY;
++ }
++ }
++
++ /* Else will try to reuse lookahead token after shifting the error
++ token. */
++ goto yyerrlab1;
++
++
++/*---------------------------------------------------.
++| yyerrorlab -- error raised explicitly by YYERROR. |
++`---------------------------------------------------*/
++yyerrorlab:
++
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
++ goto yyerrorlab;
++
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
++ yystate = *yyssp;
++ goto yyerrlab1;
++
++
++/*-------------------------------------------------------------.
++| yyerrlab1 -- common code for both syntax error and YYERROR. |
++`-------------------------------------------------------------*/
++yyerrlab1:
++ yyerrstatus = 3; /* Each real token shifted decrements this. */
++
++ for (;;)
++ {
++ yyn = yypact[yystate];
++ if (!yypact_value_is_default (yyn))
++ {
++ yyn += YYTERROR;
++ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
++ {
++ yyn = yytable[yyn];
++ if (0 < yyn)
++ break;
++ }
++ }
++
++ /* Pop the current state because it cannot handle the error token. */
++ if (yyssp == yyss)
++ YYABORT;
++
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp);
++ YYPOPSTACK (1);
++ yystate = *yyssp;
++ YY_STACK_PRINT (yyss, yyssp);
++ }
++
++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
++ *++yyvsp = yylval;
++ YY_IGNORE_MAYBE_UNINITIALIZED_END
++
++
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
++ yystate = yyn;
++ goto yynewstate;
++
++
++/*-------------------------------------.
++| yyacceptlab -- YYACCEPT comes here. |
++`-------------------------------------*/
++yyacceptlab:
++ yyresult = 0;
++ goto yyreturn;
++
++/*-----------------------------------.
++| yyabortlab -- YYABORT comes here. |
++`-----------------------------------*/
++yyabortlab:
++ yyresult = 1;
++ goto yyreturn;
++
++#if !defined yyoverflow || YYERROR_VERBOSE
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (YY_("memory exhausted"));
++ yyresult = 2;
++ /* Fall through. */
++#endif
++
++yyreturn:
++ if (yychar != YYEMPTY)
++ {
++ /* Make sure we have latest lookahead translation. See comments at
++ user semantic actions for why this is necessary. */
++ yytoken = YYTRANSLATE (yychar);
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ }
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp);
++ YYPOPSTACK (1);
++ }
++#ifndef yyoverflow
++ if (yyss != yyssa)
++ YYSTACK_FREE (yyss);
++#endif
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
++}
++
++
++/* Line 2050 of yacc.c */
++#line 415 "ptlib/common/getdate.y"
++
++
++/* Month and day table. */
++static TABLE const MonthDayTable[] = {
++ { "january", tMONTH, 1 },
++ { "february", tMONTH, 2 },
++ { "march", tMONTH, 3 },
++ { "april", tMONTH, 4 },
++ { "may", tMONTH, 5 },
++ { "june", tMONTH, 6 },
++ { "july", tMONTH, 7 },
++ { "august", tMONTH, 8 },
++ { "september", tMONTH, 9 },
++ { "sept", tMONTH, 9 },
++ { "october", tMONTH, 10 },
++ { "november", tMONTH, 11 },
++ { "december", tMONTH, 12 },
++ { "sunday", tDAY, 0 },
++ { "monday", tDAY, 1 },
++ { "tuesday", tDAY, 2 },
++ { "tues", tDAY, 2 },
++ { "wednesday", tDAY, 3 },
++ { "wednes", tDAY, 3 },
++ { "thursday", tDAY, 4 },
++ { "thur", tDAY, 4 },
++ { "thurs", tDAY, 4 },
++ { "friday", tDAY, 5 },
++ { "saturday", tDAY, 6 },
++ { NULL }
++};
++
++/* Time units table. */
++static TABLE const UnitsTable[] = {
++ { "year", tMONTH_UNIT, 12 },
++ { "month", tMONTH_UNIT, 1 },
++ { "fortnight", tMINUTE_UNIT, 14 * 24 * 60 },
++ { "week", tMINUTE_UNIT, 7 * 24 * 60 },
++ { "day", tMINUTE_UNIT, 1 * 24 * 60 },
++ { "hour", tMINUTE_UNIT, 60 },
++ { "minute", tMINUTE_UNIT, 1 },
++ { "min", tMINUTE_UNIT, 1 },
++ { "second", tSEC_UNIT, 1 },
++ { "sec", tSEC_UNIT, 1 },
++ { NULL }
++};
++
++/* Assorted relative-time words. */
++static TABLE const OtherTable[] = {
++ { "tomorrow", tMINUTE_UNIT, 1 * 24 * 60 },
++ { "yesterday", tMINUTE_UNIT, -1 * 24 * 60 },
++ { "today", tMINUTE_UNIT, 0 },
++ { "now", tMINUTE_UNIT, 0 },
++ { "last", tUNUMBER, -1 },
++ { "this", tMINUTE_UNIT, 0 },
++ { "next", tUNUMBER, 2 },
++ { "first", tUNUMBER, 1 },
++/* { "second", tUNUMBER, 2 }, */
++ { "third", tUNUMBER, 3 },
++ { "fourth", tUNUMBER, 4 },
++ { "fifth", tUNUMBER, 5 },
++ { "sixth", tUNUMBER, 6 },
++ { "seventh", tUNUMBER, 7 },
++ { "eighth", tUNUMBER, 8 },
++ { "ninth", tUNUMBER, 9 },
++ { "tenth", tUNUMBER, 10 },
++ { "eleventh", tUNUMBER, 11 },
++ { "twelfth", tUNUMBER, 12 },
++ { "ago", tAGO, 1 },
++ { NULL }
++};
++
++/* The timezone table. */
++/* Some of these are commented out because a time_t can't store a float. */
++static TABLE const TimezoneTable[] = {
++ { "gmt", tZONE, HOUR( 0) }, /* Greenwich Mean */
++ { "ut", tZONE, HOUR( 0) }, /* Universal (Coordinated) */
++ { "utc", tZONE, HOUR( 0) },
++ { "wet", tZONE, HOUR( 0) }, /* Western European */
++ { "bst", tDAYZONE, HOUR( 0) }, /* British Summer */
++ { "wat", tZONE, HOUR( 1) }, /* West Africa */
++ { "at", tZONE, HOUR( 2) }, /* Azores */
++#if 0
++ /* For completeness. BST is also British Summer, and GST is
++ * also Guam Standard. */
++ { "bst", tZONE, HOUR( 3) }, /* Brazil Standard */
++ { "gst", tZONE, HOUR( 3) }, /* Greenland Standard */
++#endif
++#if 0
++ { "nft", tZONE, HOUR(3.5) }, /* Newfoundland */
++ { "nst", tZONE, HOUR(3.5) }, /* Newfoundland Standard */
++ { "ndt", tDAYZONE, HOUR(3.5) }, /* Newfoundland Daylight */
++#endif
++ { "ast", tZONE, HOUR( 4) }, /* Atlantic Standard */
++ { "adt", tDAYZONE, HOUR( 4) }, /* Atlantic Daylight */
++ { "est", tZONE, HOUR( 5) }, /* Eastern Standard */
++ { "edt", tDAYZONE, HOUR( 5) }, /* Eastern Daylight */
++ { "cst", tZONE, HOUR( 6) }, /* Central Standard */
++ { "cdt", tDAYZONE, HOUR( 6) }, /* Central Daylight */
++ { "mst", tZONE, HOUR( 7) }, /* Mountain Standard */
++ { "mdt", tDAYZONE, HOUR( 7) }, /* Mountain Daylight */
++ { "pst", tZONE, HOUR( 8) }, /* Pacific Standard */
++ { "pdt", tDAYZONE, HOUR( 8) }, /* Pacific Daylight */
++ { "yst", tZONE, HOUR( 9) }, /* Yukon Standard */
++ { "ydt", tDAYZONE, HOUR( 9) }, /* Yukon Daylight */
++ { "hst", tZONE, HOUR(10) }, /* Hawaii Standard */
++ { "hdt", tDAYZONE, HOUR(10) }, /* Hawaii Daylight */
++ { "cat", tZONE, HOUR(10) }, /* Central Alaska */
++ { "ahst", tZONE, HOUR(10) }, /* Alaska-Hawaii Standard */
++ { "nt", tZONE, HOUR(11) }, /* Nome */
++ { "idlw", tZONE, HOUR(12) }, /* International Date Line West */
++ { "cet", tZONE, -HOUR(1) }, /* Central European */
++ { "met", tZONE, -HOUR(1) }, /* Middle European */
++ { "mewt", tZONE, -HOUR(1) }, /* Middle European Winter */
++ { "mest", tDAYZONE, -HOUR(1) }, /* Middle European Summer */
++ { "swt", tZONE, -HOUR(1) }, /* Swedish Winter */
++ { "sst", tDAYZONE, -HOUR(1) }, /* Swedish Summer */
++ { "fwt", tZONE, -HOUR(1) }, /* French Winter */
++ { "fst", tDAYZONE, -HOUR(1) }, /* French Summer */
++ { "eet", tZONE, -HOUR(2) }, /* Eastern Europe, USSR Zone 1 */
++ { "bt", tZONE, -HOUR(3) }, /* Baghdad, USSR Zone 2 */
++#if 0
++ { "it", tZONE, -HOUR(3.5) },/* Iran */
++#endif
++ { "zp4", tZONE, -HOUR(4) }, /* USSR Zone 3 */
++ { "zp5", tZONE, -HOUR(5) }, /* USSR Zone 4 */
++#if 0
++ { "ist", tZONE, -HOUR(5.5) },/* Indian Standard */
++#endif
++ { "zp6", tZONE, -HOUR(6) }, /* USSR Zone 5 */
++#if 0
++ /* For completeness. NST is also Newfoundland Stanard, and SST is
++ * also Swedish Summer. */
++ { "nst", tZONE, -HOUR(6.5) },/* North Sumatra */
++ { "sst", tZONE, -HOUR(7) }, /* South Sumatra, USSR Zone 6 */
++#endif /* 0 */
++ { "wast", tZONE, -HOUR(7) }, /* West Australian Standard */
++ { "wadt", tDAYZONE, -HOUR(7) }, /* West Australian Daylight */
++#if 0
++ { "jt", tZONE, -HOUR(7.5) },/* Java (3pm in Cronusland!) */
++#endif
++ { "cct", tZONE, -HOUR(8) }, /* China Coast, USSR Zone 7 */
++ { "jst", tZONE, -HOUR(9) }, /* Japan Standard, USSR Zone 8 */
++#if 0
++ { "cast", tZONE, -HOUR(9.5) },/* Central Australian Standard */
++ { "cadt", tDAYZONE, -HOUR(9.5) },/* Central Australian Daylight */
++#endif
++ { "east", tZONE, -HOUR(10) }, /* Eastern Australian Standard */
++ { "eadt", tDAYZONE, -HOUR(10) }, /* Eastern Australian Daylight */
++ { "gst", tZONE, -HOUR(10) }, /* Guam Standard, USSR Zone 9 */
++ { "nzt", tZONE, -HOUR(12) }, /* New Zealand */
++ { "nzst", tZONE, -HOUR(12) }, /* New Zealand Standard */
++ { "nzdt", tDAYZONE, -HOUR(12) }, /* New Zealand Daylight */
++ { "idle", tZONE, -HOUR(12) }, /* International Date Line East */
++ { NULL }
++};
++
++/* Military timezone table. */
++static TABLE const MilitaryTable[] = {
++ { "a", tMILZONE, HOUR( 1) },
++ { "b", tMILZONE, HOUR( 2) },
++ { "c", tMILZONE, HOUR( 3) },
++ { "d", tMILZONE, HOUR( 4) },
++ { "e", tMILZONE, HOUR( 5) },
++ { "f", tMILZONE, HOUR( 6) },
++ { "g", tMILZONE, HOUR( 7) },
++ { "h", tMILZONE, HOUR( 8) },
++ { "i", tMILZONE, HOUR( 9) },
++ { "k", tMILZONE, HOUR( 10) },
++ { "l", tMILZONE, HOUR( 11) },
++ { "m", tMILZONE, HOUR( 12) },
++ { "n", tMILZONE, HOUR(- 1) },
++ { "o", tMILZONE, HOUR(- 2) },
++ { "p", tMILZONE, HOUR(- 3) },
++ { "q", tMILZONE, HOUR(- 4) },
++ { "r", tMILZONE, HOUR(- 5) },
++ { "s", tMILZONE, HOUR(- 6) },
++ { "t", tMILZONE, HOUR(- 7) },
++ { "u", tMILZONE, HOUR(- 8) },
++ { "v", tMILZONE, HOUR(- 9) },
++ { "w", tMILZONE, HOUR(-10) },
++ { "x", tMILZONE, HOUR(-11) },
++ { "y", tMILZONE, HOUR(-12) },
++ { "z", tZONE, HOUR( 0) }, /* Deliberately tZONE */
++ { NULL }
++};
++
++static int LookupWord(char * buff, YYSTYPE * yylval, struct Variables * vars)
++{
++ register char *p;
++ register char *q;
++ register const TABLE *tp;
++ int i;
++ int abbrev;
++
++ /* Make it lowercase. */
++ for (p = buff; *p != '\0'; p++)
++ *p = (char)tolower(*p);
++
++ if (strcmp(buff, "am") == 0 || strcmp(buff, "a.m.") == 0) {
++ yylval->Meridian = MERam;
++ return tMERIDIAN;
++ }
++ if (strcmp(buff, "pm") == 0 || strcmp(buff, "p.m.") == 0) {
++ yylval->Meridian = MERpm;
++ return tMERIDIAN;
++ }
++
++ /* See if we have an abbreviation for a month. */
++ if (strlen(buff) == 3)
++ abbrev = 1;
++ else if (strlen(buff) == 4 && buff[3] == '.') {
++ abbrev = 1;
++ buff[3] = '\0';
++ }
++ else
++ abbrev = 0;
++
++ for (tp = MonthDayTable; tp->name; tp++) {
++ if (abbrev) {
++ if (strncmp(buff, tp->name, 3) == 0) {
++ yylval->Number = tp->value;
++ return tp->type;
++ }
++ }
++ else if (strcmp(buff, tp->name) == 0) {
++ yylval->Number = tp->value;
++ return tp->type;
++ }
++ }
++
++ for (tp = TimezoneTable; tp->name; tp++)
++ if (strcmp(buff, tp->name) == 0) {
++ yylval->Number = tp->value;
++ return tp->type;
++ }
++
++ if (strcmp(buff, "dst") == 0)
++ return tDST;
++
++ for (tp = UnitsTable; tp->name; tp++)
++ if (strcmp(buff, tp->name) == 0) {
++ yylval->Number = tp->value;
++ return tp->type;
++ }
++
++ /* Strip off any plural and try the units table again. */
++ i = strlen(buff) - 1;
++ if (buff[i] == 's') {
++ buff[i] = '\0';
++ for (tp = UnitsTable; tp->name; tp++)
++ if (strcmp(buff, tp->name) == 0) {
++ yylval->Number = tp->value;
++ return tp->type;
++ }
++ buff[i] = 's'; /* Put back for "this" in OtherTable. */
++ }
++
++ for (tp = OtherTable; tp->name; tp++)
++ if (strcmp(buff, tp->name) == 0) {
++ yylval->Number = tp->value;
++ return tp->type;
++ }
++
++ /* Avoid confusion with 'T' in RFC3339 and 't' in Military timezones */
++ if (!vars->yyHaveTime && strcmp(buff, "t") == 0)
++ return tRFC3339;
++
++ /* Military timezones. */
++ if (buff[1] == '\0' && isalpha(*buff)) {
++ for (tp = MilitaryTable; tp->name; tp++)
++ if (strcmp(buff, tp->name) == 0) {
++ yylval->Number = tp->value;
++ return tp->type;
++ }
++ }
++
++ /* Drop out any periods and try the timezone table again. */
++ for (i = 0, p = q = buff; *q; q++)
++ if (*q != '.')
++ *p++ = *q;
++ else
++ i++;
++ *p = '\0';
++ if (i)
++ for (tp = TimezoneTable; tp->name; tp++)
++ if (strcmp(buff, tp->name) == 0) {
++ yylval->Number = tp->value;
++ return tp->type;
++ }
++
++ for (i = 1; i <= 12; i++)
++ for (abbrev = 0; abbrev < 2; abbrev++)
++ if (PTimeIsMonthName(buff, i, abbrev)) {
++ yylval->Number = i;
++ return tMONTH;
++ }
++
++ for (i = 1; i <= 7; i++)
++ for (abbrev = 0; abbrev < 2; abbrev++)
++ if (PTimeIsDayName(buff, i, abbrev)) {
++ yylval->Number = i;
++ return tDAY;
++ }
++
++ return tID;
++}
++
++
++#ifdef _MSC_VER
++#pragma warning(disable:4211)
++#endif
++
++#ifndef __GNUC__
++static
++#endif
++int yylex(YYSTYPE * yylval, struct Variables * vars)
++{
++ register char *p;
++ char buff[20];
++ int Count;
++ int sign;
++ register int c = PTimeGetChar(vars->yyInput);
++
++ while (c != EOF && c != '\0' && c != '\n') {
++ while (isspace(c))
++ c = PTimeGetChar(vars->yyInput);
++
++ if (isdigit(c) || c == '-' || c == '+') {
++ if (c == '-' || c == '+') {
++ sign = c == '-' ? -1 : 1;
++ if (!isdigit(c = PTimeGetChar(vars->yyInput)))
++ /* skip the '-' sign */
++ continue;
++ }
++ else
++ sign = 0;
++ yylval->Number = 0;
++ Count = 0; /* Count number of digits */
++ while (isdigit(c)) {
++ yylval->Number = 10 * yylval->Number + c - '0';
++ c = PTimeGetChar(vars->yyInput);
++ Count++;
++ }
++ PTimeUngetChar(vars->yyInput, c);
++ if (sign < 0)
++ yylval->Number = -yylval->Number;
++ if (Count == 4)
++ return sign ? tS4DIGITNUMBER : t4DIGITNUMBER;
++ if (sign)
++ return tSNUMBER;
++ if (Count == 6)
++ return t6DIGITNUMBER;
++ if (Count == 8)
++ return t8DIGITNUMBER;
++ return tUNUMBER;
++ }
++
++ if (isalpha(c)) {
++ for (p = buff; isalpha(c) || c == '.'; c = PTimeGetChar(vars->yyInput)) {
++ if (p < &buff[sizeof(buff)-1])
++ *p++ = (char)c;
++ }
++ *p = '\0';
++ PTimeUngetChar(vars->yyInput, c);
++ return LookupWord(buff, yylval, vars);
++ }
++
++ if (c != '(')
++ return c;
++
++ Count = 0;
++ do {
++ c = PTimeGetChar(vars->yyInput);
++ if (c == '\0' || c == EOF)
++ return c;
++ if (c == '(')
++ Count++;
++ else if (c == ')')
++ Count--;
++ } while (Count > 0);
++ }
++
++ if (c == '\n')
++ PTimeUngetChar(vars->yyInput, c);
++
++ return EOF;
++}
++
++#ifdef _MSC_VER
++#pragma warning(default:4211)
++#endif
++
++
++static time_t ToSeconds(time_t Hours, time_t Minutes, time_t Seconds,
++ MERIDIAN Meridian)
++{
++ if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
++ return -1;
++ switch (Meridian) {
++ case MER24:
++ if (Hours < 0 || Hours > 23)
++ return -1;
++ return (Hours * 60L + Minutes) * 60L + Seconds;
++ case MERam:
++ if (Hours < 1 || Hours > 12)
++ return -1;
++ if (Hours == 12)
++ Hours = 0;
++ return (Hours * 60L + Minutes) * 60L + Seconds;
++ case MERpm:
++ if (Hours < 1 || Hours > 12)
++ return -1;
++ if (Hours == 12)
++ Hours = 0;
++ return ((Hours + 12) * 60L + Minutes) * 60L + Seconds;
++ }
++
++ return -1;
++}
++
++
++static time_t Convert(time_t Month, time_t Day, time_t Year,
++ time_t Hours, time_t Minutes, time_t Seconds,
++ MERIDIAN Meridian, DSTMODE DSTmode, time_t yyTimezone)
++{
++ static int DaysInMonth[12] = {
++ 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
++ };
++ time_t tod;
++ time_t Julian;
++ int i;
++
++ if (Year < 0)
++ Year = -Year;
++ if (Year < 70)
++ Year += 2000;
++ else if (Year < 100)
++ Year += 1900;
++ DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0)
++ ? 29 : 28;
++ /* Checking for 2038 bogusly assumes that time_t is 32 bits. But
++ I'm too lazy to try to check for time_t overflow in another way. */
++ if (Year < EPOCH || Year > 2038
++ || Month < 1 || Month > 12
++ /* Lint fluff: "conversion from long may lose accuracy" */
++ || Day < 1 || Day > DaysInMonth[(int)--Month])
++ return -1;
++
++ for (Julian = Day - 1, i = 0; i < Month; i++)
++ Julian += DaysInMonth[i];
++ for (i = EPOCH; i < Year; i++)
++ Julian += 365 + (i % 4 == 0);
++ Julian *= SECSPERDAY;
++ Julian += yyTimezone * 60L;
++ if ((tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) < 0)
++ return -1;
++ Julian += tod;
++ if (DSTmode == DSTon
++ || (DSTmode == DSTmaybe && localtime(&Julian)->tm_isdst))
++ Julian -= 60 * 60;
++ return Julian;
++}
++
++
++static time_t DSTcorrect(time_t Start, time_t Future)
++{
++ time_t StartDay;
++ time_t FutureDay;
++
++ StartDay = (localtime(&Start)->tm_hour + 1) % 24;
++ FutureDay = (localtime(&Future)->tm_hour + 1) % 24;
++ return (Future - Start) + (StartDay - FutureDay) * 60L * 60L;
++}
++
++
++static time_t RelativeDate(time_t Start, time_t DayOrdinal, time_t DayNumber)
++{
++ struct tm *tm;
++ time_t now;
++
++ now = Start;
++ tm = localtime(&now);
++ now += SECSPERDAY * ((DayNumber - tm->tm_wday + 7) % 7);
++ now += 7 * SECSPERDAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1);
++ return DSTcorrect(Start, now);
++}
++
++
++static time_t RelativeMonth(time_t Start, time_t RelMonth, time_t yyTimezone)
++{
++ struct tm *tm;
++ time_t Month;
++ time_t Year;
++
++ if (RelMonth == 0)
++ return 0;
++ tm = localtime(&Start);
++ Month = 12 * tm->tm_year + tm->tm_mon + RelMonth;
++ Year = Month / 12 + 1900;
++ Month = Month % 12 + 1;
++ return DSTcorrect(Start,
++ Convert(Month, (time_t)tm->tm_mday, Year,
++ (time_t)tm->tm_hour, (time_t)tm->tm_min, (time_t)tm->tm_sec,
++ MER24, DSTmaybe, yyTimezone));
++}
++
++
++static void SetPossibleDate(struct Variables * var,
++ time_t possible_day,
++ time_t possible_month,
++ time_t possible_year)
++{
++ int date_order;
++
++ if (possible_day > 31) /* test for ymd */
++ date_order = 2;
++ else if (possible_day > 12) /* test for dmy */
++ date_order = 1;
++ else if (possible_month > 12) /* test for mdy */
++ date_order = 0;
++ else
++ date_order = PTimeGetDateOrder();
++
++ switch (date_order) {
++ case 0 :
++ var->yyDay = possible_month;
++ var->yyMonth = possible_day;
++ var->yyYear = possible_year;
++ break;
++ case 1 :
++ var->yyDay = possible_day;
++ var->yyMonth = possible_month;
++ var->yyYear = possible_year;
++ break;
++ default :
++ var->yyDay = possible_year;
++ var->yyMonth = possible_month;
++ var->yyYear = possible_day;
++ }
++}
++
++
++time_t STDAPICALLTYPE PTimeParse(void * inputStream, struct tm * now, int timezone)
++{
++ time_t Start;
++ struct Variables var;
++
++
++ var.yyInput = inputStream;
++ var.yyYear = now->tm_year + 1900;
++ var.yyMonth = now->tm_mon + 1;
++ var.yyDay = now->tm_mday;
++ var.yyTimezone = -timezone;
++ var.yyDSTmode = DSTmaybe;
++ var.yyHour = 0;
++ var.yyMinutes = 0;
++ var.yySeconds = 0;
++ var.yyMeridian = MER24;
++ var.yyRelSeconds = 0;
++ var.yyRelMonth = 0;
++ var.yyHaveDate = 0;
++ var.yyHaveDay = 0;
++ var.yyHaveRel = 0;
++ var.yyHaveTime = 0;
++ var.yyHaveZone = 0;
++
++ yyparse(&var);
++
++ if (var.yyHaveTime > 1 || var.yyHaveZone > 1 ||
++ var.yyHaveDate > 1 || var.yyHaveDay > 1)
++ return -1;
++
++ if (var.yyHaveTime == 0 && var.yyHaveZone == 0 &&
++ var.yyHaveDate == 0 && var.yyHaveDay == 0 && var.yyHaveRel == 0)
++ return -1;
++
++ if (var.yyHaveDate || var.yyHaveTime || var.yyHaveDay) {
++ Start = Convert(var.yyMonth, var.yyDay, var.yyYear,
++ var.yyHour, var.yyMinutes, var.yySeconds,
++ var.yyMeridian, var.yyDSTmode, var.yyTimezone);
++ if (Start < 0)
++ return -1;
++ }
++ else {
++ time(&Start);
++ if (!var.yyHaveRel)
++ Start -= ((now->tm_hour * 60L + now->tm_min) * 60L) + now->tm_sec;
++ }
++
++ Start += var.yyRelSeconds;
++ Start += RelativeMonth(Start, var.yyRelMonth, var.yyTimezone);
++
++ if (var.yyHaveDay && !var.yyHaveDate)
++ Start += RelativeDate(Start, var.yyDayOrdinal, var.yyDayNumber);
++
++ /* Have to do *something* with a legitimate -1 so it's distinguishable
++ * from the error return value. (Alternately could set errno on error.) */
++ return Start == -1 ? 0 : Start;
++}
++
++
++#ifdef _MSC_VER
++#pragma warning(disable:4028 4100 4211)
++#endif
++
++#ifdef __GNUC__
++int yyerror(const char * s)
++{
++ return 0;
++}
++#else
++static void yyerror(const char * s)
++{
++}
++#endif
++
++#ifdef _MSC_VER
++#pragma warning(default:4028 4100 4211)
++#endif
++
++
++/* End of file ***************************************************************/
+diff -Naur ptlib-2.10.11.orig/src/ptlib/unix/svcproc.cxx ptlib-2.10.11/src/ptlib/unix/svcproc.cxx
+--- ptlib-2.10.11.orig/src/ptlib/unix/svcproc.cxx 2013-08-14 18:20:26.000000000 -0500
++++ ptlib-2.10.11/src/ptlib/unix/svcproc.cxx 2016-05-04 19:42:20.526529457 -0500
+@@ -217,7 +217,7 @@
+ pid_t pid;
+
+ {
+- ifstream pidfile(pidfilename);
++ ifstream pidfile((std::string&)pidfilename);
+ if (!pidfile.is_open()) {
+ cout << "Could not open pid file: \"" << pidfilename << "\""
+ " - " << strerror(errno) << endl;
+@@ -384,7 +384,7 @@
+ // Run as a daemon, ie fork
+
+ if (!pidfilename) {
+- ifstream pidfile(pidfilename);
++ ifstream pidfile((std::string&)pidfilename);
+ if (pidfile.is_open()) {
+ pid_t pid;
+ pidfile >> pid;
+@@ -412,7 +412,7 @@
+ cout << "Daemon started with pid " << pid << endl;
+ if (!pidfilename) {
+ // Write out the child pid to magic file in /var/run (at least for linux)
+- ofstream pidfile(pidfilename);
++ ofstream pidfile((std::string&)pidfilename);
+ if (pidfile.is_open())
+ pidfile << pid;
+ else
diff --git a/libraries/ptlib/ptlib.SlackBuild b/libraries/ptlib/ptlib.SlackBuild
index d2c42bd774..db6471b7c8 100644
--- a/libraries/ptlib/ptlib.SlackBuild
+++ b/libraries/ptlib/ptlib.SlackBuild
@@ -68,8 +68,7 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Fix building with bison-3.0.4
-# thanks to Dan Fandrich / OpalVOIP https://sourceforge.net/p/opalvoip/patches/259/
-patch -p1 < $CWD/ptlib-2.10.10-mga-bison-parameter.patch
+patch -p1 < $CWD/ptlib-2.10.11-bison_fixes-2.patch
# Disable SSLv3
patch -p1 < $CWD/ssl3.patch
diff --git a/libraries/python3-PyQt5/python3-PyQt5.SlackBuild b/libraries/python3-PyQt5/python3-PyQt5.SlackBuild
index 759fbffc7b..c35cca54d4 100644
--- a/libraries/python3-PyQt5/python3-PyQt5.SlackBuild
+++ b/libraries/python3-PyQt5/python3-PyQt5.SlackBuild
@@ -93,8 +93,8 @@ python3 configure.py \
--confirm-license \
--verbose \
-q /usr/bin/qmake-qt5 \
- --sip=/usr/bin/python3-sip \
- --sip-incdir=/usr/include/python$PYTHONVER
+ --sip=/usr/bin/sip3 \
+ --sip-incdir=/usr/include/python${PYTHONVER}m
make
make install DESTDIR=$PKG INSTALL_ROOT=$PKG
diff --git a/libraries/python3-pillow/README b/libraries/python3-pillow/README
deleted file mode 100644
index 8bd903c6d8..0000000000
--- a/libraries/python3-pillow/README
+++ /dev/null
@@ -1,8 +0,0 @@
-The Python Imaging Library (PIL) adds image processing capabilities to
-your Python environment. This library provides extensive file format
-support, an efficient internal representation and powerful image
-processing capabilities.
-
-NOTE - This SlackBuild provides PIL libraries with support for Python3. It
-is intended to be a complement to Slackware's default python-pillow, not to
-replace it, hence it doesn't include the scripts that would go to /usr/bin.
diff --git a/libraries/python3-pillow/python3-pillow.SlackBuild b/libraries/python3-pillow/python3-pillow.SlackBuild
deleted file mode 100644
index fca5f71d14..0000000000
--- a/libraries/python3-pillow/python3-pillow.SlackBuild
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for python3-pillow
-
-# Copyright 2015-2017 Philip Lacroix <slackph at posteo dot de>
-#
-# Based on build script for python-pillow by following authors:
-# Copyright 2009, 2010, 2013, 2014 Patrick J. Volkerding, Sebeka, MN, USA
-# Copyright 2014 Heinz Wiesinger, Amsterdam, The Netherlands
-# Copyright 2015 Brenton Earl <brent at exitstatusone dot com>
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
-
-PRGNAM=python3-pillow
-SRCNAM=Pillow
-VERSION=${VERSION:-3.0.0}
-BUILD=${BUILD:-2}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $SRCNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
-
-cd $SRCNAM-$VERSION
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
-# Do not install scripts that would go to /usr/bin, as they
-# are already part of python-pillow.
-sed -i -e "s~.*scripts=glob.glob(\"Scripts/\*.py\"),~~" setup.py
-
-python3 setup.py install --root=$PKG
-
-# Safety check to prevent changes in the install process of a
-# different version of Pillow that might allow files in /usr/bin.
-if [ -e $PKG/usr/bin ]; then
- echo -e "\n* Warning - This package is not allowed to put files in /usr/bin,"
- echo "* as they conflict with Slackware's default python-pillow. Exiting."
- exit 1
-fi
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-PRGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
-
-# Install documentation.
-mkdir -p $PRGDOC
-cat $CWD/README > $PRGDOC/README
-cat $CWD/$PRGNAM.SlackBuild > $PRGDOC/$PRGNAM.SlackBuild
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/libraries/python3-pillow/python3-pillow.info b/libraries/python3-pillow/python3-pillow.info
deleted file mode 100644
index 77117beb48..0000000000
--- a/libraries/python3-pillow/python3-pillow.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="python3-pillow"
-VERSION="3.0.0"
-HOMEPAGE="http://python-pillow.github.io/"
-DOWNLOAD="https://pypi.python.org/packages/source/P/Pillow/Pillow-3.0.0.tar.gz"
-MD5SUM="fc8ac44e93da09678eac7e30c9b7377d"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="python3 %README%"
-MAINTAINER="Philip Lacroix"
-EMAIL="slackph at posteo dot de"
diff --git a/libraries/python3-pillow/slack-desc b/libraries/python3-pillow/slack-desc
deleted file mode 100644
index 446cde956c..0000000000
--- a/libraries/python3-pillow/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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 ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-python3-pillow: python3-pillow (Python3 support for python-pillow)
-python3-pillow:
-python3-pillow: The Python Imaging Library (PIL) adds image processing capabilities
-python3-pillow: to your Python environment. This library provides extensive file
-python3-pillow: format support, an efficient internal representation and powerful
-python3-pillow: image processing capabilities.
-python3-pillow:
-python3-pillow: This package provides the PIL libraries with support for Python3. It
-python3-pillow: is intended to be a complement to python-pillow, not to replace it.
-python3-pillow:
-python3-pillow: Homepage: https://python3-pillow.github.io/
diff --git a/libraries/qt5-webkit/qt5-webkit.SlackBuild b/libraries/qt5-webkit/qt5-webkit.SlackBuild
index 5dc15c76bd..d3b2bf4027 100644
--- a/libraries/qt5-webkit/qt5-webkit.SlackBuild
+++ b/libraries/qt5-webkit/qt5-webkit.SlackBuild
@@ -28,7 +28,7 @@
PRGNAM=qt5-webkit
SRCNAM=qtwebkit-opensource-src
-VERSION=${VERSION:-5.9.0}
+VERSION=${VERSION:-5.9.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -88,7 +88,7 @@ if [ -d include ]; then
syncqt.pl -version $VERSION Source/sync.profile
fi
-qmake-qt5 PREFIX="/usr" QMAKE_CFLAGS+="$SLKCFLAGS" QMAKE_CXXFLAGS+="$SLKCFLAGS" \
+qmake-qt5 PREFIX="/usr" QMAKE_CFLAGS+="$SLKCFLAGS" QMAKE_CXXFLAGS+="$SLKCFLAGS -fpermissive" \
-o Makefile WebKit.pro
make
diff --git a/libraries/qt5-webkit/qt5-webkit.info b/libraries/qt5-webkit/qt5-webkit.info
index de2d8ee75f..f3d784f00e 100644
--- a/libraries/qt5-webkit/qt5-webkit.info
+++ b/libraries/qt5-webkit/qt5-webkit.info
@@ -1,8 +1,8 @@
PRGNAM="qt5-webkit"
-VERSION="5.9.0"
+VERSION="5.9.1"
HOMEPAGE="https://www.qt.io"
-DOWNLOAD="https://download.qt.io/community_releases/5.9/5.9.0-final/qtwebkit-opensource-src-5.9.0.tar.xz"
-MD5SUM="1fc0ed873cc9326b823a8a83126714f5"
+DOWNLOAD="http://download.qt.io/archive/qt/5.9/5.9.1/submodules/qtwebkit-opensource-src-5.9.1.tar.xz"
+MD5SUM="c7a5eb579c2476ff54f8cff2111b0910"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="qt5"
diff --git a/libraries/qt5/patches/0001-QSslSocket-OpenSSL-1.1-backend.patch b/libraries/qt5/patches/0001-QSslSocket-OpenSSL-1.1-backend.patch
new file mode 100644
index 0000000000..a06395db37
--- /dev/null
+++ b/libraries/qt5/patches/0001-QSslSocket-OpenSSL-1.1-backend.patch
@@ -0,0 +1,4238 @@
+From c181441ae0ab7ebc0bfa846eb46060ce12bd2112 Mon Sep 17 00:00:00 2001
+From: "Richard J. Moore" <rich@kde.org>
+Date: Thu, 23 Mar 2017 12:43:22 +0100
+Subject: [PATCH] QSslSocket: OpenSSL 1.1 backend
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch-set implements a new QSslSocket backend based on OpenSSL 1.1.
+
+1. General.
+
+The code in this patch was organized to achieve these (somewhat contradicting)
+objectives:
+- keep the new code free of #if-ery, as far as possible;
+- make it easy to clean away dead code when we're eventually able to retire
+ out-dated OpenSSL versions;
+- reduce the amount of code duplication.
+
+If changes in some file/component were insignificant (~5 one-liners per file),
+we still use pp-checks like: #if QT_CONFIG(opensslv11) ... #else ... #endif -
+the logic is simple and it's still easy to clean the code if we remove the legacy
+back-end. Where it saved #if-ery, we also introduced 'forward-compatible'
+macros implementing equivalents of 1.1 functions using older OpenSSL.
+
+In case some class contains a lot of version-specific ifdefs (particularly where
+nested #if-ery was complex) we choose to split code into: "pre11" h/cpp files,
+"shared" h/cpp files (they preserve their original names, e.g qsslsocket_openssl.cpp)
+and "11" h/cpp files. If in future we remove the legacy back-end, "pre11" should be
+removed; "shared" and "11" parts - merged.
+
+2. Configuration.
+
+We introduced a new feature 'opensslv11' which complements the pre-existing
+'openssl' and 'openssl-linked' features. The 'opensslv11' feature is enabled
+by a simple test which either compiles successfully or ends in a compilation
+error, depending on a value of the OPENSSL_VERSION_NUMBER constant. If the
+feature was enabled, we also append an additional compilation flag
+-DOPENSSL_API_COMPAT=0x10100000L to make sure our new code does not contain
+deprecated structures, function calls, macro-invocations from OpenSSL < 1.1.
+
+Change-Id: I2064efbe9685def5d2bb2233a66f7581954fb74a
+Reviewed-by: André Klitzing <aklitzing@gmail.com>
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ config.tests/unix/openssl11/openssl.cpp | 48 +++
+ config.tests/unix/openssl11/openssl.pro | 2 +
+ src/network/configure.json | 11 +
+ src/network/ssl/qsslcertificate_openssl.cpp | 57 +--
+ src/network/ssl/qsslcontext_openssl.cpp | 309 +-------------
+ src/network/ssl/qsslcontext_openssl11.cpp | 277 ++++++++++++
+ src/network/ssl/qsslcontext_opensslpre11.cpp | 354 ++++++++++++++++
+ .../ssl/qssldiffiehellmanparameters_openssl.cpp | 38 +-
+ src/network/ssl/qsslellipticcurve.h | 1 +
+ src/network/ssl/qsslellipticcurve_openssl.cpp | 8 +-
+ src/network/ssl/qsslkey_openssl.cpp | 79 ++--
+ src/network/ssl/qsslsocket_openssl.cpp | 368 ++--------------
+ src/network/ssl/qsslsocket_openssl11.cpp | 285 +++++++++++++
+ src/network/ssl/qsslsocket_openssl11_symbols_p.h | 132 ++++++
+ src/network/ssl/qsslsocket_openssl_p.h | 8 +-
+ src/network/ssl/qsslsocket_openssl_symbols.cpp | 471 ++++++++++++++-------
+ src/network/ssl/qsslsocket_openssl_symbols_p.h | 117 +----
+ src/network/ssl/qsslsocket_opensslpre11.cpp | 424 +++++++++++++++++++
+ .../ssl/qsslsocket_opensslpre11_symbols_p.h | 230 ++++++++++
+ src/network/ssl/ssl.pri | 18 +-
+ 20 files changed, 2280 insertions(+), 957 deletions(-)
+ create mode 100644 config.tests/unix/openssl11/openssl.cpp
+ create mode 100644 config.tests/unix/openssl11/openssl.pro
+ create mode 100644 src/network/ssl/qsslcontext_openssl11.cpp
+ create mode 100644 src/network/ssl/qsslcontext_opensslpre11.cpp
+ create mode 100644 src/network/ssl/qsslsocket_openssl11.cpp
+ create mode 100644 src/network/ssl/qsslsocket_openssl11_symbols_p.h
+ create mode 100644 src/network/ssl/qsslsocket_opensslpre11.cpp
+ create mode 100644 src/network/ssl/qsslsocket_opensslpre11_symbols_p.h
+
+Index: qtbase-opensource-src-5.9.2/config.tests/unix/openssl11/openssl.cpp
+===================================================================
+--- /dev/null
++++ qtbase-opensource-src-5.9.2/config.tests/unix/openssl11/openssl.cpp
+@@ -0,0 +1,48 @@
++/****************************************************************************
++**
++** Copyright (C) 2017 The Qt Company Ltd.
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the config.tests of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see https://www.qt.io/terms-conditions. For further
++** information use the contact form at https://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 3 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL3 included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 3 requirements
++** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 2.0 or (at your option) the GNU General
++** Public license version 3 or any later version approved by the KDE Free
++** Qt Foundation. The licenses are as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
++** included in the packaging of this file. Please review the following
++** information to ensure the GNU General Public License requirements will
++** be met: https://www.gnu.org/licenses/gpl-2.0.html and
++** https://www.gnu.org/licenses/gpl-3.0.html.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++#include <openssl/opensslv.h>
++
++#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10100000L
++# error "OpenSSL >= 1.1 is required"
++#endif
++
++int main()
++{
++}
+Index: qtbase-opensource-src-5.9.2/config.tests/unix/openssl11/openssl.pro
+===================================================================
+--- /dev/null
++++ qtbase-opensource-src-5.9.2/config.tests/unix/openssl11/openssl.pro
+@@ -0,0 +1,2 @@
++SOURCES = openssl.cpp
++CONFIG -= x11 qt
+Index: qtbase-opensource-src-5.9.2/src/network/configure.json
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/configure.json
++++ qtbase-opensource-src-5.9.2/src/network/configure.json
+@@ -154,6 +154,12 @@
+ ]
+ },
+ "use": "network"
++ },
++ "openssl11": {
++ "label": "OpenSSL v. 1.1 support",
++ "type": "compile",
++ "test": "unix/openssl11",
++ "use": "network"
+ }
+ },
+
+@@ -221,6 +227,11 @@
+ "condition": "config.winrt || features.securetransport || features.openssl",
+ "output": [ "publicFeature", "feature" ]
+ },
++ "opensslv11": {
++ "label": "OpenSSL v. 1.1",
++ "condition": "tests.openssl11",
++ "output": ["publicFeature", "feature"]
++ },
+ "sctp": {
+ "label": "SCTP",
+ "autoDetect": false,
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslcertificate_openssl.cpp
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslcertificate_openssl.cpp
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslcertificate_openssl.cpp
+@@ -1,6 +1,7 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2016 The Qt Company Ltd.
++** Copyright (C) 2017 The Qt Company Ltd.
++** Copyright (C) 2016 Richard J. Moore <rich@kde.org>
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the QtNetwork module of the Qt Toolkit.
+@@ -64,12 +65,14 @@ bool QSslCertificate::operator==(const Q
+ uint qHash(const QSslCertificate &key, uint seed) Q_DECL_NOTHROW
+ {
+ if (X509 * const x509 = key.d->x509) {
+- (void)q_X509_cmp(x509, x509); // populate x509->sha1_hash
+- // (if someone knows a better way...)
+- return qHashBits(x509->sha1_hash, SHA_DIGEST_LENGTH, seed);
+- } else {
+- return seed;
++ const EVP_MD *sha1 = q_EVP_sha1();
++ unsigned int len = 0;
++ unsigned char md[EVP_MAX_MD_SIZE];
++ q_X509_digest(x509, sha1, md, &len);
++ return qHashBits(md, len, seed);
+ }
++
++ return seed;
+ }
+
+ bool QSslCertificate::isNull() const
+@@ -89,8 +92,7 @@ QByteArray QSslCertificate::version() co
+ {
+ QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
+ if (d->versionString.isEmpty() && d->x509)
+- d->versionString =
+- QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1);
++ d->versionString = QByteArray::number(qlonglong(q_X509_get_version(d->x509)) + 1);
+
+ return d->versionString;
+ }
+@@ -99,7 +101,7 @@ QByteArray QSslCertificate::serialNumber
+ {
+ QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
+ if (d->serialNumberString.isEmpty() && d->x509) {
+- ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber;
++ ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509);
+ QByteArray hexString;
+ hexString.reserve(serialNumber->length * 3);
+ for (int a = 0; a < serialNumber->length; ++a) {
+@@ -199,14 +201,15 @@ QMultiMap<QSsl::AlternativeNameEntryType
+ continue;
+ }
+
+- const char *altNameStr = reinterpret_cast<const char *>(q_ASN1_STRING_data(genName->d.ia5));
++ const char *altNameStr = reinterpret_cast<const char *>(q_ASN1_STRING_get0_data(genName->d.ia5));
+ const QString altName = QString::fromLatin1(altNameStr, len);
+ if (genName->type == GEN_DNS)
+ result.insert(QSsl::DnsEntry, altName);
+ else if (genName->type == GEN_EMAIL)
+ result.insert(QSsl::EmailEntry, altName);
+ }
+- q_sk_pop_free((STACK*)altNames, reinterpret_cast<void(*)(void*)>(q_sk_free));
++
++ q_OPENSSL_sk_pop_free((OPENSSL_STACK*)altNames, reinterpret_cast<void(*)(void*)>(q_OPENSSL_sk_free));
+ }
+
+ return result;
+@@ -235,25 +238,26 @@ QSslKey QSslCertificate::publicKey() con
+ QSslKey key;
+
+ key.d->type = QSsl::PublicKey;
+- X509_PUBKEY *xkey = d->x509->cert_info->key;
+- EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey);
++
++ EVP_PKEY *pkey = q_X509_get_pubkey(d->x509);
+ Q_ASSERT(pkey);
++ const int keyType = q_EVP_PKEY_type(q_EVP_PKEY_base_id(pkey));
+
+- if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) {
++ if (keyType == EVP_PKEY_RSA) {
+ key.d->rsa = q_EVP_PKEY_get1_RSA(pkey);
+ key.d->algorithm = QSsl::Rsa;
+ key.d->isNull = false;
+- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) {
++ } else if (keyType == EVP_PKEY_DSA) {
+ key.d->dsa = q_EVP_PKEY_get1_DSA(pkey);
+ key.d->algorithm = QSsl::Dsa;
+ key.d->isNull = false;
+ #ifndef OPENSSL_NO_EC
+- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_EC) {
++ } else if (keyType == EVP_PKEY_EC) {
+ key.d->ec = q_EVP_PKEY_get1_EC_KEY(pkey);
+ key.d->algorithm = QSsl::Ec;
+ key.d->isNull = false;
+ #endif
+- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {
++ } else if (keyType == EVP_PKEY_DH) {
+ // DH unsupported
+ } else {
+ // error?
+@@ -275,7 +279,7 @@ static QVariant x509UnknownExtensionToVa
+ X509V3_EXT_METHOD *meth = const_cast<X509V3_EXT_METHOD *>(q_X509V3_EXT_get(ext));
+ if (!meth) {
+ ASN1_OCTET_STRING *value = q_X509_EXTENSION_get_data(ext);
+- QByteArray result( reinterpret_cast<const char *>(q_ASN1_STRING_data(value)),
++ QByteArray result( reinterpret_cast<const char *>(q_ASN1_STRING_get0_data(value)),
+ q_ASN1_STRING_length(value));
+ return result;
+ }
+@@ -371,7 +375,7 @@ static QVariant x509ExtensionToValue(X50
+ continue;
+ }
+
+- const char *uriStr = reinterpret_cast<const char *>(q_ASN1_STRING_data(name->d.uniformResourceIdentifier));
++ const char *uriStr = reinterpret_cast<const char *>(q_ASN1_STRING_get0_data(name->d.uniformResourceIdentifier));
+ const QString uri = QString::fromUtf8(uriStr, len);
+
+ result[QString::fromUtf8(QSslCertificatePrivate::asn1ObjectName(ad->method))] = uri;
+@@ -380,11 +384,7 @@ static QVariant x509ExtensionToValue(X50
+ }
+ }
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+- q_sk_pop_free((_STACK*)info, reinterpret_cast<void(*)(void*)>(q_sk_free));
+-#else
+- q_sk_pop_free((STACK*)info, reinterpret_cast<void(*)(void*)>(q_sk_free));
+-#endif
++ q_OPENSSL_sk_pop_free((OPENSSL_STACK*)info, reinterpret_cast<void(*)(void *)>(q_OPENSSL_sk_free));
+ return result;
+ }
+ break;
+@@ -607,7 +607,11 @@ static QMap<QByteArray, QString> _q_mapF
+ unsigned char *data = 0;
+ int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
+ info.insertMulti(name, QString::fromUtf8((char*)data, size));
++#if QT_CONFIG(opensslv11)
++ q_CRYPTO_free(data, 0, 0);
++#else
+ q_CRYPTO_free(data);
++#endif
+ }
+
+ return info;
+@@ -619,8 +623,9 @@ QSslCertificate QSslCertificatePrivate::
+ if (!x509 || !QSslSocket::supportsSsl())
+ return certificate;
+
+- ASN1_TIME *nbef = q_X509_get_notBefore(x509);
+- ASN1_TIME *naft = q_X509_get_notAfter(x509);
++ ASN1_TIME *nbef = q_X509_getm_notBefore(x509);
++ ASN1_TIME *naft = q_X509_getm_notAfter(x509);
++
+ certificate.d->notValidBefore = q_getTimeFromASN1(nbef);
+ certificate.d->notValidAfter = q_getTimeFromASN1(naft);
+ certificate.d->null = false;
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslcontext_openssl.cpp
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslcontext_openssl.cpp
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslcontext_openssl.cpp
+@@ -1,6 +1,6 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2016 The Qt Company Ltd.
++** Copyright (C) 2017 The Qt Company Ltd.
+ ** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+ ** Copyright (C) 2014 Governikus GmbH & Co. KG.
+ ** Contact: https://www.qt.io/licensing/
+@@ -41,22 +41,14 @@
+
+
+ #include <QtNetwork/qsslsocket.h>
+-#include <QtNetwork/qssldiffiehellmanparameters.h>
+-#include <QtCore/qmutex.h>
+
+ #include "private/qssl_p.h"
+ #include "private/qsslcontext_openssl_p.h"
+-#include "private/qsslsocket_p.h"
+ #include "private/qsslsocket_openssl_p.h"
+ #include "private/qsslsocket_openssl_symbols_p.h"
+-#include "private/qssldiffiehellmanparameters_p.h"
+
+ QT_BEGIN_NAMESPACE
+
+-// defined in qsslsocket_openssl.cpp:
+-extern int q_X509Callback(int ok, X509_STORE_CTX *ctx);
+-extern QString getErrorsFromOpenSsl();
+-
+ QSslContext::QSslContext()
+ : ctx(0),
+ pkey(0),
+@@ -78,301 +70,6 @@ QSslContext::~QSslContext()
+ q_SSL_SESSION_free(session);
+ }
+
+-static inline QString msgErrorSettingEllipticCurves(const QString &why)
+-{
+- return QSslSocket::tr("Error when setting the elliptic curves (%1)").arg(why);
+-}
+-
+-// static
+-void QSslContext::initSslContext(QSslContext *sslContext, QSslSocket::SslMode mode, const QSslConfiguration &configuration, bool allowRootCertOnDemandLoading)
+-{
+- sslContext->sslConfiguration = configuration;
+- sslContext->errorCode = QSslError::NoError;
+-
+- bool client = (mode == QSslSocket::SslClientMode);
+-
+- bool reinitialized = false;
+- bool unsupportedProtocol = false;
+-init_context:
+- switch (sslContext->sslConfiguration.protocol()) {
+- case QSsl::SslV2:
+-#ifndef OPENSSL_NO_SSL2
+- sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv2_client_method() : q_SSLv2_server_method());
+-#else
+- // SSL 2 not supported by the system, but chosen deliberately -> error
+- sslContext->ctx = 0;
+- unsupportedProtocol = true;
+-#endif
+- break;
+- case QSsl::SslV3:
+-#ifndef OPENSSL_NO_SSL3_METHOD
+- sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method());
+-#else
+- // SSL 3 not supported by the system, but chosen deliberately -> error
+- sslContext->ctx = 0;
+- unsupportedProtocol = true;
+-#endif
+- break;
+- case QSsl::SecureProtocols:
+- // SSLv2 and SSLv3 will be disabled by SSL options
+- // But we need q_SSLv23_server_method() otherwise AnyProtocol will be unable to connect on Win32.
+- case QSsl::TlsV1SslV3:
+- // SSLv2 will will be disabled by SSL options
+- case QSsl::AnyProtocol:
+- default:
+- sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method());
+- break;
+- case QSsl::TlsV1_0:
+- sslContext->ctx = q_SSL_CTX_new(client ? q_TLSv1_client_method() : q_TLSv1_server_method());
+- break;
+- case QSsl::TlsV1_1:
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+- sslContext->ctx = q_SSL_CTX_new(client ? q_TLSv1_1_client_method() : q_TLSv1_1_server_method());
+-#else
+- // TLS 1.1 not supported by the system, but chosen deliberately -> error
+- sslContext->ctx = 0;
+- unsupportedProtocol = true;
+-#endif
+- break;
+- case QSsl::TlsV1_2:
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+- sslContext->ctx = q_SSL_CTX_new(client ? q_TLSv1_2_client_method() : q_TLSv1_2_server_method());
+-#else
+- // TLS 1.2 not supported by the system, but chosen deliberately -> error
+- sslContext->ctx = 0;
+- unsupportedProtocol = true;
+-#endif
+- break;
+- case QSsl::TlsV1_0OrLater:
+- // Specific protocols will be specified via SSL options.
+- sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method());
+- break;
+- case QSsl::TlsV1_1OrLater:
+- case QSsl::TlsV1_2OrLater:
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+- // Specific protocols will be specified via SSL options.
+- sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method());
+-#else
+- // TLS 1.1/1.2 not supported by the system, but chosen deliberately -> error
+- sslContext->ctx = 0;
+- unsupportedProtocol = true;
+-#endif
+- break;
+- }
+-
+- if (!sslContext->ctx) {
+- // After stopping Flash 10 the SSL library looses its ciphers. Try re-adding them
+- // by re-initializing the library.
+- if (!reinitialized) {
+- reinitialized = true;
+- if (q_SSL_library_init() == 1)
+- goto init_context;
+- }
+-
+- sslContext->errorStr = QSslSocket::tr("Error creating SSL context (%1)").arg(
+- unsupportedProtocol ? QSslSocket::tr("unsupported protocol") : QSslSocketBackendPrivate::getErrorsFromOpenSsl()
+- );
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- return;
+- }
+-
+- // Enable bug workarounds.
+- long options = QSslSocketBackendPrivate::setupOpenSslOptions(configuration.protocol(), configuration.d->sslOptions);
+- q_SSL_CTX_set_options(sslContext->ctx, options);
+-
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+- // Tell OpenSSL to release memory early
+- // http://www.openssl.org/docs/ssl/SSL_CTX_set_mode.html
+- if (q_SSLeay() >= 0x10000000L)
+- q_SSL_CTX_set_mode(sslContext->ctx, SSL_MODE_RELEASE_BUFFERS);
+-#endif
+-
+- // Initialize ciphers
+- QByteArray cipherString;
+- bool first = true;
+- QList<QSslCipher> ciphers = sslContext->sslConfiguration.ciphers();
+- if (ciphers.isEmpty())
+- ciphers = QSslSocketPrivate::defaultCiphers();
+- for (const QSslCipher &cipher : qAsConst(ciphers)) {
+- if (first)
+- first = false;
+- else
+- cipherString.append(':');
+- cipherString.append(cipher.name().toLatin1());
+- }
+-
+- if (!q_SSL_CTX_set_cipher_list(sslContext->ctx, cipherString.data())) {
+- sslContext->errorStr = QSslSocket::tr("Invalid or empty cipher list (%1)").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- return;
+- }
+-
+- const QDateTime now = QDateTime::currentDateTimeUtc();
+-
+- // Add all our CAs to this store.
+- const auto caCertificates = sslContext->sslConfiguration.caCertificates();
+- for (const QSslCertificate &caCertificate : caCertificates) {
+- // From https://www.openssl.org/docs/ssl/SSL_CTX_load_verify_locations.html:
+- //
+- // If several CA certificates matching the name, key identifier, and
+- // serial number condition are available, only the first one will be
+- // examined. This may lead to unexpected results if the same CA
+- // certificate is available with different expiration dates. If a
+- // ``certificate expired'' verification error occurs, no other
+- // certificate will be searched. Make sure to not have expired
+- // certificates mixed with valid ones.
+- //
+- // See also: QSslSocketBackendPrivate::verify()
+- if (caCertificate.expiryDate() >= now) {
+- q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(sslContext->ctx), (X509 *)caCertificate.handle());
+- }
+- }
+-
+- if (QSslSocketPrivate::s_loadRootCertsOnDemand && allowRootCertOnDemandLoading) {
+- // tell OpenSSL the directories where to look up the root certs on demand
+- const QList<QByteArray> unixDirs = QSslSocketPrivate::unixRootCertDirectories();
+- for (const QByteArray &unixDir : unixDirs)
+- q_SSL_CTX_load_verify_locations(sslContext->ctx, 0, unixDir.constData());
+- }
+-
+- if (!sslContext->sslConfiguration.localCertificate().isNull()) {
+- // Require a private key as well.
+- if (sslContext->sslConfiguration.privateKey().isNull()) {
+- sslContext->errorStr = QSslSocket::tr("Cannot provide a certificate with no key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- return;
+- }
+-
+- // Load certificate
+- if (!q_SSL_CTX_use_certificate(sslContext->ctx, (X509 *)sslContext->sslConfiguration.localCertificate().handle())) {
+- sslContext->errorStr = QSslSocket::tr("Error loading local certificate, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- return;
+- }
+-
+- if (configuration.d->privateKey.algorithm() == QSsl::Opaque) {
+- sslContext->pkey = reinterpret_cast<EVP_PKEY *>(configuration.d->privateKey.handle());
+- } else {
+- // Load private key
+- sslContext->pkey = q_EVP_PKEY_new();
+- // before we were using EVP_PKEY_assign_R* functions and did not use EVP_PKEY_free.
+- // this lead to a memory leak. Now we use the *_set1_* functions which do not
+- // take ownership of the RSA/DSA key instance because the QSslKey already has ownership.
+- if (configuration.d->privateKey.algorithm() == QSsl::Rsa)
+- q_EVP_PKEY_set1_RSA(sslContext->pkey, reinterpret_cast<RSA *>(configuration.d->privateKey.handle()));
+- else if (configuration.d->privateKey.algorithm() == QSsl::Dsa)
+- q_EVP_PKEY_set1_DSA(sslContext->pkey, reinterpret_cast<DSA *>(configuration.d->privateKey.handle()));
+-#ifndef OPENSSL_NO_EC
+- else if (configuration.d->privateKey.algorithm() == QSsl::Ec)
+- q_EVP_PKEY_set1_EC_KEY(sslContext->pkey, reinterpret_cast<EC_KEY *>(configuration.d->privateKey.handle()));
+-#endif
+- }
+-
+- if (!q_SSL_CTX_use_PrivateKey(sslContext->ctx, sslContext->pkey)) {
+- sslContext->errorStr = QSslSocket::tr("Error loading private key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- return;
+- }
+- if (configuration.d->privateKey.algorithm() == QSsl::Opaque)
+- sslContext->pkey = 0; // Don't free the private key, it belongs to QSslKey
+-
+- // Check if the certificate matches the private key.
+- if (!q_SSL_CTX_check_private_key(sslContext->ctx)) {
+- sslContext->errorStr = QSslSocket::tr("Private key does not certify public key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- return;
+- }
+-
+- // If we have any intermediate certificates then we need to add them to our chain
+- bool first = true;
+- for (const QSslCertificate &cert : qAsConst(configuration.d->localCertificateChain)) {
+- if (first) {
+- first = false;
+- continue;
+- }
+- q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_EXTRA_CHAIN_CERT, 0,
+- q_X509_dup(reinterpret_cast<X509 *>(cert.handle())));
+- }
+- }
+-
+- // Initialize peer verification.
+- if (sslContext->sslConfiguration.peerVerifyMode() == QSslSocket::VerifyNone) {
+- q_SSL_CTX_set_verify(sslContext->ctx, SSL_VERIFY_NONE, 0);
+- } else {
+- q_SSL_CTX_set_verify(sslContext->ctx, SSL_VERIFY_PEER, q_X509Callback);
+- }
+-
+- // Set verification depth.
+- if (sslContext->sslConfiguration.peerVerifyDepth() != 0)
+- q_SSL_CTX_set_verify_depth(sslContext->ctx, sslContext->sslConfiguration.peerVerifyDepth());
+-
+- // set persisted session if the user set it
+- if (!configuration.sessionTicket().isEmpty())
+- sslContext->setSessionASN1(configuration.sessionTicket());
+-
+- // Set temp DH params
+- QSslDiffieHellmanParameters dhparams = configuration.diffieHellmanParameters();
+-
+- if (!dhparams.isValid()) {
+- sslContext->errorStr = QSslSocket::tr("Diffie-Hellman parameters are not valid");
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- return;
+- }
+-
+- if (!dhparams.isEmpty()) {
+- const QByteArray &params = dhparams.d->derData;
+- const char *ptr = params.constData();
+- DH *dh = q_d2i_DHparams(NULL, reinterpret_cast<const unsigned char **>(&ptr), params.length());
+- if (dh == NULL)
+- qFatal("q_d2i_DHparams failed to convert QSslDiffieHellmanParameters to DER form");
+- q_SSL_CTX_set_tmp_dh(sslContext->ctx, dh);
+- q_DH_free(dh);
+- }
+-
+-#ifndef OPENSSL_NO_EC
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+- if (q_SSLeay() >= 0x10002000L) {
+- q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_SET_ECDH_AUTO, 1, NULL);
+- } else
+-#endif
+- {
+- // Set temp ECDH params
+- EC_KEY *ecdh = 0;
+- ecdh = q_EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
+- q_SSL_CTX_set_tmp_ecdh(sslContext->ctx, ecdh);
+- q_EC_KEY_free(ecdh);
+- }
+-#endif // OPENSSL_NO_EC
+-
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_PSK)
+- if (!client)
+- q_SSL_CTX_use_psk_identity_hint(sslContext->ctx, sslContext->sslConfiguration.preSharedKeyIdentityHint().constData());
+-#endif // OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_PSK)
+-
+- const QVector<QSslEllipticCurve> qcurves = sslContext->sslConfiguration.ellipticCurves();
+- if (!qcurves.isEmpty()) {
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
+- // Set the curves to be used
+- if (q_SSLeay() >= 0x10002000L) {
+- // SSL_CTX_ctrl wants a non-const pointer as last argument,
+- // but let's avoid a copy into a temporary array
+- if (!q_SSL_CTX_ctrl(sslContext->ctx,
+- SSL_CTRL_SET_CURVES,
+- qcurves.size(),
+- const_cast<int *>(reinterpret_cast<const int *>(qcurves.data())))) {
+- sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- }
+- } else
+-#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
+- {
+- // specific curves requested, but not possible to set -> error
+- sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocket::tr("OpenSSL version too old, need at least v1.0.2"));
+- sslContext->errorCode = QSslError::UnspecifiedError;
+- }
+- }
+-}
+-
+ QSslContext* QSslContext::fromConfiguration(QSslSocket::SslMode mode, const QSslConfiguration &configuration, bool allowRootCertOnDemandLoading)
+ {
+ QSslContext *sslContext = new QSslContext();
+@@ -463,7 +160,7 @@ SSL* QSslContext::createSsl()
+ m_npnContext.len = m_supportedNPNVersions.count();
+ m_npnContext.status = QSslConfiguration::NextProtocolNegotiationNone;
+ #if OPENSSL_VERSION_NUMBER >= 0x10002000L
+- if (q_SSLeay() >= 0x10002000L) {
++ if (QSslSocket::sslLibraryVersionNumber() >= 0x10002000L) {
+ // Callback's type has a parameter 'const unsigned char ** out'
+ // since it was introduced in 1.0.2. Internally, OpenSSL's own code
+ // (tests/examples) cast it to unsigned char * (since it's 'out').
+@@ -508,7 +205,7 @@ bool QSslContext::cacheSession(SSL* ssl)
+ unsigned char *data = reinterpret_cast<unsigned char *>(m_sessionASN1.data());
+ if (!q_i2d_SSL_SESSION(session, &data))
+ qCWarning(lcSsl, "could not store persistent version of SSL session");
+- m_sessionTicketLifeTimeHint = session->tlsext_tick_lifetime_hint;
++ m_sessionTicketLifeTimeHint = q_SSL_SESSION_get_ticket_lifetime_hint(session);
+ }
+ }
+
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslcontext_openssl11.cpp
+===================================================================
+--- /dev/null
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslcontext_openssl11.cpp
+@@ -0,0 +1,277 @@
++/****************************************************************************
++**
++** Copyright (C) 2017 The Qt Company Ltd.
++** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
++** Copyright (C) 2014 Governikus GmbH & Co. KG.
++** Copyright (C) 2016 Richard J. Moore <rich@kde.org>
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the QtNetwork module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see https://www.qt.io/terms-conditions. For further
++** information use the contact form at https://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 3 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL3 included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 3 requirements
++** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 2.0 or (at your option) the GNU General
++** Public license version 3 or any later version approved by the KDE Free
++** Qt Foundation. The licenses are as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
++** included in the packaging of this file. Please review the following
++** information to ensure the GNU General Public License requirements will
++** be met: https://www.gnu.org/licenses/gpl-2.0.html and
++** https://www.gnu.org/licenses/gpl-3.0.html.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++
++#include <QtNetwork/qsslsocket.h>
++#include <QtNetwork/qssldiffiehellmanparameters.h>
++
++#include "private/qssl_p.h"
++#include "private/qsslcontext_openssl_p.h"
++#include "private/qsslsocket_p.h"
++#include "private/qsslsocket_openssl_p.h"
++#include "private/qsslsocket_openssl_symbols_p.h"
++#include "private/qssldiffiehellmanparameters_p.h"
++
++#include <vector>
++
++QT_BEGIN_NAMESPACE
++
++// defined in qsslsocket_openssl.cpp:
++extern int q_X509Callback(int ok, X509_STORE_CTX *ctx);
++extern QString getErrorsFromOpenSsl();
++
++static inline QString msgErrorSettingEllipticCurves(const QString &why)
++{
++ return QSslSocket::tr("Error when setting the elliptic curves (%1)").arg(why);
++}
++
++// static
++void QSslContext::initSslContext(QSslContext *sslContext, QSslSocket::SslMode mode, const QSslConfiguration &configuration, bool allowRootCertOnDemandLoading)
++{
++ sslContext->sslConfiguration = configuration;
++ sslContext->errorCode = QSslError::NoError;
++
++ bool client = (mode == QSslSocket::SslClientMode);
++
++ bool reinitialized = false;
++ bool unsupportedProtocol = false;
++init_context:
++ if (sslContext->sslConfiguration.protocol() == QSsl::SslV2) {
++ // SSL 2 is no longer supported, but chosen deliberately -> error
++ sslContext->ctx = nullptr;
++ unsupportedProtocol = true;
++ } else {
++ // The ssl options will actually control the supported methods
++ sslContext->ctx = q_SSL_CTX_new(client ? q_TLS_client_method() : q_TLS_server_method());
++ }
++
++ if (!sslContext->ctx) {
++ // After stopping Flash 10 the SSL library loses its ciphers. Try re-adding them
++ // by re-initializing the library.
++ if (!reinitialized) {
++ reinitialized = true;
++ if (q_OPENSSL_init_ssl(0, nullptr) == 1)
++ goto init_context;
++ }
++
++ sslContext->errorStr = QSslSocket::tr("Error creating SSL context (%1)").arg(
++ unsupportedProtocol ? QSslSocket::tr("unsupported protocol") : QSslSocketBackendPrivate::getErrorsFromOpenSsl()
++ );
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ // Enable bug workarounds.
++ long options = QSslSocketBackendPrivate::setupOpenSslOptions(configuration.protocol(), configuration.d->sslOptions);
++ q_SSL_CTX_set_options(sslContext->ctx, options);
++
++ // Tell OpenSSL to release memory early
++ // http://www.openssl.org/docs/ssl/SSL_CTX_set_mode.html
++ q_SSL_CTX_set_mode(sslContext->ctx, SSL_MODE_RELEASE_BUFFERS);
++
++ // Initialize ciphers
++ QByteArray cipherString;
++ bool first = true;
++ QList<QSslCipher> ciphers = sslContext->sslConfiguration.ciphers();
++ if (ciphers.isEmpty())
++ ciphers = QSslSocketPrivate::defaultCiphers();
++ for (const QSslCipher &cipher : qAsConst(ciphers)) {
++ if (first)
++ first = false;
++ else
++ cipherString.append(':');
++ cipherString.append(cipher.name().toLatin1());
++ }
++
++ if (!q_SSL_CTX_set_cipher_list(sslContext->ctx, cipherString.data())) {
++ sslContext->errorStr = QSslSocket::tr("Invalid or empty cipher list (%1)").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ const QDateTime now = QDateTime::currentDateTimeUtc();
++
++ // Add all our CAs to this store.
++ const auto caCertificates = sslContext->sslConfiguration.caCertificates();
++ for (const QSslCertificate &caCertificate : caCertificates) {
++ // From https://www.openssl.org/docs/ssl/SSL_CTX_load_verify_locations.html:
++ //
++ // If several CA certificates matching the name, key identifier, and
++ // serial number condition are available, only the first one will be
++ // examined. This may lead to unexpected results if the same CA
++ // certificate is available with different expiration dates. If a
++ // ``certificate expired'' verification error occurs, no other
++ // certificate will be searched. Make sure to not have expired
++ // certificates mixed with valid ones.
++ //
++ // See also: QSslSocketBackendPrivate::verify()
++ if (caCertificate.expiryDate() >= now) {
++ q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(sslContext->ctx), (X509 *)caCertificate.handle());
++ }
++ }
++
++ if (QSslSocketPrivate::s_loadRootCertsOnDemand && allowRootCertOnDemandLoading) {
++ // tell OpenSSL the directories where to look up the root certs on demand
++ const QList<QByteArray> unixDirs = QSslSocketPrivate::unixRootCertDirectories();
++ for (const QByteArray &unixDir : unixDirs)
++ q_SSL_CTX_load_verify_locations(sslContext->ctx, nullptr, unixDir.constData());
++ }
++
++ if (!sslContext->sslConfiguration.localCertificate().isNull()) {
++ // Require a private key as well.
++ if (sslContext->sslConfiguration.privateKey().isNull()) {
++ sslContext->errorStr = QSslSocket::tr("Cannot provide a certificate with no key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ // Load certificate
++ if (!q_SSL_CTX_use_certificate(sslContext->ctx, (X509 *)sslContext->sslConfiguration.localCertificate().handle())) {
++ sslContext->errorStr = QSslSocket::tr("Error loading local certificate, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ if (configuration.d->privateKey.algorithm() == QSsl::Opaque) {
++ sslContext->pkey = reinterpret_cast<EVP_PKEY *>(configuration.d->privateKey.handle());
++ } else {
++ // Load private key
++ sslContext->pkey = q_EVP_PKEY_new();
++ // before we were using EVP_PKEY_assign_R* functions and did not use EVP_PKEY_free.
++ // this lead to a memory leak. Now we use the *_set1_* functions which do not
++ // take ownership of the RSA/DSA key instance because the QSslKey already has ownership.
++ if (configuration.d->privateKey.algorithm() == QSsl::Rsa)
++ q_EVP_PKEY_set1_RSA(sslContext->pkey, reinterpret_cast<RSA *>(configuration.d->privateKey.handle()));
++ else if (configuration.d->privateKey.algorithm() == QSsl::Dsa)
++ q_EVP_PKEY_set1_DSA(sslContext->pkey, reinterpret_cast<DSA *>(configuration.d->privateKey.handle()));
++#ifndef OPENSSL_NO_EC
++ else if (configuration.d->privateKey.algorithm() == QSsl::Ec)
++ q_EVP_PKEY_set1_EC_KEY(sslContext->pkey, reinterpret_cast<EC_KEY *>(configuration.d->privateKey.handle()));
++#endif
++ }
++
++ if (!q_SSL_CTX_use_PrivateKey(sslContext->ctx, sslContext->pkey)) {
++ sslContext->errorStr = QSslSocket::tr("Error loading private key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++ if (configuration.d->privateKey.algorithm() == QSsl::Opaque)
++ sslContext->pkey = nullptr; // Don't free the private key, it belongs to QSslKey
++
++ // Check if the certificate matches the private key.
++ if (!q_SSL_CTX_check_private_key(sslContext->ctx)) {
++ sslContext->errorStr = QSslSocket::tr("Private key does not certify public key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ // If we have any intermediate certificates then we need to add them to our chain
++ bool first = true;
++ for (const QSslCertificate &cert : qAsConst(configuration.d->localCertificateChain)) {
++ if (first) {
++ first = false;
++ continue;
++ }
++ q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_EXTRA_CHAIN_CERT, 0,
++ q_X509_dup(reinterpret_cast<X509 *>(cert.handle())));
++ }
++ }
++
++ // Initialize peer verification.
++ if (sslContext->sslConfiguration.peerVerifyMode() == QSslSocket::VerifyNone) {
++ q_SSL_CTX_set_verify(sslContext->ctx, SSL_VERIFY_NONE, nullptr);
++ } else {
++ q_SSL_CTX_set_verify(sslContext->ctx, SSL_VERIFY_PEER, q_X509Callback);
++ }
++
++ // Set verification depth.
++ if (sslContext->sslConfiguration.peerVerifyDepth() != 0)
++ q_SSL_CTX_set_verify_depth(sslContext->ctx, sslContext->sslConfiguration.peerVerifyDepth());
++
++ // set persisted session if the user set it
++ if (!configuration.sessionTicket().isEmpty())
++ sslContext->setSessionASN1(configuration.sessionTicket());
++
++ // Set temp DH params
++ QSslDiffieHellmanParameters dhparams = configuration.diffieHellmanParameters();
++
++ if (!dhparams.isValid()) {
++ sslContext->errorStr = QSslSocket::tr("Diffie-Hellman parameters are not valid");
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ if (!dhparams.isEmpty()) {
++ const QByteArray &params = dhparams.d->derData;
++ const char *ptr = params.constData();
++ DH *dh = q_d2i_DHparams(NULL, reinterpret_cast<const unsigned char **>(&ptr), params.length());
++ if (dh == NULL)
++ qFatal("q_d2i_DHparams failed to convert QSslDiffieHellmanParameters to DER form");
++ q_SSL_CTX_set_tmp_dh(sslContext->ctx, dh);
++ q_DH_free(dh);
++ }
++
++#ifndef OPENSSL_NO_PSK
++ if (!client)
++ q_SSL_CTX_use_psk_identity_hint(sslContext->ctx, sslContext->sslConfiguration.preSharedKeyIdentityHint().constData());
++#endif // !OPENSSL_NO_PSK
++
++ const QVector<QSslEllipticCurve> qcurves = sslContext->sslConfiguration.ellipticCurves();
++ if (!qcurves.isEmpty()) {
++#ifdef OPENSSL_NO_EC
++ sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocket::tr("OpenSSL version with disabled elliptic curves"));
++ sslContext->errorCode = QSslError::UnspecifiedError;
++#else
++ // Set the curves to be used.
++ std::vector<int> curves;
++ curves.reserve(qcurves.size());
++ for (const auto &sslCurve : qcurves)
++ curves.push_back(sslCurve.id);
++ if (!q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_SET_CURVES, long(curves.size()), &curves[0])) {
++ sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ }
++#endif
++ }
++}
++
++QT_END_NAMESPACE
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslcontext_opensslpre11.cpp
+===================================================================
+--- /dev/null
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslcontext_opensslpre11.cpp
+@@ -0,0 +1,354 @@
++/****************************************************************************
++**
++** Copyright (C) 2017 The Qt Company Ltd.
++** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
++** Copyright (C) 2014 Governikus GmbH & Co. KG.
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the QtNetwork module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see https://www.qt.io/terms-conditions. For further
++** information use the contact form at https://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 3 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL3 included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 3 requirements
++** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 2.0 or (at your option) the GNU General
++** Public license version 3 or any later version approved by the KDE Free
++** Qt Foundation. The licenses are as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
++** included in the packaging of this file. Please review the following
++** information to ensure the GNU General Public License requirements will
++** be met: https://www.gnu.org/licenses/gpl-2.0.html and
++** https://www.gnu.org/licenses/gpl-3.0.html.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++
++#include <QtNetwork/qsslsocket.h>
++#include <QtNetwork/qssldiffiehellmanparameters.h>
++
++#include "private/qssl_p.h"
++#include "private/qsslcontext_openssl_p.h"
++#include "private/qsslsocket_p.h"
++#include "private/qsslsocket_openssl_p.h"
++#include "private/qsslsocket_openssl_symbols_p.h"
++#include "private/qssldiffiehellmanparameters_p.h"
++
++QT_BEGIN_NAMESPACE
++
++// defined in qsslsocket_openssl.cpp:
++extern int q_X509Callback(int ok, X509_STORE_CTX *ctx);
++extern QString getErrorsFromOpenSsl();
++
++static inline QString msgErrorSettingEllipticCurves(const QString &why)
++{
++ return QSslSocket::tr("Error when setting the elliptic curves (%1)").arg(why);
++}
++
++// static
++void QSslContext::initSslContext(QSslContext *sslContext, QSslSocket::SslMode mode, const QSslConfiguration &configuration, bool allowRootCertOnDemandLoading)
++{
++ sslContext->sslConfiguration = configuration;
++ sslContext->errorCode = QSslError::NoError;
++
++ bool client = (mode == QSslSocket::SslClientMode);
++
++ bool reinitialized = false;
++ bool unsupportedProtocol = false;
++init_context:
++ switch (sslContext->sslConfiguration.protocol()) {
++ case QSsl::SslV2:
++#ifndef OPENSSL_NO_SSL2
++ sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv2_client_method() : q_SSLv2_server_method());
++#else
++ // SSL 2 not supported by the system, but chosen deliberately -> error
++ sslContext->ctx = 0;
++ unsupportedProtocol = true;
++#endif
++ break;
++ case QSsl::SslV3:
++#ifndef OPENSSL_NO_SSL3_METHOD
++ sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method());
++#else
++ // SSL 3 not supported by the system, but chosen deliberately -> error
++ sslContext->ctx = 0;
++ unsupportedProtocol = true;
++#endif
++ break;
++ case QSsl::SecureProtocols:
++ // SSLv2 and SSLv3 will be disabled by SSL options
++ // But we need q_SSLv23_server_method() otherwise AnyProtocol will be unable to connect on Win32.
++ case QSsl::TlsV1SslV3:
++ // SSLv2 will will be disabled by SSL options
++ case QSsl::AnyProtocol:
++ default:
++ sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method());
++ break;
++ case QSsl::TlsV1_0:
++ sslContext->ctx = q_SSL_CTX_new(client ? q_TLSv1_client_method() : q_TLSv1_server_method());
++ break;
++ case QSsl::TlsV1_1:
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++ sslContext->ctx = q_SSL_CTX_new(client ? q_TLSv1_1_client_method() : q_TLSv1_1_server_method());
++#else
++ // TLS 1.1 not supported by the system, but chosen deliberately -> error
++ sslContext->ctx = 0;
++ unsupportedProtocol = true;
++#endif
++ break;
++ case QSsl::TlsV1_2:
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++ sslContext->ctx = q_SSL_CTX_new(client ? q_TLSv1_2_client_method() : q_TLSv1_2_server_method());
++#else
++ // TLS 1.2 not supported by the system, but chosen deliberately -> error
++ sslContext->ctx = 0;
++ unsupportedProtocol = true;
++#endif
++ break;
++ case QSsl::TlsV1_0OrLater:
++ // Specific protocols will be specified via SSL options.
++ sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method());
++ break;
++ case QSsl::TlsV1_1OrLater:
++ case QSsl::TlsV1_2OrLater:
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++ // Specific protocols will be specified via SSL options.
++ sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method());
++#else
++ // TLS 1.1/1.2 not supported by the system, but chosen deliberately -> error
++ sslContext->ctx = 0;
++ unsupportedProtocol = true;
++#endif
++ break;
++ }
++
++ if (!sslContext->ctx) {
++ // After stopping Flash 10 the SSL library loses its ciphers. Try re-adding them
++ // by re-initializing the library.
++ if (!reinitialized) {
++ reinitialized = true;
++ if (q_SSL_library_init() == 1)
++ goto init_context;
++ }
++
++ sslContext->errorStr = QSslSocket::tr("Error creating SSL context (%1)").arg(
++ unsupportedProtocol ? QSslSocket::tr("unsupported protocol") : QSslSocketBackendPrivate::getErrorsFromOpenSsl()
++ );
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ // Enable bug workarounds.
++ long options = QSslSocketBackendPrivate::setupOpenSslOptions(configuration.protocol(), configuration.d->sslOptions);
++ q_SSL_CTX_set_options(sslContext->ctx, options);
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ // Tell OpenSSL to release memory early
++ // http://www.openssl.org/docs/ssl/SSL_CTX_set_mode.html
++ if (q_SSLeay() >= 0x10000000L)
++ q_SSL_CTX_set_mode(sslContext->ctx, SSL_MODE_RELEASE_BUFFERS);
++#endif
++
++ // Initialize ciphers
++ QByteArray cipherString;
++ bool first = true;
++ QList<QSslCipher> ciphers = sslContext->sslConfiguration.ciphers();
++ if (ciphers.isEmpty())
++ ciphers = QSslSocketPrivate::defaultCiphers();
++ for (const QSslCipher &cipher : qAsConst(ciphers)) {
++ if (first)
++ first = false;
++ else
++ cipherString.append(':');
++ cipherString.append(cipher.name().toLatin1());
++ }
++
++ if (!q_SSL_CTX_set_cipher_list(sslContext->ctx, cipherString.data())) {
++ sslContext->errorStr = QSslSocket::tr("Invalid or empty cipher list (%1)").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ const QDateTime now = QDateTime::currentDateTimeUtc();
++
++ // Add all our CAs to this store.
++ const auto caCertificates = sslContext->sslConfiguration.caCertificates();
++ for (const QSslCertificate &caCertificate : caCertificates) {
++ // From https://www.openssl.org/docs/ssl/SSL_CTX_load_verify_locations.html:
++ //
++ // If several CA certificates matching the name, key identifier, and
++ // serial number condition are available, only the first one will be
++ // examined. This may lead to unexpected results if the same CA
++ // certificate is available with different expiration dates. If a
++ // ``certificate expired'' verification error occurs, no other
++ // certificate will be searched. Make sure to not have expired
++ // certificates mixed with valid ones.
++ //
++ // See also: QSslSocketBackendPrivate::verify()
++ if (caCertificate.expiryDate() >= now) {
++ q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(sslContext->ctx), (X509 *)caCertificate.handle());
++ }
++ }
++
++ if (QSslSocketPrivate::s_loadRootCertsOnDemand && allowRootCertOnDemandLoading) {
++ // tell OpenSSL the directories where to look up the root certs on demand
++ const QList<QByteArray> unixDirs = QSslSocketPrivate::unixRootCertDirectories();
++ for (const QByteArray &unixDir : unixDirs)
++ q_SSL_CTX_load_verify_locations(sslContext->ctx, 0, unixDir.constData());
++ }
++
++ if (!sslContext->sslConfiguration.localCertificate().isNull()) {
++ // Require a private key as well.
++ if (sslContext->sslConfiguration.privateKey().isNull()) {
++ sslContext->errorStr = QSslSocket::tr("Cannot provide a certificate with no key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ // Load certificate
++ if (!q_SSL_CTX_use_certificate(sslContext->ctx, (X509 *)sslContext->sslConfiguration.localCertificate().handle())) {
++ sslContext->errorStr = QSslSocket::tr("Error loading local certificate, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ if (configuration.d->privateKey.algorithm() == QSsl::Opaque) {
++ sslContext->pkey = reinterpret_cast<EVP_PKEY *>(configuration.d->privateKey.handle());
++ } else {
++ // Load private key
++ sslContext->pkey = q_EVP_PKEY_new();
++ // before we were using EVP_PKEY_assign_R* functions and did not use EVP_PKEY_free.
++ // this lead to a memory leak. Now we use the *_set1_* functions which do not
++ // take ownership of the RSA/DSA key instance because the QSslKey already has ownership.
++ if (configuration.d->privateKey.algorithm() == QSsl::Rsa)
++ q_EVP_PKEY_set1_RSA(sslContext->pkey, reinterpret_cast<RSA *>(configuration.d->privateKey.handle()));
++ else if (configuration.d->privateKey.algorithm() == QSsl::Dsa)
++ q_EVP_PKEY_set1_DSA(sslContext->pkey, reinterpret_cast<DSA *>(configuration.d->privateKey.handle()));
++#ifndef OPENSSL_NO_EC
++ else if (configuration.d->privateKey.algorithm() == QSsl::Ec)
++ q_EVP_PKEY_set1_EC_KEY(sslContext->pkey, reinterpret_cast<EC_KEY *>(configuration.d->privateKey.handle()));
++#endif
++ }
++
++ if (!q_SSL_CTX_use_PrivateKey(sslContext->ctx, sslContext->pkey)) {
++ sslContext->errorStr = QSslSocket::tr("Error loading private key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++ if (configuration.d->privateKey.algorithm() == QSsl::Opaque)
++ sslContext->pkey = 0; // Don't free the private key, it belongs to QSslKey
++
++ // Check if the certificate matches the private key.
++ if (!q_SSL_CTX_check_private_key(sslContext->ctx)) {
++ sslContext->errorStr = QSslSocket::tr("Private key does not certify public key, %1").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ // If we have any intermediate certificates then we need to add them to our chain
++ bool first = true;
++ for (const QSslCertificate &cert : qAsConst(configuration.d->localCertificateChain)) {
++ if (first) {
++ first = false;
++ continue;
++ }
++ q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_EXTRA_CHAIN_CERT, 0,
++ q_X509_dup(reinterpret_cast<X509 *>(cert.handle())));
++ }
++ }
++
++ // Initialize peer verification.
++ if (sslContext->sslConfiguration.peerVerifyMode() == QSslSocket::VerifyNone) {
++ q_SSL_CTX_set_verify(sslContext->ctx, SSL_VERIFY_NONE, 0);
++ } else {
++ q_SSL_CTX_set_verify(sslContext->ctx, SSL_VERIFY_PEER, q_X509Callback);
++ }
++
++ // Set verification depth.
++ if (sslContext->sslConfiguration.peerVerifyDepth() != 0)
++ q_SSL_CTX_set_verify_depth(sslContext->ctx, sslContext->sslConfiguration.peerVerifyDepth());
++
++ // set persisted session if the user set it
++ if (!configuration.sessionTicket().isEmpty())
++ sslContext->setSessionASN1(configuration.sessionTicket());
++
++ // Set temp DH params
++ QSslDiffieHellmanParameters dhparams = configuration.diffieHellmanParameters();
++
++ if (!dhparams.isValid()) {
++ sslContext->errorStr = QSslSocket::tr("Diffie-Hellman parameters are not valid");
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ return;
++ }
++
++ if (!dhparams.isEmpty()) {
++ const QByteArray &params = dhparams.d->derData;
++ const char *ptr = params.constData();
++ DH *dh = q_d2i_DHparams(NULL, reinterpret_cast<const unsigned char **>(&ptr), params.length());
++ if (dh == NULL)
++ qFatal("q_d2i_DHparams failed to convert QSslDiffieHellmanParameters to DER form");
++ q_SSL_CTX_set_tmp_dh(sslContext->ctx, dh);
++ q_DH_free(dh);
++ }
++
++#ifndef OPENSSL_NO_EC
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++ if (q_SSLeay() >= 0x10002000L) {
++ q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_SET_ECDH_AUTO, 1, NULL);
++ } else
++#endif
++ {
++ // Set temp ECDH params
++ EC_KEY *ecdh = 0;
++ ecdh = q_EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
++ q_SSL_CTX_set_tmp_ecdh(sslContext->ctx, ecdh);
++ q_EC_KEY_free(ecdh);
++ }
++#endif // OPENSSL_NO_EC
++
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_PSK)
++ if (!client)
++ q_SSL_CTX_use_psk_identity_hint(sslContext->ctx, sslContext->sslConfiguration.preSharedKeyIdentityHint().constData());
++#endif // OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_PSK)
++
++ const QVector<QSslEllipticCurve> qcurves = sslContext->sslConfiguration.ellipticCurves();
++ if (!qcurves.isEmpty()) {
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
++ // Set the curves to be used
++ if (q_SSLeay() >= 0x10002000L) {
++ // SSL_CTX_ctrl wants a non-const pointer as last argument,
++ // but let's avoid a copy into a temporary array
++ if (!q_SSL_CTX_ctrl(sslContext->ctx,
++ SSL_CTRL_SET_CURVES,
++ qcurves.size(),
++ const_cast<int *>(reinterpret_cast<const int *>(qcurves.data())))) {
++ sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ }
++ } else
++#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
++ {
++ // specific curves requested, but not possible to set -> error
++ sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocket::tr("OpenSSL version too old, need at least v1.0.2"));
++ sslContext->errorCode = QSslError::UnspecifiedError;
++ }
++ }
++}
++
++QT_END_NAMESPACE
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
+@@ -1,6 +1,7 @@
+ /****************************************************************************
+ **
+ ** Copyright (C) 2015 Mikkel Krautz <mikkel@krautz.dk>
++** Copyright (C) 2016 Richard J. Moore <rich@kde.org>
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the QtNetwork module of the Qt Toolkit.
+@@ -50,8 +51,8 @@
+ #include <QtCore/qdebug.h>
+ #endif
+
+-// For q_BN_is_word.
+ #include <openssl/bn.h>
++#include <openssl/dh.h>
+
+ QT_BEGIN_NAMESPACE
+
+@@ -62,13 +63,6 @@ static bool isSafeDH(DH *dh)
+
+ QSslSocketPrivate::ensureInitialized();
+
+- // Mark p < 1024 bits as unsafe.
+- if (q_BN_num_bits(dh->p) < 1024) {
+- return false;
+- }
+-
+- if (q_DH_check(dh, &status) != 1)
+- return false;
+
+ // From https://wiki.openssl.org/index.php/Diffie-Hellman_parameters:
+ //
+@@ -81,11 +75,39 @@ static bool isSafeDH(DH *dh)
+ // Without the test, the IETF parameters would
+ // fail validation. For details, see Diffie-Hellman
+ // Parameter Check (when g = 2, must p mod 24 == 11?).
++#if QT_CONFIG(opensslv11)
++ // Mark p < 1024 bits as unsafe.
++ if (q_DH_bits(dh) < 1024)
++ return false;
++
++ if (q_DH_check(dh, &status) != 1)
++ return false;
++
++ const BIGNUM *p = nullptr;
++ const BIGNUM *q = nullptr;
++ const BIGNUM *g = nullptr;
++ q_DH_get0_pqg(dh, &p, &q, &g);
++
++ if (q_BN_is_word(const_cast<BIGNUM *>(g), DH_GENERATOR_2)) {
++ long residue = q_BN_mod_word(p, 24);
++ if (residue == 11 || residue == 23)
++ status &= ~DH_NOT_SUITABLE_GENERATOR;
++ }
++
++#else
++ // Mark p < 1024 bits as unsafe.
++ if (q_BN_num_bits(dh->p) < 1024)
++ return false;
++
++ if (q_DH_check(dh, &status) != 1)
++ return false;
++
+ if (q_BN_is_word(dh->g, DH_GENERATOR_2)) {
+ long residue = q_BN_mod_word(dh->p, 24);
+ if (residue == 11 || residue == 23)
+ status &= ~DH_NOT_SUITABLE_GENERATOR;
+ }
++#endif
+
+ bad |= DH_CHECK_P_NOT_PRIME;
+ bad |= DH_CHECK_P_NOT_SAFE_PRIME;
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslellipticcurve.h
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslellipticcurve.h
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslellipticcurve.h
+@@ -80,6 +80,7 @@ private:
+ friend Q_DECL_CONSTEXPR bool operator==(QSslEllipticCurve lhs, QSslEllipticCurve rhs) Q_DECL_NOTHROW;
+ friend Q_DECL_CONSTEXPR uint qHash(QSslEllipticCurve curve, uint seed) Q_DECL_NOTHROW;
+
++ friend class QSslContext;
+ friend class QSslSocketPrivate;
+ friend class QSslSocketBackendPrivate;
+ };
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslellipticcurve_openssl.cpp
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslellipticcurve_openssl.cpp
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslellipticcurve_openssl.cpp
+@@ -1,6 +1,7 @@
+ /****************************************************************************
+ **
+ ** Copyright (C) 2014 Governikus GmbH & Co. KG.
++** Copyright (C) 2016 Richard J. Moore <rich@kde.org>
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the QtNetwork module of the Qt Toolkit.
+@@ -78,17 +79,18 @@ QSslEllipticCurve QSslEllipticCurve::fro
+ QSslEllipticCurve result;
+
+ #ifndef OPENSSL_NO_EC
+- const QByteArray curveNameLatin1 = name.toLatin1();
+
++ const QByteArray curveNameLatin1 = name.toLatin1();
+ int nid = q_OBJ_sn2nid(curveNameLatin1.data());
+
+ #if OPENSSL_VERSION_NUMBER >= 0x10002000L
+- if (nid == 0 && q_SSLeay() >= 0x10002000L)
++ if (nid == 0 && QSslSocket::sslLibraryVersionNumber() >= 0x10002000L)
+ nid = q_EC_curve_nist2nid(curveNameLatin1.data());
+ #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
+
+ result.id = nid;
+-#endif
++
++#endif // !OPENSSL_NO_EC
+
+ return result;
+ }
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslkey_openssl.cpp
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslkey_openssl.cpp
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslkey_openssl.cpp
+@@ -1,6 +1,7 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2016 The Qt Company Ltd.
++** Copyright (C) 2017 The Qt Company Ltd.
++** Copyright (C) 2016 Richard J. Moore <rich@kde.org>
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the QtNetwork module of the Qt Toolkit.
+@@ -87,33 +88,30 @@ bool QSslKeyPrivate::fromEVP_PKEY(EVP_PK
+ if (pkey == nullptr)
+ return false;
+
+- if (pkey->type == EVP_PKEY_RSA) {
++#if QT_CONFIG(opensslv11)
++ const int keyType = q_EVP_PKEY_type(q_EVP_PKEY_base_id(pkey));
++#else
++ const int keyType = pkey->type;
++#endif
++ if (keyType == EVP_PKEY_RSA) {
+ isNull = false;
+ algorithm = QSsl::Rsa;
+ type = QSsl::PrivateKey;
+-
+- rsa = q_RSA_new();
+- memcpy(rsa, q_EVP_PKEY_get1_RSA(pkey), sizeof(RSA));
+-
++ rsa = q_EVP_PKEY_get1_RSA(pkey);
+ return true;
+- }
+- else if (pkey->type == EVP_PKEY_DSA) {
++ } else if (keyType == EVP_PKEY_DSA) {
+ isNull = false;
+ algorithm = QSsl::Dsa;
+ type = QSsl::PrivateKey;
+-
+- dsa = q_DSA_new();
+- memcpy(dsa, q_EVP_PKEY_get1_DSA(pkey), sizeof(DSA));
+-
++ dsa = q_EVP_PKEY_get1_DSA(pkey);
+ return true;
+ }
+ #ifndef OPENSSL_NO_EC
+- else if (pkey->type == EVP_PKEY_EC) {
++ else if (keyType == EVP_PKEY_EC) {
+ isNull = false;
+ algorithm = QSsl::Ec;
+ type = QSsl::PrivateKey;
+- ec = q_EC_KEY_dup(q_EVP_PKEY_get1_EC_KEY(pkey));
+-
++ ec = q_EVP_PKEY_get1_EC_KEY(pkey);
+ return true;
+ }
+ #endif
+@@ -181,8 +179,8 @@ int QSslKeyPrivate::length() const
+ return -1;
+
+ switch (algorithm) {
+- case QSsl::Rsa: return q_BN_num_bits(rsa->n);
+- case QSsl::Dsa: return q_BN_num_bits(dsa->p);
++ case QSsl::Rsa: return q_RSA_bits(rsa);
++ case QSsl::Dsa: return q_DSA_bits(dsa);
+ #ifndef OPENSSL_NO_EC
+ case QSsl::Ec: return q_EC_GROUP_get_degree(q_EC_KEY_get0_group(ec));
+ #endif
+@@ -276,7 +274,13 @@ Qt::HANDLE QSslKeyPrivate::handle() cons
+
+ static QByteArray doCrypt(QSslKeyPrivate::Cipher cipher, const QByteArray &data, const QByteArray &key, const QByteArray &iv, int enc)
+ {
+- EVP_CIPHER_CTX ctx;
++#if QT_CONFIG(opensslv11)
++ EVP_CIPHER_CTX *ctx = q_EVP_CIPHER_CTX_new();
++#else
++ EVP_CIPHER_CTX evpCipherContext;
++ EVP_CIPHER_CTX *ctx = &evpCipherContext;
++#endif
++
+ const EVP_CIPHER* type = 0;
+ int i = 0, len = 0;
+
+@@ -294,21 +298,44 @@ static QByteArray doCrypt(QSslKeyPrivate
+
+ QByteArray output;
+ output.resize(data.size() + EVP_MAX_BLOCK_LENGTH);
+- q_EVP_CIPHER_CTX_init(&ctx);
+- q_EVP_CipherInit(&ctx, type, NULL, NULL, enc);
+- q_EVP_CIPHER_CTX_set_key_length(&ctx, key.size());
++
++#if QT_CONFIG(opensslv11)
++ q_EVP_CIPHER_CTX_reset(ctx);
++#else
++ q_EVP_CIPHER_CTX_init(ctx);
++#endif
++
++ q_EVP_CipherInit(ctx, type, NULL, NULL, enc);
++ q_EVP_CIPHER_CTX_set_key_length(ctx, key.size());
+ if (cipher == QSslKeyPrivate::Rc2Cbc)
+- q_EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_SET_RC2_KEY_BITS, 8 * key.size(), NULL);
+- q_EVP_CipherInit(&ctx, NULL,
++ q_EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_SET_RC2_KEY_BITS, 8 * key.size(), NULL);
++
++#if QT_CONFIG(opensslv11)
++ // EVP_CipherInit in 1.1 resets the context thus making the calls above useless.
++ // We call EVP_CipherInit_ex instead.
++ q_EVP_CipherInit_ex(ctx, nullptr, nullptr,
++ reinterpret_cast<const unsigned char *>(key.constData()),
++ reinterpret_cast<const unsigned char *>(iv.constData()),
++ enc);
++#else
++ q_EVP_CipherInit(ctx, NULL,
+ reinterpret_cast<const unsigned char *>(key.constData()),
+ reinterpret_cast<const unsigned char *>(iv.constData()), enc);
+- q_EVP_CipherUpdate(&ctx,
++#endif // opensslv11
++
++ q_EVP_CipherUpdate(ctx,
+ reinterpret_cast<unsigned char *>(output.data()), &len,
+ reinterpret_cast<const unsigned char *>(data.constData()), data.size());
+- q_EVP_CipherFinal(&ctx,
++ q_EVP_CipherFinal(ctx,
+ reinterpret_cast<unsigned char *>(output.data()) + len, &i);
+ len += i;
+- q_EVP_CIPHER_CTX_cleanup(&ctx);
++
++#if QT_CONFIG(opensslv11)
++ q_EVP_CIPHER_CTX_reset(ctx);
++ q_EVP_CIPHER_CTX_free(ctx);
++#else
++ q_EVP_CIPHER_CTX_cleanup(ctx);
++#endif
+
+ return output.left(len);
+ }
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl.cpp
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslsocket_openssl.cpp
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl.cpp
+@@ -1,6 +1,6 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2016 The Qt Company Ltd.
++** Copyright (C) 2017 The Qt Company Ltd.
+ ** Copyright (C) 2014 Governikus GmbH & Co. KG
+ ** Contact: https://www.qt.io/licensing/
+ **
+@@ -97,70 +97,6 @@ bool QSslSocketPrivate::s_loadRootCertsO
+ int QSslSocketBackendPrivate::s_indexForSSLExtraData = -1;
+ #endif
+
+-/* \internal
+-
+- From OpenSSL's thread(3) manual page:
+-
+- OpenSSL can safely be used in multi-threaded applications provided that at
+- least two callback functions are set.
+-
+- locking_function(int mode, int n, const char *file, int line) is needed to
+- perform locking on shared data structures. (Note that OpenSSL uses a
+- number of global data structures that will be implicitly shared
+- whenever multiple threads use OpenSSL.) Multi-threaded
+- applications will crash at random if it is not set. ...
+- ...
+- id_function(void) is a function that returns a thread ID. It is not
+- needed on Windows nor on platforms where getpid() returns a different
+- ID for each thread (most notably Linux)
+-*/
+-class QOpenSslLocks
+-{
+-public:
+- inline QOpenSslLocks()
+- : initLocker(QMutex::Recursive),
+- locksLocker(QMutex::Recursive)
+- {
+- QMutexLocker locker(&locksLocker);
+- int numLocks = q_CRYPTO_num_locks();
+- locks = new QMutex *[numLocks];
+- memset(locks, 0, numLocks * sizeof(QMutex *));
+- }
+- inline ~QOpenSslLocks()
+- {
+- QMutexLocker locker(&locksLocker);
+- for (int i = 0; i < q_CRYPTO_num_locks(); ++i)
+- delete locks[i];
+- delete [] locks;
+-
+- QSslSocketPrivate::deinitialize();
+- }
+- inline QMutex *lock(int num)
+- {
+- QMutexLocker locker(&locksLocker);
+- QMutex *tmp = locks[num];
+- if (!tmp)
+- tmp = locks[num] = new QMutex(QMutex::Recursive);
+- return tmp;
+- }
+-
+- QMutex *globalLock()
+- {
+- return &locksLocker;
+- }
+-
+- QMutex *initLock()
+- {
+- return &initLocker;
+- }
+-
+-private:
+- QMutex initLocker;
+- QMutex locksLocker;
+- QMutex **locks;
+-};
+-Q_GLOBAL_STATIC(QOpenSslLocks, openssl_locks)
+-
+ QString QSslSocketBackendPrivate::getErrorsFromOpenSsl()
+ {
+ QString errorString;
+@@ -175,20 +111,6 @@ QString QSslSocketBackendPrivate::getErr
+ }
+
+ extern "C" {
+-static void locking_function(int mode, int lockNumber, const char *, int)
+-{
+- QMutex *mutex = openssl_locks()->lock(lockNumber);
+-
+- // Lock or unlock it
+- if (mode & CRYPTO_LOCK)
+- mutex->lock();
+- else
+- mutex->unlock();
+-}
+-static unsigned long id_function()
+-{
+- return (quintptr)QThread::currentThreadId();
+-}
+
+ #if OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_PSK)
+ static unsigned int q_ssl_psk_client_callback(SSL *ssl,
+@@ -227,7 +149,7 @@ QSslSocketBackendPrivate::~QSslSocketBac
+ destroySslContext();
+ }
+
+-QSslCipher QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(SSL_CIPHER *cipher)
++QSslCipher QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(const SSL_CIPHER *cipher)
+ {
+ QSslCipher ciph;
+
+@@ -283,6 +205,7 @@ struct QSslErrorList
+ QMutex mutex;
+ QVector<QSslErrorEntry> errors;
+ };
++
+ Q_GLOBAL_STATIC(QSslErrorList, _q_sslErrorList)
+
+ int q_X509Callback(int ok, X509_STORE_CTX *ctx)
+@@ -312,7 +235,7 @@ int q_X509Callback(int ok, X509_STORE_CT
+ }
+ #endif
+ }
+- // Always return OK to allow verification to continue. We're handle the
++ // Always return OK to allow verification to continue. We handle the
+ // errors gracefully after collecting all errors, after verification has
+ // completed.
+ return 1;
+@@ -397,7 +320,7 @@ bool QSslSocketBackendPrivate::initSslCo
+ if (configuration.protocol != QSsl::SslV2 &&
+ configuration.protocol != QSsl::SslV3 &&
+ configuration.protocol != QSsl::UnknownProtocol &&
+- mode == QSslSocket::SslClientMode && q_SSLeay() >= 0x00090806fL) {
++ mode == QSslSocket::SslClientMode && QSslSocket::sslLibraryVersionNumber() >= 0x00090806fL) {
+ // Set server hostname on TLS extension. RFC4366 section 3.1 requires it in ACE format.
+ QString tlsHostName = verificationPeerName.isEmpty() ? q->peerName() : verificationPeerName;
+ if (tlsHostName.isEmpty())
+@@ -438,13 +361,13 @@ bool QSslSocketBackendPrivate::initSslCo
+
+ #if OPENSSL_VERSION_NUMBER >= 0x10001000L
+ // Save a pointer to this object into the SSL structure.
+- if (q_SSLeay() >= 0x10001000L)
++ if (QSslSocket::sslLibraryVersionNumber() >= 0x10001000L)
+ q_SSL_set_ex_data(ssl, s_indexForSSLExtraData, this);
+ #endif
+
+ #if OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_PSK)
+ // Set the client callback for PSK
+- if (q_SSLeay() >= 0x10001000L) {
++ if (QSslSocket::sslLibraryVersionNumber() >= 0x10001000L) {
+ if (mode == QSslSocket::SslClientMode)
+ q_SSL_set_psk_client_callback(ssl, &q_ssl_psk_client_callback);
+ else if (mode == QSslSocket::SslServerMode)
+@@ -466,16 +389,6 @@ void QSslSocketBackendPrivate::destroySs
+
+ /*!
+ \internal
+-*/
+-void QSslSocketPrivate::deinitialize()
+-{
+- q_CRYPTO_set_id_callback(0);
+- q_CRYPTO_set_locking_callback(0);
+- q_ERR_free_strings();
+-}
+-
+-/*!
+- \internal
+
+ Does the minimum amount of initialization to determine whether SSL
+ is supported or not.
+@@ -486,92 +399,6 @@ bool QSslSocketPrivate::supportsSsl()
+ return ensureLibraryLoaded();
+ }
+
+-bool QSslSocketPrivate::ensureLibraryLoaded()
+-{
+- if (!q_resolveOpenSslSymbols())
+- return false;
+-
+- // Check if the library itself needs to be initialized.
+- QMutexLocker locker(openssl_locks()->initLock());
+-
+- if (!s_libraryLoaded) {
+- s_libraryLoaded = true;
+-
+- // Initialize OpenSSL.
+- q_CRYPTO_set_id_callback(id_function);
+- q_CRYPTO_set_locking_callback(locking_function);
+- if (q_SSL_library_init() != 1)
+- return false;
+- q_SSL_load_error_strings();
+- q_OpenSSL_add_all_algorithms();
+-
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+- if (q_SSLeay() >= 0x10001000L)
+- QSslSocketBackendPrivate::s_indexForSSLExtraData = q_SSL_get_ex_new_index(0L, NULL, NULL, NULL, NULL);
+-#endif
+-
+- // Initialize OpenSSL's random seed.
+- if (!q_RAND_status()) {
+- qWarning("Random number generator not seeded, disabling SSL support");
+- return false;
+- }
+- }
+- return true;
+-}
+-
+-void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
+-{
+- QMutexLocker locker(openssl_locks()->initLock());
+- if (s_loadedCiphersAndCerts)
+- return;
+- s_loadedCiphersAndCerts = true;
+-
+- resetDefaultCiphers();
+- resetDefaultEllipticCurves();
+-
+-#if QT_CONFIG(library)
+- //load symbols needed to receive certificates from system store
+-#if defined(Q_OS_WIN)
+- HINSTANCE hLib = LoadLibraryW(L"Crypt32");
+- if (hLib) {
+- ptrCertOpenSystemStoreW = (PtrCertOpenSystemStoreW)GetProcAddress(hLib, "CertOpenSystemStoreW");
+- ptrCertFindCertificateInStore = (PtrCertFindCertificateInStore)GetProcAddress(hLib, "CertFindCertificateInStore");
+- ptrCertCloseStore = (PtrCertCloseStore)GetProcAddress(hLib, "CertCloseStore");
+- if (!ptrCertOpenSystemStoreW || !ptrCertFindCertificateInStore || !ptrCertCloseStore)
+- qCWarning(lcSsl, "could not resolve symbols in crypt32 library"); // should never happen
+- } else {
+- qCWarning(lcSsl, "could not load crypt32 library"); // should never happen
+- }
+-#elif defined(Q_OS_QNX)
+- s_loadRootCertsOnDemand = true;
+-#elif defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+- // check whether we can enable on-demand root-cert loading (i.e. check whether the sym links are there)
+- QList<QByteArray> dirs = unixRootCertDirectories();
+- QStringList symLinkFilter;
+- symLinkFilter << QLatin1String("[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].[0-9]");
+- for (int a = 0; a < dirs.count(); ++a) {
+- QDirIterator iterator(QLatin1String(dirs.at(a)), symLinkFilter, QDir::Files);
+- if (iterator.hasNext()) {
+- s_loadRootCertsOnDemand = true;
+- break;
+- }
+- }
+-#endif
+-#endif // QT_CONFIG(library)
+- // if on-demand loading was not enabled, load the certs now
+- if (!s_loadRootCertsOnDemand)
+- setDefaultCaCertificates(systemCaCertificates());
+-#ifdef Q_OS_WIN
+- //Enabled for fetching additional root certs from windows update on windows 6+
+- //This flag is set false by setDefaultCaCertificates() indicating the app uses
+- //its own cert bundle rather than the system one.
+- //Same logic that disables the unix on demand cert loading.
+- //Unlike unix, we do preload the certificates from the cert store.
+- if ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) >= QSysInfo::WV_6_0)
+- s_loadRootCertsOnDemand = true;
+-#endif
+-}
+-
+ /*!
+ \internal
+
+@@ -587,26 +414,6 @@ void QSslSocketPrivate::ensureInitialize
+ ensureCiphersAndCertsLoaded();
+ }
+
+-long QSslSocketPrivate::sslLibraryVersionNumber()
+-{
+- if (!supportsSsl())
+- return 0;
+-
+- return q_SSLeay();
+-}
+-
+-QString QSslSocketPrivate::sslLibraryVersionString()
+-{
+- if (!supportsSsl())
+- return QString();
+-
+- const char *versionString = q_SSLeay_version(SSLEAY_VERSION);
+- if (!versionString)
+- return QString();
+-
+- return QString::fromLatin1(versionString);
+-}
+-
+ long QSslSocketPrivate::sslLibraryBuildVersionNumber()
+ {
+ return OPENSSL_VERSION_NUMBER;
+@@ -628,7 +435,11 @@ QString QSslSocketPrivate::sslLibraryBui
+ */
+ void QSslSocketPrivate::resetDefaultCiphers()
+ {
++#if QT_CONFIG(opensslv11)
++ SSL_CTX *myCtx = q_SSL_CTX_new(q_TLS_client_method());
++#else
+ SSL_CTX *myCtx = q_SSL_CTX_new(q_SSLv23_client_method());
++#endif
+ SSL *mySsl = q_SSL_new(myCtx);
+
+ QList<QSslCipher> ciphers;
+@@ -665,7 +476,7 @@ void QSslSocketPrivate::resetDefaultElli
+ QVector<QSslEllipticCurve> curves;
+
+ #ifndef OPENSSL_NO_EC
+- const size_t curveCount = q_EC_get_builtin_curves(NULL, 0);
++ const size_t curveCount = q_EC_get_builtin_curves(nullptr, 0);
+
+ QVarLengthArray<EC_builtin_curve> builtinCurves(static_cast<int>(curveCount));
+
+@@ -699,13 +510,14 @@ QList<QSslCertificate> QSslSocketPrivate
+ if (ptrCertOpenSystemStoreW && ptrCertFindCertificateInStore && ptrCertCloseStore) {
+ HCERTSTORE hSystemStore;
+ hSystemStore = ptrCertOpenSystemStoreW(0, L"ROOT");
+- if(hSystemStore) {
+- PCCERT_CONTEXT pc = NULL;
+- while(1) {
+- pc = ptrCertFindCertificateInStore( hSystemStore, X509_ASN_ENCODING, 0, CERT_FIND_ANY, NULL, pc);
+- if(!pc)
++ if (hSystemStore) {
++ PCCERT_CONTEXT pc = nullptr;
++ while (1) {
++ pc = ptrCertFindCertificateInStore(hSystemStore, X509_ASN_ENCODING, 0, CERT_FIND_ANY, nullptr, pc);
++ if (!pc)
+ break;
+- QByteArray der((const char *)(pc->pbCertEncoded), static_cast<int>(pc->cbCertEncoded));
++ QByteArray der(reinterpret_cast<const char *>(pc->pbCertEncoded),
++ static_cast<int>(pc->cbCertEncoded));
+ QSslCertificate cert(der, QSsl::Der);
+ systemCerts.append(cert);
+ }
+@@ -1503,14 +1315,8 @@ QSslCipher QSslSocketBackendPrivate::ses
+ {
+ if (!ssl)
+ return QSslCipher();
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+- // FIXME This is fairly evil, but needed to keep source level compatibility
+- // with the OpenSSL 0.9.x implementation at maximum -- some other functions
+- // don't take a const SSL_CIPHER* when they should
+- SSL_CIPHER *sessionCipher = const_cast<SSL_CIPHER *>(q_SSL_get_current_cipher(ssl));
+-#else
+- SSL_CIPHER *sessionCipher = q_SSL_get_current_cipher(ssl);
+-#endif
++
++ const SSL_CIPHER *sessionCipher = q_SSL_get_current_cipher(ssl);
+ return sessionCipher ? QSslCipher_from_SSL_CIPHER(sessionCipher) : QSslCipher();
+ }
+
+@@ -1536,112 +1342,6 @@ QSsl::SslProtocol QSslSocketBackendPriva
+ return QSsl::UnknownProtocol;
+ }
+
+-void QSslSocketBackendPrivate::continueHandshake()
+-{
+- Q_Q(QSslSocket);
+- // if we have a max read buffer size, reset the plain socket's to match
+- if (readBufferMaxSize)
+- plainSocket->setReadBufferSize(readBufferMaxSize);
+-
+- if (q_SSL_ctrl((ssl), SSL_CTRL_GET_SESSION_REUSED, 0, NULL))
+- configuration.peerSessionShared = true;
+-
+-#ifdef QT_DECRYPT_SSL_TRAFFIC
+- if (ssl->session && ssl->s3) {
+- const char *mk = reinterpret_cast<const char *>(ssl->session->master_key);
+- QByteArray masterKey(mk, ssl->session->master_key_length);
+- const char *random = reinterpret_cast<const char *>(ssl->s3->client_random);
+- QByteArray clientRandom(random, SSL3_RANDOM_SIZE);
+-
+- // different format, needed for e.g. older Wireshark versions:
+-// const char *sid = reinterpret_cast<const char *>(ssl->session->session_id);
+-// QByteArray sessionID(sid, ssl->session->session_id_length);
+-// QByteArray debugLineRSA("RSA Session-ID:");
+-// debugLineRSA.append(sessionID.toHex().toUpper());
+-// debugLineRSA.append(" Master-Key:");
+-// debugLineRSA.append(masterKey.toHex().toUpper());
+-// debugLineRSA.append("\n");
+-
+- QByteArray debugLineClientRandom("CLIENT_RANDOM ");
+- debugLineClientRandom.append(clientRandom.toHex().toUpper());
+- debugLineClientRandom.append(" ");
+- debugLineClientRandom.append(masterKey.toHex().toUpper());
+- debugLineClientRandom.append("\n");
+-
+- QString sslKeyFile = QDir::tempPath() + QLatin1String("/qt-ssl-keys");
+- QFile file(sslKeyFile);
+- if (!file.open(QIODevice::Append))
+- qCWarning(lcSsl) << "could not open file" << sslKeyFile << "for appending";
+- if (!file.write(debugLineClientRandom))
+- qCWarning(lcSsl) << "could not write to file" << sslKeyFile;
+- file.close();
+- } else {
+- qCWarning(lcSsl, "could not decrypt SSL traffic");
+- }
+-#endif
+-
+- // Cache this SSL session inside the QSslContext
+- if (!(configuration.sslOptions & QSsl::SslOptionDisableSessionSharing)) {
+- if (!sslContextPointer->cacheSession(ssl)) {
+- sslContextPointer.clear(); // we could not cache the session
+- } else {
+- // Cache the session for permanent usage as well
+- if (!(configuration.sslOptions & QSsl::SslOptionDisableSessionPersistence)) {
+- if (!sslContextPointer->sessionASN1().isEmpty())
+- configuration.sslSession = sslContextPointer->sessionASN1();
+- configuration.sslSessionTicketLifeTimeHint = sslContextPointer->sessionTicketLifeTimeHint();
+- }
+- }
+- }
+-
+-#if OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_NEXTPROTONEG)
+-
+- configuration.nextProtocolNegotiationStatus = sslContextPointer->npnContext().status;
+- if (sslContextPointer->npnContext().status == QSslConfiguration::NextProtocolNegotiationUnsupported) {
+- // we could not agree -> be conservative and use HTTP/1.1
+- configuration.nextNegotiatedProtocol = QByteArrayLiteral("http/1.1");
+- } else {
+- const unsigned char *proto = 0;
+- unsigned int proto_len = 0;
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+- if (q_SSLeay() >= 0x10002000L) {
+- q_SSL_get0_alpn_selected(ssl, &proto, &proto_len);
+- if (proto_len && mode == QSslSocket::SslClientMode) {
+- // Client does not have a callback that sets it ...
+- configuration.nextProtocolNegotiationStatus = QSslConfiguration::NextProtocolNegotiationNegotiated;
+- }
+- }
+-
+- if (!proto_len) { // Test if NPN was more lucky ...
+-#else
+- {
+-#endif
+- q_SSL_get0_next_proto_negotiated(ssl, &proto, &proto_len);
+- }
+-
+- if (proto_len)
+- configuration.nextNegotiatedProtocol = QByteArray(reinterpret_cast<const char *>(proto), proto_len);
+- else
+- configuration.nextNegotiatedProtocol.clear();
+- }
+-#endif // OPENSSL_VERSION_NUMBER >= 0x1000100fL ...
+-
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+- if (q_SSLeay() >= 0x10002000L && mode == QSslSocket::SslClientMode) {
+- EVP_PKEY *key;
+- if (q_SSL_get_server_tmp_key(ssl, &key))
+- configuration.ephemeralServerKey = QSslKey(key, QSsl::PublicKey);
+- }
+-#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L ...
+-
+- connectionEncrypted = true;
+- emit q->encrypted();
+- if (autoStartHandshake && pendingClose) {
+- pendingClose = false;
+- q->disconnectFromHost();
+- }
+-}
+-
+ QList<QSslCertificate> QSslSocketBackendPrivate::STACKOFX509_to_QSslCertificates(STACK_OF(X509) *x509)
+ {
+ ensureInitialized();
+@@ -1695,12 +1395,12 @@ QList<QSslError> QSslSocketBackendPrivat
+ QMutexLocker sslErrorListMutexLocker(&_q_sslErrorList()->mutex);
+
+ // Register a custom callback to get all verification errors.
+- X509_STORE_set_verify_cb_func(certStore, q_X509Callback);
++ q_X509_STORE_set_verify_cb(certStore, q_X509Callback);
+
+ // Build the chain of intermediate certificates
+ STACK_OF(X509) *intermediates = 0;
+ if (certificateChain.length() > 1) {
+- intermediates = (STACK_OF(X509) *) q_sk_new_null();
++ intermediates = (STACK_OF(X509) *) q_OPENSSL_sk_new_null();
+
+ if (!intermediates) {
+ q_X509_STORE_free(certStore);
+@@ -1714,11 +1414,8 @@ QList<QSslError> QSslSocketBackendPrivat
+ first = false;
+ continue;
+ }
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+- q_sk_push( (_STACK *)intermediates, reinterpret_cast<X509 *>(cert.handle()));
+-#else
+- q_sk_push( (STACK *)intermediates, reinterpret_cast<char *>(cert.handle()));
+-#endif
++
++ q_OPENSSL_sk_push((OPENSSL_STACK *)intermediates, reinterpret_cast<X509 *>(cert.handle()));
+ }
+ }
+
+@@ -1742,11 +1439,7 @@ QList<QSslError> QSslSocketBackendPrivat
+ (void) q_X509_verify_cert(storeContext);
+
+ q_X509_STORE_CTX_free(storeContext);
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+- q_sk_free( (_STACK *) intermediates);
+-#else
+- q_sk_free( (STACK *) intermediates);
+-#endif
++ q_OPENSSL_sk_free((OPENSSL_STACK *)intermediates);
+
+ // Now process the errors
+ const auto errorList = std::move(_q_sslErrorList()->errors);
+@@ -1820,7 +1513,8 @@ bool QSslSocketBackendPrivate::importPkc
+ // Convert to Qt types
+ if (!key->d->fromEVP_PKEY(pkey)) {
+ qCWarning(lcSsl, "Unable to convert private key");
+- q_sk_pop_free(reinterpret_cast<STACK *>(ca), reinterpret_cast<void(*)(void*)>(q_sk_free));
++ q_OPENSSL_sk_pop_free(reinterpret_cast<OPENSSL_STACK *>(ca),
++ reinterpret_cast<void (*)(void *)>(q_OPENSSL_sk_free));
+ q_X509_free(x509);
+ q_EVP_PKEY_free(pkey);
+ q_PKCS12_free(p12);
+@@ -1835,7 +1529,11 @@ bool QSslSocketBackendPrivate::importPkc
+ *caCertificates = QSslSocketBackendPrivate::STACKOFX509_to_QSslCertificates(ca);
+
+ // Clean up
+- q_sk_pop_free(reinterpret_cast<STACK *>(ca), reinterpret_cast<void(*)(void*)>(q_sk_free));
++ // TODO: verify ASAP, in the past we had sk_pop_free with q_OPENSSL_sk_free
++ // which seems to be blatantly wrong and even crashes with 1.1.
++ q_OPENSSL_sk_pop_free(reinterpret_cast<OPENSSL_STACK *>(ca),
++ reinterpret_cast<void (*)(void *)>(q_X509_free));
++
+ q_X509_free(x509);
+ q_EVP_PKEY_free(pkey);
+ q_PKCS12_free(p12);
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl11.cpp
+===================================================================
+--- /dev/null
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl11.cpp
+@@ -0,0 +1,285 @@
++/****************************************************************************
++**
++** Copyright (C) 2017 The Qt Company Ltd.
++** Copyright (C) 2014 Governikus GmbH & Co. KG
++** Copyright (C) 2016 Richard J. Moore <rich@kde.org>
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the QtNetwork module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see https://www.qt.io/terms-conditions. For further
++** information use the contact form at https://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 3 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL3 included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 3 requirements
++** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 2.0 or (at your option) the GNU General
++** Public license version 3 or any later version approved by the KDE Free
++** Qt Foundation. The licenses are as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
++** included in the packaging of this file. Please review the following
++** information to ensure the GNU General Public License requirements will
++** be met: https://www.gnu.org/licenses/gpl-2.0.html and
++** https://www.gnu.org/licenses/gpl-3.0.html.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++/****************************************************************************
++**
++** In addition, as a special exception, the copyright holders listed above give
++** permission to link the code of its release of Qt with the OpenSSL project's
++** "OpenSSL" library (or modified versions of the "OpenSSL" library that use the
++** same license as the original version), and distribute the linked executables.
++**
++** You must comply with the GNU General Public License version 2 in all
++** respects for all of the code used other than the "OpenSSL" code. If you
++** modify this file, you may extend this exception to your version of the file,
++** but you are not obligated to do so. If you do not wish to do so, delete
++** this exception statement from your version of this file.
++**
++****************************************************************************/
++
++//#define QT_DECRYPT_SSL_TRAFFIC
++
++#include "qssl_p.h"
++#include "qsslsocket_openssl_p.h"
++#include "qsslsocket_openssl_symbols_p.h"
++#include "qsslsocket.h"
++#include "qsslkey.h"
++
++#include <QtCore/qdebug.h>
++#include <QtCore/qdir.h>
++#include <QtCore/qdiriterator.h>
++#include <QtCore/qfile.h>
++#include <QtCore/qmutex.h>
++#include <QtCore/qlibrary.h>
++
++QT_BEGIN_NAMESPACE
++
++Q_GLOBAL_STATIC_WITH_ARGS(QMutex, qt_opensslInitMutex, (QMutex::Recursive))
++
++/*!
++ \internal
++*/
++void QSslSocketPrivate::deinitialize()
++{
++ // This function exists only for compatibility with the pre-11 code,
++ // where deinitialize() actually does some cleanup. To be discarded
++ // once we retire < 1.1.
++}
++
++bool QSslSocketPrivate::ensureLibraryLoaded()
++{
++ if (!q_resolveOpenSslSymbols())
++ return false;
++
++ const QMutexLocker locker(qt_opensslInitMutex);
++
++ if (!s_libraryLoaded) {
++ s_libraryLoaded = true;
++
++ // Initialize OpenSSL.
++ if (q_OPENSSL_init_ssl(0, nullptr) != 1)
++ return false;
++ q_SSL_load_error_strings();
++ q_OpenSSL_add_all_algorithms();
++
++ QSslSocketBackendPrivate::s_indexForSSLExtraData
++ = q_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, 0L, nullptr, nullptr,
++ nullptr, nullptr);
++
++ // Initialize OpenSSL's random seed.
++ if (!q_RAND_status()) {
++ qWarning("Random number generator not seeded, disabling SSL support");
++ return false;
++ }
++ }
++ return true;
++}
++
++void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
++{
++ const QMutexLocker locker(qt_opensslInitMutex);
++
++ if (s_loadedCiphersAndCerts)
++ return;
++ s_loadedCiphersAndCerts = true;
++
++ resetDefaultCiphers();
++ resetDefaultEllipticCurves();
++
++#if QT_CONFIG(library)
++ //load symbols needed to receive certificates from system store
++#if defined(Q_OS_WIN)
++ HINSTANCE hLib = LoadLibraryW(L"Crypt32");
++ if (hLib) {
++ ptrCertOpenSystemStoreW = (PtrCertOpenSystemStoreW)GetProcAddress(hLib, "CertOpenSystemStoreW");
++ ptrCertFindCertificateInStore = (PtrCertFindCertificateInStore)GetProcAddress(hLib, "CertFindCertificateInStore");
++ ptrCertCloseStore = (PtrCertCloseStore)GetProcAddress(hLib, "CertCloseStore");
++ if (!ptrCertOpenSystemStoreW || !ptrCertFindCertificateInStore || !ptrCertCloseStore)
++ qCWarning(lcSsl, "could not resolve symbols in crypt32 library"); // should never happen
++ } else {
++ qCWarning(lcSsl, "could not load crypt32 library"); // should never happen
++ }
++#elif defined(Q_OS_QNX)
++ s_loadRootCertsOnDemand = true;
++#elif defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN)
++ // check whether we can enable on-demand root-cert loading (i.e. check whether the sym links are there)
++ QList<QByteArray> dirs = unixRootCertDirectories();
++ QStringList symLinkFilter;
++ symLinkFilter << QLatin1String("[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].[0-9]");
++ for (int a = 0; a < dirs.count(); ++a) {
++ QDirIterator iterator(QLatin1String(dirs.at(a)), symLinkFilter, QDir::Files);
++ if (iterator.hasNext()) {
++ s_loadRootCertsOnDemand = true;
++ break;
++ }
++ }
++#endif
++#endif // QT_CONFIG(library)
++ // if on-demand loading was not enabled, load the certs now
++ if (!s_loadRootCertsOnDemand)
++ setDefaultCaCertificates(systemCaCertificates());
++#ifdef Q_OS_WIN
++ //Enabled for fetching additional root certs from windows update on windows 6+
++ //This flag is set false by setDefaultCaCertificates() indicating the app uses
++ //its own cert bundle rather than the system one.
++ //Same logic that disables the unix on demand cert loading.
++ //Unlike unix, we do preload the certificates from the cert store.
++ if ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) >= QSysInfo::WV_6_0)
++ s_loadRootCertsOnDemand = true;
++#endif
++}
++
++long QSslSocketPrivate::sslLibraryVersionNumber()
++{
++ if (!supportsSsl())
++ return 0;
++
++ return q_OpenSSL_version_num();
++}
++
++QString QSslSocketPrivate::sslLibraryVersionString()
++{
++ if (!supportsSsl())
++ return QString();
++
++ const char *versionString = q_OpenSSL_version(OPENSSL_VERSION);
++ if (!versionString)
++ return QString();
++
++ return QString::fromLatin1(versionString);
++}
++
++void QSslSocketBackendPrivate::continueHandshake()
++{
++ Q_Q(QSslSocket);
++ // if we have a max read buffer size, reset the plain socket's to match
++ if (readBufferMaxSize)
++ plainSocket->setReadBufferSize(readBufferMaxSize);
++
++ if (q_SSL_session_reused(ssl))
++ configuration.peerSessionShared = true;
++
++#ifdef QT_DECRYPT_SSL_TRAFFIC
++ if (q_SSL_get_session(ssl)) {
++ size_t master_key_len = q_SSL_SESSION_get_master_key(q_SSL_get_session(ssl), 0, 0);
++ size_t client_random_len = q_SSL_get_client_random(ssl, 0, 0);
++ QByteArray masterKey(int(master_key_len), 0); // Will not overflow
++ QByteArray clientRandom(int(client_random_len), 0); // Will not overflow
++
++ q_SSL_SESSION_get_master_key(q_SSL_get_session(ssl),
++ reinterpret_cast<unsigned char*>(masterKey.data()),
++ masterKey.size());
++ q_SSL_get_client_random(ssl, reinterpret_cast<unsigned char *>(clientRandom.data()),
++ clientRandom.size());
++
++ QByteArray debugLineClientRandom("CLIENT_RANDOM ");
++ debugLineClientRandom.append(clientRandom.toHex().toUpper());
++ debugLineClientRandom.append(" ");
++ debugLineClientRandom.append(masterKey.toHex().toUpper());
++ debugLineClientRandom.append("\n");
++
++ QString sslKeyFile = QDir::tempPath() + QLatin1String("/qt-ssl-keys");
++ QFile file(sslKeyFile);
++ if (!file.open(QIODevice::Append))
++ qCWarning(lcSsl) << "could not open file" << sslKeyFile << "for appending";
++ if (!file.write(debugLineClientRandom))
++ qCWarning(lcSsl) << "could not write to file" << sslKeyFile;
++ file.close();
++ } else {
++ qCWarning(lcSsl, "could not decrypt SSL traffic");
++ }
++#endif
++
++ // Cache this SSL session inside the QSslContext
++ if (!(configuration.sslOptions & QSsl::SslOptionDisableSessionSharing)) {
++ if (!sslContextPointer->cacheSession(ssl)) {
++ sslContextPointer.clear(); // we could not cache the session
++ } else {
++ // Cache the session for permanent usage as well
++ if (!(configuration.sslOptions & QSsl::SslOptionDisableSessionPersistence)) {
++ if (!sslContextPointer->sessionASN1().isEmpty())
++ configuration.sslSession = sslContextPointer->sessionASN1();
++ configuration.sslSessionTicketLifeTimeHint = sslContextPointer->sessionTicketLifeTimeHint();
++ }
++ }
++ }
++
++#if !defined(OPENSSL_NO_NEXTPROTONEG)
++
++ configuration.nextProtocolNegotiationStatus = sslContextPointer->npnContext().status;
++ if (sslContextPointer->npnContext().status == QSslConfiguration::NextProtocolNegotiationUnsupported) {
++ // we could not agree -> be conservative and use HTTP/1.1
++ configuration.nextNegotiatedProtocol = QByteArrayLiteral("http/1.1");
++ } else {
++ const unsigned char *proto = 0;
++ unsigned int proto_len = 0;
++
++ q_SSL_get0_alpn_selected(ssl, &proto, &proto_len);
++ if (proto_len && mode == QSslSocket::SslClientMode) {
++ // Client does not have a callback that sets it ...
++ configuration.nextProtocolNegotiationStatus = QSslConfiguration::NextProtocolNegotiationNegotiated;
++ }
++
++ if (!proto_len) { // Test if NPN was more lucky ...
++ q_SSL_get0_next_proto_negotiated(ssl, &proto, &proto_len);
++ }
++
++ if (proto_len)
++ configuration.nextNegotiatedProtocol = QByteArray(reinterpret_cast<const char *>(proto), proto_len);
++ else
++ configuration.nextNegotiatedProtocol.clear();
++ }
++#endif // !defined(OPENSSL_NO_NEXTPROTONEG)
++
++ if (mode == QSslSocket::SslClientMode) {
++ EVP_PKEY *key;
++ if (q_SSL_get_server_tmp_key(ssl, &key))
++ configuration.ephemeralServerKey = QSslKey(key, QSsl::PublicKey);
++ }
++
++ connectionEncrypted = true;
++ emit q->encrypted();
++ if (autoStartHandshake && pendingClose) {
++ pendingClose = false;
++ q->disconnectFromHost();
++ }
++}
++
++QT_END_NAMESPACE
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl11_symbols_p.h
+===================================================================
+--- /dev/null
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl11_symbols_p.h
+@@ -0,0 +1,132 @@
++/****************************************************************************
++**
++** Copyright (C) 2017 The Qt Company Ltd.
++** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
++** Copyright (C) 2016 Richard J. Moore <rich@kde.org>
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the QtNetwork module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see https://www.qt.io/terms-conditions. For further
++** information use the contact form at https://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 3 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL3 included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 3 requirements
++** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 2.0 or (at your option) the GNU General
++** Public license version 3 or any later version approved by the KDE Free
++** Qt Foundation. The licenses are as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
++** included in the packaging of this file. Please review the following
++** information to ensure the GNU General Public License requirements will
++** be met: https://www.gnu.org/licenses/gpl-2.0.html and
++** https://www.gnu.org/licenses/gpl-3.0.html.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++/****************************************************************************
++**
++** In addition, as a special exception, the copyright holders listed above give
++** permission to link the code of its release of Qt with the OpenSSL project's
++** "OpenSSL" library (or modified versions of the "OpenSSL" library that use the
++** same license as the original version), and distribute the linked executables.
++**
++** You must comply with the GNU General Public License version 2 in all
++** respects for all of the code used other than the "OpenSSL" code. If you
++** modify this file, you may extend this exception to your version of the file,
++** but you are not obligated to do so. If you do not wish to do so, delete
++** this exception statement from your version of this file.
++**
++****************************************************************************/
++
++#ifndef QSSLSOCKET_OPENSSL11_SYMBOLS_P_H
++#define QSSLSOCKET_OPENSSL11_SYMBOLS_P_H
++
++//
++// W A R N I N G
++// -------------
++//
++// This file is not part of the Qt API. It exists purely as an
++// implementation detail. This header file may change from version to
++// version without notice, or even be removed.
++//
++// We mean it.
++//
++
++// Note: this file does not have QT_BEGIN_NAMESPACE/QT_END_NAMESPACE, it's done
++// in qsslsocket_openssl_symbols_p.h.
++
++#ifndef QSSLSOCKET_OPENSSL_SYMBOLS_P_H
++#error "You are not supposed to use this header file, include qsslsocket_openssl_symbols_p.h instead"
++#endif
++
++const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x);
++
++Q_AUTOTEST_EXPORT BIO *q_BIO_new(const BIO_METHOD *a);
++Q_AUTOTEST_EXPORT const BIO_METHOD *q_BIO_s_mem();
++
++int q_DSA_bits(DSA *a);
++int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
++int q_EVP_PKEY_base_id(EVP_PKEY *a);
++int q_RSA_bits(RSA *a);
++int q_OPENSSL_sk_num(OPENSSL_STACK *a);
++void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
++OPENSSL_STACK *q_OPENSSL_sk_new_null();
++void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data);
++void q_OPENSSL_sk_free(OPENSSL_STACK *a);
++void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b);
++int q_SSL_session_reused(SSL *a);
++unsigned long q_SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
++int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
++size_t q_SSL_get_client_random(SSL *a, unsigned char *out, size_t outlen);
++size_t q_SSL_SESSION_get_master_key(const SSL_SESSION *session, unsigned char *out, size_t outlen);
++int q_CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
++const SSL_METHOD *q_TLS_method();
++const SSL_METHOD *q_TLS_client_method();
++const SSL_METHOD *q_TLS_server_method();
++ASN1_TIME *q_X509_getm_notBefore(X509 *a);
++ASN1_TIME *q_X509_getm_notAfter(X509 *a);
++
++long q_X509_get_version(X509 *a);
++EVP_PKEY *q_X509_get_pubkey(X509 *a);
++void q_X509_STORE_set_verify_cb(X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb);
++STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
++void q_DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
++int q_DH_bits(DH *dh);
++
++# define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
++ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
++
++#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_OPENSSL_sk_num)(st)
++#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_OPENSSL_sk_value)(st, i)
++
++#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
++ | OPENSSL_INIT_ADD_ALL_DIGESTS \
++ | OPENSSL_INIT_LOAD_CONFIG, NULL)
++#define q_OPENSSL_add_all_algorithms_noconf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
++ | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
++
++int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
++void q_CRYPTO_free(void *str, const char *file, int line);
++
++long q_OpenSSL_version_num();
++const char *q_OpenSSL_version(int type);
++
++unsigned long q_SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session);
++
++#endif
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl_p.h
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslsocket_openssl_p.h
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl_p.h
+@@ -1,6 +1,6 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2016 The Qt Company Ltd.
++** Copyright (C) 2017 The Qt Company Ltd.
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the QtNetwork module of the Qt Toolkit.
+@@ -98,8 +98,8 @@
+ #include <openssl/crypto.h>
+ #include <openssl/tls1.h>
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+-typedef _STACK STACK;
++#if QT_CONFIG(opensslv11)
++#include <openssl/dh.h>
+ #endif
+
+ QT_BEGIN_NAMESPACE
+@@ -151,7 +151,7 @@ public:
+ #endif
+
+ Q_AUTOTEST_EXPORT static long setupOpenSslOptions(QSsl::SslProtocol protocol, QSsl::SslOptions sslOptions);
+- static QSslCipher QSslCipher_from_SSL_CIPHER(SSL_CIPHER *cipher);
++ static QSslCipher QSslCipher_from_SSL_CIPHER(const SSL_CIPHER *cipher);
+ static QList<QSslCertificate> STACKOFX509_to_QSslCertificates(STACK_OF(X509) *x509);
+ static QList<QSslError> verify(const QList<QSslCertificate> &certificateChain, const QString &hostName);
+ static QString getErrorsFromOpenSsl();
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl_symbols.cpp
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslsocket_openssl_symbols.cpp
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl_symbols.cpp
+@@ -1,7 +1,8 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2016 The Qt Company Ltd.
++** Copyright (C) 2017 The Qt Company Ltd.
+ ** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
++** Copyright (C) 2016 Richard J. Moore <rich@kde.org>
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the QtNetwork module of the Qt Toolkit.
+@@ -136,49 +137,195 @@ void qsslSocketCannotResolveSymbolWarnin
+
+ #endif // QT_LINKED_OPENSSL
+
++#if QT_CONFIG(opensslv11)
++
++// Below are the functions first introduced in version 1.1:
++
++DEFINEFUNC(const unsigned char *, ASN1_STRING_get0_data, const ASN1_STRING *a, a, return 0, return)
++DEFINEFUNC2(int, OPENSSL_init_ssl, uint64_t opts, opts, const OPENSSL_INIT_SETTINGS *settings, settings, return 0, return)
++DEFINEFUNC2(int, OPENSSL_init_crypto, uint64_t opts, opts, const OPENSSL_INIT_SETTINGS *settings, settings, return 0, return)
++DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return)
++DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
++DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return)
++DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return)
++DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return)
++DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return)
++DEFINEFUNC(int, DSA_bits, DSA *a, a, return 0, return)
++DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return)
++DEFINEFUNC2(void, OPENSSL_sk_pop_free, OPENSSL_STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
++DEFINEFUNC(OPENSSL_STACK *, OPENSSL_sk_new_null, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC2(void, OPENSSL_sk_push, OPENSSL_STACK *a, a, void *b, b, return, DUMMYARG)
++DEFINEFUNC(void, OPENSSL_sk_free, OPENSSL_STACK *a, a, return, DUMMYARG)
++DEFINEFUNC2(void *, OPENSSL_sk_value, OPENSSL_STACK *a, a, int b, b, return 0, return)
++DEFINEFUNC(int, SSL_session_reused, SSL *a, a, return 0, return)
++DEFINEFUNC2(unsigned long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, unsigned long op, op, return 0, return)
++DEFINEFUNC3(size_t, SSL_get_client_random, SSL *a, a, unsigned char *out, out, size_t outlen, outlen, return 0, return)
++DEFINEFUNC3(size_t, SSL_SESSION_get_master_key, const SSL_SESSION *ses, ses, unsigned char *out, out, size_t outlen, outlen, return 0, return)
++DEFINEFUNC6(int, CRYPTO_get_ex_new_index, int class_index, class_index, long argl, argl, void *argp, argp, CRYPTO_EX_new *new_func, new_func, CRYPTO_EX_dup *dup_func, dup_func, CRYPTO_EX_free *free_func, free_func, return -1, return)
++
++DEFINEFUNC(const SSL_METHOD *, TLS_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(const SSL_METHOD *, TLS_client_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(const SSL_METHOD *, TLS_server_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(ASN1_TIME *, X509_getm_notBefore, X509 *a, a, return 0, return)
++DEFINEFUNC(ASN1_TIME *, X509_getm_notAfter, X509 *a, a, return 0, return)
++DEFINEFUNC(long, X509_get_version, X509 *a, a, return -1, return)
++DEFINEFUNC(EVP_PKEY *, X509_get_pubkey, X509 *a, a, return 0, return)
++DEFINEFUNC2(void, X509_STORE_set_verify_cb, X509_STORE *a, a, X509_STORE_CTX_verify_cb verify_cb, verify_cb, return, DUMMYARG)
++DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return 0, return)
++DEFINEFUNC3(void, CRYPTO_free, void *str, str, const char *file, file, int line, line, return, DUMMYARG)
++DEFINEFUNC(long, OpenSSL_version_num, void, DUMMYARG, return 0, return)
++DEFINEFUNC(const char *, OpenSSL_version, int a, a, return 0, return)
++DEFINEFUNC(unsigned long, SSL_SESSION_get_ticket_lifetime_hint, const SSL_SESSION *session, session, return 0, return)
++DEFINEFUNC4(void, DH_get0_pqg, const DH *dh, dh, const BIGNUM **p, p, const BIGNUM **q, q, const BIGNUM **g, g, return, DUMMYARG)
++DEFINEFUNC(int, DH_bits, DH *dh, dh, return 0, return)
++
++#else // QT_CONFIG(opensslv11)
++
++// Functions below are either deprecated or removed in OpenSSL >= 1.1:
++
++DEFINEFUNC(unsigned char *, ASN1_STRING_data, ASN1_STRING *a, a, return 0, return)
++
+ #ifdef SSLEAY_MACROS
+ DEFINEFUNC3(void *, ASN1_dup, i2d_of_void *a, a, d2i_of_void *b, b, char *c, c, return 0, return)
+ #endif
++DEFINEFUNC2(BIO *, BIO_new_file, const char *filename, filename, const char *mode, mode, return 0, return)
++DEFINEFUNC(void, ERR_clear_error, DUMMYARG, DUMMYARG, return, DUMMYARG)
++DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return)
++DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
++DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG)
++DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG)
++DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
++DEFINEFUNC(unsigned long, ERR_peek_last_error, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(void, ERR_free_strings, void, DUMMYARG, return, DUMMYARG)
++DEFINEFUNC(void, EVP_CIPHER_CTX_cleanup, EVP_CIPHER_CTX *a, a, return, DUMMYARG)
++DEFINEFUNC(void, EVP_CIPHER_CTX_init, EVP_CIPHER_CTX *a, a, return, DUMMYARG)
++
++#ifdef SSLEAY_MACROS
++DEFINEFUNC6(void *, PEM_ASN1_read_bio, d2i_of_void *a, a, const char *b, b, BIO *c, c, void **d, d, pem_password_cb *e, e, void *f, f, return 0, return)
++DEFINEFUNC6(void *, PEM_ASN1_write_bio, d2i_of_void *a, a, const char *b, b, BIO *c, c, void **d, d, pem_password_cb *e, e, void *f, f, return 0, return)
++#endif // SSLEAY_MACROS
++
++DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
++DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++DEFINEFUNC(_STACK *, sk_new_null, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC2(void, sk_push, _STACK *a, a, void *b, b, return, DUMMYARG)
++DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG)
++DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return 0, return)
++#else
++DEFINEFUNC(STACK *, sk_new_null, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC2(void, sk_push, STACK *a, a, char *b, b, return, DUMMYARG)
++DEFINEFUNC(void, sk_free, STACK *a, a, return, DUMMYARG)
++DEFINEFUNC2(char *, sk_value, STACK *a, a, int b, b, return 0, return)
++#endif // OPENSSL_VERSION_NUMBER >= 0x10000000L
++
++DEFINEFUNC(int, SSL_library_init, void, DUMMYARG, return -1, return)
++DEFINEFUNC(void, SSL_load_error_strings, void, DUMMYARG, return, DUMMYARG)
++
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++DEFINEFUNC5(int, SSL_get_ex_new_index, long argl, argl, void *argp, argp, CRYPTO_EX_new *new_func, new_func, CRYPTO_EX_dup *dup_func, dup_func, CRYPTO_EX_free *free_func, free_func, return -1, return)
++#endif // OPENSSL_VERSION_NUMBER >= 0x10001000L
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++#ifndef OPENSSL_NO_SSL2
++DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++DEFINEFUNC(const SSL_METHOD *, TLSv1_1_client_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(const SSL_METHOD *, TLSv1_2_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++#ifndef OPENSSL_NO_SSL2
++DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++DEFINEFUNC(const SSL_METHOD *, TLSv1_1_server_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(const SSL_METHOD *, TLSv1_2_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++#else
++#ifndef OPENSSL_NO_SSL2
++DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++DEFINEFUNC(SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++DEFINEFUNC(SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#ifndef OPENSSL_NO_SSL2
++DEFINEFUNC(SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++DEFINEFUNC(SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++DEFINEFUNC(SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
++
++DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get_chain, X509_STORE_CTX *a, a, return 0, return)
++
++#ifdef SSLEAY_MACROS
++DEFINEFUNC2(int, i2d_DSAPrivateKey, const DSA *a, a, unsigned char **b, b, return -1, return)
++DEFINEFUNC2(int, i2d_RSAPrivateKey, const RSA *a, a, unsigned char **b, b, return -1, return)
++#ifndef OPENSSL_NO_EC
++DEFINEFUNC2(int, i2d_ECPrivateKey, const EC_KEY *a, a, unsigned char **b, b, return -1, return)
++#endif
++DEFINEFUNC3(RSA *, d2i_RSAPrivateKey, RSA **a, a, unsigned char **b, b, long c, c, return 0, return)
++DEFINEFUNC3(DSA *, d2i_DSAPrivateKey, DSA **a, a, unsigned char **b, b, long c, c, return 0, return)
++#ifndef OPENSSL_NO_EC
++DEFINEFUNC3(EC_KEY *, d2i_ECPrivateKey, EC_KEY **a, a, unsigned char **b, b, long c, c, return 0, return)
++#endif
++#endif
++DEFINEFUNC(char *, CONF_get1_default_config_file, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(void, OPENSSL_add_all_algorithms_noconf, void, DUMMYARG, return, DUMMYARG)
++DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
++DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
++DEFINEFUNC(const char *, SSLeay_version, int a, a, return 0, return)
++
++#endif // QT_CONFIG(opensslv11)
++
+ DEFINEFUNC(long, ASN1_INTEGER_get, ASN1_INTEGER *a, a, return 0, return)
+-DEFINEFUNC(unsigned char *, ASN1_STRING_data, ASN1_STRING *a, a, return 0, return)
+ DEFINEFUNC(int, ASN1_STRING_length, ASN1_STRING *a, a, return 0, return)
+-DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return);
++DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return)
+ DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
+ DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
+-DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return)
+ DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return)
+ DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return)
+-DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
++
+ DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return)
+ DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return)
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+-DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return)
+-#endif
+ DEFINEFUNC2(BN_ULONG, BN_mod_word, const BIGNUM *a, a, BN_ULONG w, w, return static_cast<BN_ULONG>(-1), return)
+ #ifndef OPENSSL_NO_EC
+ DEFINEFUNC(const EC_GROUP*, EC_KEY_get0_group, const EC_KEY* k, k, return 0, return)
+ DEFINEFUNC(int, EC_GROUP_get_degree, const EC_GROUP* g, g, return 0, return)
+ #endif
+-DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG)
+-DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG)
+-DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
+ DEFINEFUNC(DSA *, DSA_new, DUMMYARG, DUMMYARG, return 0, return)
+ DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG)
+ DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, const unsigned char **b, b, long c, c, return 0, return)
+ DEFINEFUNC2(char *, ERR_error_string, unsigned long a, a, char *b, b, return 0, return)
+ DEFINEFUNC(unsigned long, ERR_get_error, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC(void, ERR_free_strings, void, DUMMYARG, return, DUMMYARG)
+-DEFINEFUNC(void, EVP_CIPHER_CTX_cleanup, EVP_CIPHER_CTX *a, a, return, DUMMYARG)
+-DEFINEFUNC(void, EVP_CIPHER_CTX_init, EVP_CIPHER_CTX *a, a, return, DUMMYARG)
+-DEFINEFUNC4(int, EVP_CIPHER_CTX_ctrl, EVP_CIPHER_CTX *ctx, ctx, int type, type, int arg, arg, void *ptr, ptr, return 0, return);
++DEFINEFUNC(EVP_CIPHER_CTX *, EVP_CIPHER_CTX_new, void, DUMMYARG, return 0, return)
++DEFINEFUNC(void, EVP_CIPHER_CTX_free, EVP_CIPHER_CTX *a, a, return, DUMMYARG)
++DEFINEFUNC4(int, EVP_CIPHER_CTX_ctrl, EVP_CIPHER_CTX *ctx, ctx, int type, type, int arg, arg, void *ptr, ptr, return 0, return)
+ DEFINEFUNC2(int, EVP_CIPHER_CTX_set_key_length, EVP_CIPHER_CTX *ctx, ctx, int keylen, keylen, return 0, return)
+-DEFINEFUNC5(int, EVP_CipherInit, EVP_CIPHER_CTX *ctx, ctx, const EVP_CIPHER *type, type, const unsigned char *key, key, const unsigned char *iv, iv, int enc, enc, return 0, return);
+-DEFINEFUNC5(int, EVP_CipherUpdate, EVP_CIPHER_CTX *ctx, ctx, unsigned char *out, out, int *outl, outl, const unsigned char *in, in, int inl, inl, return 0, return);
+-DEFINEFUNC3(int, EVP_CipherFinal, EVP_CIPHER_CTX *ctx, ctx, unsigned char *out, out, int *outl, outl, return 0, return);
++DEFINEFUNC5(int, EVP_CipherInit, EVP_CIPHER_CTX *ctx, ctx, const EVP_CIPHER *type, type, const unsigned char *key, key, const unsigned char *iv, iv, int enc, enc, return 0, return)
++DEFINEFUNC6(int, EVP_CipherInit_ex, EVP_CIPHER_CTX *ctx, ctx, const EVP_CIPHER *cipher, cipher, ENGINE *impl, impl, const unsigned char *key, key, const unsigned char *iv, iv, int enc, enc, return 0, return)
++DEFINEFUNC5(int, EVP_CipherUpdate, EVP_CIPHER_CTX *ctx, ctx, unsigned char *out, out, int *outl, outl, const unsigned char *in, in, int inl, inl, return 0, return)
++DEFINEFUNC3(int, EVP_CipherFinal, EVP_CIPHER_CTX *ctx, ctx, unsigned char *out, out, int *outl, outl, return 0, return)
+ DEFINEFUNC(const EVP_CIPHER *, EVP_des_cbc, DUMMYARG, DUMMYARG, return 0, return)
+ DEFINEFUNC(const EVP_CIPHER *, EVP_des_ede3_cbc, DUMMYARG, DUMMYARG, return 0, return)
+ DEFINEFUNC(const EVP_CIPHER *, EVP_rc2_cbc, DUMMYARG, DUMMYARG, return 0, return)
++DEFINEFUNC(const EVP_MD *, EVP_sha1, DUMMYARG, DUMMYARG, return 0, return)
+ DEFINEFUNC3(int, EVP_PKEY_assign, EVP_PKEY *a, a, int b, b, char *c, c, return -1, return)
+ DEFINEFUNC2(int, EVP_PKEY_set1_RSA, EVP_PKEY *a, a, RSA *b, b, return -1, return)
+ DEFINEFUNC2(int, EVP_PKEY_set1_DSA, EVP_PKEY *a, a, DSA *b, b, return -1, return)
+@@ -202,10 +349,8 @@ DEFINEFUNC3(int, i2t_ASN1_OBJECT, char *
+ DEFINEFUNC4(int, OBJ_obj2txt, char *a, a, int b, b, ASN1_OBJECT *c, c, int d, d, return -1, return)
+
+ DEFINEFUNC(int, OBJ_obj2nid, const ASN1_OBJECT *a, a, return NID_undef, return)
+-#ifdef SSLEAY_MACROS
+-DEFINEFUNC6(void *, PEM_ASN1_read_bio, d2i_of_void *a, a, const char *b, b, BIO *c, c, void **d, d, pem_password_cb *e, e, void *f, f, return 0, return)
+-DEFINEFUNC6(void *, PEM_ASN1_write_bio, d2i_of_void *a, a, const char *b, b, BIO *c, c, void **d, d, pem_password_cb *e, e, void *f, f, return 0, return)
+-#else
++
++#ifndef SSLEAY_MACROS
+ DEFINEFUNC4(EVP_PKEY *, PEM_read_bio_PrivateKey, BIO *a, a, EVP_PKEY **b, b, pem_password_cb *c, c, void *d, d, return 0, return)
+ DEFINEFUNC4(DSA *, PEM_read_bio_DSAPrivateKey, BIO *a, a, DSA **b, b, pem_password_cb *c, c, void *d, d, return 0, return)
+ DEFINEFUNC4(RSA *, PEM_read_bio_RSAPrivateKey, BIO *a, a, RSA **b, b, pem_password_cb *c, c, void *d, d, return 0, return)
+@@ -218,7 +363,7 @@ DEFINEFUNC7(int, PEM_write_bio_RSAPrivat
+ #ifndef OPENSSL_NO_EC
+ DEFINEFUNC7(int, PEM_write_bio_ECPrivateKey, BIO *a, a, EC_KEY *b, b, const EVP_CIPHER *c, c, unsigned char *d, d, int e, e, pem_password_cb *f, f, void *g, g, return 0, return)
+ #endif
+-#endif
++#endif // !SSLEAY_MACROS
+ DEFINEFUNC4(EVP_PKEY *, PEM_read_bio_PUBKEY, BIO *a, a, EVP_PKEY **b, b, pem_password_cb *c, c, void *d, d, return 0, return)
+ DEFINEFUNC4(DSA *, PEM_read_bio_DSA_PUBKEY, BIO *a, a, DSA **b, b, pem_password_cb *c, c, void *d, d, return 0, return)
+ DEFINEFUNC4(RSA *, PEM_read_bio_RSA_PUBKEY, BIO *a, a, RSA **b, b, pem_password_cb *c, c, void *d, d, return 0, return)
+@@ -234,23 +379,10 @@ DEFINEFUNC2(void, RAND_seed, const void
+ DEFINEFUNC(int, RAND_status, void, DUMMYARG, return -1, return)
+ DEFINEFUNC(RSA *, RSA_new, DUMMYARG, DUMMYARG, return 0, return)
+ DEFINEFUNC(void, RSA_free, RSA *a, a, return, DUMMYARG)
+-DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
+-DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+-DEFINEFUNC(_STACK *, sk_new_null, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC2(void, sk_push, _STACK *a, a, void *b, b, return, DUMMYARG)
+-DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG)
+-DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return 0, return)
+-#else
+-DEFINEFUNC(STACK *, sk_new_null, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC2(void, sk_push, STACK *a, a, char *b, b, return, DUMMYARG)
+-DEFINEFUNC(void, sk_free, STACK *a, a, return, DUMMYARG)
+-DEFINEFUNC2(char *, sk_value, STACK *a, a, int b, b, return 0, return)
+-#endif
+ DEFINEFUNC(int, SSL_accept, SSL *a, a, return -1, return)
+ DEFINEFUNC(int, SSL_clear, SSL *a, a, return -1, return)
+-DEFINEFUNC3(char *, SSL_CIPHER_description, SSL_CIPHER *a, a, char *b, b, int c, c, return 0, return)
+-DEFINEFUNC2(int, SSL_CIPHER_get_bits, SSL_CIPHER *a, a, int *b, b, return 0, return)
++DEFINEFUNC3(char *, SSL_CIPHER_description, const SSL_CIPHER *a, a, char *b, b, int c, c, return 0, return)
++DEFINEFUNC2(int, SSL_CIPHER_get_bits, const SSL_CIPHER *a, a, int *b, b, return 0, return)
+ DEFINEFUNC(int, SSL_connect, SSL *a, a, return -1, return)
+ DEFINEFUNC(int, SSL_CTX_check_private_key, const SSL_CTX *a, a, return -1, return)
+ DEFINEFUNC4(long, SSL_CTX_ctrl, SSL_CTX *a, a, int b, b, long c, c, void *d, d, return -1, return)
+@@ -287,8 +419,6 @@ DEFINEFUNC(long, SSL_get_verify_result,
+ #else
+ DEFINEFUNC(long, SSL_get_verify_result, SSL *a, a, return -1, return)
+ #endif
+-DEFINEFUNC(int, SSL_library_init, void, DUMMYARG, return -1, return)
+-DEFINEFUNC(void, SSL_load_error_strings, void, DUMMYARG, return, DUMMYARG)
+ DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a, return 0, return)
+ DEFINEFUNC4(long, SSL_ctrl, SSL *a, a, int cmd, cmd, long larg, larg, void *parg, parg, return -1, return)
+ DEFINEFUNC3(int, SSL_read, SSL *a, a, void *b, b, int c, c, return -1, return)
+@@ -301,7 +431,6 @@ DEFINEFUNC(void, SSL_SESSION_free, SSL_S
+ DEFINEFUNC(SSL_SESSION*, SSL_get1_session, SSL *ssl, ssl, return 0, return)
+ DEFINEFUNC(SSL_SESSION*, SSL_get_session, const SSL *ssl, ssl, return 0, return)
+ #if OPENSSL_VERSION_NUMBER >= 0x10001000L
+-DEFINEFUNC5(int, SSL_get_ex_new_index, long argl, argl, void *argp, argp, CRYPTO_EX_new *new_func, new_func, CRYPTO_EX_dup *dup_func, dup_func, CRYPTO_EX_free *free_func, free_func, return -1, return)
+ DEFINEFUNC3(int, SSL_set_ex_data, SSL *ssl, ssl, int idx, idx, void *arg, arg, return 0, return)
+ DEFINEFUNC2(void *, SSL_get_ex_data, const SSL *ssl, ssl, int idx, idx, return NULL, return)
+ #endif
+@@ -310,51 +439,9 @@ DEFINEFUNC2(void, SSL_set_psk_client_cal
+ DEFINEFUNC2(void, SSL_set_psk_server_callback, SSL* ssl, ssl, q_psk_server_callback_t callback, callback, return, DUMMYARG)
+ DEFINEFUNC2(int, SSL_CTX_use_psk_identity_hint, SSL_CTX* ctx, ctx, const char *hint, hint, return 0, return)
+ #endif
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+-#ifndef OPENSSL_NO_SSL2
+-DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+-DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+-DEFINEFUNC(const SSL_METHOD *, TLSv1_1_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC(const SSL_METHOD *, TLSv1_2_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-#ifndef OPENSSL_NO_SSL2
+-DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+-DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+-DEFINEFUNC(const SSL_METHOD *, TLSv1_1_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC(const SSL_METHOD *, TLSv1_2_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-#else
+-#ifndef OPENSSL_NO_SSL2
+-DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+-DEFINEFUNC(SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-DEFINEFUNC(SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC(SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
+-#ifndef OPENSSL_NO_SSL2
+-DEFINEFUNC(SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+-DEFINEFUNC(SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+-DEFINEFUNC(SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-DEFINEFUNC(SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
+-#endif
+ DEFINEFUNC3(int, SSL_write, SSL *a, a, const void *b, b, int c, c, return -1, return)
+ DEFINEFUNC2(int, X509_cmp, X509 *a, a, X509 *b, b, return -1, return)
++DEFINEFUNC4(int, X509_digest, const X509 *x509, x509, const EVP_MD *type, type, unsigned char *md, md, unsigned int *len, len, return -1, return)
+ #ifndef SSLEAY_MACROS
+ DEFINEFUNC(X509 *, X509_dup, X509 *a, a, return 0, return)
+ #endif
+@@ -378,6 +465,7 @@ DEFINEFUNC2(int, ASN1_STRING_print, BIO
+ DEFINEFUNC2(int, X509_check_issued, X509 *a, a, X509 *b, b, return -1, return)
+ DEFINEFUNC(X509_NAME *, X509_get_issuer_name, X509 *a, a, return 0, return)
+ DEFINEFUNC(X509_NAME *, X509_get_subject_name, X509 *a, a, return 0, return)
++DEFINEFUNC(ASN1_INTEGER *, X509_get_serialNumber, X509 *a, a, return 0, return)
+ DEFINEFUNC(int, X509_verify_cert, X509_STORE_CTX *a, a, return -1, return)
+ DEFINEFUNC(int, X509_NAME_entry_count, X509_NAME *a, a, return 0, return)
+ DEFINEFUNC2(X509_NAME_ENTRY *, X509_NAME_get_entry, X509_NAME *a, a, int b, b, return 0, return)
+@@ -393,7 +481,6 @@ DEFINEFUNC2(int, X509_STORE_CTX_set_purp
+ DEFINEFUNC(int, X509_STORE_CTX_get_error, X509_STORE_CTX *a, a, return -1, return)
+ DEFINEFUNC(int, X509_STORE_CTX_get_error_depth, X509_STORE_CTX *a, a, return -1, return)
+ DEFINEFUNC(X509 *, X509_STORE_CTX_get_current_cert, X509_STORE_CTX *a, a, return 0, return)
+-DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get_chain, X509_STORE_CTX *a, a, return 0, return)
+ DEFINEFUNC(X509_STORE_CTX *, X509_STORE_CTX_new, DUMMYARG, DUMMYARG, return 0, return)
+ #ifdef SSLEAY_MACROS
+ DEFINEFUNC2(int, i2d_DSAPrivateKey, const DSA *a, a, unsigned char **b, b, return -1, return)
+@@ -407,11 +494,7 @@ DEFINEFUNC3(DSA *, d2i_DSAPrivateKey, DS
+ DEFINEFUNC3(EC_KEY *, d2i_ECPrivateKey, EC_KEY **a, a, unsigned char **b, b, long c, c, return 0, return)
+ #endif
+ #endif
+-DEFINEFUNC(void, OPENSSL_add_all_algorithms_noconf, void, DUMMYARG, return, DUMMYARG)
+-DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
+ DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return)
+-DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
+-DEFINEFUNC(const char *, SSLeay_version, int a, a, return 0, return)
+ DEFINEFUNC2(int, i2d_SSL_SESSION, SSL_SESSION *in, in, unsigned char **pp, pp, return 0, return)
+ DEFINEFUNC3(SSL_SESSION *, d2i_SSL_SESSION, SSL_SESSION **a, a, const unsigned char **pp, pp, long length, length, return 0, return)
+ #if OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_NEXTPROTONEG)
+@@ -694,8 +777,8 @@ static QPair<QLibrary*, QLibrary*> loadO
+ #ifndef Q_OS_DARWIN
+ // second attempt: find the development files libssl.so and libcrypto.so
+ //
+- // disabled on OS X/iOS:
+- // OS X's /usr/lib/libssl.dylib, /usr/lib/libcrypto.dylib will be picked up in the third
++ // disabled on macOS/iOS:
++ // macOS's /usr/lib/libssl.dylib, /usr/lib/libcrypto.dylib will be picked up in the third
+ // attempt, _after_ <bundle>/Contents/Frameworks has been searched.
+ // iOS does not ship a system libssl.dylib, libcrypto.dylib in the first place.
+ libssl->setFileNameAndVersion(QLatin1String("ssl"), -1);
+@@ -754,8 +837,12 @@ bool q_resolveOpenSslSymbols()
+ static bool symbolsResolved = false;
+ static bool triedToResolveSymbols = false;
+ #ifndef QT_NO_THREAD
++#if QT_CONFIG(opensslv11)
++ QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_OPENSSL_init_ssl));
++#else
+ QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_SSL_library_init));
+ #endif
++#endif
+ if (symbolsResolved)
+ return true;
+ if (triedToResolveSymbols)
+@@ -771,11 +858,145 @@ bool q_resolveOpenSslSymbols()
+ // failed to load them
+ return false;
+
++#if QT_CONFIG(opensslv11)
++
++ RESOLVEFUNC(OPENSSL_init_ssl)
++ RESOLVEFUNC(OPENSSL_init_crypto)
++ RESOLVEFUNC(ASN1_STRING_get0_data)
++ RESOLVEFUNC(EVP_CIPHER_CTX_reset)
++ RESOLVEFUNC(EVP_PKEY_base_id)
++ RESOLVEFUNC(RSA_bits)
++ RESOLVEFUNC(OPENSSL_sk_new_null)
++ RESOLVEFUNC(OPENSSL_sk_push)
++ RESOLVEFUNC(OPENSSL_sk_free)
++ RESOLVEFUNC(OPENSSL_sk_num)
++ RESOLVEFUNC(OPENSSL_sk_pop_free)
++ RESOLVEFUNC(OPENSSL_sk_value)
++ RESOLVEFUNC(DH_get0_pqg)
++ RESOLVEFUNC(SSL_CTX_set_options)
++ RESOLVEFUNC(SSL_get_client_random)
++ RESOLVEFUNC(SSL_SESSION_get_master_key)
++ RESOLVEFUNC(SSL_session_reused)
++ RESOLVEFUNC(SSL_get_session)
++ RESOLVEFUNC(CRYPTO_get_ex_new_index)
++ RESOLVEFUNC(TLS_method)
++ RESOLVEFUNC(TLS_client_method)
++ RESOLVEFUNC(TLS_server_method)
++ RESOLVEFUNC(X509_STORE_CTX_get0_chain)
++ RESOLVEFUNC(X509_getm_notBefore)
++ RESOLVEFUNC(X509_getm_notAfter)
++ RESOLVEFUNC(X509_get_version)
++ RESOLVEFUNC(X509_get_pubkey)
++ RESOLVEFUNC(X509_STORE_set_verify_cb)
++ RESOLVEFUNC(CRYPTO_free)
++ RESOLVEFUNC(OpenSSL_version_num)
++ RESOLVEFUNC(OpenSSL_version)
++ if (!_q_OpenSSL_version) {
++ // Apparently, we were built with OpenSSL 1.1 enabled but are now using
++ // a wrong library.
++ delete libs.first;
++ delete libs.second;
++ qCWarning(lcSsl, "Incompatible version of OpenSSL");
++ return false;
++ }
++
++ RESOLVEFUNC(SSL_SESSION_get_ticket_lifetime_hint)
++ RESOLVEFUNC(DH_bits)
++ RESOLVEFUNC(DSA_bits)
++
++#else // !opensslv11
++
++ RESOLVEFUNC(ASN1_STRING_data)
++
+ #ifdef SSLEAY_MACROS
+ RESOLVEFUNC(ASN1_dup)
++#endif // SSLEAY_MACROS
++ RESOLVEFUNC(BIO_new_file)
++ RESOLVEFUNC(ERR_clear_error)
++ RESOLVEFUNC(CRYPTO_free)
++ RESOLVEFUNC(CRYPTO_num_locks)
++ RESOLVEFUNC(CRYPTO_set_id_callback)
++ RESOLVEFUNC(CRYPTO_set_locking_callback)
++ RESOLVEFUNC(ERR_peek_last_error)
++ RESOLVEFUNC(ERR_free_strings)
++ RESOLVEFUNC(EVP_CIPHER_CTX_cleanup)
++ RESOLVEFUNC(EVP_CIPHER_CTX_init)
++
++#ifdef SSLEAY_MACROS // ### verify
++ RESOLVEFUNC(PEM_ASN1_read_bio)
++#endif // SSLEAY_MACROS
++
++ RESOLVEFUNC(sk_new_null)
++ RESOLVEFUNC(sk_push)
++ RESOLVEFUNC(sk_free)
++ RESOLVEFUNC(sk_num)
++ RESOLVEFUNC(sk_pop_free)
++ RESOLVEFUNC(sk_value)
++ RESOLVEFUNC(SSL_library_init)
++ RESOLVEFUNC(SSL_load_error_strings)
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++ RESOLVEFUNC(SSL_get_ex_new_index)
++#endif
++#ifndef OPENSSL_NO_SSL2
++ RESOLVEFUNC(SSLv2_client_method)
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++ RESOLVEFUNC(SSLv3_client_method)
++#endif
++ RESOLVEFUNC(SSLv23_client_method)
++ RESOLVEFUNC(TLSv1_client_method)
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++ RESOLVEFUNC(TLSv1_1_client_method)
++ RESOLVEFUNC(TLSv1_2_client_method)
+ #endif
++#ifndef OPENSSL_NO_SSL2
++ RESOLVEFUNC(SSLv2_server_method)
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++ RESOLVEFUNC(SSLv3_server_method)
++#endif
++ RESOLVEFUNC(SSLv23_server_method)
++ RESOLVEFUNC(TLSv1_server_method)
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++ RESOLVEFUNC(TLSv1_1_server_method)
++ RESOLVEFUNC(TLSv1_2_server_method)
++#endif
++ RESOLVEFUNC(X509_STORE_CTX_get_chain)
++#ifdef SSLEAY_MACROS
++ RESOLVEFUNC(i2d_DSAPrivateKey)
++ RESOLVEFUNC(i2d_RSAPrivateKey)
++ RESOLVEFUNC(d2i_DSAPrivateKey)
++ RESOLVEFUNC(d2i_RSAPrivateKey)
++#endif
++ RESOLVEFUNC(CONF_get1_default_config_file)
++ RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf)
++ RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
++ RESOLVEFUNC(SSLeay)
++
++ if (!_q_SSLeay || q_SSLeay() >= 0x10100000L) {
++ // OpenSSL 1.1 has deprecated and removed SSLeay. We consider a failure to
++ // resolve this symbol as a failure to resolve symbols.
++ // The right operand of '||' above is ... a bit of paranoia.
++ delete libs.first;
++ delete libs.second;
++ qCWarning(lcSsl, "Incompatible version of OpenSSL");
++ return false;
++ }
++
++
++ RESOLVEFUNC(SSLeay_version)
++
++#ifndef OPENSSL_NO_EC
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++ if (q_SSLeay() >= 0x10002000L)
++ RESOLVEFUNC(EC_curve_nist2nid)
++#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
++#endif // OPENSSL_NO_EC
++
++
++#endif // !opensslv11
++
+ RESOLVEFUNC(ASN1_INTEGER_get)
+- RESOLVEFUNC(ASN1_STRING_data)
+ RESOLVEFUNC(ASN1_STRING_length)
+ RESOLVEFUNC(ASN1_STRING_to_UTF8)
+ RESOLVEFUNC(BIO_ctrl)
+@@ -794,25 +1015,22 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(BN_is_word)
+ #endif
+ RESOLVEFUNC(BN_mod_word)
+- RESOLVEFUNC(CRYPTO_free)
+- RESOLVEFUNC(CRYPTO_num_locks)
+- RESOLVEFUNC(CRYPTO_set_id_callback)
+- RESOLVEFUNC(CRYPTO_set_locking_callback)
+ RESOLVEFUNC(DSA_new)
+ RESOLVEFUNC(DSA_free)
+ RESOLVEFUNC(ERR_error_string)
+ RESOLVEFUNC(ERR_get_error)
+- RESOLVEFUNC(ERR_free_strings)
+- RESOLVEFUNC(EVP_CIPHER_CTX_cleanup)
+- RESOLVEFUNC(EVP_CIPHER_CTX_init)
++ RESOLVEFUNC(EVP_CIPHER_CTX_new)
++ RESOLVEFUNC(EVP_CIPHER_CTX_free)
+ RESOLVEFUNC(EVP_CIPHER_CTX_ctrl)
+ RESOLVEFUNC(EVP_CIPHER_CTX_set_key_length)
+ RESOLVEFUNC(EVP_CipherInit)
++ RESOLVEFUNC(EVP_CipherInit_ex)
+ RESOLVEFUNC(EVP_CipherUpdate)
+ RESOLVEFUNC(EVP_CipherFinal)
+ RESOLVEFUNC(EVP_des_cbc)
+ RESOLVEFUNC(EVP_des_ede3_cbc)
+ RESOLVEFUNC(EVP_rc2_cbc)
++ RESOLVEFUNC(EVP_sha1)
+ RESOLVEFUNC(EVP_PKEY_assign)
+ RESOLVEFUNC(EVP_PKEY_set1_RSA)
+ RESOLVEFUNC(EVP_PKEY_set1_DSA)
+@@ -834,9 +1052,8 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(i2t_ASN1_OBJECT)
+ RESOLVEFUNC(OBJ_obj2txt)
+ RESOLVEFUNC(OBJ_obj2nid)
+-#ifdef SSLEAY_MACROS // ### verify
+- RESOLVEFUNC(PEM_ASN1_read_bio)
+-#else
++
++#ifndef SSLEAY_MACROS
+ RESOLVEFUNC(PEM_read_bio_PrivateKey)
+ RESOLVEFUNC(PEM_read_bio_DSAPrivateKey)
+ RESOLVEFUNC(PEM_read_bio_RSAPrivateKey)
+@@ -849,7 +1066,8 @@ bool q_resolveOpenSslSymbols()
+ #ifndef OPENSSL_NO_EC
+ RESOLVEFUNC(PEM_write_bio_ECPrivateKey)
+ #endif
+-#endif
++#endif // !SSLEAY_MACROS
++
+ RESOLVEFUNC(PEM_read_bio_PUBKEY)
+ RESOLVEFUNC(PEM_read_bio_DSA_PUBKEY)
+ RESOLVEFUNC(PEM_read_bio_RSA_PUBKEY)
+@@ -865,12 +1083,6 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(RAND_status)
+ RESOLVEFUNC(RSA_new)
+ RESOLVEFUNC(RSA_free)
+- RESOLVEFUNC(sk_new_null)
+- RESOLVEFUNC(sk_push)
+- RESOLVEFUNC(sk_free)
+- RESOLVEFUNC(sk_num)
+- RESOLVEFUNC(sk_pop_free)
+- RESOLVEFUNC(sk_value)
+ RESOLVEFUNC(SSL_CIPHER_description)
+ RESOLVEFUNC(SSL_CIPHER_get_bits)
+ RESOLVEFUNC(SSL_CTX_check_private_key)
+@@ -898,8 +1110,6 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(SSL_get_peer_cert_chain)
+ RESOLVEFUNC(SSL_get_peer_certificate)
+ RESOLVEFUNC(SSL_get_verify_result)
+- RESOLVEFUNC(SSL_library_init)
+- RESOLVEFUNC(SSL_load_error_strings)
+ RESOLVEFUNC(SSL_new)
+ RESOLVEFUNC(SSL_ctrl)
+ RESOLVEFUNC(SSL_read)
+@@ -912,7 +1122,6 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(SSL_get1_session)
+ RESOLVEFUNC(SSL_get_session)
+ #if OPENSSL_VERSION_NUMBER >= 0x10001000L
+- RESOLVEFUNC(SSL_get_ex_new_index)
+ RESOLVEFUNC(SSL_set_ex_data)
+ RESOLVEFUNC(SSL_get_ex_data)
+ #endif
+@@ -922,30 +1131,6 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(SSL_CTX_use_psk_identity_hint)
+ #endif
+ RESOLVEFUNC(SSL_write)
+-#ifndef OPENSSL_NO_SSL2
+- RESOLVEFUNC(SSLv2_client_method)
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+- RESOLVEFUNC(SSLv3_client_method)
+-#endif
+- RESOLVEFUNC(SSLv23_client_method)
+- RESOLVEFUNC(TLSv1_client_method)
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+- RESOLVEFUNC(TLSv1_1_client_method)
+- RESOLVEFUNC(TLSv1_2_client_method)
+-#endif
+-#ifndef OPENSSL_NO_SSL2
+- RESOLVEFUNC(SSLv2_server_method)
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+- RESOLVEFUNC(SSLv3_server_method)
+-#endif
+- RESOLVEFUNC(SSLv23_server_method)
+- RESOLVEFUNC(TLSv1_server_method)
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+- RESOLVEFUNC(TLSv1_1_server_method)
+- RESOLVEFUNC(TLSv1_2_server_method)
+-#endif
+ RESOLVEFUNC(X509_NAME_entry_count)
+ RESOLVEFUNC(X509_NAME_get_entry)
+ RESOLVEFUNC(X509_NAME_ENTRY_get_data)
+@@ -961,12 +1146,12 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(X509_STORE_CTX_get_error)
+ RESOLVEFUNC(X509_STORE_CTX_get_error_depth)
+ RESOLVEFUNC(X509_STORE_CTX_get_current_cert)
+- RESOLVEFUNC(X509_STORE_CTX_get_chain)
+ RESOLVEFUNC(X509_cmp)
+ #ifndef SSLEAY_MACROS
+ RESOLVEFUNC(X509_dup)
+ #endif
+ RESOLVEFUNC(X509_print)
++ RESOLVEFUNC(X509_digest)
+ RESOLVEFUNC(X509_EXTENSION_get_object)
+ RESOLVEFUNC(X509_free)
+ RESOLVEFUNC(X509_get_ext)
+@@ -982,6 +1167,7 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(X509_check_issued)
+ RESOLVEFUNC(X509_get_issuer_name)
+ RESOLVEFUNC(X509_get_subject_name)
++ RESOLVEFUNC(X509_get_serialNumber)
+ RESOLVEFUNC(X509_verify_cert)
+ RESOLVEFUNC(d2i_X509)
+ RESOLVEFUNC(i2d_X509)
+@@ -991,11 +1177,7 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(d2i_DSAPrivateKey)
+ RESOLVEFUNC(d2i_RSAPrivateKey)
+ #endif
+- RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf)
+- RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
+ RESOLVEFUNC(SSL_CTX_load_verify_locations)
+- RESOLVEFUNC(SSLeay)
+- RESOLVEFUNC(SSLeay_version)
+ RESOLVEFUNC(i2d_SSL_SESSION)
+ RESOLVEFUNC(d2i_SSL_SESSION)
+ #if OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_NEXTPROTONEG)
+@@ -1019,27 +1201,14 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(EC_KEY_new_by_curve_name)
+ RESOLVEFUNC(EC_KEY_free)
+ RESOLVEFUNC(EC_get_builtin_curves)
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+- if (q_SSLeay() >= 0x10002000L)
+- RESOLVEFUNC(EC_curve_nist2nid)
+-#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
+ #endif // OPENSSL_NO_EC
+ RESOLVEFUNC(PKCS12_parse)
+ RESOLVEFUNC(d2i_PKCS12_bio)
+ RESOLVEFUNC(PKCS12_free)
+
++ symbolsResolved = true;
+ delete libs.first;
+ delete libs.second;
+- if (!_q_SSLeay || q_SSLeay() >= 0x10100000L) {
+- // OpenSSL 1.1 deprecated and removed SSLeay. We consider a failure to
+- // resolve this symbol as a failure to resolve symbols.
+- // The right operand of '||' above ... a bit of paranoia.
+- qCWarning(lcSsl, "Incompatible version of OpenSSL");
+- return false;
+- }
+-
+- symbolsResolved = true;
+-
+ return true;
+ }
+ #endif // QT_CONFIG(library)
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl_symbols_p.h
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/qsslsocket_openssl_symbols_p.h
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_openssl_symbols_p.h
+@@ -1,6 +1,6 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2016 The Qt Company Ltd.
++** Copyright (C) 2017 The Qt Company Ltd.
+ ** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+ ** Contact: https://www.qt.io/licensing/
+ **
+@@ -56,6 +56,7 @@
+ #ifndef QSSLSOCKET_OPENSSL_SYMBOLS_P_H
+ #define QSSLSOCKET_OPENSSL_SYMBOLS_P_H
+
++
+ //
+ // W A R N I N G
+ // -------------
+@@ -215,17 +216,20 @@ QT_BEGIN_NAMESPACE
+
+ #endif // !defined QT_LINKED_OPENSSL
+
++#if QT_CONFIG(opensslv11)
++#include "qsslsocket_openssl11_symbols_p.h"
++#else
++#include "qsslsocket_opensslpre11_symbols_p.h"
++#endif // QT_CONFIG
++
+ bool q_resolveOpenSslSymbols();
+ long q_ASN1_INTEGER_get(ASN1_INTEGER *a);
+-unsigned char * q_ASN1_STRING_data(ASN1_STRING *a);
+ int q_ASN1_STRING_length(ASN1_STRING *a);
+ int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
+ long q_BIO_ctrl(BIO *a, int b, long c, void *d);
+ Q_AUTOTEST_EXPORT int q_BIO_free(BIO *a);
+-Q_AUTOTEST_EXPORT BIO *q_BIO_new(BIO_METHOD *a);
+ BIO *q_BIO_new_mem_buf(void *a, int b);
+ int q_BIO_read(BIO *a, void *b, int c);
+-Q_AUTOTEST_EXPORT BIO_METHOD *q_BIO_s_mem();
+ Q_AUTOTEST_EXPORT int q_BIO_write(BIO *a, const void *b, int c);
+ int q_BN_num_bits(const BIGNUM *a);
+ #if OPENSSL_VERSION_NUMBER >= 0x10100000L
+@@ -247,26 +251,23 @@ BN_ULONG q_BN_mod_word(const BIGNUM *a,
+ const EC_GROUP* q_EC_KEY_get0_group(const EC_KEY* k);
+ int q_EC_GROUP_get_degree(const EC_GROUP* g);
+ #endif
+-int q_CRYPTO_num_locks();
+-void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int));
+-void q_CRYPTO_set_id_callback(unsigned long (*a)());
+-void q_CRYPTO_free(void *a);
+ DSA *q_DSA_new();
+ void q_DSA_free(DSA *a);
+ X509 *q_d2i_X509(X509 **a, const unsigned char **b, long c);
+ char *q_ERR_error_string(unsigned long a, char *b);
+ unsigned long q_ERR_get_error();
+-void q_ERR_free_strings();
+-void q_EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
+-void q_EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
++EVP_CIPHER_CTX *q_EVP_CIPHER_CTX_new();
++void q_EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);
+ int q_EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
+ int q_EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
+ int q_EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc);
++int q_EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl, const unsigned char *key, const unsigned char *iv, int enc);
+ int q_EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl);
+ int q_EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
+ const EVP_CIPHER *q_EVP_des_cbc();
+ const EVP_CIPHER *q_EVP_des_ede3_cbc();
+ const EVP_CIPHER *q_EVP_rc2_cbc();
++const EVP_MD *q_EVP_sha1();
+ int q_EVP_PKEY_assign(EVP_PKEY *a, int b, char *c);
+ Q_AUTOTEST_EXPORT int q_EVP_PKEY_set1_RSA(EVP_PKEY *a, RSA *b);
+ int q_EVP_PKEY_set1_DSA(EVP_PKEY *a, DSA *b);
+@@ -310,7 +311,7 @@ int q_PEM_write_bio_RSAPrivateKey(BIO *a
+ int q_PEM_write_bio_ECPrivateKey(BIO *a, EC_KEY *b, const EVP_CIPHER *c, unsigned char *d,
+ int e, pem_password_cb *f, void *g);
+ #endif
+-#endif
++#endif // SSLEAY_MACROS
+ Q_AUTOTEST_EXPORT EVP_PKEY *q_PEM_read_bio_PUBKEY(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d);
+ DSA *q_PEM_read_bio_DSA_PUBKEY(BIO *a, DSA **b, pem_password_cb *c, void *d);
+ RSA *q_PEM_read_bio_RSA_PUBKEY(BIO *a, RSA **b, pem_password_cb *c, void *d);
+@@ -326,23 +327,10 @@ void q_RAND_seed(const void *a, int b);
+ int q_RAND_status();
+ RSA *q_RSA_new();
+ void q_RSA_free(RSA *a);
+-int q_sk_num(STACK *a);
+-void q_sk_pop_free(STACK *a, void (*b)(void *));
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+-_STACK *q_sk_new_null();
+-void q_sk_push(_STACK *st, void *data);
+-void q_sk_free(_STACK *a);
+-void * q_sk_value(STACK *a, int b);
+-#else
+-STACK *q_sk_new_null();
+-void q_sk_push(STACK *st, char *data);
+-void q_sk_free(STACK *a);
+-char * q_sk_value(STACK *a, int b);
+-#endif
+ int q_SSL_accept(SSL *a);
+ int q_SSL_clear(SSL *a);
+-char *q_SSL_CIPHER_description(SSL_CIPHER *a, char *b, int c);
+-int q_SSL_CIPHER_get_bits(SSL_CIPHER *a, int *b);
++char *q_SSL_CIPHER_description(const SSL_CIPHER *a, char *b, int c);
++int q_SSL_CIPHER_get_bits(const SSL_CIPHER *a, int *b);
+ int q_SSL_connect(SSL *a);
+ int q_SSL_CTX_check_private_key(const SSL_CTX *a);
+ long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d);
+@@ -374,8 +362,6 @@ int q_SSL_get_error(SSL *a, int b);
+ STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a);
+ X509 *q_SSL_get_peer_certificate(SSL *a);
+ long q_SSL_get_verify_result(const SSL *a);
+-int q_SSL_library_init();
+-void q_SSL_load_error_strings();
+ SSL *q_SSL_new(SSL_CTX *a);
+ long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
+ int q_SSL_read(SSL *a, void *b, int c);
+@@ -388,7 +374,6 @@ void q_SSL_SESSION_free(SSL_SESSION *ses
+ SSL_SESSION *q_SSL_get1_session(SSL *ssl);
+ SSL_SESSION *q_SSL_get_session(const SSL *ssl);
+ #if OPENSSL_VERSION_NUMBER >= 0x10001000L
+-int q_SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
+ int q_SSL_set_ex_data(SSL *ssl, int idx, void *arg);
+ void *q_SSL_get_ex_data(const SSL *ssl, int idx);
+ #endif
+@@ -399,49 +384,6 @@ typedef unsigned int (*q_psk_server_call
+ void q_SSL_set_psk_server_callback(SSL *ssl, q_psk_server_callback_t callback);
+ int q_SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint);
+ #endif // OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_PSK)
+-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
+-#ifndef OPENSSL_NO_SSL2
+-const SSL_METHOD *q_SSLv2_client_method();
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+-const SSL_METHOD *q_SSLv3_client_method();
+-#endif
+-const SSL_METHOD *q_SSLv23_client_method();
+-const SSL_METHOD *q_TLSv1_client_method();
+-const SSL_METHOD *q_TLSv1_1_client_method();
+-const SSL_METHOD *q_TLSv1_2_client_method();
+-#ifndef OPENSSL_NO_SSL2
+-const SSL_METHOD *q_SSLv2_server_method();
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+-const SSL_METHOD *q_SSLv3_server_method();
+-#endif
+-const SSL_METHOD *q_SSLv23_server_method();
+-const SSL_METHOD *q_TLSv1_server_method();
+-const SSL_METHOD *q_TLSv1_1_server_method();
+-const SSL_METHOD *q_TLSv1_2_server_method();
+-#else
+-#ifndef OPENSSL_NO_SSL2
+-SSL_METHOD *q_SSLv2_client_method();
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+-SSL_METHOD *q_SSLv3_client_method();
+-#endif
+-SSL_METHOD *q_SSLv23_client_method();
+-SSL_METHOD *q_TLSv1_client_method();
+-SSL_METHOD *q_TLSv1_1_client_method();
+-SSL_METHOD *q_TLSv1_2_client_method();
+-#ifndef OPENSSL_NO_SSL2
+-SSL_METHOD *q_SSLv2_server_method();
+-#endif
+-#ifndef OPENSSL_NO_SSL3_METHOD
+-SSL_METHOD *q_SSLv3_server_method();
+-#endif
+-SSL_METHOD *q_SSLv23_server_method();
+-SSL_METHOD *q_TLSv1_server_method();
+-SSL_METHOD *q_TLSv1_1_server_method();
+-SSL_METHOD *q_TLSv1_2_server_method();
+-#endif
+ int q_SSL_write(SSL *a, const void *b, int c);
+ int q_X509_cmp(X509 *a, X509 *b);
+ #ifdef SSLEAY_MACROS
+@@ -452,6 +394,7 @@ void *q_ASN1_dup(i2d_of_void *i2d, d2i_o
+ X509 *q_X509_dup(X509 *a);
+ #endif
+ void q_X509_print(BIO *a, X509*b);
++int q_X509_digest(const X509 *x509, const EVP_MD *type, unsigned char *md, unsigned int *len);
+ ASN1_OBJECT *q_X509_EXTENSION_get_object(X509_EXTENSION *a);
+ void q_X509_free(X509 *a);
+ X509_EXTENSION *q_X509_get_ext(X509 *a, int b);
+@@ -471,6 +414,7 @@ int q_ASN1_STRING_print(BIO *a, ASN1_STR
+ int q_X509_check_issued(X509 *a, X509 *b);
+ X509_NAME *q_X509_get_issuer_name(X509 *a);
+ X509_NAME *q_X509_get_subject_name(X509 *a);
++ASN1_INTEGER *q_X509_get_serialNumber(X509 *a);
+ int q_X509_verify_cert(X509_STORE_CTX *ctx);
+ int q_X509_NAME_entry_count(X509_NAME *a);
+ X509_NAME_ENTRY *q_X509_NAME_get_entry(X509_NAME *a,int b);
+@@ -488,7 +432,6 @@ int q_X509_STORE_CTX_set_purpose(X509_ST
+ int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
+ int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
+ X509 *q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
+-STACK_OF(X509) *q_X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
+
+ // Diffie-Hellman support
+ DH *q_DH_new();
+@@ -522,34 +465,9 @@ int q_PKCS12_parse(PKCS12 *p12, const ch
+ PKCS12 *q_d2i_PKCS12_bio(BIO *bio, PKCS12 **pkcs12);
+ void q_PKCS12_free(PKCS12 *pkcs12);
+
+-
+ #define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
+ #define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
+-#ifdef SSLEAY_MACROS
+-int q_i2d_DSAPrivateKey(const DSA *a, unsigned char **pp);
+-int q_i2d_RSAPrivateKey(const RSA *a, unsigned char **pp);
+-RSA *q_d2i_RSAPrivateKey(RSA **a, unsigned char **pp, long length);
+-DSA *q_d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length);
+-#define q_PEM_read_bio_RSAPrivateKey(bp, x, cb, u) \
+- (RSA *)q_PEM_ASN1_read_bio( \
+- (void *(*)(void**, const unsigned char**, long int))q_d2i_RSAPrivateKey, PEM_STRING_RSA, bp, (void **)x, cb, u)
+-#define q_PEM_read_bio_DSAPrivateKey(bp, x, cb, u) \
+- (DSA *)q_PEM_ASN1_read_bio( \
+- (void *(*)(void**, const unsigned char**, long int))q_d2i_DSAPrivateKey, PEM_STRING_DSA, bp, (void **)x, cb, u)
+-#define q_PEM_write_bio_RSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \
+- PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_RSAPrivateKey,PEM_STRING_RSA,\
+- bp,(char *)x,enc,kstr,klen,cb,u)
+-#define q_PEM_write_bio_DSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \
+- PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\
+- bp,(char *)x,enc,kstr,klen,cb,u)
+-#define q_PEM_read_bio_DHparams(bp, dh, cb, u) \
+- (DH *)q_PEM_ASN1_read_bio( \
+- (void *(*)(void**, const unsigned char**, long int))q_d2i_DHparams, PEM_STRING_DHPARAMS, bp, (void **)x, cb, u)
+-#endif
+-#define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
+ #define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
+-#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
+-#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
+ #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st))
+ #define q_sk_GENERAL_NAME_value(st, i) q_SKM_sk_value(GENERAL_NAME, (st), (i))
+ #define q_sk_X509_num(st) q_SKM_sk_num(X509, (st))
+@@ -558,18 +476,12 @@ DSA *q_d2i_DSAPrivateKey(DSA **a, unsign
+ #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
+ #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
+ q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
+-#define q_X509_get_notAfter(x) X509_get_notAfter(x)
+-#define q_X509_get_notBefore(x) X509_get_notBefore(x)
+ #define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
+ (char *)(rsa))
+ #define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
+ (char *)(dsa))
+ #define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_conf()
+-void q_OPENSSL_add_all_algorithms_noconf();
+-void q_OPENSSL_add_all_algorithms_conf();
+ int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
+-long q_SSLeay();
+-const char *q_SSLeay_version(int type);
+ int q_i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
+ SSL_SESSION *q_d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length);
+
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_opensslpre11.cpp
+===================================================================
+--- /dev/null
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_opensslpre11.cpp
+@@ -0,0 +1,424 @@
++/****************************************************************************
++**
++** Copyright (C) 2017 The Qt Company Ltd.
++** Copyright (C) 2014 Governikus GmbH & Co. KG
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the QtNetwork module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see https://www.qt.io/terms-conditions. For further
++** information use the contact form at https://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 3 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL3 included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 3 requirements
++** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 2.0 or (at your option) the GNU General
++** Public license version 3 or any later version approved by the KDE Free
++** Qt Foundation. The licenses are as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
++** included in the packaging of this file. Please review the following
++** information to ensure the GNU General Public License requirements will
++** be met: https://www.gnu.org/licenses/gpl-2.0.html and
++** https://www.gnu.org/licenses/gpl-3.0.html.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++/****************************************************************************
++**
++** In addition, as a special exception, the copyright holders listed above give
++** permission to link the code of its release of Qt with the OpenSSL project's
++** "OpenSSL" library (or modified versions of the "OpenSSL" library that use the
++** same license as the original version), and distribute the linked executables.
++**
++** You must comply with the GNU General Public License version 2 in all
++** respects for all of the code used other than the "OpenSSL" code. If you
++** modify this file, you may extend this exception to your version of the file,
++** but you are not obligated to do so. If you do not wish to do so, delete
++** this exception statement from your version of this file.
++**
++****************************************************************************/
++
++//#define QT_DECRYPT_SSL_TRAFFIC
++
++#include "qssl_p.h"
++#include "qsslsocket_openssl_p.h"
++#include "qsslsocket_openssl_symbols_p.h"
++#include "qsslsocket.h"
++#include "qsslkey.h"
++
++#include <QtCore/qdebug.h>
++#include <QtCore/qdir.h>
++#include <QtCore/qdiriterator.h>
++#include <QtCore/qthread.h>
++#include <QtCore/qfile.h>
++#include <QtCore/qmutex.h>
++#include <QtCore/qlibrary.h>
++
++QT_BEGIN_NAMESPACE
++
++/* \internal
++
++ From OpenSSL's thread(3) manual page:
++
++ OpenSSL can safely be used in multi-threaded applications provided that at
++ least two callback functions are set.
++
++ locking_function(int mode, int n, const char *file, int line) is needed to
++ perform locking on shared data structures. (Note that OpenSSL uses a
++ number of global data structures that will be implicitly shared
++ whenever multiple threads use OpenSSL.) Multi-threaded
++ applications will crash at random if it is not set. ...
++ ...
++ id_function(void) is a function that returns a thread ID. It is not
++ needed on Windows nor on platforms where getpid() returns a different
++ ID for each thread (most notably Linux)
++*/
++
++class QOpenSslLocks
++{
++public:
++ QOpenSslLocks()
++ : initLocker(QMutex::Recursive),
++ locksLocker(QMutex::Recursive)
++ {
++ QMutexLocker locker(&locksLocker);
++ int numLocks = q_CRYPTO_num_locks();
++ locks = new QMutex *[numLocks];
++ memset(locks, 0, numLocks * sizeof(QMutex *));
++ }
++ ~QOpenSslLocks()
++ {
++ QMutexLocker locker(&locksLocker);
++ for (int i = 0; i < q_CRYPTO_num_locks(); ++i)
++ delete locks[i];
++ delete [] locks;
++
++ QSslSocketPrivate::deinitialize();
++ }
++ QMutex *lock(int num)
++ {
++ QMutexLocker locker(&locksLocker);
++ QMutex *tmp = locks[num];
++ if (!tmp)
++ tmp = locks[num] = new QMutex(QMutex::Recursive);
++ return tmp;
++ }
++
++ QMutex *globalLock()
++ {
++ return &locksLocker;
++ }
++
++ QMutex *initLock()
++ {
++ return &initLocker;
++ }
++
++private:
++ QMutex initLocker;
++ QMutex locksLocker;
++ QMutex **locks;
++};
++
++Q_GLOBAL_STATIC(QOpenSslLocks, openssl_locks)
++
++extern "C" {
++static void locking_function(int mode, int lockNumber, const char *, int)
++{
++ QMutex *mutex = openssl_locks()->lock(lockNumber);
++
++ // Lock or unlock it
++ if (mode & CRYPTO_LOCK)
++ mutex->lock();
++ else
++ mutex->unlock();
++}
++static unsigned long id_function()
++{
++ return (quintptr)QThread::currentThreadId();
++}
++
++} // extern "C"
++
++static void q_OpenSSL_add_all_algorithms_safe()
++{
++#ifdef Q_OS_WIN
++ // Prior to version 1.0.1m an attempt to call OpenSSL_add_all_algorithms on
++ // Windows could result in 'exit' call from OPENSSL_config (QTBUG-43843).
++ // We can predict this and avoid OPENSSL_add_all_algorithms call.
++ // From OpenSSL docs:
++ // "An application does not need to add algorithms to use them explicitly,
++ // for example by EVP_sha1(). It just needs to add them if it (or any of
++ // the functions it calls) needs to lookup algorithms.
++ // The cipher and digest lookup functions are used in many parts of the
++ // library. If the table is not initialized several functions will
++ // misbehave and complain they cannot find algorithms. This includes the
++ // PEM, PKCS#12, SSL and S/MIME libraries. This is a common query in
++ // the OpenSSL mailing lists."
++ //
++ // Anyway, as a result, we chose not to call this function if it would exit.
++
++ if (q_SSLeay() < 0x100010DFL)
++ {
++ // Now, before we try to call it, check if an attempt to open config file
++ // will result in exit:
++ if (char *confFileName = q_CONF_get1_default_config_file()) {
++ BIO *confFile = q_BIO_new_file(confFileName, "r");
++ const auto lastError = q_ERR_peek_last_error();
++ q_CRYPTO_free(confFileName);
++ if (confFile) {
++ q_BIO_free(confFile);
++ } else {
++ q_ERR_clear_error();
++ if (ERR_GET_REASON(lastError) == ERR_R_SYS_LIB) {
++ qCWarning(lcSsl, "failed to open openssl.conf file");
++ return;
++ }
++ }
++ }
++ }
++#endif // Q_OS_WIN
++
++ q_OpenSSL_add_all_algorithms();
++}
++
++
++/*!
++ \internal
++*/
++void QSslSocketPrivate::deinitialize()
++{
++ q_CRYPTO_set_id_callback(0);
++ q_CRYPTO_set_locking_callback(0);
++ q_ERR_free_strings();
++}
++
++
++bool QSslSocketPrivate::ensureLibraryLoaded()
++{
++ if (!q_resolveOpenSslSymbols())
++ return false;
++
++ // Check if the library itself needs to be initialized.
++ QMutexLocker locker(openssl_locks()->initLock());
++
++ if (!s_libraryLoaded) {
++ s_libraryLoaded = true;
++
++ // Initialize OpenSSL.
++ q_CRYPTO_set_id_callback(id_function);
++ q_CRYPTO_set_locking_callback(locking_function);
++ if (q_SSL_library_init() != 1)
++ return false;
++ q_SSL_load_error_strings();
++ q_OpenSSL_add_all_algorithms_safe();
++
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++ if (q_SSLeay() >= 0x10001000L)
++ QSslSocketBackendPrivate::s_indexForSSLExtraData = q_SSL_get_ex_new_index(0L, NULL, NULL, NULL, NULL);
++#endif
++
++ // Initialize OpenSSL's random seed.
++ if (!q_RAND_status()) {
++ qWarning("Random number generator not seeded, disabling SSL support");
++ return false;
++ }
++ }
++ return true;
++}
++
++void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
++{
++ QMutexLocker locker(openssl_locks()->initLock());
++ if (s_loadedCiphersAndCerts)
++ return;
++ s_loadedCiphersAndCerts = true;
++
++ resetDefaultCiphers();
++ resetDefaultEllipticCurves();
++
++#if QT_CONFIG(library)
++ //load symbols needed to receive certificates from system store
++#if defined(Q_OS_WIN)
++ HINSTANCE hLib = LoadLibraryW(L"Crypt32");
++ if (hLib) {
++ ptrCertOpenSystemStoreW = (PtrCertOpenSystemStoreW)GetProcAddress(hLib, "CertOpenSystemStoreW");
++ ptrCertFindCertificateInStore = (PtrCertFindCertificateInStore)GetProcAddress(hLib, "CertFindCertificateInStore");
++ ptrCertCloseStore = (PtrCertCloseStore)GetProcAddress(hLib, "CertCloseStore");
++ if (!ptrCertOpenSystemStoreW || !ptrCertFindCertificateInStore || !ptrCertCloseStore)
++ qCWarning(lcSsl, "could not resolve symbols in crypt32 library"); // should never happen
++ } else {
++ qCWarning(lcSsl, "could not load crypt32 library"); // should never happen
++ }
++#elif defined(Q_OS_QNX)
++ s_loadRootCertsOnDemand = true;
++#elif defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
++ // check whether we can enable on-demand root-cert loading (i.e. check whether the sym links are there)
++ QList<QByteArray> dirs = unixRootCertDirectories();
++ QStringList symLinkFilter;
++ symLinkFilter << QLatin1String("[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].[0-9]");
++ for (int a = 0; a < dirs.count(); ++a) {
++ QDirIterator iterator(QLatin1String(dirs.at(a)), symLinkFilter, QDir::Files);
++ if (iterator.hasNext()) {
++ s_loadRootCertsOnDemand = true;
++ break;
++ }
++ }
++#endif
++#endif // QT_CONFIG(library)
++ // if on-demand loading was not enabled, load the certs now
++ if (!s_loadRootCertsOnDemand)
++ setDefaultCaCertificates(systemCaCertificates());
++#ifdef Q_OS_WIN
++ //Enabled for fetching additional root certs from windows update on windows 6+
++ //This flag is set false by setDefaultCaCertificates() indicating the app uses
++ //its own cert bundle rather than the system one.
++ //Same logic that disables the unix on demand cert loading.
++ //Unlike unix, we do preload the certificates from the cert store.
++ if ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) >= QSysInfo::WV_6_0)
++ s_loadRootCertsOnDemand = true;
++#endif
++}
++
++long QSslSocketPrivate::sslLibraryVersionNumber()
++{
++ if (!supportsSsl())
++ return 0;
++
++ return q_SSLeay();
++}
++
++QString QSslSocketPrivate::sslLibraryVersionString()
++{
++ if (!supportsSsl())
++ return QString();
++
++ const char *versionString = q_SSLeay_version(SSLEAY_VERSION);
++ if (!versionString)
++ return QString();
++
++ return QString::fromLatin1(versionString);
++}
++
++void QSslSocketBackendPrivate::continueHandshake()
++{
++ Q_Q(QSslSocket);
++ // if we have a max read buffer size, reset the plain socket's to match
++ if (readBufferMaxSize)
++ plainSocket->setReadBufferSize(readBufferMaxSize);
++
++ if (q_SSL_ctrl((ssl), SSL_CTRL_GET_SESSION_REUSED, 0, NULL))
++ configuration.peerSessionShared = true;
++
++#ifdef QT_DECRYPT_SSL_TRAFFIC
++ if (ssl->session && ssl->s3) {
++ const char *mk = reinterpret_cast<const char *>(ssl->session->master_key);
++ QByteArray masterKey(mk, ssl->session->master_key_length);
++ const char *random = reinterpret_cast<const char *>(ssl->s3->client_random);
++ QByteArray clientRandom(random, SSL3_RANDOM_SIZE);
++
++ // different format, needed for e.g. older Wireshark versions:
++// const char *sid = reinterpret_cast<const char *>(ssl->session->session_id);
++// QByteArray sessionID(sid, ssl->session->session_id_length);
++// QByteArray debugLineRSA("RSA Session-ID:");
++// debugLineRSA.append(sessionID.toHex().toUpper());
++// debugLineRSA.append(" Master-Key:");
++// debugLineRSA.append(masterKey.toHex().toUpper());
++// debugLineRSA.append("\n");
++
++ QByteArray debugLineClientRandom("CLIENT_RANDOM ");
++ debugLineClientRandom.append(clientRandom.toHex().toUpper());
++ debugLineClientRandom.append(" ");
++ debugLineClientRandom.append(masterKey.toHex().toUpper());
++ debugLineClientRandom.append("\n");
++
++ QString sslKeyFile = QDir::tempPath() + QLatin1String("/qt-ssl-keys");
++ QFile file(sslKeyFile);
++ if (!file.open(QIODevice::Append))
++ qCWarning(lcSsl) << "could not open file" << sslKeyFile << "for appending";
++ if (!file.write(debugLineClientRandom))
++ qCWarning(lcSsl) << "could not write to file" << sslKeyFile;
++ file.close();
++ } else {
++ qCWarning(lcSsl, "could not decrypt SSL traffic");
++ }
++#endif
++
++ // Cache this SSL session inside the QSslContext
++ if (!(configuration.sslOptions & QSsl::SslOptionDisableSessionSharing)) {
++ if (!sslContextPointer->cacheSession(ssl)) {
++ sslContextPointer.clear(); // we could not cache the session
++ } else {
++ // Cache the session for permanent usage as well
++ if (!(configuration.sslOptions & QSsl::SslOptionDisableSessionPersistence)) {
++ if (!sslContextPointer->sessionASN1().isEmpty())
++ configuration.sslSession = sslContextPointer->sessionASN1();
++ configuration.sslSessionTicketLifeTimeHint = sslContextPointer->sessionTicketLifeTimeHint();
++ }
++ }
++ }
++
++#if OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_NEXTPROTONEG)
++
++ configuration.nextProtocolNegotiationStatus = sslContextPointer->npnContext().status;
++ if (sslContextPointer->npnContext().status == QSslConfiguration::NextProtocolNegotiationUnsupported) {
++ // we could not agree -> be conservative and use HTTP/1.1
++ configuration.nextNegotiatedProtocol = QByteArrayLiteral("http/1.1");
++ } else {
++ const unsigned char *proto = 0;
++ unsigned int proto_len = 0;
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++ if (q_SSLeay() >= 0x10002000L) {
++ q_SSL_get0_alpn_selected(ssl, &proto, &proto_len);
++ if (proto_len && mode == QSslSocket::SslClientMode) {
++ // Client does not have a callback that sets it ...
++ configuration.nextProtocolNegotiationStatus = QSslConfiguration::NextProtocolNegotiationNegotiated;
++ }
++ }
++
++ if (!proto_len) { // Test if NPN was more lucky ...
++#else
++ {
++#endif
++ q_SSL_get0_next_proto_negotiated(ssl, &proto, &proto_len);
++ }
++
++ if (proto_len)
++ configuration.nextNegotiatedProtocol = QByteArray(reinterpret_cast<const char *>(proto), proto_len);
++ else
++ configuration.nextNegotiatedProtocol.clear();
++ }
++#endif // OPENSSL_VERSION_NUMBER >= 0x1000100fL ...
++
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++ if (q_SSLeay() >= 0x10002000L && mode == QSslSocket::SslClientMode) {
++ EVP_PKEY *key;
++ if (q_SSL_get_server_tmp_key(ssl, &key))
++ configuration.ephemeralServerKey = QSslKey(key, QSsl::PublicKey);
++ }
++#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L ...
++
++ connectionEncrypted = true;
++ emit q->encrypted();
++ if (autoStartHandshake && pendingClose) {
++ pendingClose = false;
++ q->disconnectFromHost();
++ }
++}
++
++QT_END_NAMESPACE
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_opensslpre11_symbols_p.h
+===================================================================
+--- /dev/null
++++ qtbase-opensource-src-5.9.2/src/network/ssl/qsslsocket_opensslpre11_symbols_p.h
+@@ -0,0 +1,230 @@
++/****************************************************************************
++**
++** Copyright (C) 2017 The Qt Company Ltd.
++** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the QtNetwork module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see https://www.qt.io/terms-conditions. For further
++** information use the contact form at https://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 3 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL3 included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 3 requirements
++** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 2.0 or (at your option) the GNU General
++** Public license version 3 or any later version approved by the KDE Free
++** Qt Foundation. The licenses are as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
++** included in the packaging of this file. Please review the following
++** information to ensure the GNU General Public License requirements will
++** be met: https://www.gnu.org/licenses/gpl-2.0.html and
++** https://www.gnu.org/licenses/gpl-3.0.html.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++/****************************************************************************
++**
++** In addition, as a special exception, the copyright holders listed above give
++** permission to link the code of its release of Qt with the OpenSSL project's
++** "OpenSSL" library (or modified versions of the "OpenSSL" library that use the
++** same license as the original version), and distribute the linked executables.
++**
++** You must comply with the GNU General Public License version 2 in all
++** respects for all of the code used other than the "OpenSSL" code. If you
++** modify this file, you may extend this exception to your version of the file,
++** but you are not obligated to do so. If you do not wish to do so, delete
++** this exception statement from your version of this file.
++**
++****************************************************************************/
++
++
++#ifndef QSSLSOCKET_OPENSSLPRE11_SYMBOLS_P_H
++#define QSSLSOCKET_OPENSSLPRE11_SYMBOLS_P_H
++
++//
++// W A R N I N G
++// -------------
++//
++// This file is not part of the Qt API. It exists purely as an
++// implementation detail. This header file may change from version to
++// version without notice, or even be removed.
++//
++// We mean it.
++//
++
++// Note: this file does not have QT_BEGIN_NAMESPACE/QT_END_NAMESPACE, it's done
++// in qsslsocket_openssl_symbols_p.h.
++
++#ifndef QSSLSOCKET_OPENSSL_SYMBOLS_P_H
++#error "You are not supposed to use this header file, include qsslsocket_openssl_symbols_p.h instead"
++#endif
++
++unsigned char * q_ASN1_STRING_data(ASN1_STRING *a);
++BIO *q_BIO_new_file(const char *filename, const char *mode);
++void q_ERR_clear_error();
++Q_AUTOTEST_EXPORT BIO *q_BIO_new(BIO_METHOD *a);
++Q_AUTOTEST_EXPORT BIO_METHOD *q_BIO_s_mem();
++int q_CRYPTO_num_locks();
++void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int));
++void q_CRYPTO_set_id_callback(unsigned long (*a)());
++void q_CRYPTO_free(void *a);
++unsigned long q_ERR_peek_last_error();
++void q_ERR_free_strings();
++void q_EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
++void q_EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++typedef _STACK STACK;
++#endif
++
++// The typedef we use to make our pre 1.1 code look more like 1.1 (less ifdefs).
++typedef STACK OPENSSL_STACK;
++
++// We resolve q_sk_ functions, but use q_OPENSSL_sk_ macros in code to reduce
++// the amount of #ifdefs.
++int q_sk_num(STACK *a);
++#define q_OPENSSL_sk_num(a) q_sk_num(a)
++void q_sk_pop_free(STACK *a, void (*b)(void *));
++#define q_OPENSSL_sk_pop_free(a, b) q_sk_pop_free(a, b)
++STACK *q_sk_new_null();
++#define q_OPENSSL_sk_new_null() q_sk_new_null()
++
++void q_sk_free(STACK *a);
++
++// Just a name alias (not a function call expression) since in code we take an
++// address of this:
++#define q_OPENSSL_sk_free q_sk_free
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++void *q_sk_value(STACK *a, int b);
++void q_sk_push(STACK *st, void *data);
++#else
++char *q_sk_value(STACK *a, int b);
++void q_sk_push(STACK *st, char *data);
++#endif // OPENSSL_VERSION_NUMBER >= 0x10000000L
++
++#define q_OPENSSL_sk_value(a, b) q_sk_value(a, b)
++#define q_OPENSSL_sk_push(st, data) q_sk_push(st, data)
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++SSL_CTX *q_SSL_CTX_new(const SSL_METHOD *a);
++#else
++SSL_CTX *q_SSL_CTX_new(SSL_METHOD *a);
++#endif
++
++int q_SSL_library_init();
++void q_SSL_load_error_strings();
++
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++int q_SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
++#endif
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++#ifndef OPENSSL_NO_SSL2
++const SSL_METHOD *q_SSLv2_client_method();
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++const SSL_METHOD *q_SSLv3_client_method();
++#endif
++const SSL_METHOD *q_SSLv23_client_method();
++const SSL_METHOD *q_TLSv1_client_method();
++const SSL_METHOD *q_TLSv1_1_client_method();
++const SSL_METHOD *q_TLSv1_2_client_method();
++#ifndef OPENSSL_NO_SSL2
++const SSL_METHOD *q_SSLv2_server_method();
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++const SSL_METHOD *q_SSLv3_server_method();
++#endif
++const SSL_METHOD *q_SSLv23_server_method();
++const SSL_METHOD *q_TLSv1_server_method();
++const SSL_METHOD *q_TLSv1_1_server_method();
++const SSL_METHOD *q_TLSv1_2_server_method();
++#else
++#ifndef OPENSSL_NO_SSL2
++SSL_METHOD *q_SSLv2_client_method();
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++SSL_METHOD *q_SSLv3_client_method();
++#endif
++SSL_METHOD *q_SSLv23_client_method();
++SSL_METHOD *q_TLSv1_client_method();
++SSL_METHOD *q_TLSv1_1_client_method();
++SSL_METHOD *q_TLSv1_2_client_method();
++#ifndef OPENSSL_NO_SSL2
++SSL_METHOD *q_SSLv2_server_method();
++#endif
++#ifndef OPENSSL_NO_SSL3_METHOD
++SSL_METHOD *q_SSLv3_server_method();
++#endif
++SSL_METHOD *q_SSLv23_server_method();
++SSL_METHOD *q_TLSv1_server_method();
++SSL_METHOD *q_TLSv1_1_server_method();
++SSL_METHOD *q_TLSv1_2_server_method();
++#endif
++
++STACK_OF(X509) *q_X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
++
++#ifdef SSLEAY_MACROS
++int q_i2d_DSAPrivateKey(const DSA *a, unsigned char **pp);
++int q_i2d_RSAPrivateKey(const RSA *a, unsigned char **pp);
++RSA *q_d2i_RSAPrivateKey(RSA **a, unsigned char **pp, long length);
++DSA *q_d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length);
++#define q_PEM_read_bio_RSAPrivateKey(bp, x, cb, u) \
++ (RSA *)q_PEM_ASN1_read_bio( \
++ (void *(*)(void**, const unsigned char**, long int))q_d2i_RSAPrivateKey, PEM_STRING_RSA, bp, (void **)x, cb, u)
++#define q_PEM_read_bio_DSAPrivateKey(bp, x, cb, u) \
++ (DSA *)q_PEM_ASN1_read_bio( \
++ (void *(*)(void**, const unsigned char**, long int))q_d2i_DSAPrivateKey, PEM_STRING_DSA, bp, (void **)x, cb, u)
++#define q_PEM_write_bio_RSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \
++ PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_RSAPrivateKey,PEM_STRING_RSA,\
++ bp,(char *)x,enc,kstr,klen,cb,u)
++#define q_PEM_write_bio_DSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \
++ PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\
++ bp,(char *)x,enc,kstr,klen,cb,u)
++#define q_PEM_read_bio_DHparams(bp, dh, cb, u) \
++ (DH *)q_PEM_ASN1_read_bio( \
++ (void *(*)(void**, const unsigned char**, long int))q_d2i_DHparams, PEM_STRING_DHPARAMS, bp, (void **)x, cb, u)
++#endif // SSLEAY_MACROS
++
++#define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
++#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
++#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
++#define q_X509_getm_notAfter(x) X509_get_notAfter(x)
++#define q_X509_getm_notBefore(x) X509_get_notBefore(x)
++
++// "Forward compatibility" with OpenSSL 1.1 (to save on #if-ery elsewhere):
++#define q_X509_get_version(x509) q_ASN1_INTEGER_get((x509)->cert_info->version)
++#define q_ASN1_STRING_get0_data(x) q_ASN1_STRING_data(x)
++#define q_EVP_PKEY_base_id(pkey) ((pkey)->type)
++#define q_X509_get_pubkey(x509) q_X509_PUBKEY_get((x509)->cert_info->key)
++#define q_SSL_SESSION_get_ticket_lifetime_hint(s) ((s)->tlsext_tick_lifetime_hint)
++#define q_RSA_bits(rsa) q_BN_num_bits((rsa)->n)
++#define q_DSA_bits(dsa) q_BN_num_bits((dsa)->p)
++#define q_X509_STORE_set_verify_cb(s,c) X509_STORE_set_verify_cb_func((s),(c))
++
++char *q_CONF_get1_default_config_file();
++void q_OPENSSL_add_all_algorithms_noconf();
++void q_OPENSSL_add_all_algorithms_conf();
++
++long q_SSLeay();
++const char *q_SSLeay_version(int type);
++
++
++#endif // QSSLSOCKET_OPENSSL_PRE11_SYMBOLS_P_H
+Index: qtbase-opensource-src-5.9.2/src/network/ssl/ssl.pri
+===================================================================
+--- qtbase-opensource-src-5.9.2.orig/src/network/ssl/ssl.pri
++++ qtbase-opensource-src-5.9.2/src/network/ssl/ssl.pri
+@@ -60,13 +60,25 @@ qtConfig(ssl) {
+ HEADERS += ssl/qsslcontext_openssl_p.h \
+ ssl/qsslsocket_openssl_p.h \
+ ssl/qsslsocket_openssl_symbols_p.h
+- SOURCES += ssl/qsslcertificate_openssl.cpp \
+- ssl/qsslcontext_openssl.cpp \
++ SOURCES += ssl/qsslsocket_openssl_symbols.cpp \
+ ssl/qssldiffiehellmanparameters_openssl.cpp \
++ ssl/qsslcertificate_openssl.cpp \
+ ssl/qsslellipticcurve_openssl.cpp \
+ ssl/qsslkey_openssl.cpp \
+ ssl/qsslsocket_openssl.cpp \
+- ssl/qsslsocket_openssl_symbols.cpp
++ ssl/qsslcontext_openssl.cpp
++
++ qtConfig(opensslv11) {
++ HEADERS += ssl/qsslsocket_openssl11_symbols_p.h
++ SOURCES += ssl/qsslsocket_openssl11.cpp \
++ ssl/qsslcontext_openssl11.cpp
++
++ QMAKE_CXXFLAGS += -DOPENSSL_API_COMPAT=0x10100000L
++ } else {
++ HEADERS += ssl/qsslsocket_opensslpre11_symbols_p.h
++ SOURCES += ssl/qsslsocket_opensslpre11.cpp \
++ ssl/qsslcontext_opensslpre11.cpp
++ }
+
+ darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp
+
diff --git a/libraries/qt5/patches/qtwebengine-5.9.6-gcc8.patch b/libraries/qt5/patches/qtwebengine-5.9.6-gcc8.patch
new file mode 100644
index 0000000000..ba6a49fd74
--- /dev/null
+++ b/libraries/qt5/patches/qtwebengine-5.9.6-gcc8.patch
@@ -0,0 +1,24 @@
+From: Fedora
+Subject: Fix build for 32-bit platforms
+
+Apparently not upstream, can't find this anywhere. So I assume Fedora is the actual source?
+https://src.fedoraproject.org/cgit/rpms/chromium.git/tree/chromium-66.0.3359.170-gcc8-alignof.patch
+
+diff -up chromium-66.0.3359.170/src/3rdparty/chromium/mojo/public/c/system/macros.h.gcc8-alignof chromium-66.0.3359.170/src/3rdparty/chromium/mojo/public/c/system/macros.h
+--- a/src/3rdparty/chromium/mojo/public/c/system/macros.h 2018-05-15 14:58:46.448912634 -0400
++++ b/src/3rdparty/chromium/mojo/public/c/system/macros.h 2018-05-15 14:58:52.041784613 -0400
+@@ -18,7 +18,13 @@
+ #endif
+
+ // Like the C++11 |alignof| operator.
+-#if __cplusplus >= 201103L
++#if defined(__GNUC__) && __GNUC__ >= 8
++// GCC 8 has changed the alignof operator to return the minimal alignment
++// required by the target ABI, instead of the preferred alignment.
++// This means that on 32-bit x86, it will return 4 instead of 8.
++// Use __alignof__ instead to avoid this.
++#define MOJO_ALIGNOF(type) __alignof__(type)
++#elif __cplusplus >= 201103L
+ #define MOJO_ALIGNOF(type) alignof(type)
+ #elif defined(__GNUC__)
+ #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/libraries/qt5/qt5.SlackBuild b/libraries/qt5/qt5.SlackBuild
index fff7d43aba..62d71e97b3 100644
--- a/libraries/qt5/qt5.SlackBuild
+++ b/libraries/qt5/qt5.SlackBuild
@@ -103,6 +103,14 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
+# Support for openssl-1.1.x
+( cd qtbase
+ patch -p1 < $CWD/patches/0001-QSslSocket-OpenSSL-1.1-backend.patch )
+
+# Fix for gcc-8.x
+( cd qtwebengine
+ patch -p1 < $CWD/patches/qtwebengine-5.9.6-gcc8.patch )
+
# Limit -reduce-relocations to ix86 and x86_64.
# https://bugreports.qt-project.org/browse/QTBUG-36129
if echo $ARCH | grep -q '\(i.86\|x86_64\)' 2>/dev/null; then
@@ -131,7 +139,7 @@ if [ "${PROPRIETARY_CODECS:-no}" = "yes" ]; then
fi
export CFLAGS="$SLKCFLAGS"
-export CXXFLAGS="$SLKCFLAGS -std=c++11"
+export CXXFLAGS="$SLKCFLAGS"
./configure -v \
-confirm-license \
-opensource \
@@ -146,7 +154,7 @@ export CXXFLAGS="$SLKCFLAGS -std=c++11"
-system-sqlite \
-plugin-sql-sqlite \
-icu \
- -openssl-linked \
+ -openssl \
-verbose \
-dbus-linked \
-qpa xcb \
@@ -159,7 +167,6 @@ export CXXFLAGS="$SLKCFLAGS -std=c++11"
-no-strip \
-release \
-no-use-gold-linker \
- -c++std c++11 \
$CODECS \
$PULSE \
$RELOCATIONS \
diff --git a/libraries/rapidjson/rapidjson.SlackBuild b/libraries/rapidjson/rapidjson.SlackBuild
index 474a7d13e4..9daed1f6e9 100644
--- a/libraries/rapidjson/rapidjson.SlackBuild
+++ b/libraries/rapidjson/rapidjson.SlackBuild
@@ -75,7 +75,7 @@ patch -p1 < $CWD/fix-build-on-gcc7.diff
mkdir -p build
cd build
cmake \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -Wno-error=implicit-fallthrough=" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX} \
-DCMAKE_BUILD_TYPE=Release ..
diff --git a/libraries/rudiments/rudiments.SlackBuild b/libraries/rudiments/rudiments.SlackBuild
index 5ee33033b2..ecd7377f17 100644
--- a/libraries/rudiments/rudiments.SlackBuild
+++ b/libraries/rudiments/rudiments.SlackBuild
@@ -23,13 +23,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=rudiments
-VERSION=${VERSION:-0.55.0}
+VERSION=${VERSION:-1.0.5}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/libraries/rudiments/rudiments.info b/libraries/rudiments/rudiments.info
index c3cd414a19..6e6900d699 100644
--- a/libraries/rudiments/rudiments.info
+++ b/libraries/rudiments/rudiments.info
@@ -1,8 +1,8 @@
PRGNAM="rudiments"
-VERSION="0.55.0"
+VERSION="1.0.5"
HOMEPAGE="http://sqlrelay.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/rudiments/rudiments-0.55.0.tar.gz"
-MD5SUM="1b066c718074e78c96b82f900772cf6a"
+DOWNLOAD="http://downloads.sourceforge.net/rudiments/rudiments-1.0.5.tar.gz"
+MD5SUM="c44ff4cf82f30258b85aebd8e54fc37b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/sdformat/cmake.patch b/libraries/sdformat/cmake.patch
new file mode 100644
index 0000000000..38e6b6cca6
--- /dev/null
+++ b/libraries/sdformat/cmake.patch
@@ -0,0 +1,20 @@
+diff -Naur osrf-sdformat-e5ac5aaa49f2.orig/CMakeLists.txt osrf-sdformat-e5ac5aaa49f2/CMakeLists.txt
+--- osrf-sdformat-e5ac5aaa49f2.orig/CMakeLists.txt 2016-10-10 23:51:37.000000000 +0200
++++ osrf-sdformat-e5ac5aaa49f2/CMakeLists.txt 2017-07-29 19:46:16.021921859 +0200
+@@ -186,11 +186,13 @@
+ # OS Specific initialization
+ if (UNIX)
+ sdf_setup_unix()
+-else (WIN32)
++endif ()
++if (WIN32)
+ sdf_setup_windows()
+-else (APPLE)
++endif ()
++if (APPLE)
+ sdf_setup_apple()
+-endif()
++endif ()
+
+ #################################################
+ # Print warnings and errors
diff --git a/libraries/sdformat/sdformat.SlackBuild b/libraries/sdformat/sdformat.SlackBuild
index 5dea256ef6..b412d5a10d 100644
--- a/libraries/sdformat/sdformat.SlackBuild
+++ b/libraries/sdformat/sdformat.SlackBuild
@@ -71,6 +71,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Patch for cmake >= 3.9.x
+patch -p1 < $CWD/cmake.patch
+
mkdir -p build
cd build
cmake \
diff --git a/libraries/tls/tls.SlackBuild b/libraries/tls/tls.SlackBuild
index 1c02ed39ad..6b7fef6e6f 100644
--- a/libraries/tls/tls.SlackBuild
+++ b/libraries/tls/tls.SlackBuild
@@ -5,7 +5,7 @@
# Assumed to be public domain
PRGNAM=tls
-VERSION=${VERSION:-1.6}
+VERSION=${VERSION:-1.6.7}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -49,7 +49,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
+LIBS="-L/usr/lib${LIBDIRSUFFIX}/openssl-1.0" \
+CFLAGS="$SLKCFLAGS -I/usr/include/openssl-1.0" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/tls/tls.info b/libraries/tls/tls.info
index ddbc5d2333..f70fe2d73a 100644
--- a/libraries/tls/tls.info
+++ b/libraries/tls/tls.info
@@ -1,8 +1,8 @@
PRGNAM="tls"
-VERSION="1.6"
+VERSION="1.6.7"
HOMEPAGE="http://tls.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/tls/tls1.6-src.tar.gz"
-MD5SUM="eb326ff9e6fc3b9885aa5c72fb8df3bf"
+DOWNLOAD="http://downloads.sourceforge.net/tls/tls1.6.7-src.tar.gz"
+MD5SUM="2765d84a7a520c9979d82a0abebc1647"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/totem-pl-parser/totem-pl-parser.SlackBuild b/libraries/totem-pl-parser/totem-pl-parser.SlackBuild
index a65d1f9a4d..fcc7e06516 100644
--- a/libraries/totem-pl-parser/totem-pl-parser.SlackBuild
+++ b/libraries/totem-pl-parser/totem-pl-parser.SlackBuild
@@ -5,13 +5,13 @@
# Written by crocket (crockabiscuit@gmail.com)
PRGNAM=totem-pl-parser
-VERSION=${VERSION:-3.4.5}
+VERSION=${VERSION:-3.26.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -22,8 +22,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -46,30 +46,26 @@ tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -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 {} \;
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
+mkdir build
+cd build
+meson setup \
--prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --disable-static \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux
-
-make V=1
-make install-strip DESTDIR=$PKG
+ --libexecdir=/usr/lib$LIBDIRSUFFIX \
+ --buildtype=release \
+ -Denable-gtk-doc=true \
+ ..
+ninja
+DESTDIR="$PKG" ninja install
+cd ..
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
- AUTHORS COPYING.LIB ChangeLog INSTALL NEWS README \
+ AUTHORS COPYING.LIB MAINTAINERS NEWS README \
$PKG/usr/doc/$PRGNAM-$VERSION
cd $PKG/usr/doc/$PRGNAM-$VERSION
ln -sf ../../share/gtk-doc/html/$PRGNAM html
diff --git a/libraries/totem-pl-parser/totem-pl-parser.info b/libraries/totem-pl-parser/totem-pl-parser.info
index 021acd7ecc..d7c80bdfe9 100644
--- a/libraries/totem-pl-parser/totem-pl-parser.info
+++ b/libraries/totem-pl-parser/totem-pl-parser.info
@@ -1,8 +1,8 @@
PRGNAM="totem-pl-parser"
-VERSION="3.4.5"
-HOMEPAGE="ftp://ftp.gnome.org/pub/gnome/sources/totem-pl-parser"
-DOWNLOAD="http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/3.4/totem-pl-parser-3.4.5.tar.xz"
-MD5SUM="c675bb7e0195397d3870fd3c9690b220"
+VERSION="3.26.0"
+HOMEPAGE="https://git.gnome.org/browse/totem-pl-parser"
+DOWNLOAD="http://ponce.cc/slackware/sources/repo/totem-pl-parser-3.26.0.tar.xz"
+MD5SUM="a1c92d40691884ca05a70cb9993b9b9a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/ucl/ucl.SlackBuild b/libraries/ucl/ucl.SlackBuild
index d7cf336816..f11c45e090 100644
--- a/libraries/ucl/ucl.SlackBuild
+++ b/libraries/ucl/ucl.SlackBuild
@@ -71,6 +71,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+CPPFLAGS="-std=c90" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/libraries/ucommon/ucommon.SlackBuild b/libraries/ucommon/ucommon.SlackBuild
index c37d6cd1bf..fd4b20c35b 100644
--- a/libraries/ucommon/ucommon.SlackBuild
+++ b/libraries/ucommon/ucommon.SlackBuild
@@ -24,7 +24,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=ucommon
-VERSION=${VERSION:-6.1.10}
+VERSION=${VERSION:-7.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/ucommon/ucommon.info b/libraries/ucommon/ucommon.info
index b90320835d..b31fa21fa4 100644
--- a/libraries/ucommon/ucommon.info
+++ b/libraries/ucommon/ucommon.info
@@ -1,8 +1,8 @@
PRGNAM="ucommon"
-VERSION="6.1.10"
+VERSION="7.0.0"
HOMEPAGE="http://www.gnu.org/software/commoncpp/"
-DOWNLOAD="http://ftp.gnu.org/gnu/commoncpp/ucommon-6.1.10.tar.gz"
-MD5SUM="a0908c7a1abad82ce9556bb59f77bedb"
+DOWNLOAD="http://ftp.gnu.org/gnu/commoncpp/ucommon-7.0.0.tar.gz"
+MD5SUM="90468af8f6692f0b6576189927414a39"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/vte2/README b/libraries/vte2/README
new file mode 100644
index 0000000000..4c78dea1a2
--- /dev/null
+++ b/libraries/vte2/README
@@ -0,0 +1,7 @@
+VTE2 is a terminal emulator widget for use with GTK+2.
+This package contains the VTE library and development files and
+a sample implementation (vte).
+
+This package can be installed side by side with vte included in
+the default Slackware installation since this package is intended
+for use with GTK+2.
diff --git a/libraries/vte2/fix_meta_alt_keybinding.patch b/libraries/vte2/fix_meta_alt_keybinding.patch
new file mode 100644
index 0000000000..bd364be584
--- /dev/null
+++ b/libraries/vte2/fix_meta_alt_keybinding.patch
@@ -0,0 +1,74 @@
+From 180dcc578e13c6096e277fb853e7162db640f207 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Tue, 15 Nov 2011 03:06:40 -0500
+Subject: [PATCH] Map both gdk's Meta and Alt to vte's Meta for >=gtk+-3.2.2
+ compatibility
+
+Also, since VTE_META_MASK is now a mask with multiple bits set, code that
+compares gdk key modifiers to VTE_META_MASK by numerical equality is no
+longer guaranteed to work. Therefore, for such comparisons a new function,
+vte_keymap_fixup_modifiers, is introduced; it ensures that if any bits
+matching matching VTE_META_MASK are set, then all are set.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=663779
+---
+ src/keymap.c | 15 +++++++++++++--
+ src/keymap.h | 2 +-
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/src/keymap.c b/src/keymap.c
+index 9a21669..95b4c5b 100644
+--- a/src/keymap.c
++++ b/src/keymap.c
+@@ -990,6 +990,17 @@ static const struct _vte_keymap_group {
+ {GDK_KEY (F35), _vte_keymap_GDK_F35},
+ };
+
++/* Restrict modifiers to the specified mask and ensure that VTE_META_MASK,
++ * despite being a compound mask, is treated as indivisible. */
++GdkModifierType
++_vte_keymap_fixup_modifiers(GdkModifierType modifiers,
++ GdkModifierType mask)
++{
++ if (modifiers & VTE_META_MASK)
++ modifiers |= VTE_META_MASK;
++ return modifiers & mask;
++}
++
+ /* Map the specified keyval/modifier setup, dependent on the mode, to either
+ * a literal string or a capability name. */
+ void
+@@ -1104,7 +1115,7 @@ _vte_keymap_map(guint keyval,
+ } else {
+ fkey_mode = fkey_default;
+ }
+- modifiers &= (GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
++ modifiers = _vte_keymap_fixup_modifiers(modifiers, GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
+
+ /* Search for the conditions. */
+ for (i = 0; entries[i].normal_length || entries[i].special[0]; i++)
+@@ -1375,7 +1386,7 @@ _vte_keymap_key_add_key_modifiers(guint keyval,
+ return;
+ }
+
+- switch (modifiers & significant_modifiers) {
++ switch (_vte_keymap_fixup_modifiers(modifiers, significant_modifiers)) {
+ case 0:
+ modifier = 0;
+ break;
+diff --git a/src/keymap.h b/src/keymap.h
+index 243e22e..21d9b8e 100644
+--- a/src/keymap.h
++++ b/src/keymap.h
+@@ -27,7 +27,7 @@
+
+ G_BEGIN_DECLS
+
+-#define VTE_META_MASK GDK_META_MASK
++#define VTE_META_MASK (GDK_META_MASK | GDK_MOD1_MASK)
+ #define VTE_NUMLOCK_MASK GDK_MOD2_MASK
+
+ /* Map the specified keyval/modifier setup, dependent on the mode, to either
+--
+1.7.8.rc3
+
diff --git a/libraries/vte3/slack-desc b/libraries/vte2/slack-desc
index 7f685687da..1c583a507c 100644
--- a/libraries/vte3/slack-desc
+++ b/libraries/vte2/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-vte3: vte3 (terminal emulator widget)
-vte3:
-vte3: VTE3 is a terminal emulator widget for use with GTK+3. This package
-vte3: contains the VTE library and development files and a sample
-vte3: implementation (vte).
-vte3:
-vte3: VTE is used by XFce.
-vte3:
-vte3: homepage: https://github.com/GNOME/vte
-vte3:
-vte3:
+vte2: vte2 (gtk+2 terminal emulator widget)
+vte2:
+vte2: VTE2 is a terminal emulator widget for use with GTK+2. This package
+vte2: contains the VTE library and development files and a sample
+vte2: implementation (vte).
+vte2:
+vte2: homepage: https://github.com/GNOME/vte
+vte2:
+vte2:
+vte2:
+vte2:
diff --git a/libraries/vte2/vte.escape.cpu.usage.diff b/libraries/vte2/vte.escape.cpu.usage.diff
new file mode 100644
index 0000000000..e82cf46877
--- /dev/null
+++ b/libraries/vte2/vte.escape.cpu.usage.diff
@@ -0,0 +1,89 @@
+--- ./src/table.c.orig 2011-08-16 16:52:48.000000000 -0500
++++ ./src/table.c 2012-08-08 21:25:15.080344805 -0500
+@@ -550,7 +550,7 @@
+ if (G_UNLIKELY (*array == NULL)) {
+ *array = g_value_array_new(1);
+ }
+- g_value_set_long(&value, total);
++ g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT));
+ g_value_array_append(*array, &value);
+ } while (i++ < arginfo->length);
+ g_value_unset(&value);
+--- ./src/vteseq.c.orig 2011-08-16 16:52:48.000000000 -0500
++++ ./src/vteseq.c 2012-08-08 21:25:15.104344804 -0500
+@@ -557,7 +557,7 @@
+ GValueArray *params,
+ VteTerminalSequenceHandler handler)
+ {
+- vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG);
++ vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT);
+ }
+
+ static void
+@@ -1392,7 +1392,7 @@
+ static void
+ vte_sequence_handler_DC (VteTerminal *terminal, GValueArray *params)
+ {
+- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_dc);
++ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_dc);
+ }
+
+ /* Delete a line at the current cursor position. */
+@@ -1785,7 +1785,7 @@
+ static void
+ vte_sequence_handler_RI (VteTerminal *terminal, GValueArray *params)
+ {
+- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_nd);
++ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_nd);
+ }
+
+ /* Save cursor (position). */
+@@ -2777,8 +2777,7 @@
+ {
+ GValue *value;
+ VteScreen *screen;
+- long param, end, row;
+- int i;
++ long param, end, row, i, limit;
+ screen = terminal->pvt->screen;
+ /* The default is one. */
+ param = 1;
+@@ -2796,7 +2795,13 @@
+ } else {
+ end = screen->insert_delta + terminal->row_count - 1;
+ }
+- /* Insert the new lines at the cursor. */
++
++ /* Only allow to insert as many lines as there are between this row
++ * and the end of the scrolling region. See bug #676090.
++ */
++ limit = end - row + 1;
++ param = MIN (param, limit);
++
+ for (i = 0; i < param; i++) {
+ /* Clear a line off the end of the region and add one to the
+ * top of the region. */
+@@ -2817,8 +2822,7 @@
+ {
+ GValue *value;
+ VteScreen *screen;
+- long param, end, row;
+- int i;
++ long param, end, row, i, limit;
+
+ screen = terminal->pvt->screen;
+ /* The default is one. */
+@@ -2837,6 +2841,13 @@
+ } else {
+ end = screen->insert_delta + terminal->row_count - 1;
+ }
++
++ /* Only allow to delete as many lines as there are between this row
++ * and the end of the scrolling region. See bug #676090.
++ */
++ limit = end - row + 1;
++ param = MIN (param, limit);
++
+ /* Clear them from below the current cursor. */
+ for (i = 0; i < param; i++) {
+ /* Insert a line at the end of the region and remove one from
diff --git a/libraries/vte3/vte3.SlackBuild b/libraries/vte2/vte2.SlackBuild
index 22767e6827..8d137f0f6d 100644
--- a/libraries/vte3/vte3.SlackBuild
+++ b/libraries/vte2/vte2.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/sh
-# Slackware build script for vte3
+# Slackware build script for vte2
-# Copyright 2012-2017 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
+# Copyright 2017 Matteo Bernardini <ponce@slackbuilds.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,9 +22,9 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+PRGNAM=vte2
SRCNAM=vte
-PRGNAM=vte3
-VERSION=${VERSION:-0.50.2}
+VERSION=${VERSION:-0.28.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -61,9 +61,8 @@ rm -rf $PKG