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/010_avoid-raw-literal.diff44
-rw-r--r--libraries/FreeImage/FreeImage.SlackBuild6
-rw-r--r--libraries/FreeImage/FreeImage.info6
-rw-r--r--libraries/OpenAL/OpenAL.SlackBuild8
-rw-r--r--libraries/OpenSceneGraph/0008-Fix_wxWidgets_gl.patch12
-rw-r--r--libraries/OpenSceneGraph/OpenSceneGraph.SlackBuild3
-rw-r--r--libraries/SDL2/README7
-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.SlackBuild18
-rw-r--r--libraries/SFGUI/SFGUI.info6
-rw-r--r--libraries/SimGear/SimGear.SlackBuild5
-rw-r--r--libraries/agg/agg.SlackBuild1
-rw-r--r--libraries/agg/patches/0016-bad-const.patch12
-rw-r--r--libraries/argon2/README11
-rw-r--r--libraries/argon2/argon2.SlackBuild95
-rw-r--r--libraries/argon2/argon2.info10
-rw-r--r--libraries/argon2/patches/Makefile.diff11
-rw-r--r--libraries/argon2/patches/pkgconfig.diff21
-rw-r--r--libraries/argon2/slack-desc19
-rw-r--r--libraries/avr-libc/avr-libc.SlackBuild15
-rw-r--r--libraries/avr-libc/avr-libc.info6
-rw-r--r--libraries/bamf/add_compile_warning_flags.patch71
-rw-r--r--libraries/bamf/bamf.SlackBuild6
-rw-r--r--libraries/bamf/bamf.info2
-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/belle-sip/belle-sip.SlackBuild2
-rw-r--r--libraries/belle-sip/gcc9.patch19
-rw-r--r--libraries/ccrtp/ccrtp.SlackBuild2
-rw-r--r--libraries/ccrtp/ccrtp.info6
-rw-r--r--libraries/cffi/cffi.SlackBuild2
-rw-r--r--libraries/cffi/cffi.info6
-rw-r--r--libraries/cppo/README2
-rw-r--r--libraries/cppo/cppo.SlackBuild (renamed from libraries/SDL2/SDL2.SlackBuild)30
-rw-r--r--libraries/cppo/cppo.info10
-rw-r--r--libraries/cppo/slack-desc (renamed from libraries/lame/slack-desc)22
-rw-r--r--libraries/cuneiform/cuneiform-gcc.patch98
-rw-r--r--libraries/cuneiform/cuneiform.SlackBuild14
-rw-r--r--libraries/cuneiform/strings.patch19
-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/efl/0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573.patch31
-rw-r--r--libraries/efl/efl.SlackBuild3
-rw-r--r--libraries/fuzzylite/fuzzylite.SlackBuild6
-rw-r--r--libraries/fuzzylite/fuzzylite.info6
-rw-r--r--libraries/gdl/gdl.SlackBuild4
-rw-r--r--libraries/gdl/gdl.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.SlackBuild3
-rw-r--r--libraries/gtksourceview3/gtksourceview3.SlackBuild2
-rw-r--r--libraries/gtksourceview3/gtksourceview3.info8
-rw-r--r--libraries/gtksourceview4/README4
-rw-r--r--libraries/gtksourceview4/gtksourceview4.SlackBuild (renamed from libraries/libidn2/libidn2.SlackBuild)65
-rw-r--r--libraries/gtksourceview4/gtksourceview4.info10
-rw-r--r--libraries/gtksourceview4/slack-desc19
-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/isl/README8
-rw-r--r--libraries/isl/isl.SlackBuild115
-rw-r--r--libraries/isl/isl.info10
-rw-r--r--libraries/isl/slack-desc19
-rw-r--r--libraries/jansson/README1
-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/lablgtk/README2
-rw-r--r--libraries/lablgtk/lablgtk.SlackBuild10
-rw-r--r--libraries/lablgtk/lablgtk.info10
-rw-r--r--libraries/lame/CVE-2017-15018.patch.gzbin307 -> 0 bytes
-rw-r--r--libraries/lame/README5
-rw-r--r--libraries/lame/lame.SlackBuild118
-rw-r--r--libraries/lame/lame.info10
-rw-r--r--libraries/libart-lgpl/README3
-rw-r--r--libraries/libart-lgpl/libart-lgpl.SlackBuild (renamed from libraries/jansson/jansson.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++.SlackBuild116
-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/libcuefile/libcuefile.SlackBuild18
-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/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/libfreehand/Add-missing-semicolon-to-fix-build-with-icu-65.1.patch29
-rw-r--r--libraries/libfreehand/libfreehand.SlackBuild2
-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/libgksu/libgksu.SlackBuild1
-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/libgnomeprint/libgnomeprint.SlackBuild1
-rw-r--r--libraries/libgnomeprint/libgnomeprint.info2
-rw-r--r--libraries/libgnomeui/libgnomeui.SlackBuild6
-rw-r--r--libraries/libidn2/README5
-rw-r--r--libraries/libidn2/libidn2.info10
-rw-r--r--libraries/libidn2/slack-desc19
-rw-r--r--libraries/libido3/libido3.SlackBuild3
-rw-r--r--libraries/libindicator3/libindicator3.SlackBuild3
-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.SlackBuild28
-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/libopenshot-audio/libopenshot-audio.SlackBuild4
-rw-r--r--libraries/libopenshot-audio/libopenshot-audio.info6
-rw-r--r--libraries/libopenshot/libopenshot.SlackBuild4
-rw-r--r--libraries/libopenshot/libopenshot.info10
-rw-r--r--libraries/libopusenc/README2
-rw-r--r--libraries/libopusenc/libopusenc.SlackBuild99
-rw-r--r--libraries/libopusenc/libopusenc.info10
-rw-r--r--libraries/libopusenc/slack-desc19
-rw-r--r--libraries/libpeas/libpeas.SlackBuild45
-rw-r--r--libraries/libpeas/libpeas.info6
-rw-r--r--libraries/libqinfinity/libqinfinity.SlackBuild2
-rw-r--r--libraries/libquicktime/libquicktime-1.2.4-ffmpeg4.patch342
-rw-r--r--libraries/libquicktime/libquicktime.SlackBuild3
-rw-r--r--libraries/libqxt/libqxt-gcc6.patch11
-rw-r--r--libraries/libqxt/libqxt.SlackBuild3
-rw-r--r--libraries/libreplaygain/libreplaygain.SlackBuild16
-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/libsrtp/libsrtp.SlackBuild1
-rw-r--r--libraries/libtorrent-rasterbar/boost-1.72.0.patch36
-rw-r--r--libraries/libtorrent-rasterbar/libtorrent-rasterbar.SlackBuild5
-rw-r--r--libraries/libtorrent-rasterbar/libtorrent-rasterbar.info6
-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-glib/libvirt-glib.SlackBuild2
-rw-r--r--libraries/libvirt-glib/libvirt-glib.info6
-rw-r--r--libraries/libvirt-python/libvirt-python.SlackBuild5
-rw-r--r--libraries/libvirt-python/libvirt-python.info8
-rw-r--r--libraries/libvirt/libvirt.SlackBuild10
-rw-r--r--libraries/libvirt/libvirt.info8
-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.SlackBuild98
-rw-r--r--libraries/libwebp/libwebp.info10
-rw-r--r--libraries/libwebp/slack-desc19
-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/ocaml-camomile/ocaml-camomile.SlackBuild49
-rw-r--r--libraries/ocaml-camomile/ocaml-camomile.info6
-rw-r--r--libraries/ocaml-findlib/ocaml-findlib.SlackBuild8
-rw-r--r--libraries/ocaml-findlib/ocaml-findlib.info10
-rw-r--r--libraries/ocl-icd/README19
-rw-r--r--libraries/ocl-icd/ocl-icd.SlackBuild110
-rw-r--r--libraries/ocl-icd/ocl-icd.info10
-rw-r--r--libraries/ocl-icd/slack-desc19
-rw-r--r--libraries/opal/README2
-rw-r--r--libraries/opal/ffmpeg2.patch398
-rw-r--r--libraries/opal/opal.SlackBuild12
-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.SlackBuild4
-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-2.10.11-openssl11.patch212
-rw-r--r--libraries/ptlib/ptlib-gcc8.patch12
-rw-r--r--libraries/ptlib/ptlib.SlackBuild8
-rw-r--r--libraries/ptlib/ssl3.patch19
-rw-r--r--libraries/python3-PyQt5/python3-PyQt5.SlackBuild2
-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/icu4c-65.1.patch60
-rw-r--r--libraries/qt5-webkit/qt5-webkit.SlackBuild7
-rw-r--r--libraries/qt5-webkit/qt5-webkit.info6
-rw-r--r--libraries/qt5/patches/eglfs_kms_egldevice.patch34
-rw-r--r--libraries/qt5/patches/kernel_5.4_qtserialbus.patch11
-rw-r--r--libraries/qt5/patches/qt5.webengine_gcc8.patch26
-rw-r--r--libraries/qt5/patches/qtbase59-openssl11.patch3961
-rw-r--r--libraries/qt5/qt5.SlackBuild18
-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/t4k_common/916060_bugfix.patch32
-rw-r--r--libraries/t4k_common/t4k_common.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/icu4c-65.1.patch39
-rw-r--r--libraries/webkit2gtk/webkit2gtk.SlackBuild4
-rw-r--r--libraries/webkit2gtk/webkit2gtk.info8
-rw-r--r--libraries/webkitgtk/icu4c-65.1.patch39
-rw-r--r--libraries/webkitgtk/webkitgtk.SlackBuild6
-rw-r--r--libraries/webkitgtk3/icu4c-65.1.patch39
-rw-r--r--libraries/webkitgtk3/webkitgtk3.SlackBuild8
-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/wxsvg/wxsvg.SlackBuild4
-rw-r--r--libraries/wxsvg/wxsvg.info6
-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/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
322 files changed, 9553 insertions, 5224 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/010_avoid-raw-literal.diff b/libraries/FreeImage/010_avoid-raw-literal.diff
deleted file mode 100644
index a22d3f58a8..0000000000
--- a/libraries/FreeImage/010_avoid-raw-literal.diff
+++ /dev/null
@@ -1,44 +0,0 @@
-# See: https://sourceforge.net/p/freeimage/discussion/36110/thread/605ef8e4
-#
---- Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c.orig 2015-02-20 03:34:38.000000000 +1000
-+++ Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c 2016-11-20 08:42:49.733624164 +1000
-@@ -54,9 +54,9 @@
- "srl %[temp5], %[temp5], 24 \n\t" \
- "srl %[temp6], %[temp6], 24 \n\t" \
- "srl %[temp7], %[temp7], 24 \n\t" \
-- "sb %[temp5], "#R"(%[dst]) \n\t" \
-- "sb %[temp6], "#G"(%[dst]) \n\t" \
-- "sb %[temp7], "#B"(%[dst]) \n\t" \
-+ "sb %[temp5], " #R "(%[dst]) \n\t" \
-+ "sb %[temp6], " #G "(%[dst]) \n\t" \
-+ "sb %[temp7], " #B "(%[dst]) \n\t" \
-
- #define ASM_CLOBBER_LIST() \
- : [temp0]"=&r"(temp0), [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), \
---- Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c.orig 2015-02-20 03:34:36.000000000 +1000
-+++ Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c 2016-11-20 08:39:33.163757201 +1000
-@@ -34,15 +34,15 @@
- G = G - t2 + kGCst; \
- B = B + kBCst; \
- __asm__ volatile ( \
-- "shll_s.w %["#R"], %["#R"], 9 \n\t" \
-- "shll_s.w %["#G"], %["#G"], 9 \n\t" \
-- "shll_s.w %["#B"], %["#B"], 9 \n\t" \
-- "precrqu_s.qb.ph %["#R"], %["#R"], $zero \n\t" \
-- "precrqu_s.qb.ph %["#G"], %["#G"], $zero \n\t" \
-- "precrqu_s.qb.ph %["#B"], %["#B"], $zero \n\t" \
-- "srl %["#R"], %["#R"], 24 \n\t" \
-- "srl %["#G"], %["#G"], 24 \n\t" \
-- "srl %["#B"], %["#B"], 24 \n\t" \
-+ "shll_s.w %[" #R "], %[" #R "], 9 \n\t" \
-+ "shll_s.w %[" #G "], %[" #G "], 9 \n\t" \
-+ "shll_s.w %[" #B "], %[" #B "], 9 \n\t" \
-+ "precrqu_s.qb.ph %[" #R "], %[" #R "], $zero \n\t" \
-+ "precrqu_s.qb.ph %[" #G "], %[" #G "], $zero \n\t" \
-+ "precrqu_s.qb.ph %[" #B "], %[" #B "], $zero \n\t" \
-+ "srl %[" #R "], %[" #R "], 24 \n\t" \
-+ "srl %[" #G "], %[" #G "], 24 \n\t" \
-+ "srl %[" #B "], %[" #B "], 24 \n\t" \
- : [R]"+r"(R), [G]"+r"(G), [B]"+r"(B) \
- : \
- ); \
diff --git a/libraries/FreeImage/FreeImage.SlackBuild b/libraries/FreeImage/FreeImage.SlackBuild
index 9787e0772a..200292024e 100644
--- a/libraries/FreeImage/FreeImage.SlackBuild
+++ b/libraries/FreeImage/FreeImage.SlackBuild
@@ -5,7 +5,7 @@
# Taken over in 2011 by Alan Alberghini <414N@slacky.it>
PRGNAM=FreeImage
-VERSION=${VERSION:-3.17.0}
+VERSION=${VERSION:-3.18.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -53,10 +53,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 in order to compile on gcc >= 5.1 environments
-# Thanks to Christoph Willing
-patch -p0 < $CWD/010_avoid-raw-literal.diff
-
CFLAGS="$SLKCFLAGS -fexceptions -fvisibility=hidden -DNO_LCMS" \
CXXFLAGS="$SLKCFLAGS -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy" \
make INSTALLDIR=$PKG/usr/lib${LIBDIRSUFFIX} DESTDIR=$PKG
diff --git a/libraries/FreeImage/FreeImage.info b/libraries/FreeImage/FreeImage.info
index 10a5f841cb..639d2753d1 100644
--- a/libraries/FreeImage/FreeImage.info
+++ b/libraries/FreeImage/FreeImage.info
@@ -1,8 +1,8 @@
PRGNAM="FreeImage"
-VERSION="3.17.0"
+VERSION="3.18.0"
HOMEPAGE="http://freeimage.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/freeimage/FreeImage3170.zip"
-MD5SUM="459e15f0ec75d6efa3c7bd63277ead86"
+DOWNLOAD="http://downloads.sourceforge.net/freeimage/FreeImage3180.zip"
+MD5SUM="f8ba138a3be233a3eed9c456e42e2578"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/OpenAL/OpenAL.SlackBuild b/libraries/OpenAL/OpenAL.SlackBuild
index 7dccf74faf..829b3bf204 100644
--- a/libraries/OpenAL/OpenAL.SlackBuild
+++ b/libraries/OpenAL/OpenAL.SlackBuild
@@ -30,7 +30,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
@@ -41,8 +41,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"
@@ -76,7 +76,7 @@ cmake \
-DCMAKE_VERBOSE_MAKEFILE:BOOL="on" \
-DCMAKE_BUILD_TYPE=Release \
-DALSOFT_EXAMPLES=OFF \
- -DLIB_SUFFIX=${LIBDIRSUFFIX}
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} .
make
make install/strip DESTDIR=$PKG
diff --git a/libraries/OpenSceneGraph/0008-Fix_wxWidgets_gl.patch b/libraries/OpenSceneGraph/0008-Fix_wxWidgets_gl.patch
new file mode 100644
index 0000000000..70cc792eb8
--- /dev/null
+++ b/libraries/OpenSceneGraph/0008-Fix_wxWidgets_gl.patch
@@ -0,0 +1,12 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -763,8 +763,7 @@ IF (BUILD_OSG_EXAMPLES AND NOT ANDROID
+ FIND_PACKAGE(GLUT)
+ FIND_PACKAGE(FOX)
+
+- SET(wxWidgets_USE_LIBS base core gl net)
+- FIND_PACKAGE(wxWidgets)
++ FIND_PACKAGE(wxWidgets COMPONENTS base core gl net)
+
+ ENDIF(BUILD_OSG_EXAMPLES AND NOT ANDROID)
+
diff --git a/libraries/OpenSceneGraph/OpenSceneGraph.SlackBuild b/libraries/OpenSceneGraph/OpenSceneGraph.SlackBuild
index a158f30565..41183973f1 100644
--- a/libraries/OpenSceneGraph/OpenSceneGraph.SlackBuild
+++ b/libraries/OpenSceneGraph/OpenSceneGraph.SlackBuild
@@ -59,6 +59,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 {} \;
+# Work around for wx_gtk3_gl library not being linked with - thanks fedora
+patch -p1 < $CWD/0008-Fix_wxWidgets_gl.patch
+
mkdir -p build
cd build
cmake .. \
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.info b/libraries/SDL2/SDL2.info
deleted file mode 100644
index 20cbe825dc..0000000000
--- a/libraries/SDL2/SDL2.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="SDL2"
-VERSION="2.0.9"
-HOMEPAGE="https://libsdl.org"
-DOWNLOAD="https://www.libsdl.org/release/SDL2-2.0.9.tar.gz"
-MD5SUM="f2ecfba915c54f7200f504d8b48a5dfe"
-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 73562ae808..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.4}
-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 755869fb05..0000000000
--- a/libraries/SDL2_image/SDL2_image.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="SDL2_image"
-VERSION="2.0.4"
-HOMEPAGE="https://www.libsdl.org/projects/SDL_image/"
-DOWNLOAD="https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.4.tar.gz"
-MD5SUM="88b9766d5b64a67f82ba511c57e7ce10"
-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 ff3d6cb323..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.4}
-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 23ba1784ba..0000000000
--- a/libraries/SDL2_mixer/SDL2_mixer.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="SDL2_mixer"
-VERSION="2.0.4"
-HOMEPAGE="https://www.libsdl.org/projects/SDL_mixer/"
-DOWNLOAD="https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.4.tar.gz"
-MD5SUM="a36e8410cac46b00a4d01752b32c3eb1"
-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..834f3d0f3c 100644
--- a/libraries/SFGUI/SFGUI.SlackBuild
+++ b/libraries/SFGUI/SFGUI.SlackBuild
@@ -10,13 +10,13 @@
# without any warranty.
PRGNAM=SFGUI
-VERSION=${VERSION:-0.3.0}
+VERSION=${VERSION:-0.4.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
@@ -27,8 +27,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"
@@ -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
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
@@ -62,13 +62,9 @@ cd build
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX="$LIBDIRSUFFIX" \
-DCMAKE_BUILD_TYPE=Release ..
-# -DLIB_SUFFIX is ignored. Patch CMakeLists as needed.
- sed -i \
- -e "s:\\\${CMAKE_INSTALL_PREFIX}/lib:&${LIBDIRSUFFIX}:" \
- cmake_install.cmake
-
make
make install DESTDIR=$PKG
cd ..
@@ -79,7 +75,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 189165e049..008223a196 100644
--- a/libraries/SFGUI/SFGUI.info
+++ b/libraries/SFGUI/SFGUI.info
@@ -1,8 +1,8 @@
PRGNAM="SFGUI"
-VERSION="0.3.0"
+VERSION="0.4.0"
HOMEPAGE="https://github.com/TankOs/SFGUI"
-DOWNLOAD="https://github.com/TankOs/SFGUI/archive/0.3.0.zip"
-MD5SUM="9e704175dca7c8632e9f72a321c21e25"
+DOWNLOAD="https://github.com/TankOs/SFGUI/archive/0.4.0/SFGUI-0.4.0.tar.gz"
+MD5SUM="16d4784fbdba30583a6c4fd38c27b323"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="SFML"
diff --git a/libraries/SimGear/SimGear.SlackBuild b/libraries/SimGear/SimGear.SlackBuild
index 02e0b04b75..6d90182ca0 100644
--- a/libraries/SimGear/SimGear.SlackBuild
+++ b/libraries/SimGear/SimGear.SlackBuild
@@ -80,6 +80,11 @@ cd build
-DSYSTEM_EXPAT=ON \
-DENABLE_TESTS=OFF \
-DCMAKE_BUILD_TYPE=Release ..
+
+ # various CMakeLists.txt files must be revised for the newer cmake...
+ mv config.h ../3rdparty/udns/
+ mv simgear/simgear_config.h simgear/version.h ../simgear/
+
make
make install DESTDIR=$PKG
cd ..
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/argon2/README b/libraries/argon2/README
deleted file mode 100644
index d4460f624c..0000000000
--- a/libraries/argon2/README
+++ /dev/null
@@ -1,11 +0,0 @@
-This is the reference C implementation of Argon2, the password-hashing
-function that won the Password Hashing Competition (PHC).
-
-Argon2 is a password-hashing function that summarizes the state of the art
-in the design of memory-hard functions and can be used to hash passwords
-for credential storage, key derivation, or other applications.
-
-It has a simple design aimed at the highest memory filling rate and effective
-use of multiple computing units, while still providing defense against
-tradeoff attacks (by exploiting the cache and memory organization of the
-recent processors).
diff --git a/libraries/argon2/argon2.SlackBuild b/libraries/argon2/argon2.SlackBuild
deleted file mode 100644
index a72688156e..0000000000
--- a/libraries/argon2/argon2.SlackBuild
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for argon2
-
-# Copyright 2017 Mario Preksavec, Zagreb, Croatia
-# 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=argon2
-VERSION=${VERSION:-20170329_1eea010}
-SRCNAM=phc-winner-argon2
-COMMIT=${COMMIT:-1eea0104e7cb2a38c617cf90ffa46ce5db6aceda}
-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
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- LIBDIRSUFFIX="64"
-else
- LIBDIRSUFFIX=""
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $SRCNAM-COMMIT
-tar xvf $CWD/$SRCNAM-$COMMIT.tar.gz
-cd $SRCNAM-$COMMIT
-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 {} \;
-
-sed -e "s|@@LIBDIRSUFFIX@@|$LIBDIRSUFFIX|" \
- -e "s|@@VERSION@@|$VERSION|" $CWD/patches/pkgconfig.diff | patch -p1
-
-sed -e "s|@@LIBDIRSUFFIX@@|$LIBDIRSUFFIX|" $CWD/patches/Makefile.diff | patch -p1
-
-make libs DESTDIR=$PKG
-make install DESTDIR=$PKG
-
-install -Dm644 man/$PRGNAM.1 $PKG/usr/man/man1/$PRGNAM.1
-install -Dm644 lib$PRGNAM.pc $PKG/usr/lib$LIBDIRSUFFIX/pkgconfig/lib$PRGNAM.pc
-
-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 LICENSE README.md argon2-specs.pdf $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/argon2/argon2.info b/libraries/argon2/argon2.info
deleted file mode 100644
index 860af64a39..0000000000
--- a/libraries/argon2/argon2.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="argon2"
-VERSION="20170329_1eea010"
-HOMEPAGE="https://github.com/P-H-C/phc-winner-argon2/"
-DOWNLOAD="https://github.com/P-H-C/phc-winner-argon2/archive/1eea010/phc-winner-argon2-1eea0104e7cb2a38c617cf90ffa46ce5db6aceda.tar.gz"
-MD5SUM="c65e2070180a65c34db7190a6a932f3c"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Mario Preksavec"
-EMAIL="mario at slackware dot hr"
diff --git a/libraries/argon2/patches/Makefile.diff b/libraries/argon2/patches/Makefile.diff
deleted file mode 100644
index 42506d23dd..0000000000
--- a/libraries/argon2/patches/Makefile.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- argon2-20170329_1eea010/Makefile.orig 2017-03-29 00:44:20.000000000 +0200
-+++ argon2-20170329_1eea010/Makefile 2017-08-01 14:01:49.766250175 +0200
-@@ -114,7 +114,7 @@
- DESTDIR =
- PREFIX = /usr
- INCLUDE_REL = include
--LIBRARY_REL = lib
-+LIBRARY_REL = lib@@LIBDIRSUFFIX@@
- BINARY_REL = bin
-
- INST_INCLUDE = $(DESTDIR)$(PREFIX)/$(INCLUDE_REL)
diff --git a/libraries/argon2/patches/pkgconfig.diff b/libraries/argon2/patches/pkgconfig.diff
deleted file mode 100644
index 807de8045e..0000000000
--- a/libraries/argon2/patches/pkgconfig.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- argon2-20170329_1eea010/libargon2.pc.orig 2017-03-29 00:44:20.000000000 +0200
-+++ argon2-20170329_1eea010/libargon2.pc 2017-08-01 13:47:25.874580099 +0200
-@@ -1,16 +1,11 @@
--# libargon2 info for pkg-config
--## Template for downstream installers:
--## - replace @HOST_MULTIARCH@ with target arch, eg 'x86_64-linux-gnu'
--## - replace @UPSTREAM_VER@ with current version, eg '20160406'
--
- prefix=/usr
- exec_prefix=${prefix}
--libdir=${prefix}/lib/@HOST_MULTIARCH@
-+libdir=${prefix}/lib@@LIBDIRSUFFIX@@
- includedir=${prefix}/include
-
- Name: libargon2
- Description: Development libraries for libargon2
--Version: @UPSTREAM_VER@
-+Version: @@VERSION@@
- Libs: -L${libdir} -largon2 -lrt -ldl
- Cflags:
- URL: https://github.com/P-H-C/phc-winner-argon2
diff --git a/libraries/argon2/slack-desc b/libraries/argon2/slack-desc
deleted file mode 100644
index 0be295ca69..0000000000
--- a/libraries/argon2/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------------------------------------------------------|
-argon2: argon2 (password-hashing function)
-argon2:
-argon2: Argon2 is a password-hashing function that summarizes the state of
-argon2: the art in the design of memory-hard functions and can be used to
-argon2: hash passwords for credential storage, key derivation, or other
-argon2: applications.
-argon2:
-argon2: Homepage: https://github.com/P-H-C/phc-winner-argon2/
-argon2:
-argon2:
-argon2:
diff --git a/libraries/avr-libc/avr-libc.SlackBuild b/libraries/avr-libc/avr-libc.SlackBuild
index 3c1455ba09..c2866302f1 100644
--- a/libraries/avr-libc/avr-libc.SlackBuild
+++ b/libraries/avr-libc/avr-libc.SlackBuild
@@ -13,13 +13,13 @@
# incorrect use of this script.
PRGNAM=avr-libc
-VERSION=${VERSION:-1.8.1}
-BUILD=${BUILD:-3}
+VERSION=${VERSION:-2.0.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
@@ -36,8 +36,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"
@@ -65,6 +65,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 {} \;
+./bootstrap
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -82,8 +84,7 @@ CXXFLAGS="$SLKCFLAGS" \
make all
make install DOC_INST_DIR=$PKG/usr/doc/$PRGNAM-$VERSION 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
+# Don't strip the libraries to avoid damaging them
# Create the directory for program documentation.
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
diff --git a/libraries/avr-libc/avr-libc.info b/libraries/avr-libc/avr-libc.info
index b8e89f4dda..b2f5078b3d 100644
--- a/libraries/avr-libc/avr-libc.info
+++ b/libraries/avr-libc/avr-libc.info
@@ -1,8 +1,8 @@
PRGNAM="avr-libc"
-VERSION="1.8.1"
+VERSION="2.0.0"
HOMEPAGE="http://avr-libc.nongnu.org/"
-DOWNLOAD="http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.8.1.tar.bz2"
-MD5SUM="0caccead59eaaa61ac3f060ca3a803ef"
+DOWNLOAD="http://download.savannah.gnu.org/releases/avr-libc/avr-libc-2.0.0.tar.bz2"
+MD5SUM="2360981cd5d94e1d7a70dfc6983bdf15"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="avr-gcc"
diff --git a/libraries/bamf/add_compile_warning_flags.patch b/libraries/bamf/add_compile_warning_flags.patch
new file mode 100644
index 0000000000..203ccc75d3
--- /dev/null
+++ b/libraries/bamf/add_compile_warning_flags.patch
@@ -0,0 +1,71 @@
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=940164
+
+diff -Naur bamf-0.5.4.orig/configure.ac bamf-0.5.4/configure.ac
+--- bamf-0.5.4.orig/configure.ac 2018-11-07 23:39:11.355315678 +0100
++++ bamf-0.5.4/configure.ac 2019-11-18 12:57:04.534000000 +0100
+@@ -18,14 +18,15 @@
+ GNOME_COMPILE_WARNINGS(maximum)
+
+ AM_MAINTAINER_MODE
+-AM_DISABLE_STATIC
+-AM_PROG_LIBTOOL
+ AC_ISC_POSIX
+ AC_SUBST(ACLOCAL_AMFLAFS, "$ACLOCAL_FLAGS -I m4")
+
+ PKG_PROG_PKG_CONFIG
+ if test "x$PKG_CONFIG" = "x"; then AC_MSG_ERROR([You need to install pkg-config]); fi
+
++LT_INIT([disable-static])
++LT_LIB_M
++
+ # Checks for programs.
+ AC_PROG_CC
+ AM_PROG_CC_C_O
+@@ -154,8 +155,39 @@
+ #
+ AM_PATH_GTK_3_0
+
++# Compile warnings
++AC_ARG_ENABLE(compile-warnings,
++ AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],
++ [Trun on compiler warnings]),,
++ [enable_compile_warnings=maximum])
++
++warning_flags=
++
++case "$enable_compile_warnings" in
++no)
++warning_flags=
++;;
++minimum)
++warning_flags="-Wall"
++;;
++yes)
++warning_flags="-wall -Wno-error=deprecated-declarations"
++;;
++maximum|error)
++warning_flags="-Wall -Wno-error=deprecated-declarations -Wempty-body -Wformat-security -Winit-self -Warray-bounds -Wimplicit-function-declaration"
++if test "$enable_compile_warnings" = "error" ; then
++ warning_flags="$warning_flags -Werror"
++fi
++;;
++*)
++AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
++;;
++esac
++AC_MSG_CHECKING(what warning flags to pass to the C compiler)
++AC_MSG_RESULT($warning_flags)
++
+ dnl CFLAGS
+-CFLAGS="$CFLAGS -Wall -Werror -Wno-error=deprecated-declarations -Wempty-body -Wformat-security -Winit-self -Warray-bounds -Wimplicit-function-declaration -lm"
++CFLAGS="$CFLAGS $warning_flags $LIBM"
+
+ AC_SUBST(BAMFDAEMON_CFLAGS)
+ AC_SUBST(BAMFDAEMON_LIBS)
+@@ -190,5 +222,6 @@
+ Headless tests: ${enable_headless_tests}
+ Coverage Reporting: ${use_gcov}
+ Export actions menus: ${enable_export_actions_menu}
++ Compiler Flags: ${CFLAGS}
+
+ EOF
diff --git a/libraries/bamf/bamf.SlackBuild b/libraries/bamf/bamf.SlackBuild
index c950ae1115..0a12d2f802 100644
--- a/libraries/bamf/bamf.SlackBuild
+++ b/libraries/bamf/bamf.SlackBuild
@@ -70,6 +70,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 -p1 < $CWD/add_compile_warning_flags.patch
+autoreconf -vif
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -79,7 +82,8 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
- --disable-introspection \
+ --enable-introspection \
+ --enable-compile-warnings=no \
--build=$ARCH-slackware-linux
make
diff --git a/libraries/bamf/bamf.info b/libraries/bamf/bamf.info
index af9621ea49..600d9355a9 100644
--- a/libraries/bamf/bamf.info
+++ b/libraries/bamf/bamf.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://launchpad.net/bamf/0.5/0.5.4/+download/bamf-0.5.4.tar.gz"
MD5SUM="e5078ec8f6c8a9d77242010dcd3b3217"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="libgtop libwnck3"
+REQUIRES="gnome-common libgtop libwnck3"
MAINTAINER="Donald Cooley"
EMAIL="chytraeus@protonmail.com"
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/belle-sip/belle-sip.SlackBuild b/libraries/belle-sip/belle-sip.SlackBuild
index 60a6869a5c..a823f815cd 100644
--- a/libraries/belle-sip/belle-sip.SlackBuild
+++ b/libraries/belle-sip/belle-sip.SlackBuild
@@ -92,6 +92,8 @@ autoreconf -ivf
# Kill the accursed -Werror (fix for -current)
SLKCFLAGS="$SLKCFLAGS -Wno-error"
+patch -p1 < $CWD/gcc9.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
CPPFLAGS="${CPPFLAGS} -I/usr/include/antlr3" \
diff --git a/libraries/belle-sip/gcc9.patch b/libraries/belle-sip/gcc9.patch
new file mode 100644
index 0000000000..35fa1ceae0
--- /dev/null
+++ b/libraries/belle-sip/gcc9.patch
@@ -0,0 +1,19 @@
+diff --git a/src/dns.h b/src/dns.h
+index ac390ae..33d99de 100644
+--- a/src/dns.h
++++ b/src/dns.h
+@@ -158,14 +158,6 @@ DNS_PUBLIC int *dns_debug_p(void);
+
+ #define dns_quietinit(...) \
+ DNS_PRAGMA_PUSH DNS_PRAGMA_QUIET __VA_ARGS__ DNS_PRAGMA_POP
+-#elif (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4
+-#define DNS_PRAGMA_PUSH _Pragma("GCC diagnostic push")
+-#define DNS_PRAGMA_QUIET _Pragma("GCC diagnostic ignored \"-Woverride-init\"")
+-#define DNS_PRAGMA_POP _Pragma("GCC diagnostic pop")
+-
+-/* GCC parses the _Pragma operator less elegantly than clang. */
+-#define dns_quietinit(...) \
+- __extension__ ({ DNS_PRAGMA_PUSH DNS_PRAGMA_QUIET __VA_ARGS__; DNS_PRAGMA_POP })
+ #else
+ #define DNS_PRAGMA_PUSH
+ #define DNS_PRAGMA_QUIET
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/cffi/cffi.SlackBuild b/libraries/cffi/cffi.SlackBuild
index fff9a062b1..9e9f2d82e6 100644
--- a/libraries/cffi/cffi.SlackBuild
+++ b/libraries/cffi/cffi.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=cffi
-VERSION=${VERSION:-1.11.5}
+VERSION=${VERSION:-1.13.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/cffi/cffi.info b/libraries/cffi/cffi.info
index bea16058d3..f64849ab41 100644
--- a/libraries/cffi/cffi.info
+++ b/libraries/cffi/cffi.info
@@ -1,8 +1,8 @@
PRGNAM="cffi"
-VERSION="1.11.5"
+VERSION="1.13.2"
HOMEPAGE="http://cffi.readthedocs.org"
-DOWNLOAD="https://files.pythonhosted.org/packages/e7/a7/4cd50e57cc6f436f1cc3a7e8fa700ff9b8b4d471620629074913e3735fb2/cffi-1.11.5.tar.gz"
-MD5SUM="ac8492f4ad952360737413e82d661908"
+DOWNLOAD="https://files.pythonhosted.org/packages/2d/bf/960e5a422db3ac1a5e612cb35ca436c3fc985ed4b7ed13a1b4879006f450/cffi-1.13.2.tar.gz"
+MD5SUM="652203cf99faa254efff7fab23c2f3a2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="pycparser"
diff --git a/libraries/cppo/README b/libraries/cppo/README
new file mode 100644
index 0000000000..b8f9d84c8c
--- /dev/null
+++ b/libraries/cppo/README
@@ -0,0 +1,2 @@
+Cppo is an equivalent of the C preprocessor for OCaml programs.
+It allows the definition of simple macros and file.
diff --git a/libraries/SDL2/SDL2.SlackBuild b/libraries/cppo/cppo.SlackBuild
index 7fe728b6e2..13d2735cdf 100644
--- a/libraries/SDL2/SDL2.SlackBuild
+++ b/libraries/cppo/cppo.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/sh
-# Slackware build script for SDL2
+# Slackware build script for cppo
-# Copyright 2013 Dugan Chen Canada
+# Copyright 2019 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=SDL2
-VERSION=${VERSION:-2.0.9}
+PRGNAM=cppo
+VERSION=${VERSION:-1.6.6}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -60,30 +60,24 @@ 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 \
+ -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 {} \;
-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 ..
+dune build
+dune 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
+
+rm -fR $PKG/usr/doc
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a *.txt docs/*.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a Changes *.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/cppo/cppo.info b/libraries/cppo/cppo.info
new file mode 100644
index 0000000000..1ca6d5a170
--- /dev/null
+++ b/libraries/cppo/cppo.info
@@ -0,0 +1,10 @@
+PRGNAM="cppo"
+VERSION="1.6.6"
+HOMEPAGE="https://github.com/ocaml-community/cppo/"
+DOWNLOAD="https://github.com/ocaml-community/cppo/archive/v1.6.6/cppo-1.6.6.tar.gz"
+MD5SUM="2258f90f3b7f0190bda76b710df0af56"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="dune ocamlbuild"
+MAINTAINER="Matteo Bernardini"
+EMAIL="ponce@slackbuilds.org"
diff --git a/libraries/lame/slack-desc b/libraries/cppo/slack-desc
index c8c2c6d12e..bc43af6c08 100644
--- a/libraries/lame/slack-desc
+++ b/libraries/cppo/slack-desc
@@ -6,14 +6,14 @@
# 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:
+cppo: cppo (C-style preprocessor for OCaml)
+cppo:
+cppo: Cppo is an equivalent of the C preprocessor for OCaml programs.
+cppo: It allows the definition of simple macros and file.
+cppo:
+cppo: homepage: https://github.com/ocaml-community/cppo
+cppo:
+cppo:
+cppo:
+cppo:
+cppo:
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..2fbeed8b1b 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,11 @@ find -L . \
sed -i 's/\r//g' cuneiform_src/Addfiles/license.txt
+# Thanks to Debian
+patch -p1 < $CWD/strings.patch
+# Thanks to ARCH Linux
+patch -p1 < $CWD/cuneiform-gcc.patch
+
mkdir build
cd build
cmake \
@@ -70,8 +75,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/cuneiform/strings.patch b/libraries/cuneiform/strings.patch
new file mode 100644
index 0000000000..d7b585eab7
--- /dev/null
+++ b/libraries/cuneiform/strings.patch
@@ -0,0 +1,19 @@
+Author: Andreas Beckmann <anbe@debian.org>
+Description: avoid strings.h collision
+
+--- a/cuneiform_src/Kern/hhh/tigerh/h/strings.h
++++ b/cuneiform_src/Kern/hhh/tigerh/h/strings.h
+@@ -75,6 +75,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * *
+ ***************************************************************************/
+
++#include_next <strings.h>
++#if 0
+ # ifndef __STRINGS_H_INCLUDE
+ # define __STRINGS_H_INCLUDE
+
+@@ -154,3 +156,4 @@ extern STRING *pStringsListEnd;
+ extern STRING *pStringsUpList;
+ extern STRING *pStringsDownList;
+ # endif
++#endif
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 19ab3ecf46..0000000000
--- a/libraries/efivar/efivar.SlackBuild
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for efivar
-
-# Copyright 2017-2019 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:-37}
-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 9858916849..0000000000
--- a/libraries/efivar/efivar.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="efivar"
-VERSION="37"
-HOMEPAGE="https://github.com/rhboot/efivar"
-DOWNLOAD="https://github.com/rhboot/efivar/archive/37/efivar-37.tar.gz"
-MD5SUM="c47be879853137b6493fe49dd9c70e1d"
-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/efl/0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573.patch b/libraries/efl/0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573.patch
new file mode 100644
index 0000000000..e7cc95aa95
--- /dev/null
+++ b/libraries/efl/0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573.patch
@@ -0,0 +1,31 @@
+From 0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573 Mon Sep 17 00:00:00 2001
+From: "Carsten Haitzler (Rasterman)" <raster@rasterman.com>
+Date: Sat, 15 Dec 2018 16:19:01 +0000
+Subject: [PATCH] evas gl - make GLintptr etc. also ndefed for GL_VERSION_1_5
+ fix typedef
+
+It seems that GL_VERSION_1_5 define == these provided by gl already. At
+least reading the mesa headers I do, so this should fix T7502
+
+@fix
+---
+ src/lib/evas/Evas_GL.h | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h
+index b6b642400f..4f67b1695f 100644
+--- a/src/lib/evas/Evas_GL.h
++++ b/src/lib/evas/Evas_GL.h
+@@ -4272,9 +4272,11 @@ typedef signed int GLfixed; // Changed khronos_int32_t
+
+ #ifndef GL_ES_VERSION_2_0
+ /* GL types for handling large vertex buffer objects */
+-#include <stddef.h>
++# ifndef GL_VERSION_1_5
++# include <stddef.h>
+ typedef ptrdiff_t GLintptr; // Changed khronos_intptr_t
+ typedef ptrdiff_t GLsizeiptr; // Changed khronos_ssize_t
++# endif
+ #endif
+
+ /* Some definitions from GLES 3.0.
diff --git a/libraries/efl/efl.SlackBuild b/libraries/efl/efl.SlackBuild
index 356c593ad0..7fe87ca59a 100644
--- a/libraries/efl/efl.SlackBuild
+++ b/libraries/efl/efl.SlackBuild
@@ -76,6 +76,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 {} \;
+# Required by the newer mesa
+patch -p1 < $CWD/0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
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/gdl/gdl.SlackBuild b/libraries/gdl/gdl.SlackBuild
index 6ad5f2032c..d2157b7388 100644
--- a/libraries/gdl/gdl.SlackBuild
+++ b/libraries/gdl/gdl.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=gdl
-VERSION=${VERSION:-3.26.0}
+VERSION=${VERSION:-3.34.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -88,7 +88,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 ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL MAINTAINERS NEWS \
+cp -a AUTHORS COPYING ChangeLog INSTALL MAINTAINERS NEWS \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/libraries/gdl/gdl.info b/libraries/gdl/gdl.info
index c4667a0207..49fb2d17de 100644
--- a/libraries/gdl/gdl.info
+++ b/libraries/gdl/gdl.info
@@ -1,8 +1,8 @@
PRGNAM="gdl"
-VERSION="3.26.0"
+VERSION="3.34.0"
HOMEPAGE="https://www.gnome.org/"
-DOWNLOAD="https://ftp.gnome.org/pub/GNOME/sources/gdl/3.26/gdl-3.26.0.tar.xz"
-MD5SUM="1366cbca43242336f5e61b010145d76e"
+DOWNLOAD="https://ftp.gnome.org/pub/GNOME/sources/gdl/3.34/gdl-3.34.0.tar.xz"
+MD5SUM="d624f2ca85555402828d5c4a98912b82"
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..b95332a485 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" \
@@ -79,7 +81,6 @@ CXXFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--disable-static \
- --enable-gtk-doc \
--enable-debug=no \
--build=$ARCH-slackware-linux
diff --git a/libraries/gtksourceview3/gtksourceview3.SlackBuild b/libraries/gtksourceview3/gtksourceview3.SlackBuild
index adf532d033..30826998bd 100644
--- a/libraries/gtksourceview3/gtksourceview3.SlackBuild
+++ b/libraries/gtksourceview3/gtksourceview3.SlackBuild
@@ -26,7 +26,7 @@
PRGNAM=gtksourceview3
SRCNAM=gtksourceview
-VERSION=${VERSION:-3.18.4}
+VERSION=${VERSION:-3.24.11}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/gtksourceview3/gtksourceview3.info b/libraries/gtksourceview3/gtksourceview3.info
index 4f05f8d29b..8d171af68d 100644
--- a/libraries/gtksourceview3/gtksourceview3.info
+++ b/libraries/gtksourceview3/gtksourceview3.info
@@ -1,8 +1,8 @@
PRGNAM="gtksourceview3"
-VERSION="3.18.4"
-HOMEPAGE="http://projects.gnome.org/gtksourceview/"
-DOWNLOAD="http://ftp.gnome.org/pub/GNOME/sources/gtksourceview/3.18/gtksourceview-3.18.4.tar.xz"
-MD5SUM="b2fa71fc6b63c9ffb7aaed6c20859f4d"
+VERSION="3.24.11"
+HOMEPAGE="https://projects.gnome.org/gtksourceview/"
+DOWNLOAD="https://download.gnome.org/sources/gtksourceview/3.24/gtksourceview-3.24.11.tar.xz"
+MD5SUM="b748da426a7d64e1304f0c532b0f2a67"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="glade"
diff --git a/libraries/gtksourceview4/README b/libraries/gtksourceview4/README
new file mode 100644
index 0000000000..50bc5ddb9c
--- /dev/null
+++ b/libraries/gtksourceview4/README
@@ -0,0 +1,4 @@
+GtkSourceView is a portable C library that extends the standard GTK+
+framework for multiline text editing with support for configurable
+syntax highlighting, unlimited undo/redo, UTF-8 compliant caseless
+searching, printing and other features typical of a source code editor.
diff --git a/libraries/libidn2/libidn2.SlackBuild b/libraries/gtksourceview4/gtksourceview4.SlackBuild
index 8ccfaa4583..e7ce6ca1fb 100644
--- a/libraries/libidn2/libidn2.SlackBuild
+++ b/libraries/gtksourceview4/gtksourceview4.SlackBuild
@@ -1,29 +1,32 @@
#!/bin/sh
-# Slackware build script for libidn2
+# Slackware build script for gtksourceview
-# Copyright 2017 Mohammad Etemaddar Iran
+# Copyright 2012-2016 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# All rights reserved.
#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
+# Redistribution and use in source and binary forms, with or without
+# modification, are 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.
+# * Redistributions of source code 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}
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "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 COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PRGNAM=gtksourceview4
+SRCNAM=gtksourceview
+VERSION=${VERSION:-4.0.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -59,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.lz
-cd $PRGNAM-$VERSION
+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 \
@@ -77,26 +80,20 @@ CXXFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
- --infodir=/usr/info \
--docdir=/usr/doc/$PRGNAM-$VERSION \
+ --enable-glade-catalog \
--build=$ARCH-slackware-linux
-make
-make install DESTDIR=$PKG
+# At the end of build process, the uninstalled gtksourceview.pc is
+# used. Let's make sure pkg-config can find it.
+PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$TMP/$PRGNAM-$VERSION make
+make install-strip 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* \
+cp -a AUTHORS COPYING* HACKING NEWS README \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/libraries/gtksourceview4/gtksourceview4.info b/libraries/gtksourceview4/gtksourceview4.info
new file mode 100644
index 0000000000..76c94956dc
--- /dev/null
+++ b/libraries/gtksourceview4/gtksourceview4.info
@@ -0,0 +1,10 @@
+PRGNAM="gtksourceview4"
+VERSION="4.0.3"
+HOMEPAGE="http://projects.gnome.org/gtksourceview/"
+DOWNLOAD="http://ftp.gnome.org/pub/GNOME/sources/gtksourceview/4.0/gtksourceview-4.0.3.tar.xz"
+MD5SUM="91e01df36e1476083f7b8a474f7d0c34"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="glade"
+MAINTAINER="Willy Sudiarto Raharjo"
+EMAIL="willysr@slackbuilds.org"
diff --git a/libraries/gtksourceview4/slack-desc b/libraries/gtksourceview4/slack-desc
new file mode 100644
index 0000000000..5ceea4e49e
--- /dev/null
+++ b/libraries/gtksourceview4/slack-desc
@@ -0,0 +1,19 @@
+# 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------------------------------------------------------|
+gtksourceview4: gtksourceview4 (a GTK+ framework for source code editing)
+gtksourceview4:
+gtksourceview4: GtkSourceView is a portable C library that extends the standard
+gtksourceview4: GTK+ framework for multiline text editing with support for
+gtksourceview4: configurable syntax highlighting, unlimited undo/redo, UTF-8
+gtksourceview4: compliant caseless searching, printing and other features
+gtksourceview4: typical of a source code editor.
+gtksourceview4:
+gtksourceview4: Homepage: http://projects.gnome.org/gtksourceview/
+gtksourceview4:
+gtksourceview4:
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 81e4b6fb4d..f3d4cdf980 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 15fa568f65..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="Dominik Drobek"
-EMAIL="dominik.drobek (at) o2.pl"
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/isl/README b/libraries/isl/README
deleted file mode 100644
index 342213d403..0000000000
--- a/libraries/isl/README
+++ /dev/null
@@ -1,8 +0,0 @@
-isl is a library for manipulating sets and relations of integer points
-bounded by linear constraints. Supported operations on sets include
-intersection, union, set difference, emptiness check, convex hull,
-(integer) affine hull, integer projection, computings the lexicographic
-minimum using parametric integer programming, coalescing and parametric
-vertex enumeration. It also includes an ILP solver based on generalized
-basis reduction, transitive closures on maps (which may encode infinite
-graphs), dependence analysis and bounds on piecewise step-polynomials.
diff --git a/libraries/isl/isl.SlackBuild b/libraries/isl/isl.SlackBuild
deleted file mode 100644
index 58173fad6d..0000000000
--- a/libraries/isl/isl.SlackBuild
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for isl
-
-# Copyright 2017 Jan F. Chadima <jfch@jagda.eu>
-# 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=isl
-VERSION=${VERSION:-0.18}
-BUILD=${BUILD:-1}
-TAG=${TAG:-_SBo}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
-OUTPUT=${OUTPUT:-/tmp}
-
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="${SLKCFLAGS:--O2 -march=i586 -mtune=i686}"
- LIBDIRSUFFIX=""
- GNUEABI=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="${SLKCFLAGS:--O2 -march=i686 -mtune=i686}"
- LIBDIRSUFFIX=""
- GNUEABI=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="${SLKCFLAGS:--O2 -fPIC}"
- LIBDIRSUFFIX="64"
- GNUEABI=""
-elif [ "$ARCH" = "arm" ]; then
- SLKCFLAGS="${SLKCFLAGS:--O3 -march=armv4t -mtune=cortex-a6 -fPIC}"
- LIBDIRSUFFIX=""
- GNUEABI="-gnueabi"
-elif [ "$ARCH" = "armv7hl" ]; then
- SLKCFLAGS="${SLKCFLAGS:--O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon-vfpv4 -fPIC}"
- LIBDIRSUFFIX=""
- GNUEABI="-gnueabi"
-else
- SLKCFLAGS="${SLKCFLAGS:--O2}"
- LIBDIRSUFFIX=""
- GNUEABI=""
-fi
-
-set -e
-
-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" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib$LIBDIRSUFFIX \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux$GNUEABI
-
-make
-make install DESTDIR=$PKG
-
-# Move gdb extension to its place.
-mkdir -p $PKG/usr/share/gdb/auto-load/usr/lib$LIBDIRSUFFIX
-mv $PKG/usr/lib$LIBDIRSUFFIX/*-gdb.py* \
- $PKG/usr/share/gdb/auto-load/usr/lib$LIBDIRSUFFIX
-
-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 ChangeLog LICENSE README doc/*.bib doc/*.pdf doc/*.pod doc/*.tex \
- $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/isl/isl.info b/libraries/isl/isl.info
deleted file mode 100644
index 1784d2ae24..0000000000
--- a/libraries/isl/isl.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="isl"
-VERSION="0.18"
-HOMEPAGE="http://isl.gforge.inria.fr"
-DOWNLOAD="http://isl.gforge.inria.fr/isl-0.18.tar.xz"
-MD5SUM="5337cd4c29101fe8e8e1b0f5948f91e2"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="Jan F. Chadima"
-EMAIL="jfch@jagda.eu"
diff --git a/libraries/isl/slack-desc b/libraries/isl/slack-desc
deleted file mode 100644
index 8bd67300f0..0000000000
--- a/libraries/isl/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------------------------------------------------------|
-isl: isl (Integer point manipulation library)
-isl:
-isl: isl is a library for manipulating sets and relations of integer
-isl: points bounded by linear constraints.
-isl:
-isl: Homepage: http://isl.gforge.inria.fr/
-isl:
-isl:
-isl:
-isl:
-isl:
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.info b/libraries/jansson/jansson.info
deleted file mode 100644
index edd491c9fd..0000000000
--- a/libraries/jansson/jansson.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="jansson"
-VERSION="2.12"
-HOMEPAGE="http://www.digip.org/jansson/"
-DOWNLOAD="http://www.digip.org/jansson/releases/jansson-2.12.tar.bz2"
-MD5SUM="317dbaf90a9f85ea0ec7b12d080d173d"
-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/lablgtk/README b/libraries/lablgtk/README
index aac7126de1..c549b2f274 100644
--- a/libraries/lablgtk/README
+++ b/libraries/lablgtk/README
@@ -1,6 +1,6 @@
LablGTK is an Objective Caml interface to gtk+/gtk+-2
-LablGTK uses the rich type system of Objective Caml 3 to provide a strongly
+LablGTK uses the rich type system of Objective Caml to provide a strongly
typed, yet very comfortable, object-oriented interface to gtk+.
Some optional dependencies are libgnomecanvas, libgnomeui,
diff --git a/libraries/lablgtk/lablgtk.SlackBuild b/libraries/lablgtk/lablgtk.SlackBuild
index 5cb0a33e18..563eda8643 100644
--- a/libraries/lablgtk/lablgtk.SlackBuild
+++ b/libraries/lablgtk/lablgtk.SlackBuild
@@ -24,13 +24,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=lablgtk
-VERSION=${VERSION:-2.18.4}
+VERSION=${VERSION:-2.18.8}
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
@@ -41,8 +41,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"
@@ -82,7 +82,7 @@ make -j1 world
make DESTDIR=$PKG install
# remove file conflicting with ocaml's ones
-rm -f $PKG/usr/lib$LIBDIRSUFFIX/ocaml/ld.conf
+rm $PKG/usr/lib$LIBDIRSUFFIX/ocaml/ld.conf || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
diff --git a/libraries/lablgtk/lablgtk.info b/libraries/lablgtk/lablgtk.info
index 24707f09b1..f8136d4d2a 100644
--- a/libraries/lablgtk/lablgtk.info
+++ b/libraries/lablgtk/lablgtk.info
@@ -1,10 +1,10 @@
PRGNAM="lablgtk"
-VERSION="2.18.4"
+VERSION="2.18.8"
HOMEPAGE="http://lablgtk.forge.ocamlcore.org"
-DOWNLOAD="https://forge.ocamlcore.org/frs/download.php/1602/lablgtk-2.18.4.tar.gz"
-MD5SUM="cb95497a3a34facd70d475892a806d02"
+DOWNLOAD="https://github.com/garrigue/lablgtk/releases/download/lablgtk2188/lablgtk-2.18.8.tar.gz"
+MD5SUM="97c1572965a2942133eaff5123775d11"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="ocaml-findlib"
-MAINTAINER="Markus Hutmacher"
-EMAIL="mailing@markhu.de"
+MAINTAINER="Matteo Bernardini"
+EMAIL="ponce@slackbuilds.org"
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 6e4fe7db20..0000000000
--- a/libraries/lame/README
+++ /dev/null
@@ -1,5 +0,0 @@
-lame (LAME Ain't an Mp3 Encoder)
-
-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 368f47b1ee..0000000000
--- a/libraries/lame/lame.SlackBuild
+++ /dev/null
@@ -1,118 +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
-# Copyright 2019 B. Watson
-# 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.
-
-# Now maintained by B. Watson <yalhcru@gmail.com>
-
-# 20191231 bkw:
-# - take over maintenance
-# - update for v3.100
-
-PRGNAM=lame
-VERSION=${VERSION:-3.100}
-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 /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
- \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
-
-# This stuff isn't needed for 3.100, but keep compatibility with the
-# old 3.99.5 version:
-if [ "$VERSION" = "3.99.5" ]; then
- # Fix for the newer gcc
- # http://www.linuxfromscratch.org/blfs/view/svn/multimedia/lame.html
- case "$ARCH" in
- i?86) sed -i -e '/xmmintrin\.h/d' configure ;;
- esac
-
- # Fix CVE-2017-15018
- zcat $CWD/CVE-2017-15018.patch.gz | patch -p1
-fi
-
-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-strip pkgdocdir=/usr/doc/$PRGNAM-$VERSION DESTDIR=$PKG
-
-gzip -9 $PKG/usr/man/man1/$PRGNAM.1
-
-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 3ce4d08494..0000000000
--- a/libraries/lame/lame.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="lame"
-VERSION="3.100"
-HOMEPAGE="http://lame.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/lame/lame-3.100.tar.gz"
-MD5SUM="83e260acbe4389b54fe08e0bdbf7cddb"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES=""
-MAINTAINER="B. Watson"
-EMAIL="yalhcru@gmail.com"
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/jansson/jansson.SlackBuild b/libraries/libart-lgpl/libart-lgpl.SlackBuild
index 442ed044e0..27801d55a5 100644
--- a/libraries/jansson/jansson.SlackBuild
+++ b/libraries/libart-lgpl/libart-lgpl.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/sh
-# Slackware build script for jansson
+# Slackware build script for libart-lgpl
-# Copyright 2014-2018 Larry Hajali <larryhaja[at]gmail[dot]com>
+# 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=jansson
-VERSION=${VERSION:-2.12}
+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.bz2
+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 \
- --disable-silent-rules \
+ --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 CHANGES LICENSE README.rst $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 f0b5ad6834..0000000000
--- a/libraries/libbluray/libbluray.SlackBuild
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libbluray
-
-# Copyright 2011-2019 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.1.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.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 bde3dbcde3..0000000000
--- a/libraries/libbluray/libbluray.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libbluray"
-VERSION="1.1.0"
-HOMEPAGE="http://www.videolan.org/developers/libbluray.html"
-DOWNLOAD="http://ftp.videolan.org/pub/videolan/libbluray/1.1.0/libbluray-1.1.0.tar.bz2"
-MD5SUM="ba1aa5803a55e89f813090ec6d238635"
-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 8df3cbd82a..0000000000
--- a/libraries/libc++/libc++.SlackBuild
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libc++
-
-# Copyright 2017 Coastal Carolina University
-# Copyright 2020 Hunter Sezen California, 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=libc++
-VERSION=${VERSION:-3.8.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 -eu
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-mkdir $PRGNAM-$VERSION
-cd $PRGNAM-$VERSION
-tar xvf $CWD/llvm-$VERSION.src.tar.xz
-cd llvm-$VERSION.src
-
-(
- cd projects
- tar xvf $CWD/libcxx-$VERSION.src.tar.xz
- mv libcxx-$VERSION.src libcxx
- tar xvf $CWD/libcxxabi-$VERSION.src.tar.xz
- mv libcxxabi-$VERSION.src libcxxabi
-)
-
-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_COMPILER="clang" \
- -DCMAKE_CXX_COMPILER="clang++" \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DLLVM_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
- -DLIBCXX_INCLUDE_DOCS=ON \
- -DCMAKE_BUILD_TYPE=Release ..
- make install-libcxx 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 projects/libcxx/CREDITS.TXT \
- $PKG/usr/doc/$PRGNAM-$VERSION/libcxx-CREDITS.TXT
-cp projects/libcxx/LICENSE.TXT \
- $PKG/usr/doc/$PRGNAM-$VERSION/libcxx-LICENSE.TXT
-cp projects/libcxxabi/CREDITS.TXT \
- $PKG/usr/doc/$PRGNAM-$VERSION/libcxxabi-CREDITS.TXT
-cp projects/libcxxabi/LICENSE.TXT \
- $PKG/usr/doc/$PRGNAM-$VERSION/libcxxabi-LICENSE.TXT
-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 9fd41afe86..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"
-MAINTAINER="Hunter Sezen"
-EMAIL="orbea@riseup.net"
diff --git a/libraries/libc++/slack-desc b/libraries/libc++/slack-desc
deleted file mode 100644
index 3991a810fa..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++: Homepage: http://libcxx.llvm.org/
-libc++:
-libc++:
-libc++:
-libc++:
-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/libcuefile/libcuefile.SlackBuild b/libraries/libcuefile/libcuefile.SlackBuild
index 4111753fbb..499da0205c 100644
--- a/libraries/libcuefile/libcuefile.SlackBuild
+++ b/libraries/libcuefile/libcuefile.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Slackware build script for libreplaygain
+# Slackware build script for libcuefile
# Written by Šime Ramov <s@ramov.com>
PRGNAM=libcuefile
@@ -10,7 +10,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
@@ -21,8 +21,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"
@@ -45,10 +45,10 @@ tar xzvf $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 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 {} \;
# adding missing include files to CMakeLists.txt
echo 'INSTALL(FILES ${libcuefile_SOURCE_DIR}/include/cuetools/cuefile.h ${libcuefile_SOURCE_DIR}/include/cuetools/cd.h ${libcuefile_SOURCE_DIR}/include/cuetools/cdtext.h DESTINATION include/cuetools)' >> src/CMakeLists.txt
@@ -59,12 +59,12 @@ cmake \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DLIB_SUFFIX=${LIBDIRSUFFIX}
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} .
make
make install DESTDIR=$PKG
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+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
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 f27b861524..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-2019 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:-20190324_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 c9a4f11e3e..0000000000
--- a/libraries/libedit/libedit.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libedit"
-VERSION="20190324_3.1"
-HOMEPAGE="http://www.thrysoee.dk/editline/"
-DOWNLOAD="http://thrysoee.dk/editline/libedit-20190324-3.1.tar.gz"
-MD5SUM="bec755c8044ad84b752dfe49a0b371d8"
-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/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/libfreehand/Add-missing-semicolon-to-fix-build-with-icu-65.1.patch b/libraries/libfreehand/Add-missing-semicolon-to-fix-build-with-icu-65.1.patch
new file mode 100644
index 0000000000..2a904e4fb7
--- /dev/null
+++ b/libraries/libfreehand/Add-missing-semicolon-to-fix-build-with-icu-65.1.patch
@@ -0,0 +1,29 @@
+From af3197f795625f5188602073205a34369698b6df Mon Sep 17 00:00:00 2001
+From: Heiko Becker <heirecka@exherbo.org>
+Date: Fri, 4 Oct 2019 01:46:12 +0200
+Subject: [PATCH] Add missing semicolon to fix build with icu 65.1
+
+Change-Id: I7a0b0d600e9f7770245a7485813a944bfac4f088
+Reviewed-on: https://gerrit.libreoffice.org/80224
+Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
+Tested-by: Miklos Vajna <vmiklos@collabora.com>
+---
+ src/lib/libfreehand_utils.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/lib/libfreehand_utils.cpp b/src/lib/libfreehand_utils.cpp
+index 439c457..32f23e0 100644
+--- a/src/lib/libfreehand_utils.cpp
++++ b/src/lib/libfreehand_utils.cpp
+@@ -162,7 +162,7 @@ void libfreehand::_appendUTF16(librevenge::RVNGString &text, std::vector<unsigne
+ while (j < length)
+ {
+ UChar32 c;
+- U16_NEXT(s, j, length, c)
++ U16_NEXT(s, j, length, c);
+ unsigned char outbuf[U8_MAX_LENGTH+1];
+ int i = 0;
+ U8_APPEND_UNSAFE(&outbuf[0], i, c);
+--
+2.23.0
+
diff --git a/libraries/libfreehand/libfreehand.SlackBuild b/libraries/libfreehand/libfreehand.SlackBuild
index 59c1ad8258..a52617bf0a 100644
--- a/libraries/libfreehand/libfreehand.SlackBuild
+++ b/libraries/libfreehand/libfreehand.SlackBuild
@@ -79,6 +79,8 @@ else
cppunit='--disable-tests'
fi
+patch -p1 < $CWD/Add-missing-semicolon-to-fix-build-with-icu-65.1.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
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/libgksu/libgksu.SlackBuild b/libraries/libgksu/libgksu.SlackBuild
index 6bdbbe3bb9..994ea9b76f 100644
--- a/libraries/libgksu/libgksu.SlackBuild
+++ b/libraries/libgksu/libgksu.SlackBuild
@@ -99,6 +99,7 @@ CXXFLAGS="$SLKCFLAGS" \
--disable-schemas-install \
--enable-shared \
--disable-static \
+ --disable-gtk-doc \
--build=$ARCH-slackware-linux
make
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/libgnomeprint/libgnomeprint.SlackBuild b/libraries/libgnomeprint/libgnomeprint.SlackBuild
index 931db6a313..ffec017e14 100644
--- a/libraries/libgnomeprint/libgnomeprint.SlackBuild
+++ b/libraries/libgnomeprint/libgnomeprint.SlackBuild
@@ -85,6 +85,7 @@ CXXFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-static=no \
+ --disable-gtk-doc \
--build=$ARCH-slackware-linux
make
diff --git a/libraries/libgnomeprint/libgnomeprint.info b/libraries/libgnomeprint/libgnomeprint.info
index 348444b4cb..789c856c58 100644
--- a/libraries/libgnomeprint/libgnomeprint.info
+++ b/libraries/libgnomeprint/libgnomeprint.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://ftp.gnome.org/pub/gnome/sources/libgnomeprint/2.18/libgnomepri
MD5SUM="63b05ffb5386e131487c6af30f4c56ac"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="libgnomecups"
+REQUIRES="libart-lgpl libgnomecups"
MAINTAINER="David Somero"
EMAIL="dsomero@hotmail.com"
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.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/libido3/libido3.SlackBuild b/libraries/libido3/libido3.SlackBuild
index d642540364..4b86f212f8 100644
--- a/libraries/libido3/libido3.SlackBuild
+++ b/libraries/libido3/libido3.SlackBuild
@@ -76,6 +76,9 @@ patch -p1 --verbose \
# Pinched from Manjaro
patch -p1 --verbose < $CWD/ido-optional-ubuntu-private.patch
+# Disable warnings-as-errors
+sed -i "s|-Wall -Werror|-Wall|" src/Makefile.am
+
./autogen.sh
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
diff --git a/libraries/libindicator3/libindicator3.SlackBuild b/libraries/libindicator3/libindicator3.SlackBuild
index c47ccefa2a..f4c8d0ee8a 100644
--- a/libraries/libindicator3/libindicator3.SlackBuild
+++ b/libraries/libindicator3/libindicator3.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 {} \;
+# Disable warnings-as-errors
+sed -i "s|-Wall -Werror|-Wall|" */Makefile.am
+
./autogen.sh
CFLAGS="$SLKCFLAGS -Wno-deprecated -Wno-deprecated-declarations" \
CXXFLAGS="$SLKCFLAGS -Wno-deprecated -Wno-deprecated-declarations" \
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 a90dea830b..0000000000
--- a/libraries/libinput/libinput.SlackBuild
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-#
-# Slackware build script for libinput.
-#
-# Copyright 2016-2020 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.15.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=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 055a72cbfa..0000000000
--- a/libraries/libinput/libinput.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libinput"
-VERSION="1.15.0"
-HOMEPAGE="https://www.freedesktop.org/wiki/Software/libinput"
-DOWNLOAD="https://www.freedesktop.org/software/libinput/libinput-1.15.0.tar.xz"
-MD5SUM="d5fe153c4b1d69ec35dc846588cd47ec"
-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..c5eb815798 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.3.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -75,22 +75,28 @@ 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" \
- ./configure \
- --prefix=/usr \
- --mandir=/usr/man \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var
+mkdir -p build
+cd build
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DMAN_INSTALL_DIR=/usr/man \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make
+ make install DESTDIR=$PKG
+cd ..
-make -j1
-make install DESTDIR=$PKG
+# MAN_INSTALL_DIR is actually ignored ATM
+mv $PKG/usr/share/man $PKG/usr/man
+rm -fR $PKG/usr/share
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 LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a BUGS ChangeLog LICENSE README.md TODO $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
find $PKG/usr/man -type f -exec gzip -9 {} \;
diff --git a/libraries/libkqueue/libkqueue.info b/libraries/libkqueue/libkqueue.info
index 6cd089bc9f..b446f003bf 100644
--- a/libraries/libkqueue/libkqueue.info
+++ b/libraries/libkqueue/libkqueue.info
@@ -1,8 +1,8 @@
PRGNAM="libkqueue"
-VERSION="2.0.1"
+VERSION="2.3.1"
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.3.1/libkqueue-2.3.1.tar.gz"
+MD5SUM="e64baefa000c5667f4a15ea93fe8356b"
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 a7e1eb8c40..b6f978196b 100644
--- a/libraries/libmp4v2/libmp4v2.SlackBuild
+++ b/libraries/libmp4v2/libmp4v2.SlackBuild
@@ -84,7 +84,7 @@ find -L . \
autoreconf -vif
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 8019a62064..c6d9bcdf8a 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/libopenshot-audio/libopenshot-audio.SlackBuild b/libraries/libopenshot-audio/libopenshot-audio.SlackBuild
index a8ab2f418a..596fc0c2a5 100644
--- a/libraries/libopenshot-audio/libopenshot-audio.SlackBuild
+++ b/libraries/libopenshot-audio/libopenshot-audio.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libopenshot-audio
-VERSION=${VERSION:-0.1.8}
+VERSION=${VERSION:-20191024_0eb5fb4}
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/$PRGNAM-$VERSION.tar.?z
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
diff --git a/libraries/libopenshot-audio/libopenshot-audio.info b/libraries/libopenshot-audio/libopenshot-audio.info
index b4ee01343a..fd2160cb9a 100644
--- a/libraries/libopenshot-audio/libopenshot-audio.info
+++ b/libraries/libopenshot-audio/libopenshot-audio.info
@@ -1,8 +1,8 @@
PRGNAM="libopenshot-audio"
-VERSION="0.1.8"
+VERSION="20191024_0eb5fb4"
HOMEPAGE="https://github.com/OpenShot/libopenshot-audio"
-DOWNLOAD="https://github.com/OpenShot/libopenshot-audio/archive/v0.1.8/libopenshot-audio-0.1.8.tar.gz"
-MD5SUM="989a367f1f0546b3f0d9940c79337924"
+DOWNLOAD="http://ponce.cc/slackware/sources/repo/libopenshot-audio-20191024_0eb5fb4.tar.xz"
+MD5SUM="db695874a682b1f1962aaecb01cd3321"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/libopenshot/libopenshot.SlackBuild b/libraries/libopenshot/libopenshot.SlackBuild
index cb04349871..cea8e9f35e 100644
--- a/libraries/libopenshot/libopenshot.SlackBuild
+++ b/libraries/libopenshot/libopenshot.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libopenshot
-VERSION=${VERSION:-0.2.3}
+VERSION=${VERSION:-20191104_c271352}
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/$PRGNAM-$VERSION.tar.?z
cd $PRGNAM-$VERSION
cp -p $CWD/zmq.hpp include/
chown -R root:root .
diff --git a/libraries/libopenshot/libopenshot.info b/libraries/libopenshot/libopenshot.info
index d1b65cdc5a..8f0e63836f 100644
--- a/libraries/libopenshot/libopenshot.info
+++ b/libraries/libopenshot/libopenshot.info
@@ -1,10 +1,10 @@
PRGNAM="libopenshot"
-VERSION="0.2.3"
+VERSION="20191104_c271352"
HOMEPAGE="https://github.com/OpenShot/libopenshot"
-DOWNLOAD="https://github.com/OpenShot/libopenshot/archive/v0.2.3/libopenshot-0.2.3.tar.gz \
- https://raw.githubusercontent.com/zeromq/cppzmq/014628c/zmq.hpp"
-MD5SUM="7ba70ff88ef52f658ce550aad1f5eaa1 \
- 56f264ec5604a5576e0d836d89c38c77"
+DOWNLOAD="http://ponce.cc/slackware/sources/repo/libopenshot-20191104_c271352.tar.xz \
+ https://raw.githubusercontent.com/zeromq/cppzmq/014628c/zmq.hpp"
+MD5SUM="a66613a3417f83181c843db42bfd87c0 \
+ 56f264ec5604a5576e0d836d89c38c77"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="qt5 python3 ffmpeg zeromq unittest-cpp libopenshot-audio"
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.SlackBuild b/libraries/libopusenc/libopusenc.SlackBuild
deleted file mode 100644
index 199690a36a..0000000000
--- a/libraries/libopusenc/libopusenc.SlackBuild
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libopusenc
-
-# Copyright 2017 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-# 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=libopusenc
-VERSION=${VERSION:-0.2.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}
-
-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 \
- --enable-fixed-point \
- --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 README.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/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/libpeas/libpeas.SlackBuild b/libraries/libpeas/libpeas.SlackBuild
index 9ab50bcfec..08be4cbf6f 100644
--- a/libraries/libpeas/libpeas.SlackBuild
+++ b/libraries/libpeas/libpeas.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Slackware build script for libpeas
-# Copyright 2013-2015 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2013-2019 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,13 +22,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libpeas
-VERSION=${VERSION:-1.16.0}
+VERSION=${VERSION:-1.24.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
@@ -39,8 +39,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,7 +53,7 @@ else
LIBDIRSUFFIX=""
fi
-DOCS="AUTHORS COPYING ChangeLog NEWS README"
+DOCS="AUTHORS COPYING NEWS README"
set -e
@@ -70,22 +70,23 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-sed -i -e 's|"lua5.1 |"lua |' -e 's|with_lua51=lua5.1|with_lua51=lua|' configure
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --enable-gtk \
- --build=$ARCH-slackware-linux
-
-make
-make install DESTDIR=$PKG
+mkdir build
+cd build
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ meson .. \
+ --buildtype=release \
+ --infodir=/usr/info \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ -Dvapi=true \
+ -Ddoc=true
+ ninja
+ DESTDIR=$PKG ninja install
+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
diff --git a/libraries/libpeas/libpeas.info b/libraries/libpeas/libpeas.info
index f9c6dac566..3c46c9c1df 100644
--- a/libraries/libpeas/libpeas.info
+++ b/libraries/libpeas/libpeas.info
@@ -1,8 +1,8 @@
PRGNAM="libpeas"
-VERSION="1.16.0"
+VERSION="1.24.1"
HOMEPAGE="https://wiki.gnome.org/Projects/Libpeas"
-DOWNLOAD="http://ftp.gnome.org/pub/GNOME/sources/libpeas/1.16/libpeas-1.16.0.tar.xz"
-MD5SUM="48c5b3da391da1ae390e9d45d88a6aeb"
+DOWNLOAD="http://ftp.gnome.org/pub/GNOME/sources/libpeas/1.24/libpeas-1.24.1.tar.xz"
+MD5SUM="bbecf334a7333d0a5d4d655ba38be9b4"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
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/libquicktime/libquicktime-1.2.4-ffmpeg4.patch b/libraries/libquicktime/libquicktime-1.2.4-ffmpeg4.patch
new file mode 100644
index 0000000000..eb196ea16a
--- /dev/null
+++ b/libraries/libquicktime/libquicktime-1.2.4-ffmpeg4.patch
@@ -0,0 +1,342 @@
+Index: libquicktime-1.2.4/plugins/ffmpeg/audio.c
+===================================================================
+--- libquicktime-1.2.4.orig/plugins/ffmpeg/audio.c
++++ libquicktime-1.2.4/plugins/ffmpeg/audio.c
+@@ -545,7 +545,7 @@ static int decode_chunk_vbr(quicktime_t
+
+ #if DECODE_AUDIO3 || DECODE_AUDIO4
+ codec->pkt.data = codec->chunk_buffer;
+- codec->pkt.size = packet_size + FF_INPUT_BUFFER_PADDING_SIZE;
++ codec->pkt.size = packet_size + AV_INPUT_BUFFER_PADDING_SIZE;
+
+ #if DECODE_AUDIO4
+ frame_bytes = avcodec_decode_audio4(codec->avctx, &f,
+@@ -583,7 +583,7 @@ static int decode_chunk_vbr(quicktime_t
+ (codec->sample_buffer_end - codec->sample_buffer_start)],
+ &bytes_decoded,
+ codec->chunk_buffer,
+- packet_size + FF_INPUT_BUFFER_PADDING_SIZE);
++ packet_size + AV_INPUT_BUFFER_PADDING_SIZE);
+ if(frame_bytes < 0)
+ {
+ lqt_log(file, LQT_LOG_ERROR, LOG_DOMAIN, "avcodec_decode_audio2 error");
+@@ -645,13 +645,13 @@ static int decode_chunk(quicktime_t * fi
+ return 0;
+ }
+
+- if(codec->chunk_buffer_alloc < mph.frame_bytes + FF_INPUT_BUFFER_PADDING_SIZE)
++ if(codec->chunk_buffer_alloc < mph.frame_bytes + AV_INPUT_BUFFER_PADDING_SIZE)
+ {
+- codec->chunk_buffer_alloc = mph.frame_bytes + FF_INPUT_BUFFER_PADDING_SIZE;
++ codec->chunk_buffer_alloc = mph.frame_bytes + AV_INPUT_BUFFER_PADDING_SIZE;
+ codec->chunk_buffer = realloc(codec->chunk_buffer, codec->chunk_buffer_alloc);
+ }
+ memset(codec->chunk_buffer + codec->bytes_in_chunk_buffer, 0,
+- mph.frame_bytes - codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE);
++ mph.frame_bytes - codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE);
+ num_samples = mph.samples_per_frame;
+ codec->bytes_in_chunk_buffer = mph.frame_bytes;
+ }
+@@ -695,7 +695,7 @@ static int decode_chunk(quicktime_t * fi
+ {
+
+
+- /* BIG NOTE: We pass extra FF_INPUT_BUFFER_PADDING_SIZE for the buffer size
++ /* BIG NOTE: We pass extra AV_INPUT_BUFFER_PADDING_SIZE for the buffer size
+ because we know, that lqt_read_audio_chunk allocates 16 extra bytes for us */
+
+ /* Some really broken mp3 files have the header bytes split across 2 chunks */
+@@ -761,7 +761,7 @@ static int decode_chunk(quicktime_t * fi
+
+ #if DECODE_AUDIO3 || DECODE_AUDIO4
+ codec->pkt.data = &codec->chunk_buffer[bytes_used];
+- codec->pkt.size = codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE;
++ codec->pkt.size = codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE;
+
+ #if DECODE_AUDIO4
+
+@@ -798,7 +798,7 @@ static int decode_chunk(quicktime_t * fi
+ (codec->sample_buffer_end - codec->sample_buffer_start)],
+ &bytes_decoded,
+ &codec->chunk_buffer[bytes_used],
+- codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE);
++ codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE);
+ #endif
+ if(frame_bytes < 0)
+ {
+@@ -838,7 +838,7 @@ static int decode_chunk(quicktime_t * fi
+ }
+ }
+
+- /* This happens because ffmpeg adds FF_INPUT_BUFFER_PADDING_SIZE to the bytes returned */
++ /* This happens because ffmpeg adds AV_INPUT_BUFFER_PADDING_SIZE to the bytes returned */
+
+ if(codec->bytes_in_chunk_buffer < 0)
+ codec->bytes_in_chunk_buffer = 0;
+Index: libquicktime-1.2.4/plugins/ffmpeg/params.c
+===================================================================
+--- libquicktime-1.2.4.orig/plugins/ffmpeg/params.c
++++ libquicktime-1.2.4/plugins/ffmpeg/params.c
+@@ -124,16 +124,6 @@ typedef struct
+ }
+
+
+-enum_t me_method[] =
+- {
+- { "Zero", ME_ZERO },
+- { "Phods", ME_PHODS },
+- { "Log", ME_LOG },
+- { "X1", ME_X1 },
+- { "Epzs", ME_EPZS },
+- { "Full", ME_FULL }
+- };
+-
+ enum_t prediction_method[] =
+ {
+ { "Left", FF_PRED_LEFT },
+@@ -163,15 +153,6 @@ enum_t mb_decision[] =
+ { "Rate distoration", FF_MB_DECISION_RD }
+ };
+
+-enum_t coder_type[] =
+- {
+- { "VLC", FF_CODER_TYPE_VLC },
+- { "Arithmetic", FF_CODER_TYPE_AC },
+- { "Raw", FF_CODER_TYPE_RAW },
+- { "RLE", FF_CODER_TYPE_RLE },
+- { "Deflate", FF_CODER_TYPE_DEFLATE },
+- };
+-
+ #define PARAM_ENUM(name, var, arr) \
+ if(!strcasecmp(key, name)) \
+ { \
+@@ -203,7 +184,7 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
+ PARAM_INT_SCALE("ff_bit_rate_audio",bit_rate,1000);
+ PARAM_INT_SCALE("ff_bit_rate_video",bit_rate,1000);
+ PARAM_INT_SCALE("ff_bit_rate_tolerance",bit_rate_tolerance,1000);
+- PARAM_ENUM("ff_me_method",me_method,me_method);
++ PARAM_DICT_INT("ff_me_method","motion-est");
+ PARAM_INT("ff_gop_size",gop_size);
+ PARAM_FLOAT("ff_qcompress",qcompress);
+ PARAM_FLOAT("ff_qblur",qblur);
+@@ -227,10 +208,9 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
+ PARAM_INT("ff_rc_min_rate",rc_min_rate);
+ PARAM_INT("ff_rc_max_rate",rc_max_rate);
+ PARAM_INT_SCALE("ff_rc_buffer_size",rc_buffer_size,1000);
+- PARAM_FLOAT("ff_rc_buffer_aggressivity",rc_buffer_aggressivity);
+ PARAM_FLOAT("ff_i_quant_factor",i_quant_factor);
+ PARAM_QP2LAMBDA("ff_i_quant_offset",i_quant_offset);
+- PARAM_FLOAT("ff_rc_initial_cplx",rc_initial_cplx);
++ PARAM_DICT_INT("ff_rc_initial_cplx","rc_init_cplx");
+ PARAM_FLOAT("ff_lumi_masking",lumi_masking);
+ PARAM_FLOAT("ff_temporal_cplx_masking",temporal_cplx_masking);
+ PARAM_FLOAT("ff_spatial_cplx_masking",spatial_cplx_masking);
+@@ -255,8 +235,8 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
+ PARAM_INT("ff_me_range",me_range);
+ PARAM_ENUM("ff_mb_decision",mb_decision,mb_decision);
+ PARAM_INT("ff_scenechange_threshold",scenechange_threshold);
+- PARAM_QP2LAMBDA("ff_lmin", lmin);
+- PARAM_QP2LAMBDA("ff_lmax", lmax);
++ PARAM_DICT_INT("ff_lmin", "lmin");
++ PARAM_DICT_INT("ff_lmax", "lmax");
+ PARAM_INT("ff_noise_reduction",noise_reduction);
+ PARAM_INT_SCALE("ff_rc_initial_buffer_occupancy",rc_initial_buffer_occupancy,1000);
+
+@@ -269,33 +249,29 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
+ #endif
+
+ PARAM_INT("ff_thread_count",thread_count);
+- PARAM_INT("ff_me_threshold",me_threshold);
+- PARAM_INT("ff_mb_threshold",mb_threshold);
+ PARAM_INT("ff_nsse_weight",nsse_weight);
+- PARAM_FLOAT("ff_border_masking",border_masking);
++ PARAM_DICT_INT("ff_border_masking","border_mask");
+ PARAM_QP2LAMBDA("ff_mb_lmin", mb_lmin);
+ PARAM_QP2LAMBDA("ff_mb_lmax", mb_lmax);
+ PARAM_INT("ff_me_penalty_compensation",me_penalty_compensation);
+ PARAM_INT("ff_bidir_refine",bidir_refine);
+ PARAM_INT("ff_brd_scale",brd_scale);
+- PARAM_INT("ff_scenechange_factor",scenechange_factor);
+- PARAM_FLAG("ff_flag_qscale",CODEC_FLAG_QSCALE);
+- PARAM_FLAG("ff_flag_4mv",CODEC_FLAG_4MV);
+- PARAM_FLAG("ff_flag_qpel",CODEC_FLAG_QPEL);
+- PARAM_FLAG("ff_flag_gmc",CODEC_FLAG_GMC);
+- PARAM_FLAG("ff_flag_mv0",CODEC_FLAG_MV0);
++ PARAM_FLAG("ff_flag_qscale",AV_CODEC_FLAG_QSCALE);
++ PARAM_FLAG("ff_flag_4mv",AV_CODEC_FLAG_4MV);
++ PARAM_FLAG("ff_flag_qpel",AV_CODEC_FLAG_QPEL);
++ PARAM_DICT_FLAG("ff_flag_gmc","gmc");
++ PARAM_DICT_FLAG("ff_flag_mv0","mpv_flags");
+ // PARAM_FLAG("ff_flag_part",CODEC_FLAG_PART); // Unused
+- PARAM_FLAG("ff_flag_gray",CODEC_FLAG_GRAY);
+- PARAM_FLAG("ff_flag_emu_edge",CODEC_FLAG_EMU_EDGE);
+- PARAM_FLAG("ff_flag_normalize_aqp",CODEC_FLAG_NORMALIZE_AQP);
++ PARAM_FLAG("ff_flag_gray",AV_CODEC_FLAG_GRAY);
++ PARAM_DICT_FLAG("ff_flag_normalize_aqp","naq");
+ // PARAM_FLAG("ff_flag_alt_scan",CODEC_FLAG_ALT_SCAN); // Unused
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+ PARAM_FLAG("ff_flag_trellis_quant",CODEC_FLAG_TRELLIS_QUANT);
+ #else
+ PARAM_INT("ff_trellis",trellis);
+ #endif
+- PARAM_FLAG("ff_flag_bitexact",CODEC_FLAG_BITEXACT);
+- PARAM_FLAG("ff_flag_ac_pred",CODEC_FLAG_AC_PRED);
++ PARAM_FLAG("ff_flag_bitexact",AV_CODEC_FLAG_BITEXACT);
++ PARAM_FLAG("ff_flag_ac_pred",AV_CODEC_FLAG_AC_PRED);
+ // PARAM_FLAG("ff_flag_h263p_umv",CODEC_FLAG_H263P_UMV); // Unused
+
+ #if LIBAVCODEC_VERSION_MAJOR >= 55
+@@ -303,9 +279,9 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
+ PARAM_DICT_FLAG("ff_flag_qp_rd","qp_rd");
+ PARAM_DICT_FLAG("ff_flag2_strict_gop","strict_gop");
+ #else
+- PARAM_FLAG("ff_flag_cbp_rd",CODEC_FLAG_CBP_RD);
+- PARAM_FLAG("ff_flag_qp_rd",CODEC_FLAG_QP_RD);
+- PARAM_FLAG2("ff_flag2_strict_gop",CODEC_FLAG2_STRICT_GOP);
++ PARAM_FLAG("ff_flag_cbp_rd",AV_CODEC_FLAG_CBP_RD);
++ PARAM_FLAG("ff_flag_qp_rd",AV_CODEC_FLAG_QP_RD);
++ PARAM_FLAG2("ff_flag2_strict_gop",AV_CODEC_FLAG2_STRICT_GOP);
+ #endif
+
+ #if LIBAVCODEC_VERSION_MAJOR >= 54
+@@ -313,14 +289,14 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
+ PARAM_DICT_FLAG("ff_flag_obmc","obmc");
+ PARAM_DICT_FLAG("ff_flag_h263p_slice_struct","structured_slices");
+ #else
+- PARAM_FLAG("ff_flag_h263p_aiv",CODEC_FLAG_H263P_AIV);
+- PARAM_FLAG("ff_flag_obmc",CODEC_FLAG_OBMC);
+- PARAM_FLAG("ff_flag_h263p_slice_struct",CODEC_FLAG_H263P_SLICE_STRUCT);
++ PARAM_FLAG("ff_flag_h263p_aiv",AV_CODEC_FLAG_H263P_AIV);
++ PARAM_FLAG("ff_flag_obmc",AV_CODEC_FLAG_OBMC);
++ PARAM_FLAG("ff_flag_h263p_slice_struct",AV_CODEC_FLAG_H263P_SLICE_STRUCT);
+ #endif
+
+- PARAM_FLAG("ff_flag_loop_filter",CODEC_FLAG_LOOP_FILTER);
+- PARAM_FLAG("ff_flag_closed_gop",CODEC_FLAG_CLOSED_GOP);
+- PARAM_FLAG2("ff_flag2_fast",CODEC_FLAG2_FAST);
+- PARAM_ENUM("ff_coder_type",coder_type,coder_type);
++ PARAM_FLAG("ff_flag_loop_filter",AV_CODEC_FLAG_LOOP_FILTER);
++ PARAM_FLAG("ff_flag_closed_gop",AV_CODEC_FLAG_CLOSED_GOP);
++ PARAM_FLAG2("ff_flag2_fast",AV_CODEC_FLAG2_FAST);
++ PARAM_DICT_INT("ff_coder_type","coder");
+
+ }
+Index: libquicktime-1.2.4/plugins/ffmpeg/params.h
+===================================================================
+--- libquicktime-1.2.4.orig/plugins/ffmpeg/params.h
++++ libquicktime-1.2.4/plugins/ffmpeg/params.h
+@@ -149,7 +149,7 @@ the reference. Unused for constant quant
+ .type = LQT_PARAMETER_INT, \
+ .val_default = { .val_int = 0 }, \
+ .val_min = { .val_int = 0 }, \
+- .val_max = { .val_int = FF_MAX_B_FRAMES }, \
++ .val_max = { .val_int = 16 }, \
+ .help_string = TRS("Maximum number of B-frames between non B-frames") \
+ }
+
+Index: libquicktime-1.2.4/plugins/ffmpeg/video.c
+===================================================================
+--- libquicktime-1.2.4.orig/plugins/ffmpeg/video.c
++++ libquicktime-1.2.4/plugins/ffmpeg/video.c
+@@ -781,7 +781,7 @@ static int lqt_ffmpeg_decode_video(quick
+ if(extradata)
+ {
+ codec->extradata =
+- calloc(1, extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
++ calloc(1, extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
+ memcpy(codec->extradata, extradata, extradata_size);
+ codec->avctx->extradata_size = extradata_size;
+ codec->avctx->extradata = codec->extradata;
+@@ -1140,8 +1140,8 @@ static int init_imx_encoder(quicktime_t
+ codec->avctx->qmin = 1;
+ codec->avctx->qmax = 3;
+ codec->avctx->rtp_payload_size = 1; // ??
+- codec->avctx->rc_buffer_aggressivity = 0.25;
+- codec->avctx->flags |= CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_LOW_DELAY;
++ av_dict_set(&codec->options, "rc_buf_aggressivity", "0.25", 0);
++ codec->avctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT|AV_CODEC_FLAG_LOW_DELAY;
+
+ #if (LIBAVCODEC_VERSION_MAJOR < 54)
+ codec->avctx->flags2 |= CODEC_FLAG2_INTRA_VLC|CODEC_FLAG2_NON_LINEAR_QUANT;
+@@ -1328,7 +1328,7 @@ static int lqt_ffmpeg_encode_video(quick
+ // codec->avctx->time_base.den = 1;
+ // codec->avctx->time_base.num = lqt_video_time_scale(file, track);
+
+- if(codec->avctx->flags & CODEC_FLAG_QSCALE)
++ if(codec->avctx->flags & AV_CODEC_FLAG_QSCALE)
+ codec->avctx->global_quality = codec->qscale;
+
+ codec->avctx->width = width;
+@@ -1344,7 +1344,7 @@ static int lqt_ffmpeg_encode_video(quick
+ {
+ if(!(file->file_type & (LQT_FILE_AVI|LQT_FILE_AVI_ODML)))
+ {
+- codec->avctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
++ codec->avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+ codec->write_global_header = 1;
+ }
+
+@@ -1360,7 +1360,7 @@ static int lqt_ffmpeg_encode_video(quick
+ {
+ lqt_log(file, LQT_LOG_INFO, LOG_DOMAIN, "Enabling interlaced encoding");
+ codec->avctx->flags |=
+- (CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_INTERLACED_ME|CODEC_FLAG_ALT_SCAN);
++ (AV_CODEC_FLAG_INTERLACED_DCT|AV_CODEC_FLAG_INTERLACED_ME|AV_CODEC_FLAG_ALT_SCAN);
+ }
+ #endif
+ }
+@@ -1387,7 +1387,7 @@ static int lqt_ffmpeg_encode_video(quick
+ {
+ if(!(file->file_type & (LQT_FILE_AVI|LQT_FILE_AVI_ODML)))
+ {
+- codec->avctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
++ codec->avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+ codec->write_global_header = 1;
+ }
+ }
+@@ -1410,7 +1410,7 @@ static int lqt_ffmpeg_encode_video(quick
+ {
+ if(vtrack->interlace_mode != LQT_INTERLACE_NONE)
+ {
+- codec->avctx->flags |= CODEC_FLAG_INTERLACED_DCT;
++ codec->avctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT;
+ }
+ }
+ else if(codec->is_imx)
+@@ -1422,7 +1422,7 @@ static int lqt_ffmpeg_encode_video(quick
+ if(codec->pass == 1)
+ {
+ codec->stats_file = fopen(codec->stats_filename, "w");
+- codec->avctx->flags |= CODEC_FLAG_PASS1;
++ codec->avctx->flags |= AV_CODEC_FLAG_PASS1;
+ }
+ else if(codec->pass == codec->total_passes)
+ {
+@@ -1438,7 +1438,7 @@ static int lqt_ffmpeg_encode_video(quick
+ fclose(codec->stats_file);
+ codec->stats_file = (FILE*)0;
+
+- codec->avctx->flags |= CODEC_FLAG_PASS2;
++ codec->avctx->flags |= AV_CODEC_FLAG_PASS2;
+ }
+ }
+ /* Open codec */
+@@ -1516,7 +1516,7 @@ static int lqt_ffmpeg_encode_video(quick
+ }
+
+ codec->frame->pts = vtrack->timestamp;
+- if(codec->avctx->flags & CODEC_FLAG_QSCALE)
++ if(codec->avctx->flags & AV_CODEC_FLAG_QSCALE)
+ codec->frame->quality = codec->qscale;
+ #ifdef DO_INTERLACE
+ if(vtrack->interlace_mode != LQT_INTERLACE_NONE)
+@@ -1599,8 +1599,7 @@ static int lqt_ffmpeg_encode_video(quick
+ else if(codec->encoder->id == AV_CODEC_ID_MPEG4)
+ {
+ int advanced = 0;
+- if(codec->avctx->max_b_frames ||
+- (codec->avctx->flags & (CODEC_FLAG_QPEL|CODEC_FLAG_GMC)))
++ if(codec->avctx->max_b_frames)
+ advanced = 1;
+
+ setup_header_mpeg4(file, track, codec->avctx->extradata,
diff --git a/libraries/libquicktime/libquicktime.SlackBuild b/libraries/libquicktime/libquicktime.SlackBuild
index 8b74f00782..b26035d2d3 100644
--- a/libraries/libquicktime/libquicktime.SlackBuild
+++ b/libraries/libquicktime/libquicktime.SlackBuild
@@ -69,9 +69,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 {} \;
-# Fix compatibility with ffmpeg 3.x
+# Fix compatibility with ffmpeg 4.x
patch -p1 -i $CWD/libquicktime-1.2.4-ffmpeg2.patch
patch -p1 -i $CWD/libquicktime-ffmpeg3.patch
+patch -p1 -i $CWD/libquicktime-1.2.4-ffmpeg4.patch
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
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/libreplaygain/libreplaygain.SlackBuild b/libraries/libreplaygain/libreplaygain.SlackBuild
index 60554fedb3..a7f3e187c2 100644
--- a/libraries/libreplaygain/libreplaygain.SlackBuild
+++ b/libraries/libreplaygain/libreplaygain.SlackBuild
@@ -10,7 +10,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
@@ -21,8 +21,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"
@@ -45,10 +45,10 @@ tar xzvf $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 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 {} \;
# adding missing include file to CMakeLists.txt
echo 'INSTALL(FILES ${libreplaygain_SOURCE_DIR}/include/replaygain/gain_analysis.h DESTINATION include/replaygain)' >> src/CMakeLists.txt
@@ -59,12 +59,12 @@ cmake \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DLIB_SUFFIX=${LIBDIRSUFFIX}
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} .
make
make install DESTDIR=$PKG
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+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
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 d116e15595..0000000000
--- a/libraries/libsodium/libsodium.SlackBuild
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for libsodium
-
-# Copyright 2019 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.18}
-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 885712aec3..0000000000
--- a/libraries/libsodium/libsodium.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libsodium"
-VERSION="1.0.18"
-HOMEPAGE="https://github.com/jedisct1/libsodium"
-DOWNLOAD="https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz"
-MD5SUM="3ca9ebc13b6b4735acae0a6a4c4f9a95"
-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/libsrtp/libsrtp.SlackBuild b/libraries/libsrtp/libsrtp.SlackBuild
index 0ec00c4f3a..5bcb7cad5e 100644
--- a/libraries/libsrtp/libsrtp.SlackBuild
+++ b/libraries/libsrtp/libsrtp.SlackBuild
@@ -78,7 +78,6 @@ CXXFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
- --enable-openssl \
--disable-debug \
--build=$ARCH-slackware-linux
diff --git a/libraries/libtorrent-rasterbar/boost-1.72.0.patch b/libraries/libtorrent-rasterbar/boost-1.72.0.patch
new file mode 100644
index 0000000000..dc2d28f783
--- /dev/null
+++ b/libraries/libtorrent-rasterbar/boost-1.72.0.patch
@@ -0,0 +1,36 @@
+From 94bd4ae76f0fb3233eda58794e0105f6e3be92ee Mon Sep 17 00:00:00 2001
+From: arvidn <arvid@libtorrent.org>
+Date: Fri, 13 Dec 2019 21:58:09 +0100
+Subject: [PATCH] support building with new boost version
+
+---
+ ChangeLog | 1 +
+ include/libtorrent/socket_type.hpp | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/ChangeLog b/ChangeLog
+index 6c74a8067a..e060ab190e 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,5 +1,6 @@
+ 1.1.14 release
+
++ * support building with new boost version
+ * add handling on invalid piece index to torrent_handle::have_piece()
+ * fix error in treatment of move_storage() flags
+ * fix division by zero in anti-leech choker
+diff --git a/include/libtorrent/socket_type.hpp b/include/libtorrent/socket_type.hpp
+index 578b4534a9..69eabd2569 100644
+--- a/include/libtorrent/socket_type.hpp
++++ b/include/libtorrent/socket_type.hpp
+@@ -190,6 +190,10 @@ namespace libtorrent
+ typedef tcp::socket::protocol_type protocol_type;
+
+ typedef tcp::socket::receive_buffer_size receive_buffer_size;
++
++#if BOOST_VERSION >= 106600
++ using executor_type = tcp::socket::executor_type;
++#endif
+ typedef tcp::socket::send_buffer_size send_buffer_size;
+
+ explicit socket_type(io_service& ios): m_io_service(ios), m_type(0) {}
diff --git a/libraries/libtorrent-rasterbar/libtorrent-rasterbar.SlackBuild b/libraries/libtorrent-rasterbar/libtorrent-rasterbar.SlackBuild
index 0501141e52..35fc752c8f 100644
--- a/libraries/libtorrent-rasterbar/libtorrent-rasterbar.SlackBuild
+++ b/libraries/libtorrent-rasterbar/libtorrent-rasterbar.SlackBuild
@@ -77,6 +77,11 @@ sed -i -e "s/+ target_specific(),/+ target_specific() + ['-std=c++14'],/" \
EXAMPLES=${EXAMPLES:-no}
[ "$EXAMPLES" = "yes" ] && examples="--enable-examples"
+patch -p1 < $CWD/libtorrent-1_1_13...RC_1_1-5c39557.patch
+patch -p1 < $CWD/boost-1.72.0.patch
+
+autoreconf -fi
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS -std=c++14" \
LDFLAGS="-L/usr/lib${LIBDIRSUFFIX}" \
diff --git a/libraries/libtorrent-rasterbar/libtorrent-rasterbar.info b/libraries/libtorrent-rasterbar/libtorrent-rasterbar.info
index d6c78127df..b937a72582 100644
--- a/libraries/libtorrent-rasterbar/libtorrent-rasterbar.info
+++ b/libraries/libtorrent-rasterbar/libtorrent-rasterbar.info
@@ -1,8 +1,10 @@
PRGNAM="libtorrent-rasterbar"
VERSION="1.1.13"
HOMEPAGE="https://libtorrent.org/"
-DOWNLOAD="https://github.com/arvidn/libtorrent/releases/download/libtorrent-1_1_13/libtorrent-rasterbar-1.1.13.tar.gz"
-MD5SUM="a3eec8d384f0343df1fb417c14c4e20d"
+DOWNLOAD="https://github.com/arvidn/libtorrent/releases/download/libtorrent-1_1_13/libtorrent-rasterbar-1.1.13.tar.gz \
+ http://ponce.cc/slackware/sources/repo/libtorrent-1_1_13...RC_1_1-5c39557.patch"
+MD5SUM="a3eec8d384f0343df1fb417c14c4e20d \
+ 0680c67fe370348d0cc8959f7d7160b2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
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-glib/libvirt-glib.SlackBuild b/libraries/libvirt-glib/libvirt-glib.SlackBuild
index 60a9c1969f..d75dee4058 100644
--- a/libraries/libvirt-glib/libvirt-glib.SlackBuild
+++ b/libraries/libvirt-glib/libvirt-glib.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libvirt-glib
-VERSION=${VERSION:-1.0.0}
+VERSION=${VERSION:-3.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/libvirt-glib/libvirt-glib.info b/libraries/libvirt-glib/libvirt-glib.info
index 90a4b953cc..6217ff56cd 100644
--- a/libraries/libvirt-glib/libvirt-glib.info
+++ b/libraries/libvirt-glib/libvirt-glib.info
@@ -1,8 +1,8 @@
PRGNAM="libvirt-glib"
-VERSION="1.0.0"
+VERSION="3.0.0"
HOMEPAGE="http://libvirt.org/"
-DOWNLOAD="https://libvirt.org/sources/glib/libvirt-glib-1.0.0.tar.gz"
-MD5SUM="cb1332e97c175606306fe8966f8243af"
+DOWNLOAD="https://libvirt.org/sources/glib/libvirt-glib-3.0.0.tar.gz"
+MD5SUM="1c9a7c43118ba44e7b8eacc9c105f498"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libvirt vala"
diff --git a/libraries/libvirt-python/libvirt-python.SlackBuild b/libraries/libvirt-python/libvirt-python.SlackBuild
index 9688b5afe4..8ecccb3148 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:-5.10.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -66,7 +66,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 {} \;
-python setup.py install --root=$PKG
+python2 setup.py install --root=$PKG
+python3 setup.py install --root=$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
diff --git a/libraries/libvirt-python/libvirt-python.info b/libraries/libvirt-python/libvirt-python.info
index 0670df4073..e0c28f7ae4 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"
-HOMEPAGE="http://libvirt.org"
-DOWNLOAD="https://libvirt.org/sources/python/libvirt-python-4.5.0.tar.gz"
-MD5SUM="0c1b66a8878d6436b036565060707f73"
+VERSION="5.10.0"
+HOMEPAGE="https://libvirt.org"
+DOWNLOAD="https://libvirt.org/sources/python/libvirt-python-5.10.0.tar.gz"
+MD5SUM="045c8b45a1aed0725d874ce072027570"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libvirt"
diff --git a/libraries/libvirt/libvirt.SlackBuild b/libraries/libvirt/libvirt.SlackBuild
index 84008caff4..00641011d2 100644
--- a/libraries/libvirt/libvirt.SlackBuild
+++ b/libraries/libvirt/libvirt.SlackBuild
@@ -5,8 +5,8 @@
# Maintained by Robby Workman <rworkman@slackbuilds.org>
PRGNAM=libvirt
-VERSION=${VERSION:-4.5.0}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-5.10.0}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -56,8 +56,11 @@ sed -i "s|(prefix)/lib/sysctl|(sysconfdir)/sysctl|" src/Makefile.in
patch -p1 < $CWD/use-virtgroup-in-polkit-rules.diff
sed -i -e "s,@VIRTGROUP@,$VIRTGROUP,g" src/remote/libvirtd.rules
+# Since 5.10: "configure: error: Build directory must be different from source directory"
+mkdir -p build
+cd build
CFLAGS="$SLKCFLAGS" \
-./configure \
+../configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--bindir=/usr/sbin \
@@ -79,6 +82,7 @@ make \
HTML_DIR=/usr/doc/$PRGNAM-$VERSION \
EXAMPLE_DIR=/usr/doc/$PRGNAM-$VERSION/examples \
install-strip DESTDIR=$PKG
+cd ..
# we don't have augeas
rm -fr $PKG/usr/share/augeas
diff --git a/libraries/libvirt/libvirt.info b/libraries/libvirt/libvirt.info
index f8186d1ad3..1bb424b0f9 100644
--- a/libraries/libvirt/libvirt.info
+++ b/libraries/libvirt/libvirt.info
@@ -1,10 +1,10 @@
PRGNAM="libvirt"
-VERSION="4.5.0"
+VERSION="5.10.0"
HOMEPAGE="http://libvirt.org"
-DOWNLOAD="https://libvirt.org/sources/libvirt-4.5.0.tar.xz"
-MD5SUM="692b2d00907438ed08a68813d3177cd3"
+DOWNLOAD="https://libvirt.org/sources/libvirt-5.10.0.tar.xz"
+MD5SUM="d15aaba3f1e7dc311aacbded48f0dff7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="yajl urlgrabber"
+REQUIRES="yajl"
MAINTAINER="Robby Workman"
EMAIL="rworkman@slackbuilds.org"
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 d05f7bf795..0000000000
--- a/libraries/libwacom/libwacom.SlackBuild
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/sh
-#
-# Slackware build script for libwacom.
-#
-# Copyright 2016-2019 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:-1.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-$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.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/libwacom/libwacom.info b/libraries/libwacom/libwacom.info
deleted file mode 100644
index 80b87362bb..0000000000
--- a/libraries/libwacom/libwacom.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libwacom"
-VERSION="1.2"
-HOMEPAGE="https://github.com/linuxwacom/libwacom"
-DOWNLOAD="https://github.com/linuxwacom/libwacom/archive/libwacom-1.2/libwacom-libwacom-1.2.tar.gz"
-MD5SUM="f7956584c6faa68621545865303697d4"
-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 7e4da7c575..0000000000
--- a/libraries/libwebp/libwebp.SlackBuild
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for webP
-# written by powtrix (@gmail.com)
-
-PRGNAM=libwebp
-VERSION=${VERSION:-1.0.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=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 \
- --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 eb0e19dac9..0000000000
--- a/libraries/libwebp/libwebp.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="libwebp"
-VERSION="1.0.3"
-HOMEPAGE="https://developers.google.com/speed/webp/"
-DOWNLOAD="https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.3.tar.gz"
-MD5SUM="906ad85daaaa2eac97c8aa2dec9e8b77"
-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/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 2cbbae91e4..301ae45da4 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 570dd8e992..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.6}
-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 61f97c00b1..0000000000
--- a/libraries/npth/npth.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="npth"
-VERSION="1.6"
-HOMEPAGE="https://www.gnupg.org/related_software/npth/index.html"
-DOWNLOAD="https://www.gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2"
-MD5SUM="375d1a15ad969f32d25f1a7630929854"
-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/ocaml-camomile/ocaml-camomile.SlackBuild b/libraries/ocaml-camomile/ocaml-camomile.SlackBuild
index 1acdb0ba15..ce1a1b262d 100644
--- a/libraries/ocaml-camomile/ocaml-camomile.SlackBuild
+++ b/libraries/ocaml-camomile/ocaml-camomile.SlackBuild
@@ -21,15 +21,16 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=ocaml-camomile
-VERSION=${VERSION:-0.8.5}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-1.0.2}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
SRCNAM=camomile
+SRCNAM2=Camomile
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 +41,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"
@@ -58,9 +59,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $SRCNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.bz2
-cd $SRCNAM-$VERSION
+rm -rf $SRCNAM2-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM2-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -68,35 +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 {} \;
-# Install missing library, thanks debian
-patch -p1 < $CWD/0002-Install-missing-camomileLibrary.a.patch
+ocaml configure.ml
+dune build -p camomile @install
+DESTDIR=$PKG dune install --prefix=/usr --libdir="$(ocamlfind printconf destdir)"
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure --prefix=/usr
-
-# add DESTDIR for `install-data'
-sed -i 's|^prefix=\(.*\)$|prefix=$(DESTDIR)\1|' Makefile
-
-# for `install-without-ocamlfind'
-sed -i 's|^OCAMLLIB = \(.*\)$|OCAMLLIB = $(DESTDIR)\1|' Makefile
-
-# for `install-with-ocamlfind'
-long='$(DESTDIR)/$$(ocamlfind printconf destdir)'
-sed -i "s|\\(ocamlfind install\\)| mkdir -p $long; \\1 -destdir $long |" Makefile
-
-make -j1
-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 -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 Changes README \
- $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a *.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/ocaml-camomile/ocaml-camomile.info b/libraries/ocaml-camomile/ocaml-camomile.info
index 5706af8a10..028d83635f 100644
--- a/libraries/ocaml-camomile/ocaml-camomile.info
+++ b/libraries/ocaml-camomile/ocaml-camomile.info
@@ -1,8 +1,8 @@
PRGNAM="ocaml-camomile"
-VERSION="0.8.5"
+VERSION="1.0.2"
HOMEPAGE="http://camomile.sourceforge.net/"
-DOWNLOAD="https://github.com/yoriyuki/Camomile/releases/download/rel-0.8.5/camomile-0.8.5.tar.bz2"
-MD5SUM="1e25b6cd4efd26ab38a667db18d83f02"
+DOWNLOAD="https://github.com/yoriyuki/Camomile/archive/1.0.2/camomile-1.0.2.tar.gz"
+MD5SUM="2ec60575e485b0b92f821949a81acb4d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="camlp4"
diff --git a/libraries/ocaml-findlib/ocaml-findlib.SlackBuild b/libraries/ocaml-findlib/ocaml-findlib.SlackBuild
index 489b2d1d52..50c641277f 100644
--- a/libraries/ocaml-findlib/ocaml-findlib.SlackBuild
+++ b/libraries/ocaml-findlib/ocaml-findlib.SlackBuild
@@ -22,7 +22,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=ocaml-findlib
-VERSION=${VERSION:-1.6.2}
+VERSION=${VERSION:-1.8.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -30,7 +30,7 @@ SRCNAM=findlib
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$(uname -m) ;;
esac
@@ -41,8 +41,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/ocaml-findlib/ocaml-findlib.info b/libraries/ocaml-findlib/ocaml-findlib.info
index 63828cfae9..d5e7d3ed20 100644
--- a/libraries/ocaml-findlib/ocaml-findlib.info
+++ b/libraries/ocaml-findlib/ocaml-findlib.info
@@ -1,10 +1,10 @@
PRGNAM="ocaml-findlib"
-VERSION="1.6.2"
+VERSION="1.8.1"
HOMEPAGE="http://projects.camlcity.org/projects/findlib.html"
-DOWNLOAD="http://download.camlcity.org/download/findlib-1.6.2.tar.gz"
-MD5SUM="530ff275d6b96e140f0d3a03ed14b68e"
+DOWNLOAD="http://download.camlcity.org/download/findlib-1.8.1.tar.gz"
+MD5SUM="18ca650982c15536616dea0e422cbd8c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="ocaml"
-MAINTAINER="Markus Hutmacher"
-EMAIL="mailing@markhu.de"
+MAINTAINER="Matteo Bernardini"
+EMAIL="ponce@slackbuilds.org"
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 c4e5555601..0000000000
--- a/libraries/ocl-icd/ocl-icd.SlackBuild
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for ocl-icd
-
-# Copyright (c) 2017-2019 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.12}
-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" \
-./bootstrap
-./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 180d3f8ef5..0000000000
--- a/libraries/ocl-icd/ocl-icd.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="ocl-icd"
-VERSION="2.2.12"
-HOMEPAGE="https://github.com/OCL-dev/ocl-icd"
-DOWNLOAD="https://github.com/OCL-dev/ocl-icd/archive/v2.2.12.tar.gz"
-MD5SUM="47035a0b597fe334be16a653c7c7951f"
-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 58678a4610..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://github.com/OCL-dev/ocl-icd
diff --git a/libraries/opal/README b/libraries/opal/README
index a6a7e53e88..b20eafbaeb 100644
--- a/libraries/opal/README
+++ b/libraries/opal/README
@@ -2,4 +2,4 @@ The Open Phone Abstraction Library (OPAL) is a C++ multi-platform,
multi-protocol library for Fax, Video & Voice over IP and other
networks.
-Optional dependencies are ffmpeg, x264, celt and jdk/openjdk.
+Optional dependencies are x264, celt and jdk/openjdk.
diff --git a/libraries/opal/ffmpeg2.patch b/libraries/opal/ffmpeg2.patch
deleted file mode 100644
index 80dca469d9..0000000000
--- a/libraries/opal/ffmpeg2.patch
+++ /dev/null
@@ -1,398 +0,0 @@
-patch from: http://www.linuxfromscratch.org/blfs/view/svn/multimedia/opal.html
-
-Submitted By: Igor Živković <contact@igor-zivkovic.from.hr>
-Date: 2013-10-08
-Initial Package Version: 3.10.10
-Upstream Status: Unknown
-Origin: Gentoo
-Description: Fixes building against FFmpeg version >= 2.0.0
-
-diff -Naur opal-3.10.10.orig/plugins/video/common/dyna.cxx opal-3.10.10/plugins/video/common/dyna.cxx
---- opal-3.10.10.orig/plugins/video/common/dyna.cxx 2013-02-20 03:18:05.000000000 +0100
-+++ plugins/video/common/dyna.cxx 2013-10-08 12:57:25.058873513 +0200
-@@ -210,7 +210,7 @@
- #endif
-
-
--FFMPEGLibrary::FFMPEGLibrary(CodecID codec)
-+FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec)
- {
- m_codec = codec;
- if (m_codec==CODEC_ID_H264)
-@@ -348,12 +348,12 @@
- return true;
- }
-
--AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id)
-+AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum AVCodecID id)
- {
- return Favcodec_find_encoder(id);
- }
-
--AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id)
-+AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum AVCodecID id)
- {
- WaitAndSignal m(processLock);
-
-diff -Naur opal-3.10.10.orig/plugins/video/common/dyna.h opal-3.10.10/plugins/video/common/dyna.h
---- opal-3.10.10.orig/plugins/video/common/dyna.h 2013-02-20 03:18:05.000000000 +0100
-+++ plugins/video/common/dyna.h 2013-10-08 12:57:25.058873513 +0200
-@@ -88,13 +88,13 @@
- class FFMPEGLibrary
- {
- public:
-- FFMPEGLibrary(CodecID codec);
-+ FFMPEGLibrary(AVCodecID codec);
- ~FFMPEGLibrary();
-
- bool Load();
-
-- AVCodec *AvcodecFindEncoder(enum CodecID id);
-- AVCodec *AvcodecFindDecoder(enum CodecID id);
-+ AVCodec *AvcodecFindEncoder(enum AVCodecID id);
-+ AVCodec *AvcodecFindDecoder(enum AVCodecID id);
- AVCodecContext *AvcodecAllocContext(void);
- AVFrame *AvcodecAllocFrame(void);
- int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec);
-@@ -117,15 +117,15 @@
- DynaLink m_libAvcodec;
- DynaLink m_libAvutil;
-
-- CodecID m_codec;
-+ AVCodecID m_codec;
- char m_codecString[32];
-
- void (*Favcodec_init)(void);
- void (*Fav_init_packet)(AVPacket *pkt);
-
- void (*Favcodec_register_all)(void);
-- AVCodec *(*Favcodec_find_encoder)(enum CodecID id);
-- AVCodec *(*Favcodec_find_decoder)(enum CodecID id);
-+ AVCodec *(*Favcodec_find_encoder)(enum AVCodecID id);
-+ AVCodec *(*Favcodec_find_decoder)(enum AVCodecID id);
- AVCodecContext *(*Favcodec_alloc_context)(void);
- AVFrame *(*Favcodec_alloc_frame)(void);
- int (*Favcodec_open)(AVCodecContext *ctx, AVCodec *codec);
-diff -Naur opal-3.10.10.orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h opal-3.10.10/plugins/video/common/ffmpeg/libavcodec/avcodec.h
---- opal-3.10.10.orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-02-20 03:18:04.000000000 +0100
-+++ plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-10-08 12:57:25.060873488 +0200
-@@ -101,7 +101,7 @@
- * 1. no value of a existing codec ID changes (that would break ABI),
- * 2. it is as close as possible to similar codecs.
- */
--enum CodecID {
-+enum AVCodecID {
- CODEC_ID_NONE,
-
- /* video codecs */
-@@ -1390,7 +1390,7 @@
-
- char codec_name[32];
- enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
-- enum CodecID codec_id; /* see CODEC_ID_xxx */
-+ enum AVCodecID codec_id; /* see CODEC_ID_xxx */
-
- /**
- * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
-@@ -2843,7 +2843,7 @@
- */
- const char *name;
- enum AVMediaType type;
-- enum CodecID id;
-+ enum AVCodecID id;
- int priv_data_size;
- int (*init)(AVCodecContext *);
- int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
-@@ -2898,7 +2898,7 @@
- *
- * See CODEC_ID_xxx
- */
-- enum CodecID id;
-+ enum AVCodecID id;
-
- /**
- * Supported pixel format.
-@@ -3402,10 +3402,10 @@
- /**
- * Find a registered encoder with a matching codec ID.
- *
-- * @param id CodecID of the requested encoder
-+ * @param id AVCodecID of the requested encoder
- * @return An encoder if one was found, NULL otherwise.
- */
--AVCodec *avcodec_find_encoder(enum CodecID id);
-+AVCodec *avcodec_find_encoder(enum AVCodecID id);
-
- /**
- * Find a registered encoder with the specified name.
-@@ -3418,10 +3418,10 @@
- /**
- * Find a registered decoder with a matching codec ID.
- *
-- * @param id CodecID of the requested decoder
-+ * @param id AVCodecID of the requested decoder
- * @return A decoder if one was found, NULL otherwise.
- */
--AVCodec *avcodec_find_decoder(enum CodecID id);
-+AVCodec *avcodec_find_decoder(enum AVCodecID id);
-
- /**
- * Find a registered decoder with the specified name.
-@@ -3822,7 +3822,7 @@
- * @param[in] codec_id the codec
- * @return Number of bits per sample or zero if unknown for the given codec.
- */
--int av_get_bits_per_sample(enum CodecID codec_id);
-+int av_get_bits_per_sample(enum AVCodecID codec_id);
-
- #if FF_API_OLD_SAMPLE_FMT
- /**
-diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10/plugins/video/H.263-1998/h263-1998.cxx
---- opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.cxx 2013-02-20 03:18:03.000000000 +0100
-+++ plugins/video/H.263-1998/h263-1998.cxx 2013-10-08 12:57:25.061873475 +0200
-@@ -48,6 +48,10 @@
- #endif
-
- #include "h263-1998.h"
-+extern "C"
-+{
-+#include <libavutil/opt.h>
-+}
- #include <limits>
- #include <iomanip>
- #include <stdio.h>
-@@ -203,7 +207,7 @@
- PTRACE(4, m_prefix, "Encoder closed");
- }
-
--bool H263_Base_EncoderContext::Init(CodecID codecId)
-+bool H263_Base_EncoderContext::Init(AVCodecID codecId)
- {
- PTRACE(5, m_prefix, "Opening encoder");
-
-@@ -317,9 +321,9 @@
- // Level 2+
- // works with eyeBeam, signaled via non-standard "D"
- if (atoi(value) == 1)
-- m_context->flags |= CODEC_FLAG_H263P_UMV;
-+ av_opt_set_int(m_context->priv_data, "umv", 1, 0);
- else
-- m_context->flags &= ~CODEC_FLAG_H263P_UMV;
-+ av_opt_set_int(m_context->priv_data, "umv", 0, 0);
- return;
- }
-
-@@ -328,9 +332,9 @@
- // Annex F: Advanced Prediction Mode
- // does not work with eyeBeam
- if (atoi(value) == 1)
-- m_context->flags |= CODEC_FLAG_OBMC;
-+ av_opt_set_int(m_context->priv_data, "obmc", 1, 0);
- else
-- m_context->flags &= ~CODEC_FLAG_OBMC;
-+ av_opt_set_int(m_context->priv_data, "obmc", 0, 0);
- return;
- }
- #endif
-@@ -360,9 +364,9 @@
- // Annex K: Slice Structure
- // does not work with eyeBeam
- if (atoi(value) != 0)
-- m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT;
-+ av_opt_set_int(m_context->priv_data, "structured_slices", 1, 0);
- else
-- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
-+ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
- return;
- }
-
-@@ -370,9 +374,9 @@
- // Annex S: Alternative INTER VLC mode
- // does not work with eyeBeam
- if (atoi(value) == 1)
-- m_context->flags |= CODEC_FLAG_H263P_AIV;
-+ av_opt_set_int(m_context->priv_data, "aiv", 1, 0);
- else
-- m_context->flags &= ~CODEC_FLAG_H263P_AIV;
-+ av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
- return;
- }
-
-@@ -450,15 +454,6 @@
- PTRACE(5, m_prefix, "qmax set to " << m_context->qmax);
- PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size);
-
-- #define CODEC_TRACER_FLAG(tracer, flag) \
-- PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled"));
-- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV);
-- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC);
-- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED);
-- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT)
-- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER);
-- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV);
--
- return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0;
- }
-
-@@ -521,7 +516,7 @@
-
- // Need to copy to local buffer to guarantee 16 byte alignment
- memcpy(m_inputFrame->data[0], OPAL_VIDEO_FRAME_DATA_PTR(header), header->width*header->height*3/2);
-- m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_NONE;
-+ m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_NONE;
-
- /*
- m_inputFrame->pts = (int64_t)srcRTP.GetTimestamp()*m_context->time_base.den/m_context->time_base.num/VIDEO_CLOCKRATE;
-@@ -603,13 +598,13 @@
- m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack;
- m_context->opaque = this; // used to separate out packets from different encode threads
-
-- m_context->flags &= ~CODEC_FLAG_H263P_UMV;
-+ av_opt_set_int(m_context->priv_data, "umv", 0, 0);
- m_context->flags &= ~CODEC_FLAG_4MV;
- #if LIBAVCODEC_RTP_MODE
- m_context->flags &= ~CODEC_FLAG_H263P_AIC;
- #endif
-- m_context->flags &= ~CODEC_FLAG_H263P_AIV;
-- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
-+ av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
-+ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
-
- return true;
- }
-diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.h opal-3.10.10/plugins/video/H.263-1998/h263-1998.h
---- opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.h 2013-02-20 03:18:03.000000000 +0100
-+++ plugins/video/H.263-1998/h263-1998.h 2013-10-08 12:57:25.062873463 +0200
-@@ -115,7 +115,7 @@
- virtual ~H263_Base_EncoderContext();
-
- virtual bool Init() = 0;
-- virtual bool Init(CodecID codecId);
-+ virtual bool Init(AVCodecID codecId);
-
- virtual bool SetOptions(const char * const * options);
- virtual void SetOption(const char * option, const char * value);
-diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/Makefile.in opal-3.10.10/plugins/video/H.263-1998/Makefile.in
---- opal-3.10.10.orig/plugins/video/H.263-1998/Makefile.in 2013-02-20 03:18:03.000000000 +0100
-+++ plugins/video/H.263-1998/Makefile.in 2013-10-08 12:57:25.062873463 +0200
-@@ -35,7 +35,7 @@
- $(COMMONDIR)/dyna.cxx
-
- CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR)
--LIBS += @DL_LIBS@
-+LIBS += @DL_LIBS@ @LIBAVUTIL_LIBS@
-
- HAVE_LIBAVCODEC_RTP_MODE=@HAVE_LIBAVCODEC_RTP_MODE@
- ifeq ($(HAVE_LIBAVCODEC_RTP_MODE),yes)
-diff -Naur opal-3.10.10.orig/plugins/video/H.264/gpl/h264_helper.cxx opal-3.10.10/plugins/video/H.264/gpl/h264_helper.cxx
---- opal-3.10.10.orig/plugins/video/H.264/gpl/h264_helper.cxx 2013-02-20 03:18:02.000000000 +0100
-+++ plugins/video/H.264/gpl/h264_helper.cxx 2013-10-08 12:57:25.062873463 +0200
-@@ -27,6 +27,7 @@
- #include <fstream>
- #include <stdlib.h>
- #include <sys/stat.h>
-+#include <unistd.h>
-
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
-diff -Naur opal-3.10.10.orig/plugins/video/H.264/h264-x264.cxx opal-3.10.10/plugins/video/H.264/h264-x264.cxx
---- opal-3.10.10.orig/plugins/video/H.264/h264-x264.cxx 2013-02-20 03:18:02.000000000 +0100
-+++ plugins/video/H.264/h264-x264.cxx 2013-10-08 12:57:25.063873450 +0200
-@@ -40,6 +40,9 @@
- #include "plugin-config.h"
- #endif
-
-+#define FF_IDCT_H264 11
-+#define CODEC_FLAG2_SKIP_RD 0x00004000
-+
- #include <codec/opalplugin.hpp>
-
- #include "../common/ffmpeg.h"
-@@ -1071,13 +1074,10 @@
- return false;
-
- m_context->workaround_bugs = FF_BUG_AUTODETECT;
-- m_context->error_recognition = FF_ER_AGGRESSIVE;
- m_context->idct_algo = FF_IDCT_H264;
- m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
- m_context->flags = CODEC_FLAG_INPUT_PRESERVED | CODEC_FLAG_EMU_EDGE;
-- m_context->flags2 = CODEC_FLAG2_BRDO |
-- CODEC_FLAG2_MEMC_ONLY |
-- CODEC_FLAG2_DROP_FRAME_TIMECODE |
-+ m_context->flags2 = CODEC_FLAG2_DROP_FRAME_TIMECODE |
- CODEC_FLAG2_SKIP_RD |
- CODEC_FLAG2_CHUNKS;
-
-diff -Naur opal-3.10.10.orig/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx
---- opal-3.10.10.orig/plugins/video/H.264/shared/x264wrap.cxx 2013-02-20 03:18:02.000000000 +0100
-+++ plugins/video/H.264/shared/x264wrap.cxx 2013-10-08 12:57:25.064873438 +0200
-@@ -33,6 +33,7 @@
-
- #include <codec/opalplugin.hpp>
- #include <stdio.h>
-+#include <unistd.h>
-
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
-diff -Naur opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/Makefile.in opal-3.10.10/plugins/video/MPEG4-ffmpeg/Makefile.in
---- opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/Makefile.in 2013-02-20 03:18:07.000000000 +0100
-+++ plugins/video/MPEG4-ffmpeg/Makefile.in 2013-10-08 12:57:25.064873438 +0200
-@@ -31,7 +31,7 @@
- SRCS := mpeg4.cxx $(COMMONDIR)/dyna.cxx
-
- CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR)
--LIBS += @DL_LIBS@
-+LIBS += @DL_LIBS@ @LIBAVUTIL_LIBS@
-
- # Add LIBAVCODEC_SOURCE_DIR to the include path so we can #include <libavcodec/...h>
- # Also add libavutil, so ffmpeg headers can #include "log.h".
-diff -Naur opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.10/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
---- opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-02-20 03:18:07.000000000 +0100
-+++ plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-10-08 12:57:25.065873425 +0200
-@@ -103,6 +103,7 @@
-
- #else /* LIBAVCODEC_HAVE_SOURCE_DIR */
- #include "../common/ffmpeg.h"
-+#include <libavutil/opt.h>
- #endif /* LIBAVCODEC_HAVE_SOURCE_DIR */
- }
-
-@@ -589,17 +590,17 @@
- m_avpicture->quality = m_videoQMin;
-
- #ifdef USE_ORIG
-- m_avcontext->flags |= CODEC_FLAG_PART; // data partitioning
-+ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
- m_avcontext->flags |= CODEC_FLAG_4MV; // 4 motion vectors
- #else
- m_avcontext->max_b_frames=0; /*don't use b frames*/
- m_avcontext->flags|=CODEC_FLAG_AC_PRED;
-- m_avcontext->flags|=CODEC_FLAG_H263P_UMV;
-+ av_opt_set_int(m_avcontext->priv_data, "umv", 1, 0);
- /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */
- m_avcontext->flags|=CODEC_FLAG_4MV;
- m_avcontext->flags|=CODEC_FLAG_GMC;
- m_avcontext->flags|=CODEC_FLAG_LOOP_FILTER;
-- m_avcontext->flags|=CODEC_FLAG_H263P_SLICE_STRUCT;
-+ av_opt_set_int(m_avcontext->priv_data, "structured_slices", 1, 0);
- #endif
- m_avcontext->opaque = this; // for use in RTP callback
- }
-@@ -804,7 +805,7 @@
- // Should the next frame be an I-Frame?
- if ((flags & PluginCodec_CoderForceIFrame) || (m_frameNum == 0))
- {
-- m_avpicture->pict_type = FF_I_TYPE;
-+ m_avpicture->pict_type = AV_PICTURE_TYPE_I;
- }
- else // No IFrame requested, let avcodec decide what to do
- {
-@@ -1325,7 +1326,7 @@
-
- void MPEG4DecoderContext::SetStaticDecodingParams() {
- m_avcontext->flags |= CODEC_FLAG_4MV;
-- m_avcontext->flags |= CODEC_FLAG_PART;
-+ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
- m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations
- }
-
diff --git a/libraries/opal/opal.SlackBuild b/libraries/opal/opal.SlackBuild
index ca382bc4ef..c764a39f32 100644
--- a/libraries/opal/opal.SlackBuild
+++ b/libraries/opal/opal.SlackBuild
@@ -71,17 +71,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 and seds from lfs:
-# http://www.linuxfromscratch.org/blfs/view/svn/multimedia/opal.html
-patch -p1 --verbose < $CWD/ffmpeg2.patch
-
-sed -e 's/CODEC_ID/AV_&/' \
- -e 's/PIX_FMT_/AV_&/' \
- -i plugins/video/H.263-1998/h263-1998.cxx \
- plugins/video/common/dyna.cxx \
- plugins/video/H.264/h264-x264.cxx \
- plugins/video/MPEG4-ffmpeg/mpeg4.cxx
-
sed -e '/<< mime.PrintContents/ s/mime/(const std::string\&)&/' \
-i src/im/msrp.cxx &&
@@ -127,6 +116,7 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-msrp \
--enable-sipim \
--enable-plugins \
+ --disable-libavcodec \
--build=$ARCH-slackware-linux
make VERBOSE=1
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 650a83f9b3..0000000000
--- a/libraries/pcre2/pcre2.SlackBuild
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for pcre2
-
-# Copyright 2016-2019 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.33}
-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 648ddb8cb8..0000000000
--- a/libraries/pcre2/pcre2.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="pcre2"
-VERSION="10.33"
-HOMEPAGE="http://www.pcre.org/"
-DOWNLOAD="https://downloads.sourceforge.net/pcre/pcre2-10.33.tar.bz2"
-MD5SUM="80b355f2dce909a2e2424f5c79eddb44"
-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 244a1966fa..5974c8225d 100644
--- a/libraries/physfs/physfs.SlackBuild
+++ b/libraries/physfs/physfs.SlackBuild
@@ -72,14 +72,14 @@ 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 \
-DPHYSFS_BUILD_TEST=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DLIB_SUFFIX:STRING=${LIBDIRSUFFIX}
+ -DLIB_SUFFIX:STRING=${LIBDIRSUFFIX} .
make
make install DESTDIR=$PKG
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-2.10.11-openssl11.patch b/libraries/ptlib/ptlib-2.10.11-openssl11.patch
new file mode 100644
index 0000000000..38d296eb2d
--- /dev/null
+++ b/libraries/ptlib/ptlib-2.10.11-openssl11.patch
@@ -0,0 +1,212 @@
+https://build.opensuse.org/package/view_file/network:telephony/libpt2/libpt2-openssl11.patch
+by mgorse@suse.com, see also:
+
+ - https://build.opensuse.org/request/show/518821
+ - https://bugzilla.opensuse.org/show_bug.cgi?id=1055477
+
+--- ptlib-2.10.11/src/ptclib/pssl.cxx 2013-08-14 18:20:27.000000000 -0500
++++ ptlib-2.10.11/src/ptclib/pssl.cxx.openssl11 2017-08-25 17:25:44.824287596 -0500
+@@ -140,7 +140,11 @@ PFACTORY_CREATE_SINGLETON(PProcessStartu
+ class PSSL_BIO
+ {
+ public:
++#if OPENSSL_VERSION_NUMBER >= 0x10100000
++ PSSL_BIO(const BIO_METHOD *method = BIO_s_file())
++#else
+ PSSL_BIO(BIO_METHOD *method = BIO_s_file_internal())
++#endif
+ { bio = BIO_new(method); }
+
+ ~PSSL_BIO()
+@@ -627,10 +631,18 @@ PSSLDiffieHellman::PSSLDiffieHellman(con
+ if (dh == NULL)
+ return;
+
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++ DH_set0_pqg (dh, BN_bin2bn(pData, pSize, NULL), NULL, BN_bin2bn(gData, gSize, NULL));
++ const BIGNUM *p, *g;
++ DH_get0_pqg(dh, &p, NULL, &g);
++ if (p != NULL && g != NULL)
++ return;
++#else
+ dh->p = BN_bin2bn(pData, pSize, NULL);
+ dh->g = BN_bin2bn(gData, gSize, NULL);
+ if (dh->p != NULL && dh->g != NULL)
+ return;
++#endif
+
+ DH_free(dh);
+ dh = NULL;
+@@ -805,9 +817,11 @@ void PSSLContext::Construct(Method metho
+ SSL_METHOD * meth;
+
+ switch (method) {
++#ifndef OPENSSL_NO_SSL3
+ case SSLv3:
+ meth = SSLv3_method();
+ break;
++#endif
+ case TLSv1:
+ meth = TLSv1_method();
+ break;
+@@ -1117,7 +1131,11 @@ PBoolean PSSLChannel::RawSSLRead(void *
+ //
+
+
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++#define PSSLCHANNEL(bio) ((PSSLChannel *)(BIO_get_data (bio)))
++#else
+ #define PSSLCHANNEL(bio) ((PSSLChannel *)(bio->ptr))
++#endif
+
+ extern "C" {
+
+@@ -1130,10 +1148,16 @@ typedef long (*lfptr)();
+
+ static int Psock_new(BIO * bio)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++ BIO_set_init (bio, 0);
++ BIO_set_data (bio, NULL);; // this is really (PSSLChannel *)
++ BIO_set_flags (bio, 0);
++#else
+ bio->init = 0;
+ bio->num = 0;
+ bio->ptr = NULL; // this is really (PSSLChannel *)
+ bio->flags = 0;
++#endif
+
+ return(1);
+ }
+@@ -1144,13 +1168,23 @@ static int Psock_free(BIO * bio)
+ if (bio == NULL)
+ return 0;
+
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++ if (BIO_get_shutdown (bio)) {
++ if (BIO_get_init (bio)) {
++#else
+ if (bio->shutdown) {
+ if (bio->init) {
++#endif
+ PSSLCHANNEL(bio)->Shutdown(PSocket::ShutdownReadAndWrite);
+ PSSLCHANNEL(bio)->Close();
+ }
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++ BIO_set_init (bio, 0);
++ BIO_set_flags (bio, 0);
++#else
+ bio->init = 0;
+ bio->flags = 0;
++#endif
+ }
+ return 1;
+ }
+@@ -1160,11 +1194,19 @@ static long Psock_ctrl(BIO * bio, int cm
+ {
+ switch (cmd) {
+ case BIO_CTRL_SET_CLOSE:
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++ BIO_set_shutdown (bio, (int)num);
++#else
+ bio->shutdown = (int)num;
++#endif
+ return 1;
+
+ case BIO_CTRL_GET_CLOSE:
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++ return BIO_get_shutdown (bio);
++#else
+ return bio->shutdown;
++#endif
+
+ case BIO_CTRL_FLUSH:
+ return 1;
+@@ -1239,41 +1281,64 @@ static int Psock_puts(BIO * bio, const c
+ };
+
+
+-static BIO_METHOD methods_Psock =
+-{
+- BIO_TYPE_SOCKET,
+- "PTLib-PSSLChannel",
+-#if (OPENSSL_VERSION_NUMBER < 0x00906000)
+- (ifptr)Psock_write,
+- (ifptr)Psock_read,
+- (ifptr)Psock_puts,
+- NULL,
+- (lfptr)Psock_ctrl,
+- (ifptr)Psock_new,
+- (ifptr)Psock_free
+-#else
+- Psock_write,
+- Psock_read,
+- Psock_puts,
+- NULL,
+- Psock_ctrl,
+- Psock_new,
+- Psock_free
+-#endif
+-};
+-
+
+ PBoolean PSSLChannel::OnOpen()
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++ static BIO_METHOD *methods_pSock = NULL;
++
++ if (methods_pSock == NULL) {
++ methods_pSock = BIO_meth_new (BIO_TYPE_SOCKET, "PTLib-PSSLChannel");
++ if (!methods_pSock)
++ return FALSE;
++ BIO_meth_set_write (methods_pSock, Psock_write);
++ BIO_meth_set_read (methods_pSock, Psock_read);
++ BIO_meth_set_puts (methods_pSock, Psock_puts);
++ BIO_meth_set_ctrl (methods_pSock, Psock_ctrl);
++ BIO_meth_set_create (methods_pSock, Psock_new);
++ BIO_meth_set_destroy (methods_pSock, Psock_free);
++ }
++
++ BIO * bio = BIO_new(methods_pSock);
++#else
++ static BIO_METHOD methods_Psock =
++ {
++ BIO_TYPE_SOCKET,
++ "PTLib-PSSLChannel",
++ #if (OPENSSL_VERSION_NUMBER < 0x00906000)
++ (ifptr)Psock_write,
++ (ifptr)Psock_read,
++ (ifptr)Psock_puts,
++ NULL,
++ (lfptr)Psock_ctrl,
++ (ifptr)Psock_new,
++ (ifptr)Psock_free
++ #else
++ Psock_write,
++ Psock_read,
++ Psock_puts,
++ NULL,
++ Psock_ctrl,
++ Psock_new,
++ Psock_free
++ #endif
++ };
++
+ BIO * bio = BIO_new(&methods_Psock);
++#endif
+ if (bio == NULL) {
+ SSLerr(SSL_F_SSL_SET_FD,ERR_R_BUF_LIB);
+ return PFalse;
+ }
+
+ // "Open" then bio
++#if OPENSSL_VERSION_NUMBER >= 0x10100000l
++ BIO_set_data (bio, this);
++ BIO_set_init (bio, 1);
++#else
+ bio->ptr = this;
+ bio->init = 1;
++#endif
+
+ SSL_set_bio(ssl, bio, bio);
+ return PTrue;
diff --git a/libraries/ptlib/ptlib-gcc8.patch b/libraries/ptlib/ptlib-gcc8.patch
new file mode 100644
index 0000000000..c446696532
--- /dev/null
+++ b/libraries/ptlib/ptlib-gcc8.patch
@@ -0,0 +1,12 @@
+--- ptlib-2.10.11/src/ptlib/unix/channel.cxx.orig 2018-07-23 18:25:26.300381968 +0100
++++ ptlib-2.10.11/src/ptlib/unix/channel.cxx 2018-07-23 18:26:07.244497346 +0100
+@@ -36,7 +36,8 @@
+
+ #include <ptlib.h>
+ #include <sys/ioctl.h>
+-
++#include <sys/uio.h>
++#include <unistd.h>
+
+ #include "../common/pchannel.cxx"
+
diff --git a/libraries/ptlib/ptlib.SlackBuild b/libraries/ptlib/ptlib.SlackBuild
index d2c42bd774..30dfd47045 100644
--- a/libraries/ptlib/ptlib.SlackBuild
+++ b/libraries/ptlib/ptlib.SlackBuild
@@ -68,11 +68,11 @@ 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
+patch -p1 < $CWD/ptlib-gcc8.patch
+
+patch -p1 < $CWD/ptlib-2.10.11-openssl11.patch
# The "LIBS" variable is set to fix OpenLDAP support
#
diff --git a/libraries/ptlib/ssl3.patch b/libraries/ptlib/ssl3.patch
deleted file mode 100644
index 6fdb7cabea..0000000000
--- a/libraries/ptlib/ssl3.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -u -r ptlib-2.10.11/src/ptclib/pssl.cxx ptlib-2.10.11-nossl3/src/ptclib/pssl.cxx
---- ptlib-2.10.11/src/ptclib/pssl.cxx 2013-08-15 01:20:27.000000000 +0200
-+++ ptlib-2.10.11-nossl3/src/ptclib/pssl.cxx 2016-03-03 11:39:02.224835510 +0100
-@@ -805,13 +805,11 @@
- SSL_METHOD * meth;
-
- switch (method) {
-- case SSLv3:
-- meth = SSLv3_method();
-- break;
- case TLSv1:
- meth = TLSv1_method();
- break;
- case SSLv23:
-+ case SSLv3:
- default:
- meth = SSLv23_method();
- break;
-
diff --git a/libraries/python3-PyQt5/python3-PyQt5.SlackBuild b/libraries/python3-PyQt5/python3-PyQt5.SlackBuild
index 759fbffc7b..b399e7d110 100644
--- a/libraries/python3-PyQt5/python3-PyQt5.SlackBuild
+++ b/libraries/python3-PyQt5/python3-PyQt5.SlackBuild
@@ -94,7 +94,7 @@ python3 configure.py \
--verbose \
-q /usr/bin/qmake-qt5 \
--sip=/usr/bin/python3-sip \
- --sip-incdir=/usr/include/python$PYTHONVER
+ --sip-incdir=/usr/include/python$PYTHONVER/python3-sip
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/icu4c-65.1.patch b/libraries/qt5-webkit/icu4c-65.1.patch
new file mode 100644
index 0000000000..c4b6040bfc
--- /dev/null
+++ b/libraries/qt5-webkit/icu4c-65.1.patch
@@ -0,0 +1,60 @@
+diff -Naur qtwebkit-opensource-src-5.9.1.orig/Source/WebCore/dom/Document.cpp qtwebkit-opensource-src-5.9.1/Source/WebCore/dom/Document.cpp
+--- qtwebkit-opensource-src-5.9.1.orig/Source/WebCore/dom/Document.cpp 2017-06-16 14:46:36.000000000 +0200
++++ qtwebkit-opensource-src-5.9.1/Source/WebCore/dom/Document.cpp 2019-10-08 06:49:07.806058000 +0200
+@@ -3846,12 +3846,12 @@
+ unsigned i = 0;
+
+ UChar32 c;
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!isValidNameStart(c))
+ return false;
+
+ while (i < length) {
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!isValidNamePart(c))
+ return false;
+ }
+@@ -3914,7 +3914,7 @@
+ const UChar* s = qualifiedName.characters();
+ for (unsigned i = 0; i < length;) {
+ UChar32 c;
+- U16_NEXT(s, i, length, c)
++ U16_NEXT(s, i, length, c);
+ if (c == ':') {
+ if (sawColon) {
+ ec = NAMESPACE_ERR;
+diff -Naur qtwebkit-opensource-src-5.9.1.orig/Source/WebCore/platform/graphics/SegmentedFontData.cpp qtwebkit-opensource-src-5.9.1/Source/WebCore/platform/graphics/SegmentedFontData.cpp
+--- qtwebkit-opensource-src-5.9.1.orig/Source/WebCore/platform/graphics/SegmentedFontData.cpp 2017-06-16 14:46:36.000000000 +0200
++++ qtwebkit-opensource-src-5.9.1/Source/WebCore/platform/graphics/SegmentedFontData.cpp 2019-10-08 06:47:12.829058000 +0200
+@@ -61,7 +61,7 @@
+ {
+ UChar32 c;
+ for (int i = 0; i < length; ) {
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!containsCharacter(c))
+ return false;
+ }
+diff -Naur qtwebkit-opensource-src-5.9.1.orig/Source/WebCore/platform/mac/WebCoreNSURLExtras.mm qtwebkit-opensource-src-5.9.1/Source/WebCore/platform/mac/WebCoreNSURLExtras.mm
+--- qtwebkit-opensource-src-5.9.1.orig/Source/WebCore/platform/mac/WebCoreNSURLExtras.mm 2017-06-16 14:46:36.000000000 +0200
++++ qtwebkit-opensource-src-5.9.1/Source/WebCore/platform/mac/WebCoreNSURLExtras.mm 2019-10-08 06:48:15.130058000 +0200
+@@ -175,7 +175,7 @@
+ int32_t i = 0;
+ while (i < length) {
+ UChar32 c;
+- U16_NEXT(buffer, i, length, c)
++ U16_NEXT(buffer, i, length, c);
+ UErrorCode error = U_ZERO_ERROR;
+ UScriptCode script = uscript_getScript(c, &error);
+ if (error != U_ZERO_ERROR) {
+@@ -746,7 +746,7 @@
+ CFIndex i = 0;
+ while (i < length) {
+ UChar32 c;
+- U16_NEXT(sourceBuffer, i, length, c)
++ U16_NEXT(sourceBuffer, i, length, c);
+
+ if (isLookalikeCharacter(c)) {
+ uint8_t utf8Buffer[4];
diff --git a/libraries/qt5-webkit/qt5-webkit.SlackBuild b/libraries/qt5-webkit/qt5-webkit.SlackBuild
index a13f448a54..4d7052e181 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}
@@ -74,6 +74,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 {} \;
+# https://bugs.webkit.org/show_bug.cgi?id=202600
+patch -p1 < $CWD/icu4c-65.1.patch
+
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
export OPENSOURCE_CXXFLAGS="$SLKCFLAGS"
@@ -88,7 +91,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 b53918b710..b45f3c053c 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/eglfs_kms_egldevice.patch b/libraries/qt5/patches/eglfs_kms_egldevice.patch
new file mode 100644
index 0000000000..f3e2a798e3
--- /dev/null
+++ b/libraries/qt5/patches/eglfs_kms_egldevice.patch
@@ -0,0 +1,34 @@
+From 9a640e7bc67b0a1ff5c61c63703b669e6f24521e Mon Sep 17 00:00:00 2001
+From: Laszlo Agocs <laszlo.agocs@qt.io>
+Date: Wed, 26 Apr 2017 03:31:04 -0700
+Subject: eglfs_kms_egldevice: Fix type mess in nativeDisplay() virtual
+
+EGLNativeDisplayType is void* on NVIDIA systems but the backend may get compiled
+on others where it is something else. The function definition does not match
+the proto on these so it is time to correct this.
+
+Change-Id: I569d9f8f3fcba7b2a4672d83606dfdc7bb18a1f0
+Reviewed-by: Johan Helsing <johan.helsing@qt.io>
+---
+ .../deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp
+index 0a66a897a1..cca413ff2d 100644
+--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp
++++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp
+@@ -77,9 +77,9 @@ void QEglFSKmsEglDevice::close()
+ setFd(-1);
+ }
+
+-EGLNativeDisplayType QEglFSKmsEglDevice::nativeDisplay() const
++void *QEglFSKmsEglDevice::nativeDisplay() const
+ {
+- return reinterpret_cast<EGLNativeDisplayType>(m_devInt->eglDevice());
++ return m_devInt->eglDevice();
+ }
+
+ QPlatformScreen *QEglFSKmsEglDevice::createScreen(const QKmsOutput &output)
+--
+cgit v1.2.1
+
diff --git a/libraries/qt5/patches/kernel_5.4_qtserialbus.patch b/libraries/qt5/patches/kernel_5.4_qtserialbus.patch
new file mode 100644
index 0000000000..6fb9c3c1a7
--- /dev/null
+++ b/libraries/qt5/patches/kernel_5.4_qtserialbus.patch
@@ -0,0 +1,11 @@
+diff -Naur qt-everywhere-opensource-src-5.9.8.orig/qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.cpp qt-everywhere-opensource-src-5.9.8/qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.cpp
+--- qt-everywhere-opensource-src-5.9.8.orig/qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.cpp 2019-03-27 12:53:53.000000000 +0100
++++ qt-everywhere-opensource-src-5.9.8/qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.cpp 2019-11-18 18:33:43.632000000 +0100
+@@ -44,6 +44,7 @@
+
+ #include <linux/can/error.h>
+ #include <linux/can/raw.h>
++#include <linux/sockios.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include <net/if.h>
diff --git a/libraries/qt5/patches/qt5.webengine_gcc8.patch b/libraries/qt5/patches/qt5.webengine_gcc8.patch
new file mode 100644
index 0000000000..cf276bc732
--- /dev/null
+++ b/libraries/qt5/patches/qt5.webengine_gcc8.patch
@@ -0,0 +1,26 @@
+# Prevent these errors caused by using GCC8
+# (original patch taken from Fedora's chromium SRPM):
+#
+# make: *** [Makefile:1028: module-qtwebengine-make_first] Error 2
+# FAILED: obj/mojo/public/c/system/system/thunks.o
+# ../../3rdparty/chromium/mojo/public/c/system/buffer.h:38:42: error: static assertion failed: int64_t has weird alignment
+# ../../3rdparty/chromium/mojo/public/c/system/data_pipe.h:49:42: error: static assertion failed: int64_t has weird alignment
+# ../../3rdparty/chromium/mojo/public/c/system/message_pipe.h:47:42: error: static assertion failed: int64_t has weird alignment
+#
+--- 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/patches/qtbase59-openssl11.patch b/libraries/qt5/patches/qtbase59-openssl11.patch
new file mode 100644
index 0000000000..d84a3b56e0
--- /dev/null
+++ b/libraries/qt5/patches/qtbase59-openssl11.patch
@@ -0,0 +1,3961 @@
+/*
+ * openssl v1.1 support in qtbase 5.9
+ * Taken from Qt (or KDE, don't remember) for use on 5.9.1 (5.9.8 is last tested)
+ * ole.andre.rodlie@gmail.com
+*/
+
+diff --git a/config.tests/unix/openssl11/openssl.cpp b/config.tests/unix/openssl11/openssl.cpp
+new file mode 100644
+index 0000000..c20cc59
+--- /dev/null
++++ b/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()
++{
++}
+diff --git a/config.tests/unix/openssl11/openssl.pro b/config.tests/unix/openssl11/openssl.pro
+new file mode 100644
+index 0000000..a023aee
+--- /dev/null
++++ b/config.tests/unix/openssl11/openssl.pro
+@@ -0,0 +1,2 @@
++SOURCES = openssl.cpp
++CONFIG -= x11 qt
+diff --git a/src/network/configure.json b/src/network/configure.json
+index 916448a..5ecf1ad 100644
+--- a/src/network/configure.json
++++ b/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,
+diff --git a/src/network/ssl/qsslcertificate_openssl.cpp b/src/network/ssl/qsslcertificate_openssl.cpp
+index 28b7eda..71e514a 100644
+--- a/src/network/ssl/qsslcertificate_openssl.cpp
++++ b/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 QSslCertificate &other) const
+ 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() const
+ {
+ 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() const
+ {
+ 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, QString> QSslCertificate::subjectAlter
+ 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() const
+ 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 x509UnknownExtensionToValue(X509_EXTENSION *ext)
+ 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(X509_EXTENSION *ext)
+ 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(X509_EXTENSION *ext)
+ }
+ }
+
+-#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_mapFromX509Name(X509_NAME *name)
+ 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::QSslCertificate_from_X509(X509 *x509)
+ 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;
+diff --git a/src/network/ssl/qsslcontext_openssl.cpp b/src/network/ssl/qsslcontext_openssl.cpp
+index c92d8fc..cef5037 100644
+--- a/src/network/ssl/qsslcontext_openssl.cpp
++++ b/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);
+ }
+ }
+
+diff --git a/src/network/ssl/qsslcontext_openssl11.cpp b/src/network/ssl/qsslcontext_openssl11.cpp
+new file mode 100644
+index 0000000..787b6ae
+--- /dev/null
++++ b/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
+diff --git a/src/network/ssl/qsslcontext_opensslpre11.cpp b/src/network/ssl/qsslcontext_opensslpre11.cpp
+new file mode 100644
+index 0000000..9c01c2f
+--- /dev/null
++++ b/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
+diff --git a/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp b/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
+index 90687b0..5ebad82 100644
+--- a/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
++++ b/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;
+diff --git a/src/network/ssl/qsslellipticcurve.h b/src/network/ssl/qsslellipticcurve.h
+index 2315660..57dda19 100644
+--- a/src/network/ssl/qsslellipticcurve.h
++++ b/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;
+ };
+diff --git a/src/network/ssl/qsslellipticcurve_openssl.cpp b/src/network/ssl/qsslellipticcurve_openssl.cpp
+index e18197b..8cd1483 100644
+--- a/src/network/ssl/qsslellipticcurve_openssl.cpp
++++ b/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::fromShortName(const QString &name)
+ 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;
+ }
+diff --git a/src/network/ssl/qsslkey_openssl.cpp b/src/network/ssl/qsslkey_openssl.cpp
+index 2611902..2b03af9 100644
+--- a/src/network/ssl/qsslkey_openssl.cpp
++++ b/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,32 @@ bool QSslKeyPrivate::fromEVP_PKEY(EVP_PKEY *pkey)
+ 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 +181,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 +276,13 @@ Qt::HANDLE QSslKeyPrivate::handle() const
+
+ 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 +300,44 @@ static QByteArray doCrypt(QSslKeyPrivate::Cipher cipher, const QByteArray &data,
+
+ 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);
+ }
+diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
+index ab82cdc..c838e01 100644
+--- a/src/network/ssl/qsslsocket_openssl.cpp
++++ b/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_loadRootCertsOnDemand = false;
+ 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::getErrorsFromOpenSsl()
+ }
+
+ 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::~QSslSocketBackendPrivate()
+ 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_CTX *ctx)
+ }
+ #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::initSslContext()
+ 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::initSslContext()
+
+ #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::destroySslContext()
+
+ /*!
+ \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,91 +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 +415,6 @@ void QSslSocketPrivate::ensureInitialized()
+ 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 +436,11 @@ QString QSslSocketPrivate::sslLibraryBuildVersionString()
+ */
+ 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;
+@@ -664,7 +476,7 @@ void QSslSocketPrivate::resetDefaultEllipticCurves()
+ 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));
+
+@@ -698,13 +510,14 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
+ 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);
+ }
+@@ -1502,14 +1315,8 @@ QSslCipher QSslSocketBackendPrivate::sessionCipher() const
+ {
+ 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();
+ }
+
+@@ -1535,112 +1342,6 @@ QSsl::SslProtocol QSslSocketBackendPrivate::sessionProtocol() const
+ 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();
+@@ -1694,12 +1395,12 @@ QList<QSslError> QSslSocketBackendPrivate::verify(const QList<QSslCertificate> &
+ 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);
+@@ -1713,11 +1414,8 @@ QList<QSslError> QSslSocketBackendPrivate::verify(const QList<QSslCertificate> &
+ 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()));
+ }
+ }
+
+@@ -1741,11 +1439,7 @@ QList<QSslError> QSslSocketBackendPrivate::verify(const QList<QSslCertificate> &
+ (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);
+@@ -1819,7 +1513,8 @@ bool QSslSocketBackendPrivate::importPkcs12(QIODevice *device,
+ // 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);
+@@ -1834,7 +1529,11 @@ bool QSslSocketBackendPrivate::importPkcs12(QIODevice *device,
+ *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);
+diff --git a/src/network/ssl/qsslsocket_openssl11.cpp b/src/network/ssl/qsslsocket_openssl11.cpp
+new file mode 100644
+index 0000000..b6d1894
+--- /dev/null
++++ b/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
+diff --git a/src/network/ssl/qsslsocket_openssl11_symbols_p.h b/src/network/ssl/qsslsocket_openssl11_symbols_p.h
+new file mode 100644
+index 0000000..2980b3d
+--- /dev/null
++++ b/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
+diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h
+index b2adb3e..7f9e884 100644
+--- a/src/network/ssl/qsslsocket_openssl_p.h
++++ b/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();
+diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
+index c344a94..0ef8bf6 100644
+--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
++++ b/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 qsslSocketCannotResolveSymbolWarning(const char *functionName)
+
+ #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 *a, a, int b, b, ASN1_OBJECT *c, c, retur
+ 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_RSAPrivateKey, BIO *a, a, RSA *b, b, const EVP_CI
+ #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 *a, a, int b, b, return, DUMMYARG)
+ 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, const SSL *a, a, return -1, return)
+ #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_SESSION *ses, ses, return, DUMMYARG)
+ 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_callback, SSL* ssl, ssl, q_psk_client_callb
+ 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 *a, a, ASN1_STRING *b, b, return 0, retu
+ 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,25 +481,8 @@ DEFINEFUNC2(int, X509_STORE_CTX_set_purpose, X509_STORE_CTX *a, a, int b, b, ret
+ 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)
+-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(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 +765,8 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
+ #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 +825,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 +846,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 +1003,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 +1040,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 +1054,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 +1071,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 +1098,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 +1110,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 +1119,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 +1134,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,20 +1155,11 @@ 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)
+-#ifdef SSLEAY_MACROS
+- RESOLVEFUNC(i2d_DSAPrivateKey)
+- RESOLVEFUNC(i2d_RSAPrivateKey)
+- 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 +1183,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)
+diff --git a/src/network/ssl/qsslsocket_openssl_symbols_p.h b/src/network/ssl/qsslsocket_openssl_symbols_p.h
+index b35a895..796bf2d 100644
+--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h
++++ b/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, BN_ULONG w);
+ 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, RSA *b, const EVP_CIPHER *c, unsigned
+ 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_callback_t)(SSL *ssl, const char *identity,
+ 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_of_void *d2i, char *x);
+ 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_STRING *b);
+ 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_STORE_CTX *ctx, int purpose);
+ 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 char *pass, EVP_PKEY **pkey, X509 **cert,
+ 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, unsigned char **pp, long length);
+ #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);
+
+diff --git a/src/network/ssl/qsslsocket_opensslpre11.cpp b/src/network/ssl/qsslsocket_opensslpre11.cpp
+new file mode 100644
+index 0000000..e51888c
+--- /dev/null
++++ b/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
+diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri
+index 52ce2ee..949ebc3 100644
+--- a/src/network/ssl/ssl.pri
++++ b/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
+
+--- a/config.tests/openssl/openssl.cpp 2019-05-28 23:31:56.451891872 +0200
++++ b/config.tests/openssl/openssl.cpp 2019-05-28 23:32:08.869892706 +0200
+@@ -39,8 +39,8 @@
+
+ #include <openssl/opensslv.h>
+
+-#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10000000L || OPENSSL_VERSION_NUMBER-0 >= 0x10100000L
+-# error "OpenSSL >= 1.0.0, and < 1.1.0 is required"
++#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10100000L
++# error "OpenSSL >= 1.1.0 is required"
+ #endif
+
+ #include <openssl/ssl.h>
diff --git a/libraries/qt5/qt5.SlackBuild b/libraries/qt5/qt5.SlackBuild
index ef7507d8de..7de577fd9a 100644
--- a/libraries/qt5/qt5.SlackBuild
+++ b/libraries/qt5/qt5.SlackBuild
@@ -157,6 +157,21 @@ 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 {} \+
+# Fix a missing header with kernel-5.4.x - Thanks to USUARIONUEVO
+patch -p1 < $CWD/patches/kernel_5.4_qtserialbus.patch
+
+# Fix for gcc >= 8.x
+if [ ! "$WEBENGINE" = "no" ]; then
+ ( cd qtwebengine
+ patch -p1 < $CWD/patches/qt5.webengine_gcc8.patch )
+fi
+
+( cd qtbase
+ # Support for openssl-1.1.x
+ patch -p1 < $CWD/patches/qtbase59-openssl11.patch
+ # Patch for mesa >= 19.2.2
+ patch -p1 < $CWD/patches/eglfs_kms_egldevice.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
@@ -179,7 +194,7 @@ sed -i -e "/^QMAKE_LFLAGS\s/s,+=,+= $SLKLDFLAGS,g" \
qtbase/mkspecs/common/gcc-base.conf
export CFLAGS="$SLKCFLAGS"
-export CXXFLAGS="$SLKCFLAGS -std=c++11"
+export CXXFLAGS="$SLKCFLAGS"
./configure -v \
-confirm-license \
-opensource \
@@ -207,7 +222,6 @@ export CXXFLAGS="$SLKCFLAGS -std=c++11"
-no-strip \
-release \
-no-use-gold-linker \
- -c++std c++11 \
$CCACHE \
$CODECS \
$PULSE \
diff --git a/libraries/rapidjson/rapidjson.SlackBuild b/libraries/rapidjson/rapidjson.SlackBuild
index 7df09edb3c..13847be1bf 100644
--- a/libraries/rapidjson/rapidjson.SlackBuild
+++ b/libraries/rapidjson/rapidjson.SlackBuild
@@ -76,7 +76,7 @@ find -name CMakeLists.txt | xargs sed -e 's|-Werror||' -i
mkdir -p build
cd build
cmake \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -Wno-error=class-memaccess" \
-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/t4k_common/916060_bugfix.patch b/libraries/t4k_common/916060_bugfix.patch
new file mode 100644
index 0000000000..e8c8a499f7
--- /dev/null
+++ b/libraries/t4k_common/916060_bugfix.patch
@@ -0,0 +1,32 @@
+Description: fix loading each frame from SVG sprites
+ rsvg_handle_get_desc returns null so next sscanf segfaults. Use instead iterating
+ up from zero for id frame%d
+Author: cdonoghu@gmail.com
+Origin: other
+Forwarded: no
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/t4k_loaders.c
++++ b/src/t4k_loaders.c
+@@ -213,14 +213,13 @@
+ new_sprite = malloc(sizeof(sprite));
+ new_sprite->default_img = render_svg_from_handle(file_handle, width, height, "#default");
+
+- /* get number of frames from description */
+- sscanf(rsvg_handle_get_desc(file_handle), "%d", &new_sprite->num_frames);
+- DEBUGMSG(debug_loaders, "load_svg_sprite(): loading %d frames\n", new_sprite->num_frames);
+-
+- for(i = 0; i < new_sprite->num_frames; i++)
+- {
+- sprintf(lay_name, "#frame%d", i);
+- new_sprite->frame[i] = render_svg_from_handle(file_handle, width, height, lay_name);
++ /* get number of frames directly. End when #frame<num> doesn't exist */
++ new_sprite->num_frames = 0;
++ while(1) {
++ sprintf(lay_name, "#frame%d", new_sprite->num_frames);
++ if ( ! (rsvg_handle_has_sub(file_handle, lay_name)) ) break;
++ new_sprite->frame[new_sprite->num_frames] = render_svg_from_handle(file_handle, width, height, lay_name);
++ new_sprite->num_frames++;
+ }
+
+ g_object_unref(file_handle);
diff --git a/libraries/t4k_common/t4k_common.SlackBuild b/libraries/t4k_common/t4k_common.SlackBuild
index 9fb0cad487..71f7238a31 100644
--- a/libraries/t4k_common/t4k_common.SlackBuild
+++ b/libraries/t4k_common/t4k_common.SlackBuild
@@ -54,6 +54,9 @@ find -L . \
# Patch for libpng16 (-current) (from Debian)
patch -p1 < $CWD/libpng.patch
+# Fix segfaults with then newer librsvg (from Debian)
+patch -p1 < $CWD/916060_bugfix.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
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 6962bfabc9..752914a0b2 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
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+tar xvf $CWD/$SRCNAM-$VERSION.tar.?z*
cd $SRCNAM-$VERSION
-
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -71,7 +70,12 @@ 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 {} \;
-./autogen.sh
+# https://bugzilla.gnome.org/show_bug.cgi?id=663779
+patch -p1 < $CWD/fix_meta_alt_keybinding.patch
+
+# Escape sequences can cause high CPU usage (CVE-2012-2738):
+patch -p1 < $CWD/vte.escape.cpu.usage.diff
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
@@ -80,7 +84,11 @@ CFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--disable-static \
- --enable-introspection \
+ --disable-introspection \
+ --enable-python \
+ --enable-gnome-pty-helper \
+ --with-gtk=2.0 \
+ --with-default-emulation=xterm \
--build=$ARCH-slackware-linux
make
@@ -90,7 +98,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 HACKING NEWS README* $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS COPYING HACKING MAINTAINERS NEWS README* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/libraries/vte2/vte2.info b/libraries/vte2/vte2.info
new file mode 100644
index 0000000000..2ed7a7f4f6
--- /dev/null
+++ b/libraries/vte2/vte2.info
@@ -0,0 +1,10 @@
+PRGNAM="vte2"
+VERSION="0.28.2"
+HOMEPAGE="https://github.com/GNOME/vte"
+DOWNLOAD="http://ftp.gnome.org/pub/gnome/sources/vte/0.28/vte-0.28.2.tar.xz"
+MD5SUM="497f26e457308649e6ece32b3bb142ff"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Matteo Bernardini"
+EMAIL="ponce@slackbuilds.org"
diff --git a/libraries/vte3/README b/libraries/vte3/README
deleted file mode 100644
index 86da295880..0000000000
--- a/libraries/vte3/README
+++ /dev/null
@@ -1,7 +0,0 @@
-VTE3 is a terminal emulator widget for use with GTK+3. 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 default Slackware installation since this package is intended for
-use with GTK+3.
diff --git a/libraries/vte3/vte3.info b/libraries/vte3/vte3.info
deleted file mode 100644
index c6411ff75b..0000000000
--- a/libraries/vte3/vte3.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="vte3"
-VERSION="0.50.2"
-HOMEPAGE="https://github.com/GNOME/vte"
-DOWNLOAD="https://github.com/GNOME/vte/archive/0.50.2/vte-0.50.2.tar.gz"
-MD5SUM="bf2dfda34b2d641c5b9b839d1abcf410"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="vala pcre2"
-MAINTAINER="Willy Sudiarto Raharjo"
-EMAIL="willysr@slackbuilds.org"
diff --git a/libraries/webkit2gtk/icu4c-65.1.patch b/libraries/webkit2gtk/icu4c-65.1.patch
new file mode 100644
index 0000000000..6521b43b1f
--- /dev/null
+++ b/libraries/webkit2gtk/icu4c-65.1.patch
@@ -0,0 +1,39 @@
+diff -Naur webkitgtk-2.26.2.orig/Source/WTF/wtf/URLHelpers.cpp webkitgtk-2.26.2/Source/WTF/wtf/URLHelpers.cpp
+--- webkitgtk-2.26.2.orig/Source/WTF/wtf/URLHelpers.cpp 2019-08-28 13:46:29.000000000 +0200
++++ webkitgtk-2.26.2/Source/WTF/wtf/URLHelpers.cpp 2019-12-31 21:19:42.507647551 +0100
+@@ -301,7 +301,7 @@
+ Optional<UChar32> previousCodePoint;
+ while (i < length) {
+ UChar32 c;
+- U16_NEXT(buffer, i, length, c)
++ U16_NEXT(buffer, i, length, c);
+ UErrorCode error = U_ZERO_ERROR;
+ UScriptCode script = uscript_getScript(c, &error);
+ if (error != U_ZERO_ERROR) {
+diff -Naur webkitgtk-2.26.2.orig/Source/WebCore/dom/Document.cpp webkitgtk-2.26.2/Source/WebCore/dom/Document.cpp
+--- webkitgtk-2.26.2.orig/Source/WebCore/dom/Document.cpp 2019-09-02 11:41:47.000000000 +0200
++++ webkitgtk-2.26.2/Source/WebCore/dom/Document.cpp 2019-12-31 21:20:34.734647551 +0100
+@@ -4944,12 +4944,12 @@
+ unsigned i = 0;
+
+ UChar32 c;
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!isValidNameStart(c))
+ return false;
+
+ while (i < length) {
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!isValidNamePart(c))
+ return false;
+ }
+@@ -5009,7 +5009,7 @@
+
+ for (unsigned i = 0; i < length; ) {
+ UChar32 c;
+- U16_NEXT(qualifiedName, i, length, c)
++ U16_NEXT(qualifiedName, i, length, c);
+ if (c == ':') {
+ if (sawColon)
+ return Exception { InvalidCharacterError };
diff --git a/libraries/webkit2gtk/webkit2gtk.SlackBuild b/libraries/webkit2gtk/webkit2gtk.SlackBuild
index d54d9bfc36..18b20b2a89 100644
--- a/libraries/webkit2gtk/webkit2gtk.SlackBuild
+++ b/libraries/webkit2gtk/webkit2gtk.SlackBuild
@@ -24,7 +24,7 @@
PRGNAM=webkit2gtk
SRCNAM=webkitgtk
-VERSION=${VERSION:-2.20.5}
+VERSION=${VERSION:-2.26.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -74,6 +74,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/icu4c-65.1.patch
+
mkdir -p build
cd build
cmake -DPORT=GTK \
diff --git a/libraries/webkit2gtk/webkit2gtk.info b/libraries/webkit2gtk/webkit2gtk.info
index 8c4164b2e7..813c34e98b 100644
--- a/libraries/webkit2gtk/webkit2gtk.info
+++ b/libraries/webkit2gtk/webkit2gtk.info
@@ -1,10 +1,10 @@
PRGNAM="webkit2gtk"
-VERSION="2.20.5"
+VERSION="2.26.2"
HOMEPAGE="https://www.webkitgtk.org/"
-DOWNLOAD="https://www.webkitgtk.org/releases/webkitgtk-2.20.5.tar.xz"
-MD5SUM="72a05f6a4dc1c78b079590a8fd280401"
+DOWNLOAD="https://www.webkitgtk.org/releases/webkitgtk-2.26.2.tar.xz"
+MD5SUM="65e06fe73ee166447894aaea95038e3b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="geoclue2 hyphen libwebp woff2"
+REQUIRES="bubblewrap enchant2 geoclue2 gst-plugins-bad hyphen libseccomp libwebp xdg-dbus-proxy woff2"
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"
diff --git a/libraries/webkitgtk/icu4c-65.1.patch b/libraries/webkitgtk/icu4c-65.1.patch
new file mode 100644
index 0000000000..841f03a07b
--- /dev/null
+++ b/libraries/webkitgtk/icu4c-65.1.patch
@@ -0,0 +1,39 @@
+diff -Naur webkitgtk-2.4.11.orig/Source/WebCore/dom/Document.cpp webkitgtk-2.4.11/Source/WebCore/dom/Document.cpp
+--- webkitgtk-2.4.11.orig/Source/WebCore/dom/Document.cpp 2016-04-10 08:48:37.000000000 +0200
++++ webkitgtk-2.4.11/Source/WebCore/dom/Document.cpp 2019-10-07 17:41:57.798058000 +0200
+@@ -3912,12 +3912,12 @@
+ unsigned i = 0;
+
+ UChar32 c;
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!isValidNameStart(c))
+ return false;
+
+ while (i < length) {
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!isValidNamePart(c))
+ return false;
+ }
+@@ -3980,7 +3980,7 @@
+ const UChar* s = qualifiedName.deprecatedCharacters();
+ for (unsigned i = 0; i < length;) {
+ UChar32 c;
+- U16_NEXT(s, i, length, c)
++ U16_NEXT(s, i, length, c);
+ if (c == ':') {
+ if (sawColon) {
+ ec = NAMESPACE_ERR;
+diff -Naur webkitgtk-2.4.11.orig/Source/WebCore/platform/graphics/SegmentedFontData.cpp webkitgtk-2.4.11/Source/WebCore/platform/graphics/SegmentedFontData.cpp
+--- webkitgtk-2.4.11.orig/Source/WebCore/platform/graphics/SegmentedFontData.cpp 2016-04-10 08:48:37.000000000 +0200
++++ webkitgtk-2.4.11/Source/WebCore/platform/graphics/SegmentedFontData.cpp 2019-10-07 17:22:38.534058000 +0200
+@@ -61,7 +61,7 @@
+ {
+ UChar32 c;
+ for (int i = 0; i < length; ) {
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!containsCharacter(c))
+ return false;
+ }
diff --git a/libraries/webkitgtk/webkitgtk.SlackBuild b/libraries/webkitgtk/webkitgtk.SlackBuild
index 94991299db..4d9b8f0ef5 100644
--- a/libraries/webkitgtk/webkitgtk.SlackBuild
+++ b/libraries/webkitgtk/webkitgtk.SlackBuild
@@ -75,8 +75,12 @@ if pkg-config --exists geoclue ; then GEOCLUE="yes" ; else GEOCLUE="no" ; fi
# Fix for gcc-6.x
patch -p1 < $CWD/webkitgtk-2.4.9-abs.patch
+# https://bugs.webkit.org/show_bug.cgi?id=202600
+patch -p1 < $CWD/icu4c-65.1.patch
+
+# Disable excessive warnings spam
CFLAGS="$SLKCFLAGS -fno-delete-null-pointer-checks" \
-CXXFLAGS="$SLKCFLAGS -fno-delete-null-pointer-checks -fpermissive" \
+CXXFLAGS="$SLKCFLAGS -fno-delete-null-pointer-checks -fpermissive -Wno-deprecated-declarations -Wno-deprecated-copy -Wno-expansion-to-defined -Wno-class-memaccess -Wno-ignored-qualifiers -Wno-redundant-move -Wno-misleading-indentation -Wno-cast-function-type" \
./configure \
--prefix=/usr \
--disable-static \
diff --git a/libraries/webkitgtk3/icu4c-65.1.patch b/libraries/webkitgtk3/icu4c-65.1.patch
new file mode 100644
index 0000000000..841f03a07b
--- /dev/null
+++ b/libraries/webkitgtk3/icu4c-65.1.patch
@@ -0,0 +1,39 @@
+diff -Naur webkitgtk-2.4.11.orig/Source/WebCore/dom/Document.cpp webkitgtk-2.4.11/Source/WebCore/dom/Document.cpp
+--- webkitgtk-2.4.11.orig/Source/WebCore/dom/Document.cpp 2016-04-10 08:48:37.000000000 +0200
++++ webkitgtk-2.4.11/Source/WebCore/dom/Document.cpp 2019-10-07 17:41:57.798058000 +0200
+@@ -3912,12 +3912,12 @@
+ unsigned i = 0;
+
+ UChar32 c;
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!isValidNameStart(c))
+ return false;
+
+ while (i < length) {
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!isValidNamePart(c))
+ return false;
+ }
+@@ -3980,7 +3980,7 @@
+ const UChar* s = qualifiedName.deprecatedCharacters();
+ for (unsigned i = 0; i < length;) {
+ UChar32 c;
+- U16_NEXT(s, i, length, c)
++ U16_NEXT(s, i, length, c);
+ if (c == ':') {
+ if (sawColon) {
+ ec = NAMESPACE_ERR;
+diff -Naur webkitgtk-2.4.11.orig/Source/WebCore/platform/graphics/SegmentedFontData.cpp webkitgtk-2.4.11/Source/WebCore/platform/graphics/SegmentedFontData.cpp
+--- webkitgtk-2.4.11.orig/Source/WebCore/platform/graphics/SegmentedFontData.cpp 2016-04-10 08:48:37.000000000 +0200
++++ webkitgtk-2.4.11/Source/WebCore/platform/graphics/SegmentedFontData.cpp 2019-10-07 17:22:38.534058000 +0200
+@@ -61,7 +61,7 @@
+ {
+ UChar32 c;
+ for (int i = 0; i < length; ) {
+- U16_NEXT(characters, i, length, c)
++ U16_NEXT(characters, i, length, c);
+ if (!containsCharacter(c))
+ return false;
+ }
diff --git a/libraries/webkitgtk3/webkitgtk3.SlackBuild b/libraries/webkitgtk3/webkitgtk3.SlackBuild
index e33636bf82..09cbd02f7b 100644
--- a/libraries/webkitgtk3/webkitgtk3.SlackBuild
+++ b/libraries/webkitgtk3/webkitgtk3.SlackBuild
@@ -79,8 +79,12 @@ if pkg-config --exists geoclue ; then GEOCLUE="yes" ; else GEOCLUE="no" ; fi
# Fix for gcc-6.x
patch -p1 < $CWD/webkitgtk-2.4.9-abs.patch
+# https://bugs.webkit.org/show_bug.cgi?id=202600
+patch -p1 < $CWD/icu4c-65.1.patch
+
+# Disable excessive warnings spam
CFLAGS="$SLKCFLAGS -fno-delete-null-pointer-checks" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -fno-delete-null-pointer-checks -fpermissive -Wno-deprecated-declarations -Wno-deprecated-copy -Wno-expansion-to-defined -Wno-class-memaccess -Wno-ignored-qualifiers -Wno-redundant-move -Wno-misleading-indentation -Wno-cast-function-type" \
./configure \
--prefix=/usr \
--docdir=/usr/doc/$PRGNAM-$VERSION \
@@ -88,7 +92,7 @@ CXXFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--with-gtk=3.0 \
--enable-introspection \
- --enable-webkit2 \
+ --enable-webkit2=no \
--enable-geolocation=$GEOCLUE \
--build=$ARCH-slackware-linux
diff --git a/libraries/wvstreams/patches/0001-Use-explicit-cast-and-prevent-compiler-error.patch b/libraries/wvstreams/patches/0001-Use-explicit-cast-and-prevent-compiler-error.patch
new file mode 100644
index 0000000000..3932ddb949
--- /dev/null
+++ b/libraries/wvstreams/patches/0001-Use-explicit-cast-and-prevent-compiler-error.patch
@@ -0,0 +1,50 @@
+From 32ecfa8e89306ace726f7ad14f2b09c2aa1b96c4 Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Tue, 9 Feb 2016 21:02:59 +0100
+Subject: [PATCH] Use explicit cast and prevent compiler error
+
+---
+ streams/wvstream.cc | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/streams/wvstream.cc b/streams/wvstream.cc
+index 4564f3c..76565b4 100644
+--- a/streams/wvstream.cc
++++ b/streams/wvstream.cc
+@@ -907,9 +907,9 @@ void WvStream::_build_selectinfo(SelectInfo &si, time_t msec_timeout,
+
+ if (forceable)
+ {
+- si.wants.readable = readcb;
+- si.wants.writable = writecb;
+- si.wants.isexception = exceptcb;
++ si.wants.readable = static_cast<bool>(readcb);
++ si.wants.writable = static_cast<bool>(writecb);
++ si.wants.isexception = static_cast<bool>(exceptcb);
+ }
+ else
+ {
+@@ -1019,7 +1019,7 @@ bool WvStream::_select(time_t msec_timeout, bool readable, bool writable,
+
+ IWvStream::SelectRequest WvStream::get_select_request()
+ {
+- return IWvStream::SelectRequest(readcb, writecb, exceptcb);
++ return IWvStream::SelectRequest(static_cast<bool>(readcb), static_cast<bool>(writecb), static_cast<bool>(exceptcb));
+ }
+
+
+@@ -1107,7 +1107,10 @@ bool WvStream::continue_select(time_t msec_timeout)
+ // inefficient, because if the alarm was expired then pre_select()
+ // returned true anyway and short-circuited the previous select().
+ TRACE("hello-%p\n", this);
+- return !alarm_was_ticking || select(0, readcb, writecb, exceptcb);
++ return !alarm_was_ticking || select(0,
++ static_cast<bool>(readcb),
++ static_cast<bool>(writecb),
++ static_cast<bool>(exceptcb));
+ }
+
+
+--
+2.5.0
+
diff --git a/libraries/wvstreams/patches/05_gcc.diff b/libraries/wvstreams/patches/05_gcc.diff
index 8e4fd03298..616843d4ae 100644
--- a/libraries/wvstreams/patches/05_gcc.diff
+++ b/libraries/wvstreams/patches/05_gcc.diff
@@ -1,16 +1,3 @@
-Index: wvstreams-4.6.1/crypto/wvx509.cc
-===================================================================
---- wvstreams-4.6.1.orig/crypto/wvx509.cc 2011-05-20 00:02:38.119136584 +0200
-+++ wvstreams-4.6.1/crypto/wvx509.cc 2011-05-20 00:02:26.035136589 +0200
-@@ -1157,7 +1157,7 @@
-
- if (ext)
- {
-- X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
-+ X509V3_EXT_METHOD *method = (X509V3_EXT_METHOD *)X509V3_EXT_get(ext);
- if (!method)
- {
- WvDynBuf buf;
Index: wvstreams-4.6.1/ipstreams/wvunixdgsocket.cc
===================================================================
--- wvstreams-4.6.1.orig/ipstreams/wvunixdgsocket.cc 2011-05-20 00:02:38.391136584 +0200
diff --git a/libraries/wvstreams/patches/openssl-buildfix.patch b/libraries/wvstreams/patches/openssl-buildfix.patch
new file mode 100644
index 0000000000..3f76e5f697
--- /dev/null
+++ b/libraries/wvstreams/patches/openssl-buildfix.patch
@@ -0,0 +1,16 @@
+diff -Naur wvstreams-4.6.1.orig/crypto/wvx509.cc wvstreams-4.6.1/crypto/wvx509.cc
+--- wvstreams-4.6.1.orig/crypto/wvx509.cc 2008-10-23 22:23:49.000000000 +0200
++++ wvstreams-4.6.1/crypto/wvx509.cc 2018-05-10 09:25:27.106684000 +0200
+@@ -1157,7 +1157,11 @@
+
+ if (ext)
+ {
+- X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ const X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++#else
++ X509V3_EXT_METHOD *method = (X509V3_EXT_METHOD *)X509V3_EXT_get(ext);
++#endif
+ if (!method)
+ {
+ WvDynBuf buf;
diff --git a/libraries/wvstreams/wvstreams.SlackBuild b/libraries/wvstreams/wvstreams.SlackBuild
index 562bb05d11..fe600b62c9 100644
--- a/libraries/wvstreams/wvstreams.SlackBuild
+++ b/libraries/wvstreams/wvstreams.SlackBuild
@@ -59,13 +59,20 @@ patch -p1 < $CWD/patches/wvstreams-4.6.1-parallel-make.patch
patch -p1 < $CWD/patches/wvstreams-4.6.1-gcc47.patch
# another patch for gcc and glibc > 2.12.0 from debian
patch -p1 < $CWD/patches/05_gcc.diff
+# another one for gcc-6.x from fedora
+patch -p1 < $CWD/patches/0001-Use-explicit-cast-and-prevent-compiler-error.patch
+# disable a warning (just for readability during build)
+sed -i "s|_BSD_SOURCE|_DEFAULT_SOURCE|" wvrules.mk
+# Fix build against openssl
+patch -p1 < $CWD/patches/openssl-buildfix.patch
# configure doesn't support disabling static libraries
# Don't manually remove them either, as wvdial won't build then :)
# Added more flags to avoid aborting when building with gcc-4.7.x
# https://bugs.gentoo.org/show_bug.cgi?id=419971
+LIBS="-L/usr/lib${LIBDIRSUFFIX}/openssl-1.0" \
CFLAGS="$SLKCFLAGS -fno-tree-dce -fno-optimize-sibling-calls" \
-CXXFLAGS="$SLKCFLAGS -fno-tree-dce -fno-optimize-sibling-calls" \
+CXXFLAGS="$SLKCFLAGS -fno-tree-dce -fno-optimize-sibling-calls -I/usr/include/openssl-1.0" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/libraries/wxsvg/wxsvg.SlackBuild b/libraries/wxsvg/wxsvg.SlackBuild
index e4c4268aec..f6db2729ac 100644
--- a/libraries/wxsvg/wxsvg.SlackBuild
+++ b/libraries/wxsvg/wxsvg.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for wxsvg
-# Copyright 2013-2018 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2013-2019 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=wxsvg
-VERSION=${VERSION:-1.5.12}
+VERSION=${VERSION:-1.5.20}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/libraries/wxsvg/wxsvg.info b/libraries/wxsvg/wxsvg.info
index cf4a40aca3..e7a353ef4a 100644
--- a/libraries/wxsvg/wxsvg.info
+++ b/libraries/wxsvg/wxsvg.info
@@ -1,8 +1,8 @@
PRGNAM="wxsvg"
-VERSION="1.5.12"
+VERSION="1.5.20"
HOMEPAGE="https://sourceforge.net/projects/wxsvg/"
-DOWNLOAD="https://downloads.sf.net/wxsvg/wxsvg-1.5.12.tar.bz2"
-MD5SUM="c822e0b7ea4a690b30e7b6711ce674fd"
+DOWNLOAD="https://downloads.sf.net/wxsvg/wxsvg-1.5.20.tar.bz2"
+MD5SUM="a56b8c6b29599e1d7404120093072ce0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="ffmpeg wxGTK3"
diff --git a/libraries/xf86-input-libinput/README b/libraries/xf86-input-libinput/README
deleted file mode 100644
index 5acca28f9c..0000000000
--- a/libraries/xf86-input-libinput/README
+++ /dev/null
@@ -1,20 +0,0 @@
-A generic input driver for the X.Org X11 X server based on libinput,
-supporting all devices.
-Serves as a wrapper needed by libinput to communicate with X.Org.
-
-Note that to have libinput properly operating on a Slackware 14.2
-system, you also need this wrapper.
-
-The package automatically places a default configuration file in
-/etc/X11/xorg.conf.d/90-libinput.conf
-To make sure that the driver takes precedence over any other drivers
-that try to control your input devices, make sure that the number of
-the above file is the highest of all the numbers in the same directory.
-If you want to customize the default parameters of the driver,
-modify the above file. Do not modify the system file in
-/usr/share/X11/xorg.conf.d/90-libinput.conf
-
-WARNING: Misconfiguration of an X input driver may leave you without
-usable input devices in your X session.
-To fix the problem, boot to init level 3 (terminal, without starting X)
-and make the appropriate fixes.
diff --git a/libraries/xf86-input-libinput/slack-desc b/libraries/xf86-input-libinput/slack-desc
deleted file mode 100644
index 47a5a44bd0..0000000000
--- a/libraries/xf86-input-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------------------------------------------------------|
-xf86-input-libinput: xf86-input-libinput (Xorg X11 libinput input driver)
-xf86-input-libinput:
-xf86-input-libinput: A generic input driver for the X.Org X11 X server based on libinput,
-xf86-input-libinput: supporting all devices. Serves as a wrapper needed by libinput to
-xf86-input-libinput: communicate with X.Org
-xf86-input-libinput:
-xf86-input-libinput:
-xf86-input-libinput: http://xorg.freedesktop.org/
-xf86-input-libinput: https://cgit.freedesktop.org/xorg/driver/xf86-input-libinput/
-xf86-input-libinput:
-xf86-input-libinput:
diff --git a/libraries/xf86-input-libinput/xf86-input-libinput.SlackBuild b/libraries/xf86-input-libinput/xf86-input-libinput.SlackBuild
deleted file mode 100644
index 532bdb2caa..0000000000
--- a/libraries/xf86-input-libinput/xf86-input-libinput.SlackBuild
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for xf86-input-libinput
-
-# Copyright 2017 Nikolay Nikolov <nikobnikolov[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=xf86-input-libinput
-VERSION=${VERSION:-0.28.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 xjvf $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 \
- --sharedstatedir=/var/lib \
- --infodir=/usr/info \
- --disable-silent-rules \
- --disable-dependency-tracking \
- --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
-
-rm -f $PKG/usr/info/dir
-
-find $PKG -name perllocal.pod \
- -o -name ".packlist" \
- -o -name "*.bs" \
- | xargs rm -f
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a README.md COPYING $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-
-mv $PKG/usr/share/X11/xorg.conf.d/*-libinput.conf $PKG/usr/share/X11/xorg.conf.d/90-libinput.conf
-mkdir -p $PKG/etc/X11/xorg.conf.d/
-cp $PKG/usr/share/X11/xorg.conf.d/90-libinput.conf $PKG/etc/X11/xorg.conf.d/
-
-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/xf86-input-libinput/xf86-input-libinput.info b/libraries/xf86-input-libinput/xf86-input-libinput.info
deleted file mode 100644
index bdf9f216c9..0000000000
--- a/libraries/xf86-input-libinput/xf86-input-libinput.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="xf86-input-libinput"
-VERSION="0.28.0"
-HOMEPAGE="https://cgit.freedesktop.org/xorg/driver/xf86-input-libinput/"
-DOWNLOAD="https://www.x.org/releases/individual/driver/xf86-input-libinput-0.28.0.tar.bz2"
-MD5SUM="2d7519ac0e39d4c88f3be32e81a637aa"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="libinput"
-MAINTAINER="Nikolay Nikolov"
-EMAIL="nikobnikolov[at]gmail[dot]com"
diff --git a/libraries/xulrunner/README b/libraries/xulrunner/README
deleted file mode 100644
index de70749144..0000000000
--- a/libraries/xulrunner/README
+++ /dev/null
@@ -1,12 +0,0 @@
-The XULRunner project is a Mozilla runtime package that can be used
-to bootstrap XUL+XPCOM applications that are as rich as Thunderbird
-and Firefox. It will provide mechanisms for installing, upgrading,
-and uninstalling these applications. XULRunner will also provide
-libxul, a solution which allows the embedding of Mozilla technologies
-in other projects and products.
-
-Note:
-If you have to install jdk you need to run ". /etc/profile" before
-trying to compile xurlrunner.
-
-Optional dependencies are avahi, gnome-vfs, libbonobo, and libgnome.
diff --git a/libraries/xulrunner/ftfntfmt.patch b/libraries/xulrunner/ftfntfmt.patch
deleted file mode 100644
index 176360f8a5..0000000000
--- a/libraries/xulrunner/ftfntfmt.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From bb146548c7846ba5d14f070f4be985797d83d5ca Mon Sep 17 00:00:00 2001
-From: Mike Hommey <mh+mozilla@glandium.org>
-Date: Fri, 14 Aug 2015 08:50:38 +0900
-Subject: [PATCH] Bug 1194520 - Add a system header wrapper for
- <freetype/ftfntfmt.h>
-
----
- config/system-headers | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/config/system-headers b/config/system-headers
-index bee35da..ad1f88d 100644
---- a/config/system-headers
-+++ b/config/system-headers
-@@ -450,16 +450,17 @@ foundation/base64.h
- foundation/hexdump.h
- #endif
- fp.h
- fpieee.h
- frame/log.h
- frame/req.h
- freetype/freetype.h
- freetype/ftcache.h
-+freetype/ftfntfmt.h
- freetype/ftglyph.h
- freetype/ftsynth.h
- freetype/ftoutln.h
- freetype/ttnameid.h
- freetype/tttables.h
- freetype/t1tables.h
- freetype/ftlcdfil.h
- freetype/ftsizes.h
---
-2.5.0.3.ge81d485
-
diff --git a/libraries/xulrunner/gold/gold b/libraries/xulrunner/gold/gold
deleted file mode 100644
index 8c86d3b06b..0000000000
--- a/libraries/xulrunner/gold/gold
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-/usr/bin/ld.gold "$@"
diff --git a/libraries/xulrunner/gold/ld b/libraries/xulrunner/gold/ld
deleted file mode 100644
index 8c86d3b06b..0000000000
--- a/libraries/xulrunner/gold/ld
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-/usr/bin/ld.gold "$@"
diff --git a/libraries/xulrunner/slack-desc b/libraries/xulrunner/slack-desc
deleted file mode 100644
index c86823db11..0000000000
--- a/libraries/xulrunner/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------------------------------------------------------|
-xulrunner: xulrunner (XULRunner provides the XUL Runtime environment)
-xulrunner:
-xulrunner: The XULRunner project is a Mozilla runtime package that can be used
-xulrunner: to bootstrap XUL+XPCOM applications that are as rich as Thunderbird
-xulrunner: and Firefox. It will provide mechanisms for installing, upgrading,
-xulrunner: and uninstalling these applications. XULRunner will also provide
-xulrunner: libxul, a solution which allows the embedding of Mozilla technologies
-xulrunner: in other projects and products.
-xulrunner:
-xulrunner: Homepage, http://developer.mozilla.org/en/XULRunner
-xulrunner:
diff --git a/libraries/xulrunner/xulrunner.SlackBuild b/libraries/xulrunner/xulrunner.SlackBuild
deleted file mode 100644
index ca27415be3..0000000000
--- a/libraries/xulrunner/xulrunner.SlackBuild
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/bin/sh
-
-# Slackware build script for xulrunner
-
-# Written by David Somero <dsomero@hotmail.com>
-# Derived from Slackware's Slackbuilds.
-#
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
-# Copyright 2010, 2011 David Somero (dsomero@hotmail.com) Athens, TN, 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=xulrunner
-VERSION=${VERSION:-41.0.2}
-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=""
- LIBDIRSUFFIX=""
- OPTIMIZE=" --enable-optimize=-O2 "
- # On IA32, use gold since GNU ld runs out of memory linking libxul.so:
- PATH="$(pwd)/gold:$PATH"
- export CC="gcc -B$(pwd)/gold"
- export CXX="g++ -B$(pwd)/gold"
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS=""
- LIBDIRSUFFIX=""
- OPTIMIZE=" --enable-optimize=-O2 "
- # On IA32, use gold since GNU ld runs out of memory linking libxul.so:
- PATH="$(pwd)/gold:$PATH"
- export CC="gcc -B$(pwd)/gold"
- export CXX="g++ -B$(pwd)/gold"
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
- OPTIMIZE=" --enable-optimize=-O2 "
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
- OPTIMIZE=" --enable-optimize=-O2 "
-fi
-
-set -e
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf mozilla-release
-tar xvf $CWD/$PRGNAM-$VERSION.source.tar.xz
-cd mozilla-release
-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 {} \;
-
-# https://bugzilla.mozilla.org/show_bug.cgi?id=1143411
-# https://bug1194520.bmoattachments.org/attachment.cgi?id=8647805
-patch -p1 < $CWD/ftfntfmt.patch
-
-# Don't use --enable-system-cairo
-# https://bugzilla.mozilla.org/show_bug.cgi?id=722975
-OPTIONS="\
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --enable-default-toolkit=cairo-gtk2 \
- $OPTIMIZE \
- --enable-application=xulrunner \
- --enable-javaxpcom \
- --enable-libxul \
- --enable-safe-browsing \
- --enable-image-encoders=all \
- --enable-image-decoders=all \
- --enable-pulseaudio \
- --enable-system-lcms \
- --with-system-zlib \
- --with-system-bz2 \
- --enable-system-ffi \
- --disable-system-sqlite \
- --disable-crashreporter \
- --disable-debug \
- --disable-mailnews \
- --disable-installer \
- --disable-updater \
- --disable-elf-hack \
- --build=$ARCH-slackware-linux \
- --host=$ARCH-slackware-linux \
- --target=$ARCH-slackware-linux"
-
-export CFLAGS="$SLKCFLAGS"
-export CXXFLAGS="$SLKCFLAGS"
-export MOZ_MAKE_FLAGS="$MAKEFLAGS"
-
-unset DBUS_SESSION_BUS_ADDRESS ORBIT_SOCKETDIR SESSION_MANAGER \
- XDG_SESSION_COOKIE XAUTHORITY MAKEFLAGS
-
-echo ". \$topsrcdir/browser/config/mozconfig" > .mozconfig
-
-# Mozilla devs enforce using an objdir for building
-# https://developer.mozilla.org/en/Configuring_Build_Options#Building_with_an_objdir
-mkdir obj
-echo "mk_add_options MOZ_OBJDIR=$(pwd)/obj" >> .mozconfig
-
-if [ "$MOZLOCALIZE" ]; then
- echo "mk_add_options MOZ_CO_LOCALES=\"$MOZLOCALIZE\"" >> .mozconfig
-fi
-
-# Write in it the options above
-for option in $OPTIONS; do echo "ac_add_options $option" >> .mozconfig; done
-
-echo "ac_add_options --disable-tests" >> .mozconfig
-make -f client.mk build
-
-make -f client.mk 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
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a LICENSE LEGAL README.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/xulrunner/xulrunner.info b/libraries/xulrunner/xulrunner.info
deleted file mode 100644
index 97cd112c61..0000000000
--- a/libraries/xulrunner/xulrunner.info
+++ /dev/null
@@ -1,10 +0,0 @@
-PRGNAM="xulrunner"
-VERSION="41.0.2"
-HOMEPAGE="https://developer.mozilla.org/en/Getting_started_with_XULRunner"
-DOWNLOAD="https://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/41.0.2/source/xulrunner-41.0.2.source.tar.xz"
-MD5SUM="d6889657659025de38387986cc8764e6"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
-REQUIRES="jdk"
-MAINTAINER="David Somero"
-EMAIL="dsomero@hotmail.com"