summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2021-08-16 05:28:16 +0000
committerEric Hameleers <alien@slackware.com>2021-08-16 17:59:55 +0200
commitc6af8d2fd5b54097522f6682b05fd212dcf4bbff (patch)
tree406bd370540d9e86ebe20531836cac0d0b80c890 /source
parent667b86aaab3e72c3c6a80e2b7dcbe2da39c89d71 (diff)
downloadcurrent-c6af8d2fd5b54097522f6682b05fd212dcf4bbff.tar.gz
Mon Aug 16 05:28:16 UTC 202120210816052816
Hey everyone, long time no see! No, I wasn't out fishing. Sadly, I haven't had a fishing rod in my hand (or even a fishing license in my wallet) for this entire season, but there may yet be a chance for that this year. Along with the usual suspects, I've been trying to clear out the list of things that needed to get done in order to reach the standard of excellence demanded from a Slackware release, and I think we've gotten it pretty close. GCC was bumped to version 11.2.0 (because we just can't send this out 2 versions behind), and everything was verified to build properly or fixed up so that it did. I don't see any benefit to another public mass rebuild, so we're not going to do one. Anyway, without further ado, here is Slackware 15.0 release candidate one. Consider most things frozen and the focus now to be any remaining blocker bugs. We'll more than likely take that next Plasma bugfix release, but it's soon time to get off this treadmill. Enjoy! :-) a/aaa_libraries-15.0-x86_64-8.txz: Rebuilt. Upgraded: libcap.so.2.52, libpcre.so.1.2.13, libboost_atomic.so.1.76.0, libboost_chrono.so.1.76.0, libboost_container.so.1.76.0, libboost_context.so.1.76.0, libboost_contract.so.1.76.0, libboost_coroutine.so.1.76.0, libboost_date_time.so.1.76.0, libboost_fiber.so.1.76.0, libboost_filesystem.so.1.76.0, libboost_graph.so.1.76.0, libboost_iostreams.so.1.76.0, libboost_json.so.1.76.0, libboost_locale.so.1.76.0, libboost_log.so.1.76.0, libboost_log_setup.so.1.76.0, libboost_math_c99.so.1.76.0, libboost_math_c99f.so.1.76.0, libboost_math_c99l.so.1.76.0, libboost_math_tr1.so.1.76.0, libboost_math_tr1f.so.1.76.0, libboost_math_tr1l.so.1.76.0, libboost_nowide.so.1.76.0, libboost_prg_exec_monitor.so.1.76.0, libboost_program_options.so.1.76.0, libboost_python27.so.1.76.0, libboost_python39.so.1.76.0, libboost_random.so.1.76.0, libboost_regex.so.1.76.0, libboost_serialization.so.1.76.0, libboost_stacktrace_addr2line.so.1.76.0, libboost_stacktrace_basic.so.1.76.0, libboost_stacktrace_noop.so.1.76.0, libboost_system.so.1.76.0, libboost_thread.so.1.76.0, libboost_timer.so.1.76.0, libboost_type_erasure.so.1.76.0, libboost_unit_test_framework.so.1.76.0, libboost_wave.so.1.76.0, libboost_wserialization.so.1.76.0, libcares.so.2.4.3, libglib-2.0.so.0.6800.3, libgmodule-2.0.so.0.6800.3, libgobject-2.0.so.0.6800.3, libgthread-2.0.so.0.6800.3, libidn.so.12.6.3, liblber-2.4.so.2.11.7, libldap-2.4.so.2.11.7, libstdc++.so.6.0.29, libtdb.so.1.4.5. a/grep-3.7-x86_64-1.txz: Upgraded. a/kernel-firmware-20210812_24c4a85-noarch-1.txz: Upgraded. a/kernel-generic-5.13.11-x86_64-1.txz: Upgraded. a/kernel-huge-5.13.11-x86_64-1.txz: Upgraded. a/kernel-modules-5.13.11-x86_64-1.txz: Upgraded. a/libgudev-237-x86_64-1.txz: Upgraded. a/lvm2-2.03.13-x86_64-1.txz: Upgraded. ap/linuxdoc-tools-0.9.82-x86_64-1.txz: Upgraded. Thanks to Stuart Winter. ap/mariadb-10.5.12-x86_64-1.txz: Upgraded. Looks like we're still hitting a few regressions in the 10.6 branch. The most obvious one where the version reported by MariaDB is the library version rather than the server version (as previously reported) could be reverted, but this could lead to future problems as fixes for this change land in other projects. It seems that the safest approach at this time is to switch back to the most recent release from the 10.5 branch and keep an eye on the situation. Thanks to richarson and Heinz Wiesinger. ap/mc-4.8.27-x86_64-1.txz: Upgraded. ap/pamixer-1.4-x86_64-11.txz: Rebuilt. Recompiled against boost-1.77.0. ap/slackpkg-15.0.7-noarch-1.txz: Upgraded. Remove ftp://spout.ussg.indiana.edu from mirrorlist. Allow "slackpkg help" to work after slackpkg is upgraded (JK Wood). Thanks to Robby Workman. ap/squashfs-tools-4.5-x86_64-1.txz: Upgraded. ap/vim-8.2.3352-x86_64-1.txz: Upgraded. d/gcc-11.2.0-x86_64-1.txz: Upgraded. d/gcc-brig-11.2.0-x86_64-1.txz: Upgraded. d/gcc-g++-11.2.0-x86_64-1.txz: Upgraded. d/gcc-gdc-11.2.0-x86_64-1.txz: Upgraded. d/gcc-gfortran-11.2.0-x86_64-1.txz: Upgraded. d/gcc-gnat-11.2.0-x86_64-1.txz: Upgraded. d/gcc-go-11.2.0-x86_64-1.txz: Upgraded. d/gcc-objc-11.2.0-x86_64-1.txz: Upgraded. d/help2man-1.48.4-x86_64-1.txz: Upgraded. d/kernel-headers-5.13.11-x86-1.txz: Upgraded. d/libtool-2.4.6-x86_64-18.txz: Rebuilt. Recompiled to update embedded GCC version number. d/meson-0.58.2-x86_64-1.txz: Upgraded. d/parallel-20210722-noarch-1.txz: Upgraded. d/python-pip-21.2.4-x86_64-1.txz: Upgraded. d/slacktrack-2.21-x86_64-1.txz: Upgraded. Thanks to Stuart Winter. k/kernel-source-5.13.11-noarch-1.txz: Upgraded. CC_VERSION_TEXT "gcc (GCC) 10.3.0" -> "gcc (GCC) 11.2.0" GCC_VERSION 100300 -> 110200 +CC_HAS_ASM_GOTO_OUTPUT y +HAVE_KCSAN_COMPILER y +KCSAN n +SND_SOC_INTEL_HDA_DSP_COMMON m +SND_SOC_INTEL_SOF_MAXIM_COMMON m kde/akonadi-21.08.0-x86_64-1.txz: Upgraded. kde/akonadi-calendar-21.08.0-x86_64-1.txz: Upgraded. kde/akonadi-calendar-tools-21.08.0-x86_64-1.txz: Upgraded. kde/akonadi-contacts-21.08.0-x86_64-1.txz: Upgraded. kde/akonadi-import-wizard-21.08.0-x86_64-1.txz: Upgraded. kde/akonadi-mime-21.08.0-x86_64-1.txz: Upgraded. kde/akonadi-notes-21.08.0-x86_64-1.txz: Upgraded. kde/akonadi-search-21.08.0-x86_64-1.txz: Upgraded. kde/akonadiconsole-21.08.0-x86_64-1.txz: Upgraded. kde/akregator-21.08.0-x86_64-1.txz: Upgraded. kde/analitza-21.08.0-x86_64-1.txz: Upgraded. kde/ark-21.08.0-x86_64-1.txz: Upgraded. kde/artikulate-21.08.0-x86_64-1.txz: Upgraded. kde/attica-5.85.0-x86_64-1.txz: Upgraded. kde/audiocd-kio-21.08.0-x86_64-1.txz: Upgraded. kde/baloo-5.85.0-x86_64-1.txz: Upgraded. kde/baloo-widgets-21.08.0-x86_64-1.txz: Upgraded. kde/blinken-21.08.0-x86_64-1.txz: Upgraded. kde/bluez-qt-5.85.0-x86_64-1.txz: Upgraded. kde/bomber-21.08.0-x86_64-1.txz: Upgraded. kde/bovo-21.08.0-x86_64-1.txz: Upgraded. kde/breeze-icons-5.85.0-noarch-1.txz: Upgraded. kde/calendarsupport-21.08.0-x86_64-1.txz: Upgraded. kde/cantor-21.08.0-x86_64-1.txz: Upgraded. kde/cervisia-21.08.0-x86_64-1.txz: Upgraded. kde/dolphin-21.08.0-x86_64-1.txz: Upgraded. kde/dolphin-plugins-21.08.0-x86_64-1.txz: Upgraded. kde/dragon-21.08.0-x86_64-1.txz: Upgraded. kde/elisa-21.08.0-x86_64-1.txz: Upgraded. kde/eventviews-21.08.0-x86_64-1.txz: Upgraded. kde/extra-cmake-modules-5.85.0-x86_64-1.txz: Upgraded. kde/ffmpegthumbs-21.08.0-x86_64-1.txz: Upgraded. kde/filelight-21.08.0-x86_64-1.txz: Upgraded. kde/frameworkintegration-5.85.0-x86_64-1.txz: Upgraded. kde/granatier-21.08.0-x86_64-1.txz: Upgraded. kde/grantlee-editor-21.08.0-x86_64-1.txz: Upgraded. kde/grantleetheme-21.08.0-x86_64-1.txz: Upgraded. kde/gwenview-21.08.0-x86_64-1.txz: Upgraded. kde/incidenceeditor-21.08.0-x86_64-1.txz: Upgraded. kde/itinerary-21.08.0-x86_64-1.txz: Upgraded. kde/juk-21.08.0-x86_64-1.txz: Upgraded. kde/k3b-21.08.0-x86_64-1.txz: Upgraded. kde/kactivities-5.85.0-x86_64-1.txz: Upgraded. kde/kactivities-stats-5.85.0-x86_64-1.txz: Upgraded. kde/kaddressbook-21.08.0-x86_64-1.txz: Upgraded. kde/kalarm-21.08.0-x86_64-1.txz: Upgraded. kde/kalarmcal-21.08.0-x86_64-1.txz: Upgraded. kde/kalgebra-21.08.0-x86_64-1.txz: Upgraded. kde/kalzium-21.08.0-x86_64-1.txz: Upgraded. kde/kamera-21.08.0-x86_64-1.txz: Upgraded. kde/kamoso-21.08.0-x86_64-1.txz: Upgraded. kde/kanagram-21.08.0-x86_64-1.txz: Upgraded. kde/kapidox-5.85.0-x86_64-1.txz: Upgraded. kde/kapman-21.08.0-x86_64-1.txz: Upgraded. kde/kapptemplate-21.08.0-x86_64-1.txz: Upgraded. kde/karchive-5.85.0-x86_64-1.txz: Upgraded. kde/kate-21.08.0-x86_64-1.txz: Upgraded. kde/katomic-21.08.0-x86_64-1.txz: Upgraded. kde/kauth-5.85.0-x86_64-1.txz: Upgraded. kde/kbackup-21.08.0-x86_64-1.txz: Upgraded. kde/kblackbox-21.08.0-x86_64-1.txz: Upgraded. kde/kblocks-21.08.0-x86_64-1.txz: Upgraded. kde/kbookmarks-5.85.0-x86_64-1.txz: Upgraded. kde/kbounce-21.08.0-x86_64-1.txz: Upgraded. kde/kbreakout-21.08.0-x86_64-1.txz: Upgraded. kde/kbruch-21.08.0-x86_64-1.txz: Upgraded. kde/kcachegrind-21.08.0-x86_64-1.txz: Upgraded. kde/kcalc-21.08.0-x86_64-1.txz: Upgraded. kde/kcalendarcore-5.85.0-x86_64-1.txz: Upgraded. kde/kcalutils-21.08.0-x86_64-1.txz: Upgraded. kde/kcharselect-21.08.0-x86_64-1.txz: Upgraded. kde/kcmutils-5.85.0-x86_64-1.txz: Upgraded. kde/kcodecs-5.85.0-x86_64-1.txz: Upgraded. kde/kcolorchooser-21.08.0-x86_64-1.txz: Upgraded. kde/kcompletion-5.85.0-x86_64-1.txz: Upgraded. kde/kconfig-5.85.0-x86_64-1.txz: Upgraded. kde/kconfigwidgets-5.85.0-x86_64-1.txz: Upgraded. kde/kcontacts-5.85.0-x86_64-1.txz: Upgraded. kde/kcoreaddons-5.85.0-x86_64-1.txz: Upgraded. kde/kcrash-5.85.0-x86_64-1.txz: Upgraded. kde/kcron-21.08.0-x86_64-1.txz: Upgraded. kde/kdav-5.85.0-x86_64-1.txz: Upgraded. kde/kdbusaddons-5.85.0-x86_64-1.txz: Upgraded. kde/kde-dev-scripts-21.08.0-x86_64-1.txz: Upgraded. kde/kde-dev-utils-21.08.0-x86_64-1.txz: Upgraded. kde/kdebugsettings-21.08.0-x86_64-1.txz: Upgraded. kde/kdeclarative-5.85.0-x86_64-1.txz: Upgraded. kde/kdeconnect-kde-21.08.0-x86_64-1.txz: Upgraded. kde/kded-5.85.0-x86_64-1.txz: Upgraded. kde/kdeedu-data-21.08.0-x86_64-1.txz: Upgraded. kde/kdegraphics-mobipocket-21.08.0-x86_64-1.txz: Upgraded. kde/kdegraphics-thumbnailers-21.08.0-x86_64-1.txz: Upgraded. kde/kdelibs4support-5.85.0-x86_64-1.txz: Upgraded. kde/kdenetwork-filesharing-21.08.0-x86_64-1.txz: Upgraded. kde/kdenlive-21.08.0-x86_64-1.txz: Upgraded. kde/kdepim-addons-21.08.0-x86_64-1.txz: Upgraded. kde/kdepim-runtime-21.08.0-x86_64-1.txz: Upgraded. kde/kdesdk-kioslaves-21.08.0-x86_64-1.txz: Upgraded. kde/kdesdk-thumbnailers-21.08.0-x86_64-1.txz: Upgraded. kde/kdesignerplugin-5.85.0-x86_64-1.txz: Upgraded. kde/kdesu-5.85.0-x86_64-1.txz: Upgraded. kde/kdewebkit-5.85.0-x86_64-1.txz: Upgraded. kde/kdf-21.08.0-x86_64-1.txz: Upgraded. kde/kdialog-21.08.0-x86_64-1.txz: Upgraded. kde/kdiamond-21.08.0-x86_64-1.txz: Upgraded. kde/kdnssd-5.85.0-x86_64-1.txz: Upgraded. kde/kdoctools-5.85.0-x86_64-1.txz: Upgraded. kde/keditbookmarks-21.08.0-x86_64-1.txz: Upgraded. kde/kemoticons-5.85.0-x86_64-1.txz: Upgraded. kde/kfilemetadata-5.85.0-x86_64-1.txz: Upgraded. kde/kfind-21.08.0-x86_64-1.txz: Upgraded. kde/kfloppy-21.08.0-x86_64-1.txz: Upgraded. kde/kfourinline-21.08.0-x86_64-1.txz: Upgraded. kde/kgeography-21.08.0-x86_64-1.txz: Upgraded. kde/kget-21.08.0-x86_64-1.txz: Upgraded. kde/kglobalaccel-5.85.0-x86_64-1.txz: Upgraded. kde/kgoldrunner-21.08.0-x86_64-1.txz: Upgraded. kde/kgpg-21.08.0-x86_64-1.txz: Upgraded. kde/kguiaddons-5.85.0-x86_64-1.txz: Upgraded. kde/khangman-21.08.0-x86_64-1.txz: Upgraded. kde/khelpcenter-21.08.0-x86_64-1.txz: Upgraded. kde/kholidays-5.85.0-x86_64-1.txz: Upgraded. kde/khtml-5.85.0-x86_64-1.txz: Upgraded. kde/ki18n-5.85.0-x86_64-1.txz: Upgraded. kde/kiconthemes-5.85.0-x86_64-1.txz: Upgraded. kde/kidentitymanagement-21.08.0-x86_64-1.txz: Upgraded. kde/kidletime-5.85.0-x86_64-1.txz: Upgraded. kde/kig-21.08.0-x86_64-1.txz: Upgraded. kde/kigo-21.08.0-x86_64-1.txz: Upgraded. kde/killbots-21.08.0-x86_64-1.txz: Upgraded. kde/kimageformats-5.85.0-x86_64-1.txz: Upgraded. kde/kimagemapeditor-21.08.0-x86_64-1.txz: Upgraded. kde/kimap-21.08.0-x86_64-1.txz: Upgraded. kde/kinit-5.85.0-x86_64-1.txz: Upgraded. kde/kio-5.85.0-x86_64-1.txz: Upgraded. kde/kio-extras-21.08.0-x86_64-1.txz: Upgraded. kde/kio-gdrive-21.08.0-x86_64-1.txz: Upgraded. kde/kipi-plugins-21.08.0-x86_64-1.txz: Upgraded. kde/kirigami-gallery-21.08.0-x86_64-1.txz: Upgraded. kde/kirigami2-5.85.0-x86_64-1.txz: Upgraded. kde/kiriki-21.08.0-x86_64-1.txz: Upgraded. kde/kitemmodels-5.85.0-x86_64-1.txz: Upgraded. kde/kitemviews-5.85.0-x86_64-1.txz: Upgraded. kde/kiten-21.08.0-x86_64-1.txz: Upgraded. kde/kitinerary-21.08.0-x86_64-1.txz: Upgraded. kde/kjobwidgets-5.85.0-x86_64-1.txz: Upgraded. kde/kjs-5.85.0-x86_64-1.txz: Upgraded. kde/kjsembed-5.85.0-x86_64-1.txz: Upgraded. kde/kjumpingcube-21.08.0-x86_64-1.txz: Upgraded. kde/kldap-21.08.0-x86_64-1.txz: Upgraded. kde/kleopatra-21.08.0-x86_64-1.txz: Upgraded. kde/klickety-21.08.0-x86_64-1.txz: Upgraded. kde/klines-21.08.0-x86_64-1.txz: Upgraded. kde/kmag-21.08.0-x86_64-1.txz: Upgraded. kde/kmahjongg-21.08.0-x86_64-1.txz: Upgraded. kde/kmail-21.08.0-x86_64-1.txz: Upgraded. kde/kmail-account-wizard-21.08.0-x86_64-1.txz: Upgraded. kde/kmailtransport-21.08.0-x86_64-1.txz: Upgraded. kde/kmbox-21.08.0-x86_64-1.txz: Upgraded. kde/kmediaplayer-5.85.0-x86_64-1.txz: Upgraded. kde/kmime-21.08.0-x86_64-1.txz: Upgraded. kde/kmines-21.08.0-x86_64-1.txz: Upgraded. kde/kmix-21.08.0-x86_64-1.txz: Upgraded. kde/kmousetool-21.08.0-x86_64-1.txz: Upgraded. kde/kmouth-21.08.0-x86_64-1.txz: Upgraded. kde/kmplot-21.08.0-x86_64-1.txz: Upgraded. kde/knavalbattle-21.08.0-x86_64-1.txz: Upgraded. kde/knetwalk-21.08.0-x86_64-1.txz: Upgraded. kde/knewstuff-5.85.0-x86_64-1.txz: Upgraded. kde/knights-21.08.0-x86_64-1.txz: Upgraded. kde/knotes-21.08.0-x86_64-1.txz: Upgraded. kde/knotifications-5.85.0-x86_64-1.txz: Upgraded. kde/knotifyconfig-5.85.0-x86_64-1.txz: Upgraded. kde/kolf-21.08.0-x86_64-1.txz: Upgraded. kde/kollision-21.08.0-x86_64-1.txz: Upgraded. kde/kolourpaint-21.08.0-x86_64-1.txz: Upgraded. kde/kompare-21.08.0-x86_64-1.txz: Upgraded. kde/konqueror-21.08.0-x86_64-1.txz: Upgraded. kde/konquest-21.08.0-x86_64-1.txz: Upgraded. kde/konsole-21.08.0-x86_64-1.txz: Upgraded. kde/kontact-21.08.0-x86_64-1.txz: Upgraded. kde/kontactinterface-21.08.0-x86_64-1.txz: Upgraded. kde/kontrast-21.08.0-x86_64-1.txz: Upgraded. kde/konversation-21.08.0-x86_64-1.txz: Upgraded. kde/kopeninghours-21.08.0-x86_64-1.txz: Upgraded. kde/kopete-21.08.0-x86_64-1.txz: Upgraded. kde/korganizer-21.08.0-x86_64-1.txz: Upgraded. kde/kosmindoormap-21.08.0-x86_64-1.txz: Upgraded. kde/kpackage-5.85.0-x86_64-1.txz: Upgraded. kde/kparts-5.85.0-x86_64-1.txz: Upgraded. kde/kpat-21.08.0-x86_64-1.txz: Upgraded. kde/kpeople-5.85.0-x86_64-1.txz: Upgraded. kde/kpimtextedit-21.08.0-x86_64-1.txz: Upgraded. kde/kpkpass-21.08.0-x86_64-1.txz: Upgraded. kde/kplotting-5.85.0-x86_64-1.txz: Upgraded. kde/kpmcore-21.08.0-x86_64-1.txz: Upgraded. kde/kpty-5.85.0-x86_64-1.txz: Upgraded. kde/kpublictransport-21.08.0-x86_64-1.txz: Upgraded. kde/kqtquickcharts-21.08.0-x86_64-1.txz: Upgraded. kde/kquickcharts-5.85.0-x86_64-1.txz: Upgraded. kde/krdc-21.08.0-x86_64-1.txz: Upgraded. kde/kreversi-21.08.0-x86_64-1.txz: Upgraded. kde/krfb-21.08.0-x86_64-1.txz: Upgraded. kde/krita-4.4.7-x86_64-2.txz: Rebuilt. Recompiled against boost-1.77.0. kde/kross-5.85.0-x86_64-1.txz: Upgraded. kde/kross-interpreters-21.08.0-x86_64-1.txz: Upgraded. kde/kruler-21.08.0-x86_64-1.txz: Upgraded. kde/krunner-5.85.0-x86_64-1.txz: Upgraded. kde/kservice-5.85.0-x86_64-1.txz: Upgraded. kde/kshisen-21.08.0-x86_64-1.txz: Upgraded. kde/ksirk-21.08.0-x86_64-1.txz: Upgraded. kde/ksmtp-21.08.0-x86_64-1.txz: Upgraded. kde/ksnakeduel-21.08.0-x86_64-1.txz: Upgraded. kde/kspaceduel-21.08.0-x86_64-1.txz: Upgraded. kde/ksquares-21.08.0-x86_64-1.txz: Upgraded. kde/ksudoku-21.08.0-x86_64-1.txz: Upgraded. kde/ksystemlog-21.08.0-x86_64-1.txz: Upgraded. kde/kteatime-21.08.0-x86_64-1.txz: Upgraded. kde/ktexteditor-5.85.0-x86_64-1.txz: Upgraded. kde/ktextwidgets-5.85.0-x86_64-1.txz: Upgraded. kde/ktimer-21.08.0-x86_64-1.txz: Upgraded. kde/ktnef-21.08.0-x86_64-1.txz: Upgraded. kde/ktorrent-21.08.0-x86_64-1.txz: Upgraded. kde/ktouch-21.08.0-x86_64-1.txz: Upgraded. kde/kturtle-21.08.0-x86_64-1.txz: Upgraded. kde/kubrick-21.08.0-x86_64-1.txz: Upgraded. kde/kunitconversion-5.85.0-x86_64-1.txz: Upgraded. kde/kwallet-5.85.0-x86_64-1.txz: Upgraded. kde/kwalletmanager-21.08.0-x86_64-1.txz: Upgraded. kde/kwave-21.08.0-x86_64-1.txz: Upgraded. kde/kwayland-5.85.0-x86_64-1.txz: Upgraded. kde/kwidgetsaddons-5.85.0-x86_64-1.txz: Upgraded. kde/kwindowsystem-5.85.0-x86_64-1.txz: Upgraded. kde/kwordquiz-21.08.0-x86_64-1.txz: Upgraded. kde/kxmlgui-5.85.0-x86_64-1.txz: Upgraded. kde/kxmlrpcclient-5.85.0-x86_64-1.txz: Upgraded. kde/latte-dock-0.10.0-x86_64-1.txz: Upgraded. kde/libgravatar-21.08.0-x86_64-1.txz: Upgraded. kde/libkcddb-21.08.0-x86_64-1.txz: Upgraded. kde/libkcompactdisc-21.08.0-x86_64-1.txz: Upgraded. kde/libkdcraw-21.08.0-x86_64-1.txz: Upgraded. kde/libkdegames-21.08.0-x86_64-1.txz: Upgraded. kde/libkdepim-21.08.0-x86_64-1.txz: Upgraded. kde/libkeduvocdocument-21.08.0-x86_64-1.txz: Upgraded. kde/libkexiv2-21.08.0-x86_64-1.txz: Upgraded. kde/libkgapi-21.08.0-x86_64-1.txz: Upgraded. kde/libkipi-21.08.0-x86_64-1.txz: Upgraded. kde/libkleo-21.08.0-x86_64-1.txz: Upgraded. kde/libkmahjongg-21.08.0-x86_64-1.txz: Upgraded. kde/libkomparediff2-21.08.0-x86_64-1.txz: Upgraded. kde/libksane-21.08.0-x86_64-1.txz: Upgraded. kde/libksieve-21.08.0-x86_64-1.txz: Upgraded. kde/libktorrent-21.08.0-x86_64-1.txz: Upgraded. kde/lokalize-21.08.0-x86_64-1.txz: Upgraded. kde/lskat-21.08.0-x86_64-1.txz: Upgraded. kde/mailcommon-21.08.0-x86_64-1.txz: Upgraded. kde/mailimporter-21.08.0-x86_64-1.txz: Upgraded. kde/marble-21.08.0-x86_64-1.txz: Upgraded. kde/markdownpart-21.08.0-x86_64-1.txz: Upgraded. kde/mbox-importer-21.08.0-x86_64-1.txz: Upgraded. kde/messagelib-21.08.0-x86_64-1.txz: Upgraded. kde/minuet-21.08.0-x86_64-1.txz: Upgraded. kde/modemmanager-qt-5.85.0-x86_64-1.txz: Upgraded. kde/networkmanager-qt-5.85.0-x86_64-1.txz: Upgraded. kde/okular-21.08.0-x86_64-1.txz: Upgraded. kde/oxygen-icons5-5.85.0-noarch-1.txz: Upgraded. kde/palapeli-21.08.0-x86_64-1.txz: Upgraded. kde/parley-21.08.0-x86_64-1.txz: Upgraded. kde/partitionmanager-21.08.0-x86_64-1.txz: Upgraded. kde/picmi-21.08.0-x86_64-1.txz: Upgraded. kde/pim-data-exporter-21.08.0-x86_64-1.txz: Upgraded. kde/pim-sieve-editor-21.08.0-x86_64-1.txz: Upgraded. kde/pimcommon-21.08.0-x86_64-1.txz: Upgraded. kde/plasma-framework-5.85.0-x86_64-1.txz: Upgraded. kde/plasma-workspace-5.22.4-x86_64-2.txz: Rebuilt. Recompiled against libqalculate-3.20.1. kde/poxml-21.08.0-x86_64-1.txz: Upgraded. kde/print-manager-21.08.0-x86_64-1.txz: Upgraded. kde/prison-5.85.0-x86_64-1.txz: Upgraded. kde/purpose-5.85.0-x86_64-1.txz: Upgraded. kde/qqc2-desktop-style-5.85.0-x86_64-1.txz: Upgraded. kde/rocs-21.08.0-x86_64-1.txz: Upgraded. kde/skanlite-21.08.0-x86_64-3.txz: Rebuilt. kde/solid-5.85.0-x86_64-1.txz: Upgraded. kde/sonnet-5.85.0-x86_64-1.txz: Upgraded. kde/spectacle-21.08.0-x86_64-1.txz: Upgraded. kde/step-21.08.0-x86_64-1.txz: Upgraded. kde/svgpart-21.08.0-x86_64-1.txz: Upgraded. kde/sweeper-21.08.0-x86_64-1.txz: Upgraded. kde/syndication-5.85.0-x86_64-1.txz: Upgraded. kde/syntax-highlighting-5.85.0-x86_64-1.txz: Upgraded. kde/threadweaver-5.85.0-x86_64-1.txz: Upgraded. kde/umbrello-21.08.0-x86_64-1.txz: Upgraded. kde/yakuake-21.08.0-x86_64-1.txz: Upgraded. kde/zeroconf-ioslave-21.08.0-x86_64-1.txz: Upgraded. l/SDL2-2.0.16-x86_64-1.txz: Upgraded. l/atkmm-2.28.2-x86_64-1.txz: Upgraded. l/boost-1.77.0-x86_64-1.txz: Upgraded. Shared library .so-version bump. l/cryfs-0.10.3-x86_64-3.txz: Rebuilt. Patched for gcc11 and recompiled against boost-1.77.0. l/enchant-2.3.1-x86_64-1.txz: Upgraded. l/gjs-1.68.3-x86_64-1.txz: Upgraded. l/gtk4-4.2.1-x86_64-1.txz: Added. l/gtkmm3-3.24.5-x86_64-1.txz: Upgraded. l/libjpeg-turbo-2.1.1-x86_64-1.txz: Upgraded. l/libqalculate-3.20.1-x86_64-1.txz: Upgraded. Shared library .so-version bump. l/libwebp-1.2.1-x86_64-1.txz: Upgraded. l/mlt-7.0.1-x86_64-1.txz: Upgraded. Shared library .so-version bump. l/mozilla-nss-3.69-x86_64-1.txz: Upgraded. l/mozjs78-78.13.0esr-x86_64-1.txz: Upgraded. l/netpbm-10.95.01-x86_64-1.txz: Upgraded. l/ocl-icd-2.3.0-x86_64-2.txz: Rebuilt. Patched to support the latest Khronos headers. l/openexr-2.5.7-x86_64-2.txz: Rebuilt. Recompiled against boost-1.77.0. l/pango-1.48.8-x86_64-1.txz: Upgraded. l/pulseaudio-15.0-x86_64-2.txz: Rebuilt. Ensure that start-pulseaudio-x11 is generated properly when pulseaudio is built using meson. Thanks to davjohn. l/python-pygments-2.10.0-x86_64-1.txz: Upgraded. l/qt5-5.15.2-x86_64-11.txz: Rebuilt. Patched to compile with gcc11 (such as adding #include <limits> to some of the header files shipped in the package). l/tidy-html5-5.8.0-x86_64-1.txz: Upgraded. Shared library .so-version bump. n/ModemManager-1.16.8-x86_64-1.txz: Upgraded. n/NetworkManager-1.32.6-x86_64-1.txz: Upgraded. n/c-ares-1.17.2-x86_64-1.txz: Upgraded. This update fixes a security issue: Missing input validation on hostnames returned by DNS servers. For more information, see: https://c-ares.haxx.se/adv_20210810.html https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3672 (* Security fix *) n/dhcpcd-9.4.0-x86_64-1.txz: Upgraded. n/fetchmail-6.4.21-x86_64-1.txz: Upgraded. n/nmap-7.92-x86_64-1.txz: Upgraded. n/openresolv-3.12.0-noarch-1.txz: Added. This is needed for wg-quick in the wireguard-tools package. Thanks to synbq Bucharest, Jeremy Hansen, and Daniel Wilkins. n/php-7.4.22-x86_64-2.txz: Rebuilt. Recompiled against tidy-html5-5.8.0. x/ibus-m17n-1.4.7-x86_64-1.txz: Upgraded. x/libepoxy-1.5.9-x86_64-1.txz: Upgraded. x/mesa-21.1.7-x86_64-1.txz: Upgraded. x/vulkan-sdk-1.2.176.1-x86_64-2.txz: Rebuilt. x/xrdb-1.2.1-x86_64-1.txz: Upgraded. xap/mozilla-firefox-91.0-x86_64-1.txz: Upgraded. New ESR release :-) This release contains security fixes and improvements. For more information, see: https://www.mozilla.org/en-US/firefox/91.0/releasenotes/ https://www.mozilla.org/security/advisories/mfsa2021-33/ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29986 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29981 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29988 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29983 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29984 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29980 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29987 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29985 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29982 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29989 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29990 (* Security fix *) xap/mozilla-thunderbird-91.0-x86_64-1.txz: Upgraded. This release contains security fixes and improvements. For more information, see: https://www.mozilla.org/en-US/thunderbird/91.0/releasenotes/ https://www.mozilla.org/en-US/security/advisories/mfsa2021-36/ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29986 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29981 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29988 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29984 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29980 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29987 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29985 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29982 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29989 (* Security fix *) xap/network-manager-applet-1.22.0-x86_64-1.txz: Upgraded. xap/vim-gvim-8.2.3352-x86_64-1.txz: Upgraded. extra/php8/php8-8.0.9-x86_64-2.txz: Rebuilt. Recompiled against tidy-html5-5.8.0. isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source')
-rwxr-xr-xsource/a/aaa_libraries/aaa_libraries.SlackBuild2
-rw-r--r--source/a/aaa_libraries/tracked-files-tmp.d/boost-1.75.039
-rw-r--r--source/a/aaa_libraries/tracked-files-tmp.d/boost-1.76.039
-rwxr-xr-xsource/a/grep/grep.SlackBuild2
-rw-r--r--source/ap/linuxdoc-tools/ChangeLog.txt10
-rwxr-xr-xsource/ap/linuxdoc-tools/arm/build2
-rwxr-xr-xsource/ap/linuxdoc-tools/linuxdoc-tools.build60
-rw-r--r--source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.13-letter.patch24
-rwxr-xr-xsource/ap/linuxdoc-tools/sources/source.download39
-rwxr-xr-xsource/ap/linuxdoc-tools/trackbuild.linuxdoc-tools8
-rwxr-xr-xsource/ap/mc/mc.SlackBuild2
-rwxr-xr-xsource/ap/pamixer/pamixer.SlackBuild2
-rw-r--r--source/ap/slackpkg/README.md5
-rw-r--r--source/ap/slackpkg/files/ChangeLog6
-rw-r--r--source/ap/slackpkg/files/core-functions.sh3
-rw-r--r--source/ap/slackpkg/files/mirrors-x86.sample2
-rw-r--r--source/ap/slackpkg/files/mirrors-x86_64.sample2
-rwxr-xr-xsource/ap/slackpkg/slackpkg.SlackBuild2
-rwxr-xr-xsource/ap/squashfs-tools/squashfs-tools.SlackBuild2
-rw-r--r--source/ap/squashfs-tools/squashfs-tools.glibc228.diff20
-rwxr-xr-xsource/d/gcc/fetch-from-svn-and-prep-tarball.sh83
-rwxr-xr-xsource/d/gcc/gcc.SlackBuild6
-rw-r--r--source/d/gcc/patches/PR100101.2efbbba16a0630fac8cadcd6d9e0ffaabfadb79f.patch100
-rw-r--r--source/d/gcc/patches/PR100102.5357ab75dedef403b0eebf9277d61d1cbeb5898f.patch133
-rwxr-xr-xsource/d/libtool/libtool.SlackBuild2
-rwxr-xr-xsource/d/slacktrack/slacktrack.SlackBuild4
-rw-r--r--source/k/kernel-configs/config-generic-5.13.11 (renamed from source/k/kernel-configs/config-generic-5.13.8)10
-rw-r--r--source/k/kernel-configs/config-generic-5.13.11.x64 (renamed from source/k/kernel-configs/config-generic-5.13.8.x64)11
-rw-r--r--source/k/kernel-configs/config-generic-smp-5.13.11-smp (renamed from source/k/kernel-configs/config-generic-smp-5.13.8-smp)10
-rw-r--r--source/k/kernel-configs/config-huge-5.13.11 (renamed from source/k/kernel-configs/config-huge-5.13.8)10
-rw-r--r--source/k/kernel-configs/config-huge-5.13.11.x64 (renamed from source/k/kernel-configs/config-huge-5.13.8.x64)11
-rw-r--r--source/k/kernel-configs/config-huge-smp-5.13.11-smp (renamed from source/k/kernel-configs/config-huge-smp-5.13.8-smp)10
-rw-r--r--source/kde/kde/build/cantor2
-rw-r--r--source/kde/kde/build/kfilemetadata2
-rw-r--r--source/kde/kde/build/kitinerary2
-rw-r--r--source/kde/kde/build/krita2
-rw-r--r--source/kde/kde/build/ktexteditor2
-rw-r--r--source/kde/kde/build/minuet2
-rw-r--r--source/kde/kde/build/okular2
-rw-r--r--source/kde/kde/build/plasma-workspace2
-rw-r--r--source/kde/kde/modules/all-packaged-applications1
-rw-r--r--source/kde/kde/modules/applications3
-rw-r--r--source/kde/kde/modules/applications-extra1
-rw-r--r--source/kde/kde/patch/kalgebra/kalgebra_ncurses_linking.diff10
-rw-r--r--source/kde/kde/patch/kate/kate_runasroot.patch16
-rw-r--r--source/kde/kde/patch/kitinerary.patch2
-rw-r--r--source/kde/kde/patch/kitinerary/e99d101e2bd4c32566e238ce1340a93781e19eee.patch53
-rw-r--r--source/kde/kde/patch/ktorrent.patch1
-rw-r--r--source/kde/kde/patch/ktorrent/geoip.datbin1242574 -> 2105057 bytes
-rw-r--r--source/kde/kde/patch/ktorrent/ktorrent.geoip.revert.6c1ae6b2530c5f7c72611a95aea92275520a5aee.patch1474
-rw-r--r--source/kde/kde/patch/ktorrent/ktorrent.use.package.geoip.database.diff12
-rw-r--r--source/kde/kde/patch/plasma-framework.patch2
-rw-r--r--source/kde/kde/patch/plasma-framework/837bb6975f6a0661d211107823b7587808fc3d4e.patch44
-rwxr-xr-xsource/l/SDL2/SDL2.SlackBuild2
-rwxr-xr-xsource/l/atkmm/atkmm.SlackBuild2
-rw-r--r--source/l/cryfs/041b5baea5a4efceff33df2f316646b47a1cd7c0.patch27
-rw-r--r--source/l/cryfs/27587ea1acec5f939a31217f1c43953378f18821.patch297
-rwxr-xr-xsource/l/cryfs/cryfs.SlackBuild8
-rwxr-xr-xsource/l/glib2/glib2.SlackBuild2
-rwxr-xr-xsource/l/gst-plugins-base/gst-plugins-base.SlackBuild2
-rwxr-xr-xsource/l/gst-plugins-good/gst-plugins-good.SlackBuild2
-rw-r--r--source/l/gst-plugins-good/gst-plugins-good.gcc11.patch316
-rwxr-xr-xsource/l/gtk+3/gtk+3.SlackBuild3
-rw-r--r--source/l/gtk+3/gtk.array-bounds.gcc11.diff10
-rw-r--r--source/l/gtk4/doinst.sh21
-rwxr-xr-xsource/l/gtk4/gtk4.SlackBuild161
-rw-r--r--source/l/gtk4/slack-desc19
-rwxr-xr-xsource/l/gtkmm3/gtkmm3.SlackBuild2
-rwxr-xr-xsource/l/libwebp/libwebp.SlackBuild2
-rwxr-xr-xsource/l/libwpd/libwpd.SlackBuild2
-rw-r--r--source/l/libwpd/libwpd.gcc11.diff21
-rwxr-xr-xsource/l/mlt/mlt.SlackBuild74
-rwxr-xr-xsource/l/mozilla-nss/mozilla-nss.SlackBuild4
-rwxr-xr-xsource/l/ocl-icd/ocl-icd.SlackBuild2
-rwxr-xr-xsource/l/openexr/openexr.SlackBuild2
-rw-r--r--source/l/pulseaudio/pulseaudio-autostart-meson.build.patch10
-rwxr-xr-xsource/l/pulseaudio/pulseaudio.SlackBuild4
-rw-r--r--source/l/qt5/patches/0006-Fix-build-with-GCC-11-include-limits.patch53
-rw-r--r--source/l/qt5/patches/qt5-qtbase-gcc11.patch171
-rw-r--r--source/l/qt5/patches/qt5-qtdeclarative-gcc11.patch21
-rw-r--r--source/l/qt5/patches/qt5-qtwebengine-gcc11.patch20
-rw-r--r--source/l/qt5/patches/qt5-qtwebsockets-gcc11.patch12
-rw-r--r--source/l/qt5/patches/qtconcurrentthreadengine.h-gcc11.patch14
-rwxr-xr-xsource/l/qt5/qt5.SlackBuild22
-rwxr-xr-xsource/l/tidy-html5/tidy-html5.SlackBuild6
-rwxr-xr-xsource/l/v4l-utils/v4l-utils.SlackBuild5
-rwxr-xr-xsource/n/ModemManager/ModemManager.SlackBuild2
-rw-r--r--source/n/dhcpcd/dhcpcd-8.1.9.tar.xz.distinfo1
-rw-r--r--source/n/dhcpcd/dhcpcd-9.4.0.tar.xz.distinfo1
-rwxr-xr-xsource/n/dhcpcd/dhcpcd.SlackBuild2
-rw-r--r--source/n/dhcpcd/patches/use-hostname_short-in-dhcpcd.conf.patch7
-rwxr-xr-xsource/n/nmap/nmap.SlackBuild2
-rw-r--r--source/n/openresolv/doinst.sh18
-rw-r--r--source/n/openresolv/openresolv-3.12.0.tar.xz.distinfo1
-rwxr-xr-xsource/n/openresolv/openresolv.SlackBuild134
-rw-r--r--source/n/openresolv/openresolv.url1
-rw-r--r--source/n/openresolv/slack-desc19
-rw-r--r--source/n/openresolv/update-resolv-conf54
-rwxr-xr-xsource/n/php/php.SlackBuild2
-rw-r--r--source/x/libepoxy/libepoxy.url2
-rwxr-xr-xsource/x/vulkan-sdk/vulkan-sdk.SlackBuild6
-rw-r--r--source/x/x11/build/xrdb2
-rwxr-xr-xsource/xap/fluxbox/fluxbox.SlackBuild3
-rw-r--r--source/xap/fluxbox/fluxbox.gcc11.patch11
-rwxr-xr-xsource/xap/mozilla-firefox/build-deps/nodejs/nodejs.build3
-rw-r--r--source/xap/mozilla-firefox/build-deps/nodejs/nodejs.url2
-rwxr-xr-xsource/xap/mozilla-firefox/mozilla-firefox.SlackBuild4
-rwxr-xr-xsource/xap/mozilla-thunderbird/build-deps/nodejs/nodejs.build3
-rw-r--r--source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff12
-rw-r--r--source/xap/mozilla-thunderbird/mozilla-firefox.xpcom_arm.patch18
-rwxr-xr-xsource/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild15
-rwxr-xr-xsource/xap/network-manager-applet/network-manager-applet.SlackBuild2
-rwxr-xr-xsource/xap/pan/pan.SlackBuild2
-rw-r--r--source/xap/pan/pan.gcc11.diff20
114 files changed, 3272 insertions, 692 deletions
diff --git a/source/a/aaa_libraries/aaa_libraries.SlackBuild b/source/a/aaa_libraries/aaa_libraries.SlackBuild
index f8d8f3d2..bdf44ff6 100755
--- a/source/a/aaa_libraries/aaa_libraries.SlackBuild
+++ b/source/a/aaa_libraries/aaa_libraries.SlackBuild
@@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=aaa_libraries
VERSION=${VERSION:-15.0}
-BUILD=${BUILD:-7}
+BUILD=${BUILD:-8}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/a/aaa_libraries/tracked-files-tmp.d/boost-1.75.0 b/source/a/aaa_libraries/tracked-files-tmp.d/boost-1.75.0
deleted file mode 100644
index 5ec36054..00000000
--- a/source/a/aaa_libraries/tracked-files-tmp.d/boost-1.75.0
+++ /dev/null
@@ -1,39 +0,0 @@
-/usr/lib/libboost_atomic.so.1.75.0
-/usr/lib/libboost_chrono.so.1.75.0
-/usr/lib/libboost_container.so.1.75.0
-/usr/lib/libboost_context.so.1.75.0
-/usr/lib/libboost_contract.so.1.75.0
-/usr/lib/libboost_coroutine.so.1.75.0
-/usr/lib/libboost_date_time.so.1.75.0
-/usr/lib/libboost_fiber.so.1.75.0
-/usr/lib/libboost_filesystem.so.1.75.0
-/usr/lib/libboost_graph.so.1.75.0
-/usr/lib/libboost_iostreams.so.1.75.0
-/usr/lib/libboost_json.so.1.75.0
-/usr/lib/libboost_locale.so.1.75.0
-/usr/lib/libboost_log.so.1.75.0
-/usr/lib/libboost_log_setup.so.1.75.0
-/usr/lib/libboost_math_c99.so.1.75.0
-/usr/lib/libboost_math_c99f.so.1.75.0
-/usr/lib/libboost_math_c99l.so.1.75.0
-/usr/lib/libboost_math_tr1.so.1.75.0
-/usr/lib/libboost_math_tr1f.so.1.75.0
-/usr/lib/libboost_math_tr1l.so.1.75.0
-/usr/lib/libboost_nowide.so.1.75.0
-/usr/lib/libboost_prg_exec_monitor.so.1.75.0
-/usr/lib/libboost_program_options.so.1.75.0
-/usr/lib/libboost_python27.so.1.75.0
-/usr/lib/libboost_python39.so.1.75.0
-/usr/lib/libboost_random.so.1.75.0
-/usr/lib/libboost_regex.so.1.75.0
-/usr/lib/libboost_serialization.so.1.75.0
-/usr/lib/libboost_stacktrace_addr2line.so.1.75.0
-/usr/lib/libboost_stacktrace_basic.so.1.75.0
-/usr/lib/libboost_stacktrace_noop.so.1.75.0
-/usr/lib/libboost_system.so.1.75.0
-/usr/lib/libboost_thread.so.1.75.0
-/usr/lib/libboost_timer.so.1.75.0
-/usr/lib/libboost_type_erasure.so.1.75.0
-/usr/lib/libboost_unit_test_framework.so.1.75.0
-/usr/lib/libboost_wave.so.1.75.0
-/usr/lib/libboost_wserialization.so.1.75.0
diff --git a/source/a/aaa_libraries/tracked-files-tmp.d/boost-1.76.0 b/source/a/aaa_libraries/tracked-files-tmp.d/boost-1.76.0
new file mode 100644
index 00000000..7aaa82a6
--- /dev/null
+++ b/source/a/aaa_libraries/tracked-files-tmp.d/boost-1.76.0
@@ -0,0 +1,39 @@
+/usr/lib/libboost_atomic.so.1.76.0
+/usr/lib/libboost_chrono.so.1.76.0
+/usr/lib/libboost_container.so.1.76.0
+/usr/lib/libboost_context.so.1.76.0
+/usr/lib/libboost_contract.so.1.76.0
+/usr/lib/libboost_coroutine.so.1.76.0
+/usr/lib/libboost_date_time.so.1.76.0
+/usr/lib/libboost_fiber.so.1.76.0
+/usr/lib/libboost_filesystem.so.1.76.0
+/usr/lib/libboost_graph.so.1.76.0
+/usr/lib/libboost_iostreams.so.1.76.0
+/usr/lib/libboost_json.so.1.76.0
+/usr/lib/libboost_locale.so.1.76.0
+/usr/lib/libboost_log.so.1.76.0
+/usr/lib/libboost_log_setup.so.1.76.0
+/usr/lib/libboost_math_c99.so.1.76.0
+/usr/lib/libboost_math_c99f.so.1.76.0
+/usr/lib/libboost_math_c99l.so.1.76.0
+/usr/lib/libboost_math_tr1.so.1.76.0
+/usr/lib/libboost_math_tr1f.so.1.76.0
+/usr/lib/libboost_math_tr1l.so.1.76.0
+/usr/lib/libboost_nowide.so.1.76.0
+/usr/lib/libboost_prg_exec_monitor.so.1.76.0
+/usr/lib/libboost_program_options.so.1.76.0
+/usr/lib/libboost_python27.so.1.76.0
+/usr/lib/libboost_python39.so.1.76.0
+/usr/lib/libboost_random.so.1.76.0
+/usr/lib/libboost_regex.so.1.76.0
+/usr/lib/libboost_serialization.so.1.76.0
+/usr/lib/libboost_stacktrace_addr2line.so.1.76.0
+/usr/lib/libboost_stacktrace_basic.so.1.76.0
+/usr/lib/libboost_stacktrace_noop.so.1.76.0
+/usr/lib/libboost_system.so.1.76.0
+/usr/lib/libboost_thread.so.1.76.0
+/usr/lib/libboost_timer.so.1.76.0
+/usr/lib/libboost_type_erasure.so.1.76.0
+/usr/lib/libboost_unit_test_framework.so.1.76.0
+/usr/lib/libboost_wave.so.1.76.0
+/usr/lib/libboost_wserialization.so.1.76.0
diff --git a/source/a/grep/grep.SlackBuild b/source/a/grep/grep.SlackBuild
index 12281b3b..16e50d5b 100755
--- a/source/a/grep/grep.SlackBuild
+++ b/source/a/grep/grep.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=grep
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
diff --git a/source/ap/linuxdoc-tools/ChangeLog.txt b/source/ap/linuxdoc-tools/ChangeLog.txt
index 0dbdf930..b5e57dc7 100644
--- a/source/ap/linuxdoc-tools/ChangeLog.txt
+++ b/source/ap/linuxdoc-tools/ChangeLog.txt
@@ -1,3 +1,13 @@
+Thu Aug 12 10:02:06 BST 2021
+ linuxdoc-tools 0.9.82, build 1.
+ Stuart Winter <mozes@slackware.com>
+ * Upgraded to linuxdoc-tools 0.9.82
+ No longer apply patch to set default page size to 'letter'
+ since the patch no longer applies. I think it's unlikely that this
+ change in default setting will cause any issues.
+ * Upgraded to asciidoc-9.1.0
+ * Upgraded to gtk-doc-1.33.2
+
Wed Jan 29 09:11:40 GMT 2020
linuxdoc-tools 0.9.73, build 5.
Stuart Winter <mozes@slackware.com>
diff --git a/source/ap/linuxdoc-tools/arm/build b/source/ap/linuxdoc-tools/arm/build
index 0cb7c95b..708dd699 100755
--- a/source/ap/linuxdoc-tools/arm/build
+++ b/source/ap/linuxdoc-tools/arm/build
@@ -9,7 +9,7 @@ source /usr/share/slackdev/buildkit.sh
# Package metadata:
export PKGNAM=linuxdoc-tools
-export VERSION=${VERSION:-0.9.73}
+export VERSION=${VERSION:-0.9.82}
export BUILD=${BUILD:-1}
export PKGSERIES=${PKGSERIES:-ap}
export SLACKPACKAGE=$PKGNAM-$VERSION-$PKGARCH-$BUILD.txz
diff --git a/source/ap/linuxdoc-tools/linuxdoc-tools.build b/source/ap/linuxdoc-tools/linuxdoc-tools.build
index 32ecd3ce..7b3962fb 100755
--- a/source/ap/linuxdoc-tools/linuxdoc-tools.build
+++ b/source/ap/linuxdoc-tools/linuxdoc-tools.build
@@ -23,7 +23,7 @@
LINUXDOCTOOLSVER=$PKGVERSION
# Bundled package versions:
-ASCIIDOCVER=8.6.10
+ASCIIDOCVER=9.1.0
DSSSLSTYLESHEETSVER=1.79 # docbook-dsssl-*.tar.xz (plus -doc- source archive), not SRPM.
XSLSTYLESHEETSVER=1.79.2 # docbook-style-xsl-*src.rpm ("DocBook XSL Stylesheets" in our ChangeLog.txt)
DOCBOOKUTILSVER=0.6.14
@@ -31,7 +31,7 @@ SGMLDTD3VER=3.1
SGMLDTD4VER=4.5
XMLDTDVER=4.5
GNOMEDOCUTILSVER=0.20.10
-GTKDOCVER=1.32
+GTKDOCVER=1.33.2
SGMLSPLVER=1.03ii
OPENJADEVER=1.3.2
OPENSPVER=1.5.2
@@ -53,11 +53,11 @@ case $ARCH in
export LIBDIRSUFFIX="64"
export HOSTTARGET=""
;;
- i?86) export SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- export LIBDIRSUFFIX=""
+ riscv) export SLKCFLAGS="-O2"
+ export LIBDIRSUFFIX="64"
export HOSTTARGET=""
;;
- s390) export SLKCFLAGS="-O2"
+ i?86) export SLKCFLAGS="-O2 -march=i586 -mtune=i686"
export LIBDIRSUFFIX=""
export HOSTTARGET=""
;;
@@ -80,8 +80,8 @@ cd $TMP
rm -rf asciidoc
mkdir asciidoc && cd asciidoc
rpm2cpio $CWD/sources/asciidoc-${ASCIIDOCVER}*.src.rpm | cpio -div || exit 1
-tar xvf asciidoc-py3-*.tar.*z
-cd asciidoc-py3-*/ || exit 1
+tar xvf asciidoc-py-*.tar.*z
+cd asciidoc-py-*/ || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -90,17 +90,13 @@ find . \
-exec chmod 644 {} \;
# Apply patches:
-#
# Assemble patch list from spec file:
# egrep '^Patch[0-9].*: ' *.spec | awk -F: '{print $2" \\"}'
-for i in \
- \
- asciidoc-python3.patch \
- asciidoc-python3-a2x-decode-fix.patch \
- asciidoc-python3-deprecation-warning.patch \
- \
- ; do patch -p1 --verbose < ../${i} || exit 1
-done || exit 1
+#for i in \
+# \
+# \
+# ; do patch -p1 --verbose < ../${i} || exit 1
+#done || exit 1
# Configure:
autoreconf -v
@@ -341,6 +337,7 @@ find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-au
# This is configured not to build the documentation. If anybody really needs
# it, let me know and I'll adjust the build script - it's just a PITA to
# get working.
+CXXFLAGS="-fno-lifetime-dse" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
@@ -777,6 +774,8 @@ find . \
# Assemble patch list from spec file (and see individual level-2 patch outside of 'for' loop below):
# egrep '^Patch[0-9].*: ' *.spec | awk -F: '{print $2" \\"}'
# Apply patches:
+# Note: 'docbook-style-xsl-non-recursive-string-subst.patch' is applied separately
+# as it needs a different patch level.
for i in \
\
docbook-xsl-pagesetup.patch \
@@ -953,7 +952,7 @@ cd $TMP
mkdir linuxdoc-tools && cd linuxdoc-tools
#rpm2cpio $CWD/sources/linuxdoc-tools-${LINUXDOCTOOLSVER}*.src.rpm | cpio -div || exit 1
#tar xvf linuxdoc-tools_$LINUXDOCTOOLSVER.tar.gz
-tar xvf $CWD/sources/linuxdoc-tools_$LINUXDOCTOOLSVER.tar.xz
+tar xvf $CWD/sources/linuxdoc-tools_$LINUXDOCTOOLSVER.tar.?z
cd linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1
chown -R root:root .
@@ -971,8 +970,10 @@ export PATH=$( echo $PATH | sed -e 's?:/usr/share/texmf/bin??g' -e 's?/usr/share
# Apply patches (these were originally taken from the Fedora SRPM but broken out later
# when the 'original' source from Debian began to be used)
+# We used to apply 'linuxdoc-tools-0.9.13-letter.patch.xz' but it won't apply to the
+# latest linuxdoc-tools source. It simply changed the default page size to 'Letter'.
+# Probably not too much to worry about there.
for i in \
- linuxdoc-tools-0.9.13-letter.patch.xz \
linuxdoc-tools-0.9.20-lib64.patch.xz ; do
xzcat $CWD/sources/$i | patch -p1 || exit 1
done || exit 1
@@ -1118,19 +1119,30 @@ for i in \
done || exit 1
# Configure:
+mkdir meson-build
+pushd meson-build
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
CPPFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --mandir=/usr/man || exit 1
+meson setup \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libexecdir=/usr/libexec \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --includedir=/usr/include \
+ --datadir=/usr/share \
+ --mandir=/usr/man \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ .. || exit 1
# Build:
-make || exit 1
+"${NINJA:=ninja}" $NUMJOBS --verbose || exit 1
# Install:
-make install || exit 1
+DESTDIR=/ $NINJA install --verbose || exit 1
+popd
# Copy docs:
mkdir -vpm755 /usr/doc/gtk-doc-$GTKDOCVER
diff --git a/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.13-letter.patch b/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.13-letter.patch
deleted file mode 100644
index 232d1307..00000000
--- a/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.13-letter.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- linuxdoc-tools-0.9.13/perl5lib/LinuxDocTools.pm.letter Mon Nov 26 16:09:37 2001
-+++ linuxdoc-tools-0.9.13/perl5lib/LinuxDocTools.pm Mon Nov 26 16:09:49 2001
-@@ -108,7 +108,7 @@
- { option => "pass", type => "s", short => "P" }
- ];
- $global->{backend} = "linuxdoc";
-- $global->{papersize} = "a4";
-+ $global->{papersize} = "letter";
- $global->{language} = "en";
- $global->{charset} = "ascii";
- $global->{style} = "";
---- linuxdoc-tools-0.9.13/man/linuxdoc.1.letter Mon Nov 26 16:10:04 2001
-+++ linuxdoc-tools-0.9.13/man/linuxdoc.1 Mon Nov 26 16:10:42 2001
-@@ -46,8 +46,8 @@
- format, but just output the usage of this suites.
- Available formats are: html, info, latex, lyx, rtf, txt, check.
- .IP "--papersize=\fIsize\fR, -p
--Set the paper size. Default is ``a4'' (European 297x210mm paper).
--You may also specify ``letter'' size.
-+Set the paper size. Default is ``letter''.
-+You may also specify ``a4'' size (European 297x210mm paper).
- .IP "--language=\fIlang\fR, -l"
- Specify the language of the document (this may change which style
- files are used for formatting by a back end). The default language is
diff --git a/source/ap/linuxdoc-tools/sources/source.download b/source/ap/linuxdoc-tools/sources/source.download
index bb27334e..f51a3dbb 100755
--- a/source/ap/linuxdoc-tools/sources/source.download
+++ b/source/ap/linuxdoc-tools/sources/source.download
@@ -17,7 +17,7 @@
# https://packages.debian.org/sid/linuxdoc-tools
#
# This provides things such as sgml2txt.
-wget -c http://deb.debian.org/debian/pool/main/l/linuxdoc-tools/linuxdoc-tools_0.9.73.orig.tar.gz
+wget http://deb.debian.org/debian/pool/main/l/linuxdoc-tools/linuxdoc-tools_0.9.82.orig.tar.gz
# We're taking some patches from here - now separated out:
#wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/l/linuxdoc-tools-0.9.68-3.fc19.src.rpm
@@ -27,7 +27,7 @@ wget -c http://deb.debian.org/debian/pool/main/l/linuxdoc-tools/linuxdoc-tools_0
#
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/o/
#
-wget -c https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/o/opensp-1.5.2-33.fc31.src.rpm
+wget -c https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/o/opensp-1.5.2-38.fc35.src.rpm
# OpenJade:
# http://openjade.sourceforge.net/
@@ -45,7 +45,7 @@ wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everythin
#
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/s/
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/s/sgml-common-0.6.3-53.fc31.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/s/sgml-common-0.6.3-57.fc35.src.rpm
# http://www.linuxfromscratch.org/blfs/view/stable/pst/docbook-dsssl.html
# Check versions:
@@ -58,7 +58,7 @@ wget -c http://switch.dl.sourceforge.net/sourceforge/docbook/docbook-dsssl-doc-1
#
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/
#
-wget -c https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/docbook-utils-0.6.14-48.fc31.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/docbook-utils-0.6.14-53.fc35.src.rpm
#
#
@@ -70,7 +70,7 @@ wget -c https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everyt
#
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/docbook-style-xsl-1.79.2-10.fc31.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/docbook-style-xsl-1.79.2-15.fc35.src.rpm
# http://www.linuxfromscratch.org/blfs/view/svn/pst/docbook.html
wget -c http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
@@ -85,7 +85,7 @@ wget -c http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
#
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gnome-doc-utils-0.20.10-20.fc32.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gnome-doc-utils-0.20.10-26.fc35.src.rpm
# gtk-doc:
# There aren't any patches taken from the SRPM, but you can check the version used in Fedora
@@ -93,17 +93,11 @@ wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everythin
#
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gtk-doc-1.32-2.fc32.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gtk-doc-1.33.2-4.fc35.src.rpm
+https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gtk-doc-1.32-2.fc32.src.rpm
#wget -c http://ftp.acc.umu.se/pub/GNOME/sources/gtk-doc/1.21/gtk-doc-1.21.tar.xz
# http://git.gnome.org/browse/gtk-doc/commit/?id=2bffebcf9c125f5610b8fb660d42c3c5b9dfd4f0
-# sgmlspl
-# http://www.cs.indiana.edu/~asengupt/sgml/SGMLSpm/DOC/HTML/sgmlspl/sgmlspl.html
-# http://packages.debian.org/search?keywords=sgmlspl&searchon=names&suite=all&section=all
-# There's nothing in the FTP download site at this time, so I'll take it from Debian.
-wget -c http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz
-wget -c http://http.debian.net/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-36.debian.tar.xz
-
# xmlto
# https://fedorahosted.org/releases/x/m/xmlto
# wget -c --no-check-certificate https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.23.tar.bz2
@@ -118,16 +112,25 @@ wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everythin
# Also http://asciidoc.org/
# Taken some patches from Fedora.
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/a/asciidoc-8.6.10-0.13.20180605git986f99d.fc32.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/a/asciidoc-9.1.0-3.fc35.src.rpm
# docbook2X:
#
# Pre-requisite PERL modules for docbook2X:
# https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-NamespaceSupport-1.12-9.fc31.src.rpm
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-SAX-Base-1.09-9.fc31.src.rpm
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-SAX-1.02-2.fc31.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-NamespaceSupport-1.12-15.fc35.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-SAX-1.02-8.fc35.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-SAX-Base-1.09-15.fc35.src.rpm
+
+
+
+# sgmlspl
+# http://www.cs.indiana.edu/~asengupt/sgml/SGMLSpm/DOC/HTML/sgmlspl/sgmlspl.html
+# http://packages.debian.org/search?keywords=sgmlspl&searchon=names&suite=all&section=all
+# There's nothing in the FTP download site at this time, so I'll take it from Debian.
+wget -c http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz
+wget -c http://http.debian.net/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-36.debian.tar.xz
#
#http://packages.debian.org/sid/docbook2x
diff --git a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
index 2ba2d8f4..ff31fa6a 100755
--- a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
+++ b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
@@ -21,6 +21,10 @@
# Package info:
PKGNAM=linuxdoc-tools
+export PKGVERSION=0.9.82 # use the version of linuxdoc-tools as the package version.
+BUILD=${BUILD:-1}
+PKGEXT=${PKGEXT:-txz}
+
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -31,10 +35,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-export PKGVERSION=0.9.73 # use the version of linuxdoc-tools as the package version.
-BUILD=${BUILD:-9}
-PKGEXT=${PKGEXT:-txz}
-
export CWD=$PWD
export PKGSTORE=/tmp
export TMP=/tmp/build-$PKGNAM/
diff --git a/source/ap/mc/mc.SlackBuild b/source/ap/mc/mc.SlackBuild
index 5f8ba10d..f4f74a83 100755
--- a/source/ap/mc/mc.SlackBuild
+++ b/source/ap/mc/mc.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=mc
VERSION=${VERSION:-$(echo mc-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/pamixer/pamixer.SlackBuild b/source/ap/pamixer/pamixer.SlackBuild
index ad39298d..2309960c 100755
--- a/source/ap/pamixer/pamixer.SlackBuild
+++ b/source/ap/pamixer/pamixer.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=pamixer
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-10}
+BUILD=${BUILD:-11}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/source/ap/slackpkg/README.md b/source/ap/slackpkg/README.md
new file mode 100644
index 00000000..ea4bf2a9
--- /dev/null
+++ b/source/ap/slackpkg/README.md
@@ -0,0 +1,5 @@
+Slackpkg is a tool for installing or upgrading packages through a network.
+You can make a minimal installation of Slackware Linux and then install
+additional packages from a Slackware mirror.
+
+Releases are available from [slackpkg.org](https://slackpkg.org/).
diff --git a/source/ap/slackpkg/files/ChangeLog b/source/ap/slackpkg/files/ChangeLog
index aa6dba54..8f875390 100644
--- a/source/ap/slackpkg/files/ChangeLog
+++ b/source/ap/slackpkg/files/ChangeLog
@@ -1,3 +1,9 @@
+Mon Aug 16 02:14:02 UTC 2021
+---------------
+ - Release 15.0.7
+ - Remove ftp://spout.ussg.indiana.edu from mirrorlist
+ - Allow "slackpkg help" to work after slackpkg is upgraded (JK Wood)
+
Tue Jul 6 03:01:40 UTC 2021
---------------
- Release 15.0.6
diff --git a/source/ap/slackpkg/files/core-functions.sh b/source/ap/slackpkg/files/core-functions.sh
index ea38f299..1a506277 100644
--- a/source/ap/slackpkg/files/core-functions.sh
+++ b/source/ap/slackpkg/files/core-functions.sh
@@ -242,7 +242,7 @@ ONE mirror in ${CONF}/mirrors and run:\n\n\
\t# slackpkg update\n\n\
You can see more information about slackpkg functions in slackpkg manpage."
cleanup
- elif [ "$CMD" != "new-config" ]; then
+ elif [ "$CMD" != "new-config" ] && [ "$CMD" != "help" ]; then
echo -e "\
\nThe package list is missing.\n\
Before you install|upgrade|reinstall anything you need to run:\n\n\
@@ -347,6 +347,7 @@ use slackpkg.\n"
elif ! [ -f ${WORKDIR}/CHECKSUMS.md5 ] && \
[ "$CMD" != "update" ] && \
[ "$CMD" != "new-config" ] && \
+ [ "$CMD" != "help" ] && \
[ "$CHECKMD5" = "on" ]; then
echo -e "\n\
No CHECKSUMS.md5 found! Please disable md5sums checking\n\
diff --git a/source/ap/slackpkg/files/mirrors-x86.sample b/source/ap/slackpkg/files/mirrors-x86.sample
index 5ede5cbc..4c07dd72 100644
--- a/source/ap/slackpkg/files/mirrors-x86.sample
+++ b/source/ap/slackpkg/files/mirrors-x86.sample
@@ -198,7 +198,6 @@
# http://slackware.mirrors.pair.com/slackware-15.0/
# ftp://slackware.mirrors.tds.net/pub/slackware/slackware-15.0/
# http://slackware.mirrors.tds.net/pub/slackware/slackware-15.0/
-# ftp://spout.ussg.indiana.edu/linux/slackware/slackware-15.0/
# http://spout.ussg.indiana.edu/linux/slackware/slackware-15.0/
# ftp://teewurst.cc.columbia.edu/pub/linux/slackware/slackware-15.0/
# http://teewurst.cc.columbia.edu/pub/linux/slackware/slackware-15.0/
@@ -371,7 +370,6 @@
# http://slackware.mirrors.pair.com/slackware-current/
# ftp://slackware.mirrors.tds.net/pub/slackware/slackware-current/
# http://slackware.mirrors.tds.net/pub/slackware/slackware-current/
-# ftp://spout.ussg.indiana.edu/linux/slackware/slackware-current/
# http://spout.ussg.indiana.edu/linux/slackware/slackware-current/
# ftp://teewurst.cc.columbia.edu/pub/linux/slackware/slackware-current/
# http://teewurst.cc.columbia.edu/pub/linux/slackware/slackware-current/
diff --git a/source/ap/slackpkg/files/mirrors-x86_64.sample b/source/ap/slackpkg/files/mirrors-x86_64.sample
index e66828a4..4f7d8e8b 100644
--- a/source/ap/slackpkg/files/mirrors-x86_64.sample
+++ b/source/ap/slackpkg/files/mirrors-x86_64.sample
@@ -196,7 +196,6 @@
# http://slackware.mirrors.pair.com/slackware64-15.0/
# ftp://slackware.mirrors.tds.net/pub/slackware/slackware64-15.0/
# http://slackware.mirrors.tds.net/pub/slackware/slackware64-15.0/
-# ftp://spout.ussg.indiana.edu/linux/slackware/slackware64-15.0/
# http://spout.ussg.indiana.edu/linux/slackware/slackware64-15.0/
# ftp://teewurst.cc.columbia.edu/pub/linux/slackware/slackware64-15.0/
# http://teewurst.cc.columbia.edu/pub/linux/slackware/slackware64-15.0/
@@ -363,7 +362,6 @@
# http://slackware.mirrors.pair.com/slackware64-current/
# ftp://slackware.mirrors.tds.net/pub/slackware/slackware64-current/
# http://slackware.mirrors.tds.net/pub/slackware/slackware64-current/
-# ftp://spout.ussg.indiana.edu/linux/slackware/slackware64-current/
# http://spout.ussg.indiana.edu/linux/slackware/slackware64-current/
# ftp://teewurst.cc.columbia.edu/pub/linux/slackware/slackware64-current/
# http://teewurst.cc.columbia.edu/pub/linux/slackware/slackware64-current/
diff --git a/source/ap/slackpkg/slackpkg.SlackBuild b/source/ap/slackpkg/slackpkg.SlackBuild
index 3ad02540..76c0347f 100755
--- a/source/ap/slackpkg/slackpkg.SlackBuild
+++ b/source/ap/slackpkg/slackpkg.SlackBuild
@@ -23,7 +23,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=slackpkg
-VERSION=${VERSION:-15.0.6}
+VERSION=${VERSION:-15.0.7}
ARCH="noarch"
BUILD=${BUILD:-1}
diff --git a/source/ap/squashfs-tools/squashfs-tools.SlackBuild b/source/ap/squashfs-tools/squashfs-tools.SlackBuild
index 3431421f..65f27498 100755
--- a/source/ap/squashfs-tools/squashfs-tools.SlackBuild
+++ b/source/ap/squashfs-tools/squashfs-tools.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=squashfs-tools
VERSION=${VERSION:-$( echo squashfs-tools*.tar.?z | cut -d- -f3- | rev | cut -f3- -d . | rev )}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/squashfs-tools/squashfs-tools.glibc228.diff b/source/ap/squashfs-tools/squashfs-tools.glibc228.diff
deleted file mode 100644
index 305a118d..00000000
--- a/source/ap/squashfs-tools/squashfs-tools.glibc228.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- ./squashfs-tools/unsquashfs.c.orig 2018-09-13 16:02:16.000000000 -0500
-+++ ./squashfs-tools/unsquashfs.c 2018-09-18 19:03:26.607071388 -0500
-@@ -36,6 +36,7 @@
- #include <sys/types.h>
- #include <sys/time.h>
- #include <sys/resource.h>
-+#include <sys/sysmacros.h>
- #include <limits.h>
- #include <ctype.h>
-
---- ./squashfs-tools/mksquashfs.c.orig 2018-09-13 16:02:16.000000000 -0500
-+++ ./squashfs-tools/mksquashfs.c 2018-09-18 19:03:26.605071388 -0500
-@@ -44,6 +44,7 @@
- #include <setjmp.h>
- #include <sys/types.h>
- #include <sys/mman.h>
-+#include <sys/sysmacros.h>
- #include <pthread.h>
- #include <regex.h>
- #include <sys/wait.h>
diff --git a/source/d/gcc/fetch-from-svn-and-prep-tarball.sh b/source/d/gcc/fetch-from-svn-and-prep-tarball.sh
deleted file mode 100755
index de245906..00000000
--- a/source/d/gcc/fetch-from-svn-and-prep-tarball.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/sh
-# Copyright 2018, 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA
-#
-# Parts of this script are based on the gcc_release script by
-# Jeffrey Law, Bernd Schmidt, Mark Mitchell.
-# Copyright (c) 2001-2015 Free Software Foundation.
-#
-# 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, 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/>.
-
-BRANCH=${BRANCH:-gcc-9-branch}
-
-rm -rf tmp-fetch
-mkdir tmp-fetch
-cd tmp-fetch
-# Not sure why, but this emits a different revision when the fetch is done than
-# what's returned by "svn log -r COMMITTED". We'll trust the latter.
-svn co svn://gcc.gnu.org/svn/gcc/branches/${BRANCH} gcc
-cd gcc
-echo "Generating LAST_UPDATED..."
-svn log -r COMMITTED > LAST_UPDATED.raw
-REVISION="$(cat LAST_UPDATED.raw | head -n 2 | tail -n 1 | cut -f 1 -d ' ' | cut -f 2 -d r)"
-DATE="$(date -d "$(cat LAST_UPDATED.raw | head -n 2 | tail -n 1 | cut -f 3 -d '|' | cut -f 1 -d '(')" "+%Y%m%d")"
-echo "Obtained from SVN: branches/${BRANCH} revision ${REVISION}" > LAST_UPDATED
-cat LAST_UPDATED.raw >> LAST_UPDATED
-rm LAST_UPDATED.raw
-# Remove the .svn data (not packaged):
-rm -r .svn
-# Get the version number:
-VERSION=$(cat gcc/BASE-VER)
-# Rename the directory:
-cd ..
-GCCDIR="gcc-${VERSION}_${DATE}_r${REVISION}"
-mv gcc $GCCDIR
-cd $GCCDIR
-# Now we need to generate some documentation files that would normally be
-# created during the GCC release process:
-echo "Generating INSTALL/ documentation..."
-SOURCEDIR=gcc/doc \
-DESTDIR=INSTALL \
-gcc/doc/install.texi2html 1> /dev/null 2> /dev/null
-echo "Generating NEWS..."
-contrib/gennews > NEWS
-# Create a "MD5SUMS" file to use for checking the validity of the release.
-echo "Generating MD5SUMS..."
-echo \
-"# This file contains the MD5 checksums of the files in the
-# "${GCCDIR}".tar.lz tarball.
-#
-# Besides verifying that all files in the tarball were correctly expanded,
-# it also can be used to determine if any files have changed since the
-# tarball was expanded or to verify that a patchfile was correctly applied.
-#
-# Suggested usage:
-# md5sum -c MD5SUMS | grep -v \"OK$\"
-#" > MD5SUMS
-find . -type f |
-sed -e 's:^\./::' -e '/MD5SUMS/d' |
-sort |
-xargs md5sum >>MD5SUMS
-cd ..
-# Tar it up:
-echo "Creating ${GCCDIR}.tar..."
-tar cf ${GCCDIR}.tar ${GCCDIR}
-# Compress with (p)lzip:
-echo "Compressing ${GCCDIR}.tar.lz..."
-plzip -9 ${GCCDIR}.tar
-# Move the new archive up a directory:
-mv ${GCCDIR}.tar.lz ..
-# Move up a directory and then delete the cruft:
-cd ..
-rm -r tmp-fetch
-echo "Done."
diff --git a/source/d/gcc/gcc.SlackBuild b/source/d/gcc/gcc.SlackBuild
index 5830d762..a1a6c4c6 100755
--- a/source/d/gcc/gcc.SlackBuild
+++ b/source/d/gcc/gcc.SlackBuild
@@ -57,7 +57,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gcc
SRCVER=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
VERSION=$(echo $SRCVER | cut -f 1 -d _)
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# How many jobs to run in parallel:
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -171,10 +171,8 @@ zcat $CWD/patches/gcc-no_fixincludes.diff.gz | patch -p1 --verbose --backup --su
# Fix a gfortran bug:
zcat $CWD/patches/gfortran.deferred-shape-vs-assumed-shape.patch.gz | patch -p0 --verbose --backup --suffix=.orig || exit 1
-# Fix regressions in 10.3.0:
-zcat $CWD/patches/PR100101.2efbbba16a0630fac8cadcd6d9e0ffaabfadb79f.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+# Fix regressions in 10.3.0 (and presumably 11.1.0 since they still apply cleanly):
zcat $CWD/patches/PR100102-2.a1b3484a8e6c53c8084723e3f1738d402374198e.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
-zcat $CWD/patches/PR100102.5357ab75dedef403b0eebf9277d61d1cbeb5898f.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
# Fix perms/owners:
chown -R root:root .
diff --git a/source/d/gcc/patches/PR100101.2efbbba16a0630fac8cadcd6d9e0ffaabfadb79f.patch b/source/d/gcc/patches/PR100101.2efbbba16a0630fac8cadcd6d9e0ffaabfadb79f.patch
deleted file mode 100644
index 51ee459f..00000000
--- a/source/d/gcc/patches/PR100101.2efbbba16a0630fac8cadcd6d9e0ffaabfadb79f.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 2efbbba16a0630fac8cadcd6d9e0ffaabfadb79f Mon Sep 17 00:00:00 2001
-From: Jason Merrill <jason@redhat.com>
-Date: Thu, 15 Apr 2021 13:38:54 -0400
-Subject: [PATCH] c++: noexcept error recursion [PR100101]
-
-Here instantiating the noexcept-specifier for bar<void>() means
-instantiating A<void>::value, which complains about the conversion from 0 to
-int* in the default argument of foo. Since my patch for PR99583, printing
-the error context involves looking at C<void>::type, which again wants to
-instantiate A<void>::value, which breaks. For now at least, let's break
-this recursion by avoiding looking into the noexcept-specifier in
-find_typenames, and limit that to just the uses_parameter_packs case that
-PR99583 cares about.
-
-gcc/cp/ChangeLog:
-
- PR c++/100101
- PR c++/99583
- * pt.c (find_parameter_packs_r) [FUNCTION_TYPE]: Walk into
- TYPE_RAISES_EXCEPTIONS here.
-
-gcc/testsuite/ChangeLog:
-
- PR c++/100101
- * g++.dg/cpp0x/noexcept67.C: New test.
----
- gcc/cp/pt.c | 11 +++++++++++
- gcc/testsuite/g++.dg/cpp0x/noexcept67.C | 26 +++++++++++++++++++++++++
- 3 files changed, 37 insertions(+), 5 deletions(-)
- create mode 100644 gcc/testsuite/g++.dg/cpp0x/noexcept67.C
-
-diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
-index 0f119a55272..2190f83882a 100644
---- a/gcc/cp/pt.c
-+++ b/gcc/cp/pt.c
-@@ -3890,6 +3890,10 @@ find_parameter_packs_r (tree *tp, int *walk_subtrees, void* data)
- (struct find_parameter_pack_data*)data;
- bool parameter_pack_p = false;
-
-+#define WALK_SUBTREE(NODE) \
-+ cp_walk_tree (&(NODE), &find_parameter_packs_r, \
-+ ppd, ppd->visited) \
-+
- /* Don't look through typedefs; we are interested in whether a
- parameter pack is actually written in the expression/type we're
- looking at, not the target type. */
-@@ -4070,10 +4074,17 @@ find_parameter_packs_r (tree *tp, int *walk_subtrees, void* data)
- ppd, ppd->visited);
- return NULL_TREE;
-
-+ case FUNCTION_TYPE:
-+ case METHOD_TYPE:
-+ WALK_SUBTREE (TYPE_RAISES_EXCEPTIONS (t));
-+ break;
-+
- default:
- return NULL_TREE;
- }
-
-+#undef WALK_SUBTREE
-+
- return NULL_TREE;
- }
-
-diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept67.C b/gcc/testsuite/g++.dg/cpp0x/noexcept67.C
-new file mode 100644
-index 00000000000..7f061034323
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/cpp0x/noexcept67.C
-@@ -0,0 +1,26 @@
-+// PR c++/100101
-+// { dg-do compile { target c++11 } }
-+
-+template <typename T> struct A
-+{
-+ template <typename U> static char foo(U*, int* = 0);
-+ static const bool value = sizeof(foo(static_cast<T*>(nullptr))) > 0;
-+};
-+
-+template <bool b> struct B
-+{
-+ static const bool value = b;
-+};
-+
-+template <typename T> struct C
-+{
-+ typedef B<A<T>::value> type;
-+};
-+
-+template <typename T>
-+void bar() noexcept(A<T>::value && C<T>::type::value) {}
-+
-+void baz()
-+{
-+ bar<void>();
-+}
---
-2.27.0
-
-
diff --git a/source/d/gcc/patches/PR100102.5357ab75dedef403b0eebf9277d61d1cbeb5898f.patch b/source/d/gcc/patches/PR100102.5357ab75dedef403b0eebf9277d61d1cbeb5898f.patch
deleted file mode 100644
index 57432468..00000000
--- a/source/d/gcc/patches/PR100102.5357ab75dedef403b0eebf9277d61d1cbeb5898f.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From 5357ab75dedef403b0eebf9277d61d1cbeb5898f Mon Sep 17 00:00:00 2001
-From: Patrick Palka <ppalka@redhat.com>
-Date: Fri, 4 Jun 2021 13:46:53 -0400
-Subject: [PATCH 1/1] c++: tsubst_function_decl and excess arg levels
- [PR100102]
-
-Here, when instantiating the dependent alias template
-duration::__is_harmonic with args={{T,U},{int}}, we find ourselves
-substituting the function decl _S_gcd. Since we have more arg levels
-than _S_gcd has parm levels, an old special case in tsubst_function_decl
-causes us to unwantedly reduce args to its innermost level, yielding
-args={int}, which leads to a nonsensical substitution into the decl
-context and eventually a crash.
-
-The comment for this special case refers to three examples for which we
-ought to see more arg levels than parm levels here, but none of the
-examples actually demonstrate this. In the first example, when
-defining S<int>::f(U) parms_depth is 2 and args_depth is 1, and
-later when instantiating say S<int>::f<char> both depths are 2. In the
-second example, when substituting the template friend declaration
-parms_depth is 2 and args_depth is 1, and later when instantiating f
-both depths are 1. Finally, the third example is invalid since we can't
-specialize a member template of an unspecialized class template like
-that.
-
-Given that this reduction code seems no longer relevant for its
-documented purpose and that it causes problems as in the PR, this patch
-just removes it. Note that as far as bootstrap/regtest is concerned,
-this code is dead; the below two tests would be the first to reach it.
-
- PR c++/100102
-
-gcc/cp/ChangeLog:
-
- * pt.c (tsubst_function_decl): Remove old code for reducing
- args when it has excess levels.
-
-gcc/testsuite/ChangeLog:
-
- * g++.dg/cpp0x/alias-decl-72.C: New test.
- * g++.dg/cpp0x/alias-decl-72a.C: New test.
----
- gcc/cp/pt.c | 39 ---------------------
- gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C | 9 +++++
- gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C | 9 +++++
- 3 files changed, 18 insertions(+), 39 deletions(-)
- create mode 100644 gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C
- create mode 100644 gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C
-
-diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
-index 7211bdc5bbc..744461ed8cb 100644
---- a/gcc/cp/pt.c
-+++ b/gcc/cp/pt.c
-@@ -13905,45 +13905,6 @@ tsubst_function_decl (tree t, tree args, tsubst_flags_t complain,
- if (tree spec = retrieve_specialization (gen_tmpl, argvec, hash))
- return spec;
- }
--
-- /* We can see more levels of arguments than parameters if
-- there was a specialization of a member template, like
-- this:
--
-- template <class T> struct S { template <class U> void f(); }
-- template <> template <class U> void S<int>::f(U);
--
-- Here, we'll be substituting into the specialization,
-- because that's where we can find the code we actually
-- want to generate, but we'll have enough arguments for
-- the most general template.
--
-- We also deal with the peculiar case:
--
-- template <class T> struct S {
-- template <class U> friend void f();
-- };
-- template <class U> void f() {}
-- template S<int>;
-- template void f<double>();
--
-- Here, the ARGS for the instantiation of will be {int,
-- double}. But, we only need as many ARGS as there are
-- levels of template parameters in CODE_PATTERN. We are
-- careful not to get fooled into reducing the ARGS in
-- situations like:
--
-- template <class T> struct S { template <class U> void f(U); }
-- template <class T> template <> void S<T>::f(int) {}
--
-- which we can spot because the pattern will be a
-- specialization in this case. */
-- int args_depth = TMPL_ARGS_DEPTH (args);
-- int parms_depth =
-- TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (DECL_TI_TEMPLATE (t)));
--
-- if (args_depth > parms_depth && !DECL_TEMPLATE_SPECIALIZATION (t))
-- args = get_innermost_template_args (args, parms_depth);
- }
- else
- {
-diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C
-new file mode 100644
-index 00000000000..8009756dcba
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C
-@@ -0,0 +1,9 @@
-+// PR c++/100102
-+// { dg-do compile { target c++11 } }
-+
-+template<int()> struct ratio;
-+template<class T, class U> struct duration {
-+ static constexpr int _S_gcd();
-+ template<class> using __is_harmonic = ratio<_S_gcd>;
-+ using type = __is_harmonic<int>;
-+};
-diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C
-new file mode 100644
-index 00000000000..a4443e18f9d
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C
-@@ -0,0 +1,9 @@
-+// PR c++/100102
-+// { dg-do compile { target c++11 } }
-+
-+template<int> struct ratio;
-+template<class T> struct duration {
-+ static constexpr int _S_gcd();
-+ template<class> using __is_harmonic = ratio<(duration::_S_gcd)()>;
-+ using type = __is_harmonic<int>;
-+};
---
-2.27.0
-
-
diff --git a/source/d/libtool/libtool.SlackBuild b/source/d/libtool/libtool.SlackBuild
index a42ffd12..cd6fd761 100755
--- a/source/d/libtool/libtool.SlackBuild
+++ b/source/d/libtool/libtool.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libtool
VERSION=${VERSION:-$(echo libtool-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-17}
+BUILD=${BUILD:-18}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
diff --git a/source/d/slacktrack/slacktrack.SlackBuild b/source/d/slacktrack/slacktrack.SlackBuild
index 54d49ebe..a9314c3a 100755
--- a/source/d/slacktrack/slacktrack.SlackBuild
+++ b/source/d/slacktrack/slacktrack.SlackBuild
@@ -6,7 +6,7 @@ if [ "$TMP" = "" ]; then
fi
PKGNAM=slacktrack
-export VERSION=2.20
+export VERSION=2.21
# Automatically determine the architecture we're building on:
case "$( uname -m )" in
i?86) export ARCH=i586
@@ -17,7 +17,7 @@ case "$( uname -m )" in
*) export ARCH=$( uname -m )
PKGEXT=txz ;;
esac
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
export BUILD
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
diff --git a/source/k/kernel-configs/config-generic-5.13.8 b/source/k/kernel-configs/config-generic-5.13.11
index 1f978989..993bfaee 100644
--- a/source/k/kernel-configs/config-generic-5.13.8
+++ b/source/k/kernel-configs/config-generic-5.13.11
@@ -1,10 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.13.8 Kernel Configuration
+# Linux/x86 5.13.11 Kernel Configuration
#
-CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=100300
+CONFIG_GCC_VERSION=110200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23601
@@ -14,6 +14,7 @@ CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
@@ -6676,6 +6677,8 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_MACH=y
CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
+CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
@@ -9757,6 +9760,7 @@ CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments
CONFIG_DEBUG_KERNEL=y
diff --git a/source/k/kernel-configs/config-generic-5.13.8.x64 b/source/k/kernel-configs/config-generic-5.13.11.x64
index 140df834..a92ea1d5 100644
--- a/source/k/kernel-configs/config-generic-5.13.8.x64
+++ b/source/k/kernel-configs/config-generic-5.13.11.x64
@@ -1,10 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.13.8 Kernel Configuration
+# Linux/x86 5.13.11 Kernel Configuration
#
-CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=100300
+CONFIG_GCC_VERSION=110200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23601
@@ -14,6 +14,7 @@ CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
@@ -6617,6 +6618,8 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_MACH=y
CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
+CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
@@ -9803,6 +9806,8 @@ CONFIG_HAVE_ARCH_KGDB=y
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
+CONFIG_HAVE_KCSAN_COMPILER=y
+# CONFIG_KCSAN is not set
# end of Generic Kernel Debugging Instruments
CONFIG_DEBUG_KERNEL=y
diff --git a/source/k/kernel-configs/config-generic-smp-5.13.8-smp b/source/k/kernel-configs/config-generic-smp-5.13.11-smp
index b334179d..5412a326 100644
--- a/source/k/kernel-configs/config-generic-smp-5.13.8-smp
+++ b/source/k/kernel-configs/config-generic-smp-5.13.11-smp
@@ -1,10 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.13.8 Kernel Configuration
+# Linux/x86 5.13.11 Kernel Configuration
#
-CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=100300
+CONFIG_GCC_VERSION=110200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23601
@@ -14,6 +14,7 @@ CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
@@ -6724,6 +6725,8 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_MACH=y
CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
+CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
@@ -9821,6 +9824,7 @@ CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments
CONFIG_DEBUG_KERNEL=y
diff --git a/source/k/kernel-configs/config-huge-5.13.8 b/source/k/kernel-configs/config-huge-5.13.11
index ab734d3f..483a6643 100644
--- a/source/k/kernel-configs/config-huge-5.13.8
+++ b/source/k/kernel-configs/config-huge-5.13.11
@@ -1,10 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.13.8 Kernel Configuration
+# Linux/x86 5.13.11 Kernel Configuration
#
-CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=100300
+CONFIG_GCC_VERSION=110200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23601
@@ -14,6 +14,7 @@ CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
@@ -6676,6 +6677,8 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_MACH=y
CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
+CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
@@ -9757,6 +9760,7 @@ CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments
CONFIG_DEBUG_KERNEL=y
diff --git a/source/k/kernel-configs/config-huge-5.13.8.x64 b/source/k/kernel-configs/config-huge-5.13.11.x64
index 01c7f00e..aee9dae5 100644
--- a/source/k/kernel-configs/config-huge-5.13.8.x64
+++ b/source/k/kernel-configs/config-huge-5.13.11.x64
@@ -1,10 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.13.8 Kernel Configuration
+# Linux/x86 5.13.11 Kernel Configuration
#
-CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=100300
+CONFIG_GCC_VERSION=110200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23601
@@ -14,6 +14,7 @@ CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
@@ -6617,6 +6618,8 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_MACH=y
CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
+CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
@@ -9803,6 +9806,8 @@ CONFIG_HAVE_ARCH_KGDB=y
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
+CONFIG_HAVE_KCSAN_COMPILER=y
+# CONFIG_KCSAN is not set
# end of Generic Kernel Debugging Instruments
CONFIG_DEBUG_KERNEL=y
diff --git a/source/k/kernel-configs/config-huge-smp-5.13.8-smp b/source/k/kernel-configs/config-huge-smp-5.13.11-smp
index 1dc6f68a..334b871b 100644
--- a/source/k/kernel-configs/config-huge-smp-5.13.8-smp
+++ b/source/k/kernel-configs/config-huge-smp-5.13.11-smp
@@ -1,10 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.13.8 Kernel Configuration
+# Linux/x86 5.13.11 Kernel Configuration
#
-CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=100300
+CONFIG_GCC_VERSION=110200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23601
@@ -14,6 +14,7 @@ CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
@@ -6724,6 +6725,8 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_MACH=y
CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
+CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
@@ -9821,6 +9824,7 @@ CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments
CONFIG_DEBUG_KERNEL=y
diff --git a/source/kde/kde/build/cantor b/source/kde/kde/build/cantor
index 0cfbf088..d00491fd 100644
--- a/source/kde/kde/build/cantor
+++ b/source/kde/kde/build/cantor
@@ -1 +1 @@
-2
+1
diff --git a/source/kde/kde/build/kfilemetadata b/source/kde/kde/build/kfilemetadata
index 0cfbf088..d00491fd 100644
--- a/source/kde/kde/build/kfilemetadata
+++ b/source/kde/kde/build/kfilemetadata
@@ -1 +1 @@
-2
+1
diff --git a/source/kde/kde/build/kitinerary b/source/kde/kde/build/kitinerary
index 0cfbf088..d00491fd 100644
--- a/source/kde/kde/build/kitinerary
+++ b/source/kde/kde/build/kitinerary
@@ -1 +1 @@
-2
+1
diff --git a/source/kde/kde/build/krita b/source/kde/kde/build/krita
index d00491fd..0cfbf088 100644
--- a/source/kde/kde/build/krita
+++ b/source/kde/kde/build/krita
@@ -1 +1 @@
-1
+2
diff --git a/source/kde/kde/build/ktexteditor b/source/kde/kde/build/ktexteditor
index 0cfbf088..d00491fd 100644
--- a/source/kde/kde/build/ktexteditor
+++ b/source/kde/kde/build/ktexteditor
@@ -1 +1 @@
-2
+1
diff --git a/source/kde/kde/build/minuet b/source/kde/kde/build/minuet
index 0cfbf088..d00491fd 100644
--- a/source/kde/kde/build/minuet
+++ b/source/kde/kde/build/minuet
@@ -1 +1 @@
-2
+1
diff --git a/source/kde/kde/build/okular b/source/kde/kde/build/okular
index 0cfbf088..d00491fd 100644
--- a/source/kde/kde/build/okular
+++ b/source/kde/kde/build/okular
@@ -1 +1 @@
-2
+1
diff --git a/source/kde/kde/build/plasma-workspace b/source/kde/kde/build/plasma-workspace
index d00491fd..0cfbf088 100644
--- a/source/kde/kde/build/plasma-workspace
+++ b/source/kde/kde/build/plasma-workspace
@@ -1 +1 @@
-1
+2
diff --git a/source/kde/kde/modules/all-packaged-applications b/source/kde/kde/modules/all-packaged-applications
index 55d82462..7b5551eb 100644
--- a/source/kde/kde/modules/all-packaged-applications
+++ b/source/kde/kde/modules/all-packaged-applications
@@ -206,3 +206,4 @@ libktorrent
ktorrent
kpmcore
partitionmanager
+skanlite
diff --git a/source/kde/kde/modules/applications b/source/kde/kde/modules/applications
index ffe7b823..f4d81d4d 100644
--- a/source/kde/kde/modules/applications
+++ b/source/kde/kde/modules/applications
@@ -202,3 +202,6 @@ libktorrent
ktorrent
kpmcore
partitionmanager
+
+# New in 21.08.0:
+skanlite
diff --git a/source/kde/kde/modules/applications-extra b/source/kde/kde/modules/applications-extra
index ca77f890..a8e06a4d 100644
--- a/source/kde/kde/modules/applications-extra
+++ b/source/kde/kde/modules/applications-extra
@@ -4,7 +4,6 @@ calligraplan
digikam
krita
falkon
-skanlite
kdevelop-pg-qt
kdevelop
kdev-php
diff --git a/source/kde/kde/patch/kalgebra/kalgebra_ncurses_linking.diff b/source/kde/kde/patch/kalgebra/kalgebra_ncurses_linking.diff
index 3d78fa30..1d73328c 100644
--- a/source/kde/kde/patch/kalgebra/kalgebra_ncurses_linking.diff
+++ b/source/kde/kde/patch/kalgebra/kalgebra_ncurses_linking.diff
@@ -1,11 +1,11 @@
---- kalgebra-14.12.1.orig/calgebra/CMakeLists.txt 2014-11-13 02:59:40.000000000 +0100
-+++ kalgebra-14.12.1/calgebra/CMakeLists.txt 2015-01-14 14:35:54.702166188 +0100
+--- ./calgebra/CMakeLists.txt.orig 2021-08-04 16:49:56.000000000 -0500
++++ ./calgebra/CMakeLists.txt 2021-08-12 22:13:27.013314656 -0500
@@ -13,7 +13,7 @@
endif()
add_executable(calgebra main.cpp)
--target_link_libraries(calgebra Qt5::Core ${READLINE_LIBRARY} KF5::Analitza)
-+target_link_libraries(calgebra Qt5::Core ${READLINE_LIBRARY} ${CURSES_LIBRARIES} KF5::Analitza)
+-target_link_libraries(calgebra Qt::Core ${READLINE_LIBRARY} KF5::Analitza)
++target_link_libraries(calgebra Qt::Core ${READLINE_LIBRARY} ${CURSES_LIBRARIES} KF5::Analitza)
- install(TARGETS calgebra ${INSTALL_TARGETS_DEFAULT_ARGS})
+ install(TARGETS calgebra ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
diff --git a/source/kde/kde/patch/kate/kate_runasroot.patch b/source/kde/kde/patch/kate/kate_runasroot.patch
index aa067ce6..3cc919fa 100644
--- a/source/kde/kde/patch/kate/kate_runasroot.patch
+++ b/source/kde/kde/patch/kate/kate_runasroot.patch
@@ -1,11 +1,7 @@
---- ./kwrite/main.cpp.orig 2021-04-22 13:26:42.398123759 -0500
-+++ ./kwrite/main.cpp 2021-04-22 13:29:08.356127024 -0500
-@@ -38,20 +38,18 @@
- extern "C" Q_DECL_EXPORT int main(int argc, char **argv)
- {
- #ifndef Q_OS_WIN
-- // Prohibit using sudo or kdesu (but allow using the root user directly)
-+ // Warn using sudo or kdesu (but allow using the root user directly)
+--- ./kwrite/main.cpp.orig 2021-08-12 21:30:09.752256555 -0500
++++ ./kwrite/main.cpp 2021-08-12 21:32:05.046259134 -0500
+@@ -41,17 +41,15 @@
+ // Prohibit using sudo or kdesu (but allow using the root user directly)
if (getuid() == 0) {
if (!qEnvironmentVariableIsEmpty("SUDO_USER")) {
- std::cout << "Executing KWrite with sudo is not possible due to unfixable security vulnerabilities. "
@@ -24,8 +20,8 @@
}
}
#endif
---- ./kate/main.cpp.orig 2021-04-22 13:26:42.397123759 -0500
-+++ ./kate/main.cpp 2021-04-22 13:30:18.674128597 -0500
+--- ./kate/main.cpp.orig 2021-08-04 21:13:14.000000000 -0500
++++ ./kate/main.cpp 2021-08-12 21:30:09.753256555 -0500
@@ -49,17 +49,15 @@
// Prohibit using sudo or kdesu (but allow using the root user directly)
if (getuid() == 0) {
diff --git a/source/kde/kde/patch/kitinerary.patch b/source/kde/kde/patch/kitinerary.patch
deleted file mode 100644
index 0ecbe2e4..00000000
--- a/source/kde/kde/patch/kitinerary.patch
+++ /dev/null
@@ -1,2 +0,0 @@
-# Fix for recent poppler:
-cat $CWD/patch/kitinerary/e99d101e2bd4c32566e238ce1340a93781e19eee.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/kde/kde/patch/kitinerary/e99d101e2bd4c32566e238ce1340a93781e19eee.patch b/source/kde/kde/patch/kitinerary/e99d101e2bd4c32566e238ce1340a93781e19eee.patch
deleted file mode 100644
index 1bc9dc37..00000000
--- a/source/kde/kde/patch/kitinerary/e99d101e2bd4c32566e238ce1340a93781e19eee.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From e99d101e2bd4c32566e238ce1340a93781e19eee Mon Sep 17 00:00:00 2001
-From: Evangelos Foutras <evangelos@foutrelis.com>
-Date: Mon, 2 Aug 2021 01:01:31 +0300
-Subject: [PATCH] Fix build with poppler 21.8.0
-
-parseDateString() now takes "const GooString *" as the date argument in
-order to support unicode date strings. Adjust parsePdfDateTime() to use
-the same string type (instead of "const char *") when compiling against
-poppler 21.8.0.
-
-https://gitlab.freedesktop.org/poppler/poppler/-/merge_requests/880
----
- src/lib/pdf/pdfdocument.cpp | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/src/lib/pdf/pdfdocument.cpp b/src/lib/pdf/pdfdocument.cpp
-index 8f0f4cd..0eabf45 100644
---- a/src/lib/pdf/pdfdocument.cpp
-+++ b/src/lib/pdf/pdfdocument.cpp
-@@ -201,7 +201,11 @@ int PdfDocument::fileSize() const
- }
-
- #ifdef HAVE_POPPLER
-+#if KPOPPLER_VERSION >= QT_VERSION_CHECK(21, 8, 0)
-+static QDateTime parsePdfDateTime(const GooString *str)
-+#else
- static QDateTime parsePdfDateTime(const char *str)
-+#endif
- {
- int year, month, day, hour, min, sec, tzHours, tzMins;
- char tz;
-@@ -233,7 +237,9 @@ QDateTime PdfDocument::creationTime() const
- if (!dt) {
- return {};
- }
--#if KPOPPLER_VERSION >= QT_VERSION_CHECK(0, 72, 0)
-+#if KPOPPLER_VERSION >= QT_VERSION_CHECK(21, 8, 0)
-+ return parsePdfDateTime(dt.get());
-+#elif KPOPPLER_VERSION >= QT_VERSION_CHECK(0, 72, 0)
- return parsePdfDateTime(dt->c_str());
- #else
- return parsePdfDateTime(dt->getCString());
-@@ -250,7 +256,9 @@ QDateTime PdfDocument::modificationTime() const
- if (!dt) {
- return {};
- }
--#if KPOPPLER_VERSION >= QT_VERSION_CHECK(0, 72, 0)
-+#if KPOPPLER_VERSION >= QT_VERSION_CHECK(21, 8, 0)
-+ return parsePdfDateTime(dt.get());
-+#elif KPOPPLER_VERSION >= QT_VERSION_CHECK(0, 72, 0)
- return parsePdfDateTime(dt->c_str());
- #else
- return parsePdfDateTime(dt->getCString());
diff --git a/source/kde/kde/patch/ktorrent.patch b/source/kde/kde/patch/ktorrent.patch
index 11538623..5cb1ccea 100644
--- a/source/kde/kde/patch/ktorrent.patch
+++ b/source/kde/kde/patch/ktorrent.patch
@@ -1,2 +1,3 @@
# Embed a copy of the GeoIP database since the download link no longer works.
+cat $CWD/patch/ktorrent/ktorrent.geoip.revert.6c1ae6b2530c5f7c72611a95aea92275520a5aee.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
cat $CWD/patch/ktorrent/ktorrent.use.package.geoip.database.diff | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/kde/kde/patch/ktorrent/geoip.dat b/source/kde/kde/patch/ktorrent/geoip.dat
index be8b031f..60b1c357 100644
--- a/source/kde/kde/patch/ktorrent/geoip.dat
+++ b/source/kde/kde/patch/ktorrent/geoip.dat
Binary files differ
diff --git a/source/kde/kde/patch/ktorrent/ktorrent.geoip.revert.6c1ae6b2530c5f7c72611a95aea92275520a5aee.patch b/source/kde/kde/patch/ktorrent/ktorrent.geoip.revert.6c1ae6b2530c5f7c72611a95aea92275520a5aee.patch
new file mode 100644
index 00000000..b23a20e1
--- /dev/null
+++ b/source/kde/kde/patch/ktorrent/ktorrent.geoip.revert.6c1ae6b2530c5f7c72611a95aea92275520a5aee.patch
@@ -0,0 +1,1474 @@
+--- ./plugins/infowidget/GeoIP.h.orig 2021-08-15 00:18:01.329498947 -0500
++++ ./plugins/infowidget/GeoIP.h 2021-08-15 00:18:01.329498947 -0500
+@@ -0,0 +1,148 @@
++/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
++/* GeoIP.h
++
++ SPDX-FileCopyrightText: 2003 MaxMind LLC
++ SPDX-License-Identifier: GPL-2.0-or-later
++*/
++
++#ifndef GEOIP_H
++#define GEOIP_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <sys/stat.h> /* for fstat */
++#include <sys/types.h> /* for fstat */
++
++#define SEGMENT_RECORD_LENGTH 3
++#define STANDARD_RECORD_LENGTH 3
++#define ORG_RECORD_LENGTH 4
++#define MAX_RECORD_LENGTH 4
++#define NUM_DB_TYPES 16
++
++typedef struct GeoIPTag {
++ FILE *GeoIPDatabase;
++ char *file_path;
++ unsigned char *cache;
++ unsigned char *index_cache;
++ unsigned int *databaseSegments;
++ char databaseType;
++ time_t mtime;
++ int flags;
++ char record_length;
++ int record_iter; /* used in GeoIP_next_record */
++} GeoIP;
++
++typedef struct GeoIPRegionTag {
++ char country_code[3];
++ char region[3];
++} GeoIPRegion;
++
++typedef enum {
++ GEOIP_STANDARD = 0,
++ GEOIP_MEMORY_CACHE = 1,
++ GEOIP_CHECK_CACHE = 2,
++ GEOIP_INDEX_CACHE = 4,
++} GeoIPOptions;
++
++typedef enum {
++ GEOIP_COUNTRY_EDITION = 1,
++ GEOIP_REGION_EDITION_REV0 = 7,
++ GEOIP_CITY_EDITION_REV0 = 6,
++ GEOIP_ORG_EDITION = 5,
++ GEOIP_ISP_EDITION = 4,
++ GEOIP_CITY_EDITION_REV1 = 2,
++ GEOIP_REGION_EDITION_REV1 = 3,
++ GEOIP_PROXY_EDITION = 8,
++ GEOIP_ASNUM_EDITION = 9,
++ GEOIP_NETSPEED_EDITION = 10
++} GeoIPDBTypes;
++
++typedef enum {
++ GEOIP_ANON_PROXY = 1,
++ GEOIP_HTTP_X_FORWARDED_FOR_PROXY = 2,
++ GEOIP_HTTP_CLIENT_IP_PROXY = 3,
++} GeoIPProxyTypes;
++
++typedef enum {
++ GEOIP_UNKNOWN_SPEED = 0,
++ GEOIP_DIALUP_SPEED = 1,
++ GEOIP_CABLEDSL_SPEED = 2,
++ GEOIP_CORPORATE_SPEED = 3,
++} GeoIPNetspeedValues;
++
++extern char **GeoIPDBFileName;
++extern const char *GeoIPDBDescription[NUM_DB_TYPES];
++extern const char *GeoIPCountryDBFileName;
++extern const char *GeoIPRegionDBFileName;
++extern const char *GeoIPCityDBFileName;
++extern const char *GeoIPOrgDBFileName;
++extern const char *GeoIPISPDBFileName;
++
++extern const char GeoIP_country_code[247][3];
++extern const char GeoIP_country_code3[247][4];
++extern const char *GeoIP_country_name[247];
++extern const char GeoIP_country_continent[247][3];
++
++#ifdef DLL
++#define GEOIP_API __declspec(dllexport)
++#else
++#define GEOIP_API
++#endif /* DLL */
++
++GEOIP_API GeoIP *GeoIP_open_type(int type, int flags);
++GEOIP_API GeoIP *GeoIP_new(int flags);
++GEOIP_API GeoIP *GeoIP_open(const char *filename, int flags);
++GEOIP_API int GeoIP_db_avail(int type);
++GEOIP_API void GeoIP_delete(GeoIP *gi);
++GEOIP_API const char *GeoIP_country_code_by_addr(GeoIP *gi, const char *addr);
++GEOIP_API const char *GeoIP_country_code_by_name(GeoIP *gi, const char *host);
++GEOIP_API const char *GeoIP_country_code3_by_addr(GeoIP *gi, const char *addr);
++GEOIP_API const char *GeoIP_country_code3_by_name(GeoIP *gi, const char *host);
++GEOIP_API const char *GeoIP_country_name_by_addr(GeoIP *gi, const char *addr);
++GEOIP_API const char *GeoIP_country_name_by_name(GeoIP *gi, const char *host);
++GEOIP_API const char *GeoIP_country_name_by_ipnum(GeoIP *gi, unsigned long ipnum);
++GEOIP_API const char *GeoIP_country_code_by_ipnum(GeoIP *gi, unsigned long ipnum);
++GEOIP_API const char *GeoIP_country_code3_by_ipnum(GeoIP *gi, unsigned long ipnum);
++
++/* Deprecated - for backwards compatibility only */
++GEOIP_API int GeoIP_country_id_by_addr(GeoIP *gi, const char *addr);
++GEOIP_API int GeoIP_country_id_by_name(GeoIP *gi, const char *host);
++GEOIP_API char *GeoIP_org_by_addr(GeoIP *gi, const char *addr);
++GEOIP_API char *GeoIP_org_by_name(GeoIP *gi, const char *host);
++/* End deprecated */
++
++GEOIP_API int GeoIP_id_by_addr(GeoIP *gi, const char *addr);
++GEOIP_API int GeoIP_id_by_name(GeoIP *gi, const char *host);
++GEOIP_API int GeoIP_id_by_ipnum(GeoIP *gi, unsigned long ipnum);
++
++GEOIP_API GeoIPRegion *GeoIP_region_by_addr(GeoIP *gi, const char *addr);
++GEOIP_API GeoIPRegion *GeoIP_region_by_name(GeoIP *gi, const char *host);
++GEOIP_API GeoIPRegion *GeoIP_region_by_ipnum(GeoIP *gi, unsigned long ipnum);
++
++/* Warning - don't call this after GeoIP_assign_region_by_inetaddr calls */
++GEOIP_API void GeoIPRegion_delete(GeoIPRegion *gir);
++
++GEOIP_API void GeoIP_assign_region_by_inetaddr(GeoIP *gi, unsigned long inetaddr, GeoIPRegion *gir);
++
++/* Used to query GeoIP Organization, ISP and AS Number databases */
++GEOIP_API char *GeoIP_name_by_ipnum(GeoIP *gi, unsigned long ipnum);
++GEOIP_API char *GeoIP_name_by_addr(GeoIP *gi, const char *addr);
++GEOIP_API char *GeoIP_name_by_name(GeoIP *gi, const char *host);
++
++GEOIP_API char *GeoIP_database_info(GeoIP *gi);
++GEOIP_API unsigned char GeoIP_database_edition(GeoIP *gi);
++
++#ifdef BSD
++#define memcpy(dest, src, n) bcopy(src, dest, n)
++#endif
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* GEOIP_H */
+--- ./plugins/infowidget/geoipmanager.cpp.orig 2021-08-04 21:50:44.000000000 -0500
++++ ./plugins/infowidget/geoipmanager.cpp 2021-08-15 00:18:01.329498947 -0500
+@@ -20,16 +20,47 @@
+
+ namespace kt
+ {
++QUrl GeoIPManager::geoip_url = QUrl(QStringLiteral("http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz"));
++
+ GeoIPManager::GeoIPManager(QObject *parent)
+ : QObject(parent)
++ , geo_ip(nullptr)
++ , decompress_thread(nullptr)
+ {
++#ifdef USE_SYSTEM_GEOIP
+ geo_ip = GeoIP_open_type(GEOIP_COUNTRY_EDITION, GEOIP_STANDARD);
++#else
++ geoip_data_file = QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("geoip.dat"));
++ if (geoip_data_file.isEmpty())
++ geoip_data_file = QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("GeoIP.dat"));
++
++ if (geoip_data_file.isEmpty()) {
++ downloadDataBase();
++ } else {
++ geo_ip = GeoIP_open(QFile::encodeName(geoip_data_file).data(), 0);
++ if (geo_ip) {
++ QFileInfo fi(geoip_data_file);
++ QDateTime now = QDateTime::currentDateTime();
++ if (fi.lastModified().daysTo(now) >= 30) {
++ // if the last time the geoip file was modified, was more then
++ // 30 days ago, redownload it
++ downloadDataBase();
++ }
++ }
++ }
++#endif
+ }
+
+ GeoIPManager::~GeoIPManager()
+ {
+ if (geo_ip)
+ GeoIP_delete(geo_ip);
++
++ if (decompress_thread) {
++ decompress_thread->cancel();
++ decompress_thread->wait();
++ delete decompress_thread;
++ }
+ }
+
+ int GeoIPManager::findCountry(const QString &addr)
+@@ -56,4 +87,66 @@
+ return QString();
+ }
+
++void GeoIPManager::downloadDataBase()
++{
++#ifndef USE_SYSTEM_GEOIP
++ Out(SYS_INW | LOG_NOTICE) << "Downloading GeoIP database: " << geoip_url << endl;
++ download_destination = kt::DataDir(CreateIfNotExists) + geoip_url.fileName();
++ KIO::CopyJob *job = KIO::copy(geoip_url, QUrl::fromLocalFile(download_destination), KIO::Overwrite | KIO::HideProgressInfo);
++ connect(job, &KIO::CopyJob::result, this, &GeoIPManager::databaseDownloadFinished);
++#endif
++}
++
++void GeoIPManager::databaseDownloadFinished(KJob *job)
++{
++ if (job->error()) {
++ Out(SYS_INW | LOG_IMPORTANT) << "Failed to download GeoIP database: " << job->errorString() << endl;
++ return;
++ }
++
++ if (download_destination.endsWith(QLatin1String(".dat")) || download_destination.endsWith(QLatin1String(".DAT"))) {
++ Out(SYS_INW | LOG_NOTICE) << "GeoIP database downloaded, opening ... " << endl;
++ geoip_data_file = download_destination;
++ if (geo_ip) {
++ GeoIP_delete(geo_ip);
++ geo_ip = nullptr;
++ }
++ geo_ip = GeoIP_open(QFile::encodeName(geoip_data_file).data(), 0);
++ if (!geo_ip)
++ Out(SYS_INW | LOG_NOTICE) << "Failed to open GeoIP database " << endl;
++ } else {
++ Out(SYS_INW | LOG_NOTICE) << "GeoIP database downloaded, decompressing ... " << endl;
++ // decompress the file
++ decompress_thread = new bt::DecompressThread(download_destination, kt::DataDir() + QLatin1String("geoip.dat"));
++ connect(decompress_thread, &bt::DecompressThread::finished, this, &GeoIPManager::decompressFinished, Qt::QueuedConnection);
++ decompress_thread->start(QThread::IdlePriority);
++ }
++}
++
++void GeoIPManager::decompressFinished()
++{
++ Out(SYS_INW | LOG_NOTICE) << "GeoIP database decompressed, opening ... " << endl;
++ if (!decompress_thread->error()) {
++ geoip_data_file = kt::DataDir() + QLatin1String("geoip.dat");
++ if (geo_ip) {
++ GeoIP_delete(geo_ip);
++ geo_ip = nullptr;
++ }
++ geo_ip = GeoIP_open(QFile::encodeName(geoip_data_file).data(), 0);
++ if (!geo_ip)
++ Out(SYS_INW | LOG_NOTICE) << "Failed to open GeoIP database " << endl;
++ }
++
++ decompress_thread->wait();
++ delete decompress_thread;
++ decompress_thread = nullptr;
++}
++
++void GeoIPManager::setGeoIPUrl(const QUrl &url)
++{
++ geoip_url = url;
++}
++
++///////////////////////////////////
++
+ }
+--- ./plugins/infowidget/GeoIP.c.orig 2021-08-15 00:18:01.329498947 -0500
++++ ./plugins/infowidget/GeoIP.c 2021-08-15 00:18:01.329498947 -0500
+@@ -0,0 +1,968 @@
++/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
++/* GeoIP.c
++ SPDX-FileCopyrightText: 2003 MaxMind LLC All Rights Reserved.
++ SPDX-License-Identifier: GPL-2.0-or-later
++*/
++
++#include "GeoIP.h"
++
++#include <netdb.h>
++#include <sys/socket.h>
++#include <errno.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#ifndef _WIN32
++#include <netinet/in.h> /* For ntohl */
++#include <arpa/inet.h>
++#else
++#include <windows.h>
++#endif
++#include <assert.h>
++#include <sys/types.h> /* for fstat */
++#include <sys/stat.h> /* for fstat */
++
++#ifdef HAVE_STDINT_H
++#include <stdint.h> /* For uint32_t */
++#endif
++
++#ifndef INADDR_NONE
++#define INADDR_NONE -1
++#endif
++
++#define COUNTRY_BEGIN 16776960
++#define STATE_BEGIN_REV0 16700000
++#define STATE_BEGIN_REV1 16000000
++#define STRUCTURE_INFO_MAX_SIZE 20
++#define DATABASE_INFO_MAX_SIZE 100
++#define MAX_ORG_RECORD_LENGTH 300
++#define US_OFFSET 1
++#define CANADA_OFFSET 677
++#define WORLD_OFFSET 1353
++#define FIPS_RANGE 360
++
++#define CHECK_ERR(err, msg) { \
++ if (err != Z_OK) { \
++ fprintf(stderr, "%s error: %d\n", msg, err); \
++ exit(1); \
++ } \
++}
++
++const char GeoIP_country_code[247][3] = { "--", "AP", "EU", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BM", "BN", "BO", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "FX", "GA", "GB", "GD", "GE", "GF", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IO", "IQ", "IR", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "ST", "SV", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TM", "TN", "TO", "TP", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "CS", "ZA", "ZM", "ZR", "ZW", "A1", "A2", "O1"};
++
++const char GeoIP_country_code3[247][4] = { "--", "AP", "EU", "AND", "ARE", "AFG", "ATG", "AIA", "ALB", "ARM", "ANT", "AGO", "AQ", "ARG", "ASM", "AUT", "AUS", "ABW", "AZE", "BIH", "BRB", "BGD", "BEL", "BFA", "BGR", "BHR", "BDI", "BEN", "BMU", "BRN", "BOL", "BRA", "BHS", "BTN", "BV", "BWA", "BLR", "BLZ", "CAN", "CC", "COD", "CAF", "COG", "CHE", "CIV", "COK", "CHL", "CMR", "CHN", "COL", "CRI", "CUB", "CPV", "CX", "CYP", "CZE", "DEU", "DJI", "DNK", "DMA", "DOM", "DZA", "ECU", "EST", "EGY", "ESH", "ERI", "ESP", "ETH", "FIN", "FJI", "FLK", "FSM", "FRO", "FRA", "FX", "GAB", "GBR", "GRD", "GEO", "GUF", "GHA", "GIB", "GRL", "GMB", "GIN", "GLP", "GNQ", "GRC", "GS", "GTM", "GUM", "GNB", "GUY", "HKG", "HM", "HND", "HRV", "HTI", "HUN", "IDN", "IRL", "ISR", "IND", "IO", "IRQ", "IRN", "ISL", "ITA", "JAM", "JOR", "JPN", "KEN", "KGZ", "KHM", "KIR", "COM", "KNA", "PRK", "KOR", "KWT", "CYM", "KAZ", "LAO", "LBN", "LCA", "LIE", "LKA", "LBR", "LSO", "LTU", "LUX", "LVA", "LBY", "MAR", "MCO", "MDA", "MDG", "MHL", "MKD", "MLI", "MMR", "MNG", "MAC", "MNP", "MTQ", "MRT", "MSR", "MLT", "MUS", "MDV", "MWI", "MEX", "MYS", "MOZ", "NAM", "NCL", "NER", "NFK", "NGA", "NIC", "NLD", "NOR", "NPL", "NRU", "NIU", "NZL", "OMN", "PAN", "PER", "PYF", "PNG", "PHL", "PAK", "POL", "SPM", "PCN", "PRI", "PSE", "PRT", "PLW", "PRY", "QAT", "REU", "ROU", "RUS", "RWA", "SAU", "SLB", "SYC", "SDN", "SWE", "SGP", "SHN", "SVN", "SJM", "SVK", "SLE", "SMR", "SEN", "SOM", "SUR", "STP", "SLV", "SYR", "SWZ", "TCA", "TCD", "TF", "TGO", "THA", "TJK", "TKL", "TLS", "TKM", "TUN", "TON", "TUR", "TTO", "TUV", "TWN", "TZA", "UKR", "UGA", "UM", "USA", "URY", "UZB", "VAT", "VCT", "VEN", "VGB", "VIR", "VNM", "VUT", "WLF", "WSM", "YEM", "YT", "SCG", "ZAF", "ZMB", "ZR", "ZWE", "A1", "A2", "O1"};
++
++const char* GeoIP_country_name[247] = {"N/A", "Asia/Pacific Region", "Europe", "Andorra", "United Arab Emirates", "Afghanistan", "Antigua and Barbuda", "Anguilla", "Albania", "Armenia", "Netherlands Antilles", "Angola", "Antarctica", "Argentina", "American Samoa", "Austria", "Australia", "Aruba", "Azerbaijan", "Bosnia and Herzegovina", "Barbados", "Bangladesh", "Belgium", "Burkina Faso", "Bulgaria", "Bahrain", "Burundi", "Benin", "Bermuda", "Brunei Darussalam", "Bolivia", "Brazil", "Bahamas", "Bhutan", "Bouvet Island", "Botswana", "Belarus", "Belize", "Canada", "Cocos (Keeling) Islands", "Congo, The Democratic Republic of the", "Central African Republic", "Congo", "Switzerland", "Cote D'Ivoire", "Cook Islands", "Chile", "Cameroon", "China", "Colombia", "Costa Rica", "Cuba", "Cape Verde", "Christmas Island", "Cyprus", "Czechia", "Germany", "Djibouti", "Denmark", "Dominica", "Dominican Republic", "Algeria", "Ecuador", "Estonia", "Egypt", "Western Sahara", "Eritrea", "Spain", "Ethiopia", "Finland", "Fiji", "Falkland Islands (Malvinas)", "Micronesia, Federated States of", "Faroe Islands", "France", "France, Metropolitan", "Gabon", "United Kingdom", "Grenada", "Georgia", "French Guiana", "Ghana", "Gibraltar", "Greenland", "Gambia", "Guinea", "Guadeloupe", "Equatorial Guinea", "Greece", "South Georgia and the South Sandwich Islands", "Guatemala", "Guam", "Guinea-Bissau", "Guyana", "Hong Kong", "Heard Island and McDonald Islands", "Honduras", "Croatia", "Haiti", "Hungary", "Indonesia", "Ireland", "Israel", "India", "British Indian Ocean Territory", "Iraq", "Iran, Islamic Republic of", "Iceland", "Italy", "Jamaica", "Jordan", "Japan", "Kenya", "Kyrgyzstan", "Cambodia", "Kiribati", "Comoros", "Saint Kitts and Nevis",
++ "Korea, Democratic People's Republic of", "Korea, Republic of", "Kuwait", "Cayman Islands", "Kazakhstan", "Lao People's Democratic Republic", "Lebanon", "Saint Lucia", "Liechtenstein", "Sri Lanka", "Liberia", "Lesotho", "Lithuania", "Luxembourg", "Latvia", "Libyan Arab Jamahiriya", "Morocco", "Monaco", "Moldova, Republic of", "Madagascar", "Marshall Islands", "Macedonia", "Mali", "Myanmar", "Mongolia", "Macau", "Northern Mariana Islands", "Martinique", "Mauritania", "Montserrat", "Malta", "Mauritius", "Maldives", "Malawi", "Mexico", "Malaysia", "Mozambique", "Namibia", "New Caledonia", "Niger", "Norfolk Island", "Nigeria", "Nicaragua", "Netherlands", "Norway", "Nepal", "Nauru", "Niue", "New Zealand", "Oman", "Panama", "Peru", "French Polynesia", "Papua New Guinea", "Philippines", "Pakistan", "Poland", "Saint Pierre and Miquelon", "Pitcairn Islands", "Puerto Rico", "Palestinian Territory", "Portugal", "Palau", "Paraguay", "Qatar", "Reunion", "Romania", "Russian Federation", "Rwanda", "Saudi Arabia", "Solomon Islands", "Seychelles", "Sudan", "Sweden", "Singapore", "Saint Helena", "Slovenia", "Svalbard and Jan Mayen", "Slovakia", "Sierra Leone", "San Marino", "Senegal", "Somalia", "Suriname", "Sao Tome and Principe", "El Salvador", "Syrian Arab Republic", "Swaziland", "Turks and Caicos Islands", "Chad", "French Southern Territories", "Togo", "Thailand", "Tajikistan", "Tokelau", "Turkmenistan", "Tunisia", "Tonga", "East Timor", "Turkey", "Trinidad and Tobago", "Tuvalu", "Taiwan", "Tanzania, United Republic of", "Ukraine", "Uganda", "United States Minor Outlying Islands", "United States", "Uruguay", "Uzbekistan", "Holy See (Vatican City State)", "Saint Vincent and the Grenadines", "Venezuela", "Virgin Islands, British", "Virgin Islands, U.S.", "Vietnam", "Vanuatu", "Wallis and Futuna", "Samoa", "Yemen", "Mayotte", "Serbia and Montenegro", "South Africa", "Zambia", "Zaire", "Zimbabwe",
++ "Anonymous Proxy", "Satellite Provider", "Other"
++ };
++
++const char GeoIP_country_continent[247][3] = {"--", "AS", "EU", "EU", "AS", "AS", "SA", "SA", "EU", "AS", "SA", "AF", "AN", "SA", "OC", "EU", "OC", "SA", "AS", "EU", "SA", "AS", "EU", "AF", "EU", "AS", "AF", "AF", "SA", "AS", "SA", "SA", "SA", "AS", "AF", "AF", "EU", "SA", "NA", "AS", "AF", "AF", "AF", "EU", "AF", "OC", "SA", "AF", "AS", "SA", "SA", "SA", "AF", "AS", "AS", "EU", "EU", "AF", "EU", "SA", "SA", "AF", "SA", "EU", "AF", "AF", "AF", "EU", "AF", "EU", "OC", "SA", "OC", "EU", "EU", "EU", "AF", "EU", "SA", "AS", "SA", "AF", "EU", "SA", "AF", "AF", "SA", "AF", "EU", "SA", "SA", "OC", "AF", "SA", "AS", "AF", "SA", "EU", "SA", "EU", "AS", "EU", "AS", "AS", "AS", "AS", "AS", "EU", "EU", "SA", "AS", "AS", "AF", "AS", "AS", "OC", "AF", "SA", "AS", "AS", "AS", "SA", "AS", "AS", "AS", "SA", "EU", "AS", "AF", "AF", "EU", "EU", "EU", "AF", "AF", "EU", "EU", "AF", "OC", "EU", "AF", "AS", "AS", "AS", "OC", "SA", "AF", "SA", "EU", "AF", "AS", "AF", "NA", "AS", "AF", "AF", "OC", "AF", "OC", "AF", "SA", "EU", "EU", "AS", "OC", "OC", "OC", "AS", "SA", "SA", "OC", "OC", "AS", "AS", "EU", "SA", "OC", "SA", "AS", "EU", "OC", "SA", "AS", "AF", "EU", "AS", "AF", "AS", "OC", "AF", "AF", "EU", "AS", "AF", "EU", "EU", "EU", "AF", "EU", "AF", "AF", "SA", "AF", "SA", "AS", "AF", "SA", "AF", "AF", "AF", "AS", "AS", "OC", "AS", "AF", "OC", "AS", "AS", "SA", "OC", "AS", "AF", "EU", "AF", "OC", "NA", "SA", "AS", "EU", "SA", "SA", "SA", "SA", "AS", "OC", "OC", "OC", "AS", "AF", "EU", "AF", "AF", "AF", "AF"};
++
++const char* GeoIPDBDescription[NUM_DB_TYPES] = {NULL, "GeoIP Country Edition", "GeoIP City Edition, Rev 1", "GeoIP Region Edition, Rev 1", "GeoIP ISP Edition", "GeoIP Organization Edition", "GeoIP City Edition, Rev 0", "GeoIP Region Edition, Rev 0", "GeoIP Proxy Edition", "GeoIP ASNum Edition", "GeoIP Netspeed Edition"};
++
++char* _GeoIP_full_path_to(const char* file_name)
++{
++ char* path = malloc(sizeof(char) * 1024);
++
++#ifndef _WIN32
++ memset(path, 0, sizeof(char) * 1024);
++ snprintf(path, sizeof(char) * 1024 - 1, "%s/%s", "/home/ivan/geoip.dat", file_name);
++#else
++ char buf[MAX_PATH], *p, *q = NULL;
++ int len;
++ memset(buf, 0, sizeof(buf));
++ len = GetModuleFileNameA(GetModuleHandle(NULL), buf, sizeof(buf) - 1);
++ for (p = buf + len; p > buf; p--)
++ if (*p == '\\')
++ {
++ if (!q)
++ q = p;
++ else
++ *p = '/';
++ }
++ *q = 0;
++ memset(path, 0, sizeof(char) * 1024);
++ snprintf(path, sizeof(char) * 1024 - 1, "%s/%s", buf, file_name);
++#endif
++
++ return path;
++}
++
++char** GeoIPDBFileName = NULL;
++
++void _GeoIP_setup_dbfilename()
++{
++ if (NULL == GeoIPDBFileName)
++ {
++ GeoIPDBFileName = malloc(sizeof(char*) * NUM_DB_TYPES);
++ memset(GeoIPDBFileName, 0, sizeof(char*) * NUM_DB_TYPES);
++
++ GeoIPDBFileName[GEOIP_COUNTRY_EDITION] = _GeoIP_full_path_to("GeoIP.dat");
++ GeoIPDBFileName[GEOIP_REGION_EDITION_REV0] = _GeoIP_full_path_to("GeoIPRegion.dat");
++ GeoIPDBFileName[GEOIP_REGION_EDITION_REV1] = _GeoIP_full_path_to("GeoIPRegion.dat");
++ GeoIPDBFileName[GEOIP_CITY_EDITION_REV0] = _GeoIP_full_path_to("GeoIPCity.dat");
++ GeoIPDBFileName[GEOIP_CITY_EDITION_REV1] = _GeoIP_full_path_to("GeoIPCity.dat");
++ GeoIPDBFileName[GEOIP_ISP_EDITION] = _GeoIP_full_path_to("GeoIPISP.dat");
++ GeoIPDBFileName[GEOIP_ORG_EDITION] = _GeoIP_full_path_to("GeoIPOrg.dat");
++ GeoIPDBFileName[GEOIP_PROXY_EDITION] = _GeoIP_full_path_to("GeoIPProxy.dat");
++ GeoIPDBFileName[GEOIP_ASNUM_EDITION] = _GeoIP_full_path_to("GeoIPASNum.dat");
++ GeoIPDBFileName[GEOIP_NETSPEED_EDITION] = _GeoIP_full_path_to("GeoIPNetSpeed.dat");
++ }
++}
++
++static
++int _file_exists(const char* file_name)
++{
++ struct stat file_stat;
++ return((stat(file_name, &file_stat) == 0) ? 1 : 0);
++}
++
++int GeoIP_db_avail(int type)
++{
++ const char* filePath;
++ if (type < 0 || type >= NUM_DB_TYPES)
++ {
++ return 0;
++ }
++ filePath = GeoIPDBFileName[type];
++ if (NULL == filePath)
++ {
++ return 0;
++ }
++ return _file_exists(filePath);
++}
++
++static
++void _setup_segments(GeoIP* gi)
++{
++ int i, j;
++ unsigned char delim[3];
++ unsigned char buf[SEGMENT_RECORD_LENGTH];
++
++ /* default to GeoIP Country Edition */
++ gi->databaseType = GEOIP_COUNTRY_EDITION;
++ gi->record_length = STANDARD_RECORD_LENGTH;
++ fseek(gi->GeoIPDatabase, -3l, SEEK_END);
++ for (i = 0; i < STRUCTURE_INFO_MAX_SIZE; i++)
++ {
++ fread(delim, 1, 3, gi->GeoIPDatabase);
++ if (delim[0] == 255 && delim[1] == 255 && delim[2] == 255)
++ {
++ fread(&gi->databaseType, 1, 1, gi->GeoIPDatabase);
++ if (gi->databaseType >= 106)
++ {
++ /* backwards compatibility with databases from April 2003 and earlier */
++ gi->databaseType -= 105;
++ }
++
++ if (gi->databaseType == GEOIP_REGION_EDITION_REV0)
++ {
++ /* Region Edition, pre June 2003 */
++ gi->databaseSegments = malloc(sizeof(int));
++ gi->databaseSegments[0] = STATE_BEGIN_REV0;
++ }
++ else if (gi->databaseType == GEOIP_REGION_EDITION_REV1)
++ {
++ /* Region Edition, post June 2003 */
++ gi->databaseSegments = malloc(sizeof(int));
++ gi->databaseSegments[0] = STATE_BEGIN_REV1;
++ }
++ else if (gi->databaseType == GEOIP_CITY_EDITION_REV0 ||
++ gi->databaseType == GEOIP_CITY_EDITION_REV1 ||
++ gi->databaseType == GEOIP_ORG_EDITION ||
++ gi->databaseType == GEOIP_ISP_EDITION ||
++ gi->databaseType == GEOIP_ASNUM_EDITION)
++ {
++ /* City/Org Editions have two segments, read offset of second segment */
++ gi->databaseSegments = malloc(sizeof(int));
++ gi->databaseSegments[0] = 0;
++ fread(buf, SEGMENT_RECORD_LENGTH, 1, gi->GeoIPDatabase);
++ for (j = 0; j < SEGMENT_RECORD_LENGTH; j++)
++ {
++ gi->databaseSegments[0] += (buf[j] << (j * 8));
++ }
++ if (gi->databaseType == GEOIP_ORG_EDITION ||
++ gi->databaseType == GEOIP_ISP_EDITION)
++ gi->record_length = ORG_RECORD_LENGTH;
++ }
++ break;
++ }
++ else
++ {
++ fseek(gi->GeoIPDatabase, -4l, SEEK_CUR);
++ }
++ }
++ if (gi->databaseType == GEOIP_COUNTRY_EDITION ||
++ gi->databaseType == GEOIP_PROXY_EDITION ||
++ gi->databaseType == GEOIP_NETSPEED_EDITION)
++ {
++ gi->databaseSegments = malloc(sizeof(int));
++ gi->databaseSegments[0] = COUNTRY_BEGIN;
++ }
++}
++
++static
++int _check_mtime(GeoIP* gi)
++{
++ struct stat buf;
++
++ if (gi->flags & GEOIP_CHECK_CACHE)
++ {
++ if (fstat(fileno(gi->GeoIPDatabase), &buf) != -1)
++ {
++ if (buf.st_mtime > gi->mtime)
++ {
++ /* GeoIP Database file updated */
++ if (gi->flags & GEOIP_MEMORY_CACHE)
++ {
++ /* reload database into memory cache */
++ if (realloc(gi->cache, buf.st_size) != NULL)
++ {
++ if (fread(gi->cache, sizeof(unsigned char), buf.st_size, gi->GeoIPDatabase) != (size_t) buf.st_size)
++ {
++ fprintf(stderr, "Error reading file %s\n", gi->file_path);
++ return -1;
++ }
++ gi->mtime = buf.st_mtime;
++ }
++ }
++ else
++ {
++ /* refresh filehandle */
++ fclose(gi->GeoIPDatabase);
++ if (gi->databaseSegments != NULL)
++ free(gi->databaseSegments);
++ gi->GeoIPDatabase = fopen(gi->file_path, "rb");
++ if (gi->GeoIPDatabase == NULL)
++ {
++ fprintf(stderr, "Error Opening file %s\n", gi->file_path);
++ return -1;
++ }
++ _setup_segments(gi);
++ }
++ }
++ }
++ }
++ return 0;
++}
++
++unsigned int _GeoIP_seek_record(GeoIP* gi, unsigned long ipnum)
++{
++ int depth;
++ unsigned int x;
++ unsigned char stack_buffer[2 * MAX_RECORD_LENGTH];
++ const unsigned char* buf = (gi->cache == NULL) ? stack_buffer : NULL;
++ unsigned int offset = 0;
++
++ const unsigned char* p;
++ int j;
++
++ _check_mtime(gi);
++ for (depth = 31; depth >= 0; depth--)
++ {
++ if (gi->cache == NULL && gi->index_cache == NULL)
++ {
++ /* read from disk */
++ fseek(gi->GeoIPDatabase, (long)gi->record_length * 2 * offset, SEEK_SET);
++ fread(stack_buffer, gi->record_length, 2, gi->GeoIPDatabase);
++ }
++ else if (gi->index_cache == NULL)
++ {
++ /* simply point to record in memory */
++ buf = gi->cache + (long)gi->record_length * 2 * offset;
++ }
++ else
++ {
++ buf = gi->index_cache + (long)gi->record_length * 2 * offset;
++ }
++
++ if (ipnum & (1 << depth))
++ {
++ /* Take the right-hand branch */
++ if (gi->record_length == 3)
++ {
++ /* Most common case is completely unrolled and uses constants. */
++ x = (buf[3 * 1 + 0] << (0 * 8))
++ + (buf[3 * 1 + 1] << (1 * 8))
++ + (buf[3 * 1 + 2] << (2 * 8));
++
++ }
++ else
++ {
++ /* General case */
++ j = gi->record_length;
++ p = &buf[2 * j];
++ x = 0;
++ do
++ {
++ x <<= 8;
++ x += *(--p);
++ }
++ while (--j);
++ }
++
++ }
++ else
++ {
++ /* Take the left-hand branch */
++ if (gi->record_length == 3)
++ {
++ /* Most common case is completely unrolled and uses constants. */
++ x = (buf[3 * 0 + 0] << (0 * 8))
++ + (buf[3 * 0 + 1] << (1 * 8))
++ + (buf[3 * 0 + 2] << (2 * 8));
++ }
++ else
++ {
++ /* General case */
++ j = gi->record_length;
++ p = &buf[1 * j];
++ x = 0;
++ do
++ {
++ x <<= 8;
++ x += *(--p);
++ }
++ while (--j);
++ }
++ }
++
++ if (x >= gi->databaseSegments[0])
++ {
++ return x;
++ }
++ offset = x;
++ }
++
++ /* shouldn't reach here */
++ fprintf(stderr, "Error Traversing Database for ipnum = %lu - Perhaps database is corrupt?\n", ipnum);
++ return 0;
++}
++
++unsigned long _GeoIP_addr_to_num(const char* addr)
++{
++ int i;
++ char tok[4];
++ int octet;
++ int j = 0, k = 0;
++ unsigned long ipnum = 0;
++ char c = 0;
++
++ for (i = 0; i < 4; i++)
++ {
++ for (;;)
++ {
++ c = addr[k++];
++ if (c == '.' || c == '\0')
++ {
++ tok[j] = '\0';
++ octet = atoi(tok);
++ if (octet > 255)
++ return 0;
++ ipnum += (octet << ((3 - i) * 8));
++ j = 0;
++ break;
++ }
++ else if (c >= '0' && c <= '9')
++ {
++ if (j > 2)
++ {
++ return 0;
++ }
++ tok[j++] = c;
++ }
++ else
++ {
++ return 0;
++ }
++ }
++ if (c == '\0' && i < 3)
++ {
++ return 0;
++ }
++ }
++ return ipnum;
++}
++
++GeoIP* GeoIP_open_type(int type, int flags)
++{
++ GeoIP* gi;
++ const char* filePath;
++ if (type < 0 || type >= NUM_DB_TYPES)
++ {
++ printf("Invalid database type %d\n", type);
++ return NULL;
++ }
++ _GeoIP_setup_dbfilename();
++ filePath = GeoIPDBFileName[type];
++ if (filePath == NULL)
++ {
++ printf("Invalid database type %d\n", type);
++ return NULL;
++ }
++ gi = GeoIP_open(filePath, flags);
++ return gi;
++}
++
++GeoIP* GeoIP_new(int flags)
++{
++ GeoIP* gi;
++ _GeoIP_setup_dbfilename();
++ gi = GeoIP_open(GeoIPDBFileName[GEOIP_COUNTRY_EDITION], flags);
++ return gi;
++}
++
++GeoIP* GeoIP_open(const char* filename, int flags)
++{
++ struct stat buf;
++#ifdef _WIN32
++ WSADATA wsa;
++ if (WSAStartup(MAKEWORD(1, 1), &wsa) != 0)
++ return NULL;
++#endif
++ {
++ GeoIP* gi = (GeoIP*)malloc(sizeof(GeoIP));
++ if (gi == NULL)
++ return NULL;
++ gi->file_path = malloc(sizeof(char) * (strlen(filename) + 1));
++ if (gi->file_path == NULL)
++ return NULL;
++ strcpy(gi->file_path, filename);
++ gi->GeoIPDatabase = fopen(filename, "rb");
++ if (gi->GeoIPDatabase == NULL)
++ {
++ fprintf(stderr, "Error Opening file %s\n", filename);
++ free(gi->file_path);
++ free(gi);
++ return NULL;
++ }
++ else
++ {
++ if (flags & GEOIP_MEMORY_CACHE)
++ {
++ if (fstat(fileno(gi->GeoIPDatabase), &buf) == -1)
++ {
++ fprintf(stderr, "Error stating file %s\n", filename);
++ free(gi->file_path);
++ free(gi);
++ return NULL;
++ }
++ gi->mtime = buf.st_mtime;
++ gi->cache = (unsigned char*) malloc(sizeof(unsigned char) * buf.st_size);
++ if (gi->cache != NULL)
++ {
++ if (fread(gi->cache, sizeof(unsigned char), buf.st_size, gi->GeoIPDatabase) != (size_t) buf.st_size)
++ {
++ fprintf(stderr, "Error reading file %s\n", filename);
++ free(gi->cache);
++ free(gi);
++ return NULL;
++ }
++ }
++ }
++ else
++ {
++ if (flags & GEOIP_CHECK_CACHE)
++ {
++ if (fstat(fileno(gi->GeoIPDatabase), &buf) == -1)
++ {
++ fprintf(stderr, "Error stating file %s\n", filename);
++ free(gi);
++ return NULL;
++ }
++ gi->mtime = buf.st_mtime;
++ }
++ gi->cache = NULL;
++ }
++ gi->flags = flags;
++ _setup_segments(gi);
++ if (flags & GEOIP_INDEX_CACHE)
++ {
++ gi->index_cache = (unsigned char*) malloc(sizeof(unsigned char) * ((gi->databaseSegments[0] * (long)gi->record_length * 2)));
++ if (gi->index_cache != NULL)
++ {
++ fseek(gi->GeoIPDatabase, 0, SEEK_SET);
++ if (fread(gi->index_cache, sizeof(unsigned char), gi->databaseSegments[0] * (long)gi->record_length * 2, gi->GeoIPDatabase) != (size_t)(gi->databaseSegments[0] * (long)gi->record_length * 2))
++ {
++ fprintf(stderr, "Error reading file %s\n", filename);
++ free(gi->index_cache);
++ free(gi);
++ return NULL;
++ }
++ }
++ }
++ else
++ {
++ gi->index_cache = NULL;
++ }
++ return gi;
++ }
++ }
++}
++
++void GeoIP_delete(GeoIP* gi)
++{
++ if (gi->GeoIPDatabase != NULL)
++ fclose(gi->GeoIPDatabase);
++ if (gi->cache != NULL)
++ free(gi->cache);
++ if (gi->index_cache != NULL)
++ free(gi->index_cache);
++ if (gi->file_path != NULL)
++ free(gi->file_path);
++ if (gi->databaseSegments != NULL)
++ free(gi->databaseSegments);
++ free(gi);
++}
++
++const char* GeoIP_country_code_by_name(GeoIP* gi, const char* name)
++{
++ int country_id;
++ country_id = GeoIP_id_by_name(gi, name);
++ return (country_id > 0) ? GeoIP_country_code[country_id] : NULL;
++}
++
++const char* GeoIP_country_code3_by_name(GeoIP* gi, const char* name)
++{
++ int country_id;
++ country_id = GeoIP_id_by_name(gi, name);
++ return (country_id > 0) ? GeoIP_country_code3[country_id] : NULL;
++}
++
++const char* GeoIP_country_name_by_name(GeoIP* gi, const char* name)
++{
++ int country_id;
++ country_id = GeoIP_id_by_name(gi, name);
++ return (country_id > 0) ? GeoIP_country_name[country_id] : NULL;
++}
++
++unsigned long _GeoIP_lookupaddress(const char* host)
++{
++ unsigned long addr = inet_addr(host);
++ struct hostent phe2;
++ struct hostent* phe = &phe2;
++ char* buf = NULL;
++ int buflength = 16384;
++ int herr = 0;
++ int result = 0;
++#ifdef HAVE_GETHOSTBYNAME_R
++ buf = malloc(buflength);
++#endif
++ if (addr == INADDR_NONE)
++ {
++#ifdef HAVE_GETHOSTBYNAME_R
++ while (1)
++ {
++ /* we use gethostbyname_r here because it is thread-safe and gethostbyname is not */
++#ifdef GETHOSTBYNAME_R_RETURNS_INT
++ result = gethostbyname_r(host, &phe2, buf, buflength, &phe, &herr);
++#else
++ phe = gethostbyname_r(host, &phe2, buf, buflength, &herr);
++#endif
++ if (herr != ERANGE)
++ break;
++ if (result == 0)
++ break;
++ /* double the buffer if the buffer is too small */
++ buflength = buflength * 2;
++ buf = realloc(buf, buflength);
++ }
++#endif
++#ifndef HAVE_GETHOSTBYNAME_R
++ /* Some systems do not support gethostbyname_r, such as Mac OS X */
++ phe = gethostbyname(host);
++#endif
++ if (!phe || result != 0)
++ {
++ free(buf);
++ return 0;
++ }
++ addr = *((unsigned long*) phe->h_addr_list[0]);
++ }
++#ifdef HAVE_GETHOSTBYNAME_R
++ free(buf);
++#endif
++ return ntohl(addr);
++}
++
++int GeoIP_id_by_name(GeoIP* gi, const char* name)
++{
++ unsigned long ipnum;
++ int ret;
++ if (name == NULL)
++ {
++ return 0;
++ }
++ if (gi->databaseType != GEOIP_COUNTRY_EDITION && gi->databaseType != GEOIP_PROXY_EDITION && gi->databaseType != GEOIP_NETSPEED_EDITION)
++ {
++ printf("Invalid database type %s, expected %s\n", GeoIPDBDescription[(int)gi->databaseType], GeoIPDBDescription[GEOIP_COUNTRY_EDITION]);
++ return 0;
++ }
++ if (!(ipnum = _GeoIP_lookupaddress(name)))
++ return 0;
++ ret = _GeoIP_seek_record(gi, ipnum) - COUNTRY_BEGIN;
++ return ret;
++
++}
++
++const char* GeoIP_country_code_by_addr(GeoIP* gi, const char* addr)
++{
++ int country_id;
++ country_id = GeoIP_id_by_addr(gi, addr);
++ return (country_id > 0) ? GeoIP_country_code[country_id] : NULL;
++}
++
++const char* GeoIP_country_code3_by_addr(GeoIP* gi, const char* addr)
++{
++ int country_id;
++ country_id = GeoIP_id_by_addr(gi, addr);
++ return (country_id > 0) ? GeoIP_country_code3[country_id] : NULL;
++ return GeoIP_country_code3[country_id];
++}
++
++const char* GeoIP_country_name_by_addr(GeoIP* gi, const char* addr)
++{
++ int country_id;
++ country_id = GeoIP_id_by_addr(gi, addr);
++ return (country_id > 0) ? GeoIP_country_name[country_id] : NULL;
++ return GeoIP_country_name[country_id];
++}
++
++const char* GeoIP_country_name_by_ipnum(GeoIP* gi, unsigned long ipnum)
++{
++ int country_id;
++ country_id = GeoIP_id_by_ipnum(gi, ipnum);
++ return (country_id > 0) ? GeoIP_country_name[country_id] : NULL;
++}
++
++const char* GeoIP_country_code_by_ipnum(GeoIP* gi, unsigned long ipnum)
++{
++ int country_id;
++ country_id = GeoIP_id_by_ipnum(gi, ipnum);
++ return (country_id > 0) ? GeoIP_country_code[country_id] : NULL;
++}
++
++const char* GeoIP_country_code3_by_ipnum(GeoIP* gi, unsigned long ipnum)
++{
++ int country_id;
++ country_id = GeoIP_id_by_ipnum(gi, ipnum);
++ return (country_id > 0) ? GeoIP_country_code3[country_id] : NULL;
++}
++
++int GeoIP_country_id_by_addr(GeoIP* gi, const char* addr)
++{
++ return GeoIP_id_by_addr(gi, addr);
++}
++
++int GeoIP_country_id_by_name(GeoIP* gi, const char* host)
++{
++ return GeoIP_id_by_name(gi, host);
++}
++
++int GeoIP_id_by_addr(GeoIP* gi, const char* addr)
++{
++ unsigned long ipnum;
++ int ret;
++ if (addr == NULL)
++ {
++ return 0;
++ }
++ if (gi->databaseType != GEOIP_COUNTRY_EDITION &&
++ gi->databaseType != GEOIP_PROXY_EDITION &&
++ gi->databaseType != GEOIP_NETSPEED_EDITION)
++ {
++ printf("Invalid database type %s, expected %s\n",
++ GeoIPDBDescription[(int)gi->databaseType],
++ GeoIPDBDescription[GEOIP_COUNTRY_EDITION]);
++ return 0;
++ }
++ ipnum = _GeoIP_addr_to_num(addr);
++ ret = _GeoIP_seek_record(gi, ipnum) - COUNTRY_BEGIN;
++ return ret;
++}
++
++int GeoIP_id_by_ipnum(GeoIP* gi, unsigned long ipnum)
++{
++ int ret;
++ if (ipnum == 0)
++ {
++ return 0;
++ }
++ if (gi->databaseType != GEOIP_COUNTRY_EDITION &&
++ gi->databaseType != GEOIP_PROXY_EDITION &&
++ gi->databaseType != GEOIP_NETSPEED_EDITION)
++ {
++ printf("Invalid database type %s, expected %s\n",
++ GeoIPDBDescription[(int)gi->databaseType],
++ GeoIPDBDescription[GEOIP_COUNTRY_EDITION]);
++ return 0;
++ }
++ ret = _GeoIP_seek_record(gi, ipnum) - COUNTRY_BEGIN;
++ return ret;
++}
++
++char* GeoIP_database_info(GeoIP* gi)
++{
++ int i;
++ unsigned char buf[3];
++ char* retval;
++ int hasStructureInfo = 0;
++
++ if (gi == NULL)
++ return NULL;
++
++ _check_mtime(gi);
++ fseek(gi->GeoIPDatabase, -3l, SEEK_END);
++
++ /* first get past the database structure information */
++ for (i = 0; i < STRUCTURE_INFO_MAX_SIZE; i++)
++ {
++ fread(buf, 1, 3, gi->GeoIPDatabase);
++ if (buf[0] == 255 && buf[1] == 255 && buf[2] == 255)
++ {
++ hasStructureInfo = 1;
++ break;
++ }
++ fseek(gi->GeoIPDatabase, -4l, SEEK_CUR);
++ }
++ if (hasStructureInfo == 1)
++ {
++ fseek(gi->GeoIPDatabase, -3l, SEEK_CUR);
++ }
++ else
++ {
++ /* no structure info, must be pre Sep 2002 database, go back to end */
++ fseek(gi->GeoIPDatabase, -3l, SEEK_END);
++ }
++
++ for (i = 0; i < DATABASE_INFO_MAX_SIZE; i++)
++ {
++ fread(buf, 1, 3, gi->GeoIPDatabase);
++ if (buf[0] == 0 && buf[1] == 0 && buf[2] == 0)
++ {
++ retval = malloc(sizeof(char) * (i + 1));
++ if (retval == NULL)
++ {
++ return NULL;
++ }
++ fread(retval, 1, i, gi->GeoIPDatabase);
++ retval[i] = '\0';
++ return retval;
++ }
++ fseek(gi->GeoIPDatabase, -4l, SEEK_CUR);
++ }
++ return NULL;
++}
++
++/* GeoIP Region Edition functions */
++
++void GeoIP_assign_region_by_inetaddr(GeoIP* gi, unsigned long inetaddr, GeoIPRegion* region)
++{
++ unsigned int seek_region;
++
++ /* This also writes in the terminating NULs (if you decide to
++ * keep them) and clear any fields that are not set. */
++ memset(region, 0, sizeof(GeoIPRegion));
++
++ seek_region = _GeoIP_seek_record(gi, ntohl(inetaddr));
++
++ if (gi->databaseType == GEOIP_REGION_EDITION_REV0)
++ {
++ /* Region Edition, pre June 2003 */
++ seek_region -= STATE_BEGIN_REV0;
++ if (seek_region >= 1000)
++ {
++ region->country_code[0] = 'U';
++ region->country_code[1] = 'S';
++ region->region[0] = (char)((seek_region - 1000) / 26 + 65);
++ region->region[1] = (char)((seek_region - 1000) % 26 + 65);
++ }
++ else
++ {
++ memcpy(region->country_code, GeoIP_country_code[seek_region], 2);
++ }
++ }
++ else if (gi->databaseType == GEOIP_REGION_EDITION_REV1)
++ {
++ /* Region Edition, post June 2003 */
++ seek_region -= STATE_BEGIN_REV1;
++ if (seek_region < US_OFFSET)
++ {
++ /* Unknown */
++ /* we don't need to do anything here b/c we memset region to 0 */
++ }
++ else if (seek_region < CANADA_OFFSET)
++ {
++ /* USA State */
++ region->country_code[0] = 'U';
++ region->country_code[1] = 'S';
++ region->region[0] = (char)((seek_region - US_OFFSET) / 26 + 65);
++ region->region[1] = (char)((seek_region - US_OFFSET) % 26 + 65);
++ }
++ else if (seek_region < WORLD_OFFSET)
++ {
++ /* Canada Province */
++ region->country_code[0] = 'C';
++ region->country_code[1] = 'A';
++ region->region[0] = (char)((seek_region - CANADA_OFFSET) / 26 + 65);
++ region->region[1] = (char)((seek_region - CANADA_OFFSET) % 26 + 65);
++ }
++ else
++ {
++ /* Not US or Canada */
++ memcpy(region->country_code, GeoIP_country_code[(seek_region - WORLD_OFFSET) / FIPS_RANGE], 2);
++ }
++ }
++}
++
++static
++GeoIPRegion* _get_region(GeoIP* gi, unsigned long ipnum)
++{
++ GeoIPRegion* region;
++
++ region = malloc(sizeof(GeoIPRegion));
++ if (region)
++ {
++ GeoIP_assign_region_by_inetaddr(gi, htonl(ipnum), region);
++ }
++ return region;
++}
++
++GeoIPRegion* GeoIP_region_by_addr(GeoIP* gi, const char* addr)
++{
++ unsigned long ipnum;
++ if (addr == NULL)
++ {
++ return 0;
++ }
++ if (gi->databaseType != GEOIP_REGION_EDITION_REV0 &&
++ gi->databaseType != GEOIP_REGION_EDITION_REV1)
++ {
++ printf("Invalid database type %s, expected %s\n", GeoIPDBDescription[(int)gi->databaseType], GeoIPDBDescription[GEOIP_REGION_EDITION_REV1]);
++ return 0;
++ }
++ ipnum = _GeoIP_addr_to_num(addr);
++ return _get_region(gi, ipnum);
++}
++
++GeoIPRegion* GeoIP_region_by_name(GeoIP* gi, const char* name)
++{
++ unsigned long ipnum;
++ if (name == NULL)
++ {
++ return 0;
++ }
++ if (gi->databaseType != GEOIP_REGION_EDITION_REV0 &&
++ gi->databaseType != GEOIP_REGION_EDITION_REV1)
++ {
++ printf("Invalid database type %s, expected %s\n", GeoIPDBDescription[(int)gi->databaseType], GeoIPDBDescription[GEOIP_REGION_EDITION_REV1]);
++ return 0;
++ }
++ if (!(ipnum = _GeoIP_lookupaddress(name)))
++ return 0;
++ return _get_region(gi, ipnum);
++}
++
++GeoIPRegion* GeoIP_region_by_ipnum(GeoIP* gi, unsigned long ipnum)
++{
++ if (gi->databaseType != GEOIP_REGION_EDITION_REV0 &&
++ gi->databaseType != GEOIP_REGION_EDITION_REV1)
++ {
++ printf("Invalid database type %s, expected %s\n", GeoIPDBDescription[(int)gi->databaseType], GeoIPDBDescription[GEOIP_REGION_EDITION_REV1]);
++ return 0;
++ }
++ return _get_region(gi, ipnum);
++}
++
++void GeoIPRegion_delete(GeoIPRegion* gir)
++{
++ free(gir);
++}
++
++/* GeoIP Organization, ISP and AS Number Edition private method */
++static
++char* _get_name(GeoIP* gi, unsigned long ipnum)
++{
++ int seek_org;
++ char buf[MAX_ORG_RECORD_LENGTH];
++ char* org_buf, * buf_pointer;
++ int record_pointer;
++
++ if (gi->databaseType != GEOIP_ORG_EDITION &&
++ gi->databaseType != GEOIP_ISP_EDITION &&
++ gi->databaseType != GEOIP_ASNUM_EDITION)
++ {
++ printf("Invalid database type %s, expected %s\n", GeoIPDBDescription[(int)gi->databaseType], GeoIPDBDescription[GEOIP_ORG_EDITION]);
++ return 0;
++ }
++
++ seek_org = _GeoIP_seek_record(gi, ipnum);
++ if (seek_org == (int) gi->databaseSegments[0])
++ return NULL;
++
++ record_pointer = seek_org + (2 * gi->record_length - 1) * gi->databaseSegments[0];
++
++ if (gi->cache == NULL)
++ {
++ fseek(gi->GeoIPDatabase, record_pointer, SEEK_SET);
++ fread(buf, sizeof(char), MAX_ORG_RECORD_LENGTH, gi->GeoIPDatabase);
++ org_buf = malloc(sizeof(char) * (strlen(buf) + 1));
++ strcpy(org_buf, buf);
++ }
++ else
++ {
++ buf_pointer = (char*)gi->cache + (long)record_pointer;
++ org_buf = malloc(sizeof(char) * (strlen(buf_pointer) + 1));
++ strcpy(org_buf, buf_pointer);
++ }
++ return org_buf;
++}
++
++char* GeoIP_name_by_ipnum(GeoIP* gi, unsigned long ipnum)
++{
++ return _get_name(gi, ipnum);
++}
++
++char* GeoIP_name_by_addr(GeoIP* gi, const char* addr)
++{
++ unsigned long ipnum;
++ if (addr == NULL)
++ {
++ return 0;
++ }
++ ipnum = _GeoIP_addr_to_num(addr);
++ return _get_name(gi, ipnum);
++}
++
++char* GeoIP_name_by_name(GeoIP* gi, const char* name)
++{
++ unsigned long ipnum;
++ if (name == NULL)
++ {
++ return 0;
++ }
++ if (!(ipnum = _GeoIP_lookupaddress(name)))
++ return 0;
++ return _get_name(gi, ipnum);
++}
++
++char* GeoIP_org_by_ipnum(GeoIP* gi, unsigned long ipnum)
++{
++ return GeoIP_name_by_ipnum(gi, ipnum);
++}
++
++char* GeoIP_org_by_addr(GeoIP* gi, const char* addr)
++{
++ return GeoIP_name_by_addr(gi, addr);
++}
++
++char* GeoIP_org_by_name(GeoIP* gi, const char* name)
++{
++ return GeoIP_name_by_name(gi, name);
++}
++
++unsigned char GeoIP_database_edition(GeoIP* gi)
++{
++ return gi->databaseType;
++}
+--- ./plugins/infowidget/CMakeLists.txt.orig 2021-08-04 21:50:44.000000000 -0500
++++ ./plugins/infowidget/CMakeLists.txt 2021-08-15 00:20:25.218503074 -0500
+@@ -1,23 +1,30 @@
+-# Add an option to compile & link against system GeoIP
+-option(BUILD_WITH_GEOIP
++# Add an option to compile & link against system GeoIP (off by default)
++option(WITH_SYSTEM_GEOIP
+ "Link InfoWidget plugin against system GeoIP library and use system-wide default GeoIP Country database"
+- ON)
++ OFF)
+
+-if (BUILD_WITH_GEOIP)
++if (WITH_SYSTEM_GEOIP)
+ find_path(GEOIP_INCLUDE_DIR NAMES GeoIP.h PATHS / ${INCLUDE_INSTALL_DIR}/)
+- find_library(GEOIP_LIBRARY NAMES GeoIP PATHS ${LIB_INSTALL_DIR})
++ find_library(GEOIP_LIBRARY NAMES GeoIP PATHS ${KDE4_LIB_DIR} ${LIB_INSTALL_DIR})
+
+ if (NOT GEOIP_INCLUDE_DIR OR NOT GEOIP_LIBRARY)
+- set(BUILD_WITH_GEOIP OFF CACHE BOOL
++ set(WITH_SYSTEM_GEOIP OFF CACHE BOOL
+ "GeoIP development files could not be found on this system. Forcing this option to OFF"
+ FORCE)
+- message(WARNING "GeoIP library development files could not be found on your system.")
+- else()
+- message(STATUS " Linking InfoWidget against system GeoIP library")
+- include_directories(GEOIP_INCLUDE_DIR)
+- set(geoip_link ${GEOIP_LIBRARY})
+- endif()
+-endif(BUILD_WITH_GEOIP)
++ message(SEND_ERROR
++ "GeoIP library development files could not be found on your system. Embedding a local copy of GeoIP instead")
++ endif(NOT GEOIP_INCLUDE_DIR OR NOT GEOIP_LIBRARY)
++endif(WITH_SYSTEM_GEOIP)
++
++if (WITH_SYSTEM_GEOIP)
++ message(STATUS " Linking InfoWidget against system GeoIP library")
++ add_definitions( -DUSE_SYSTEM_GEOIP )
++ include_directories(GEOIP_INCLUDE_DIR)
++ set(geoip_link ${GEOIP_LIBRARY})
++else(WITH_SYSTEM_GEOIP)
++ message(STATUS " Compiling GeoIP support directly into InfoWidget plugin")
++ set(geoip_src GeoIP.c)
++endif(WITH_SYSTEM_GEOIP)
+
+ add_library(ktorrent_infowidget MODULE)
+
+@@ -36,19 +43,14 @@
+ trackerview.cpp
+ trackermodel.cpp
+ addtrackersdialog.cpp
++ ${geoip_src}
++ geoipmanager.cpp
+ flagdb.cpp
+ iwfiletreemodel.cpp
+ iwfilelistmodel.cpp
+ webseedstab.cpp
+ webseedsmodel.cpp)
+
+-if (BUILD_WITH_GEOIP)
+- target_sources(ktorrent_infowidget PRIVATE geoipmanager.cpp)
+- add_definitions(-DBUILD_WITH_GEOIP=1)
+-else()
+- add_definitions(-DBUILD_WITH_GEOIP=0)
+-endif()
+-
+ ki18n_wrap_ui(ktorrent_infowidget iwprefpage.ui statustab.ui chunkdownloadview.ui trackerview.ui webseedstab.ui)
+ kconfig_add_kcfg_files(ktorrent_infowidget infowidgetpluginsettings.kcfgc)
+
+--- ./plugins/infowidget/geoipmanager.h.orig 2021-08-04 21:50:44.000000000 -0500
++++ ./plugins/infowidget/geoipmanager.h 2021-08-15 00:18:01.330498947 -0500
+@@ -7,7 +7,21 @@
+ #define KT_GEOIPMANAGER_H
+
+ #include <QObject>
++#include <QThread>
++#include <QUrl>
++
++#ifdef USE_SYSTEM_GEOIP
+ #include <GeoIP.h>
++#else
++#include "GeoIP.h"
++#endif
++
++class KJob;
++
++namespace bt
++{
++class DecompressThread;
++}
+
+ namespace kt
+ {
+@@ -42,8 +56,28 @@
+ */
+ QString countryCode(int country_id);
+
++ /// Get the database URL
++ static QUrl geoIPUrl()
++ {
++ return geoip_url;
++ }
++
++ /// Set the database URL
++ static void setGeoIPUrl(const QUrl &url);
++
++ /// Download the database
++ void downloadDataBase();
++
++private Q_SLOTS:
++ void databaseDownloadFinished(KJob *job);
++ void decompressFinished();
++
+ private:
+ GeoIP *geo_ip;
++ QString geoip_data_file;
++ QString download_destination;
++ bt::DecompressThread *decompress_thread;
++ static QUrl geoip_url;
+ };
+
+ }
+--- ./plugins/infowidget/peerviewmodel.cpp.orig 2021-08-04 21:50:44.000000000 -0500
++++ ./plugins/infowidget/peerviewmodel.cpp 2021-08-15 00:18:01.330498947 -0500
+@@ -13,13 +13,10 @@
+ #include <KLocalizedString>
+
+ #include "flagdb.h"
++#include "geoipmanager.h"
+ #include <interfaces/torrentinterface.h>
+ #include <util/functions.h>
+
+-#if BUILD_WITH_GEOIP
+-#include "geoipmanager.h"
+-#endif
+-
+ using namespace bt;
+
+ namespace kt
+@@ -28,12 +25,7 @@
+ static bool icons_loaded = false;
+ static FlagDB flagDB(22, 18);
+
+-PeerViewModel::Item::Item(bt::PeerInterface *peer
+-#if BUILD_WITH_GEOIP
+- ,
+- GeoIPManager *geo_ip
+-#endif
+- )
++PeerViewModel::Item::Item(bt::PeerInterface *peer, GeoIPManager *geo_ip)
+ : peer(peer)
+ {
+ stats = peer->getStats();
+@@ -47,13 +39,13 @@
+ flagDB.addFlagSource(path + QStringLiteral("/%1/flag.png"));
+ }
+
+-#if BUILD_WITH_GEOIP
+- int country_id = geo_ip->findCountry(stats.ip_address);
+- if (country_id > 0) {
+- country = geo_ip->countryName(country_id);
+- flag = flagDB.getFlag(geo_ip->countryCode(country_id));
++ if (geo_ip) {
++ int country_id = geo_ip->findCountry(stats.ip_address);
++ if (country_id > 0) {
++ country = geo_ip->countryName(country_id);
++ flag = flagDB.getFlag(geo_ip->countryCode(country_id));
++ }
+ }
+-#endif
+ }
+
+ bool PeerViewModel::Item::changed() const
+@@ -191,10 +183,9 @@
+
+ PeerViewModel::PeerViewModel(QObject *parent)
+ : QAbstractTableModel(parent)
++ , geo_ip(nullptr)
+ {
+-#if BUILD_WITH_GEOIP
+ geo_ip = new GeoIPManager(this);
+-#endif
+ }
+
+ PeerViewModel::~PeerViewModel()
+@@ -204,12 +195,7 @@
+
+ void PeerViewModel::peerAdded(bt::PeerInterface *peer)
+ {
+- items.append(new Item(peer
+-#if BUILD_WITH_GEOIP
+- ,
+- geo_ip
+-#endif
+- ));
++ items.append(new Item(peer, geo_ip));
+ insertRow(items.count() - 1);
+ }
+
+--- ./plugins/infowidget/infowidgetplugin.cpp.orig 2021-08-04 21:50:44.000000000 -0500
++++ ./plugins/infowidget/infowidgetplugin.cpp 2021-08-15 00:18:01.330498947 -0500
+@@ -18,6 +18,7 @@
+
+ #include "chunkdownloadview.h"
+ #include "fileview.h"
++#include "geoipmanager.h"
+ #include "infowidgetpluginsettings.h"
+ #include "iwprefpage.h"
+ #include "monitor.h"
+--- ./plugins/infowidget/peerviewmodel.h.orig 2021-08-04 21:50:44.000000000 -0500
++++ ./plugins/infowidget/peerviewmodel.h 2021-08-15 00:18:01.331498947 -0500
+@@ -61,12 +61,7 @@
+ QString country;
+ QIcon flag;
+
+- Item(bt::PeerInterface *peer
+-#if BUILD_WITH_GEOIP
+- ,
+- GeoIPManager *geo_ip
+-#endif
+- );
++ Item(bt::PeerInterface *peer, GeoIPManager *geo_ip);
+
+ bool changed() const;
+ QVariant data(int col) const;
+@@ -76,9 +71,7 @@
+
+ private:
+ QVector<Item *> items;
+-#if BUILD_WITH_GEOIP
+- GeoIPManager *geo_ip = nullptr;
+-#endif
++ GeoIPManager *geo_ip;
+ };
+
+ }
diff --git a/source/kde/kde/patch/ktorrent/ktorrent.use.package.geoip.database.diff b/source/kde/kde/patch/ktorrent/ktorrent.use.package.geoip.database.diff
index 3b2407ac..8b45be43 100644
--- a/source/kde/kde/patch/ktorrent/ktorrent.use.package.geoip.database.diff
+++ b/source/kde/kde/patch/ktorrent/ktorrent.use.package.geoip.database.diff
@@ -1,6 +1,6 @@
---- ./plugins/infowidget/geoipmanager.cpp.orig 2021-06-05 16:25:43.000000000 -0500
-+++ ./plugins/infowidget/geoipmanager.cpp 2021-06-10 15:57:49.201091341 -0500
-@@ -45,7 +45,7 @@
+--- ./plugins/infowidget/geoipmanager.cpp.orig 2021-08-15 00:22:42.578507015 -0500
++++ ./plugins/infowidget/geoipmanager.cpp 2021-08-15 00:26:18.456513207 -0500
+@@ -30,7 +30,7 @@
#ifdef USE_SYSTEM_GEOIP
geo_ip = GeoIP_open_type(GEOIP_COUNTRY_EDITION, GEOIP_STANDARD);
#else
@@ -9,7 +9,7 @@
if (geoip_data_file.isEmpty())
geoip_data_file = QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("GeoIP.dat"));
-@@ -56,11 +56,6 @@
+@@ -41,11 +41,6 @@
if (geo_ip) {
QFileInfo fi(geoip_data_file);
QDateTime now = QDateTime::currentDateTime();
@@ -21,12 +21,10 @@
}
}
#endif
-@@ -104,14 +99,6 @@
+@@ -89,12 +84,6 @@
void GeoIPManager::downloadDataBase()
{
-- Out(SYS_INW | LOG_IMPORTANT) << "The download GeoIP database loading is defunct, skipping download" << endl;
-- return;
-#ifndef USE_SYSTEM_GEOIP
- Out(SYS_INW | LOG_NOTICE) << "Downloading GeoIP database: " << geoip_url << endl;
- download_destination = kt::DataDir(CreateIfNotExists) + geoip_url.fileName();
diff --git a/source/kde/kde/patch/plasma-framework.patch b/source/kde/kde/patch/plasma-framework.patch
new file mode 100644
index 00000000..b10b4a5e
--- /dev/null
+++ b/source/kde/kde/patch/plasma-framework.patch
@@ -0,0 +1,2 @@
+# Fix icon sizing regression:
+cat $CWD/patch/plasma-framework/837bb6975f6a0661d211107823b7587808fc3d4e.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/kde/kde/patch/plasma-framework/837bb6975f6a0661d211107823b7587808fc3d4e.patch b/source/kde/kde/patch/plasma-framework/837bb6975f6a0661d211107823b7587808fc3d4e.patch
new file mode 100644
index 00000000..9c0e9046
--- /dev/null
+++ b/source/kde/kde/patch/plasma-framework/837bb6975f6a0661d211107823b7587808fc3d4e.patch
@@ -0,0 +1,44 @@
+From 837bb6975f6a0661d211107823b7587808fc3d4e Mon Sep 17 00:00:00 2001
+From: Nate Graham <nate@kde.org>
+Date: Sun, 15 Aug 2021 09:33:10 -0600
+Subject: [PATCH] Fix Plasma (non-Qt) icon scaling with integer scale factors
+
+An embarrassing error in 4edb830f53aac4833ece024df59441029b01fde6
+caused the function which returns an appropriate scale factor for icons
+to both take and return integer values rather than floating point
+values, preventing it from working properly with any scale factor other
+than an integer scale factor (e.g. 200%). This commit fixes that issue.
+---
+ src/declarativeimports/core/units.cpp | 2 +-
+ src/declarativeimports/core/units.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/declarativeimports/core/units.cpp b/src/declarativeimports/core/units.cpp
+index 6788ed952..fbcc6d888 100644
+--- a/src/declarativeimports/core/units.cpp
++++ b/src/declarativeimports/core/units.cpp
+@@ -174,7 +174,7 @@ int Units::roundToIconSize(int size)
+ }
+ }
+
+-int Units::bestIconScaleForDevicePixelRatio(const int ratio)
++qreal Units::bestIconScaleForDevicePixelRatio(const qreal ratio)
+ {
+ if (ratio < 1.5) {
+ return 1;
+diff --git a/src/declarativeimports/core/units.h b/src/declarativeimports/core/units.h
+index c19cf0dd8..855738e7d 100644
+--- a/src/declarativeimports/core/units.h
++++ b/src/declarativeimports/core/units.h
+@@ -271,7 +271,7 @@ private:
+ * Note that this function is only relevant when using Plasma scaling and
+ * when using Qt scaling, it always returns 1.
+ */
+- static int bestIconScaleForDevicePixelRatio(const int ratio);
++ static qreal bestIconScaleForDevicePixelRatio(const qreal ratio);
+
+ /**
+ * @return The dpi-adjusted size for a given icon size
+--
+GitLab
+
diff --git a/source/l/SDL2/SDL2.SlackBuild b/source/l/SDL2/SDL2.SlackBuild
index 99b87eb0..984c5880 100755
--- a/source/l/SDL2/SDL2.SlackBuild
+++ b/source/l/SDL2/SDL2.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=SDL2
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/atkmm/atkmm.SlackBuild b/source/l/atkmm/atkmm.SlackBuild
index db7365d6..fb955461 100755
--- a/source/l/atkmm/atkmm.SlackBuild
+++ b/source/l/atkmm/atkmm.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=atkmm
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/source/l/cryfs/041b5baea5a4efceff33df2f316646b47a1cd7c0.patch b/source/l/cryfs/041b5baea5a4efceff33df2f316646b47a1cd7c0.patch
new file mode 100644
index 00000000..22d8b344
--- /dev/null
+++ b/source/l/cryfs/041b5baea5a4efceff33df2f316646b47a1cd7c0.patch
@@ -0,0 +1,27 @@
+From 041b5baea5a4efceff33df2f316646b47a1cd7c0 Mon Sep 17 00:00:00 2001
+From: Sam James <11667869+thesamesam@users.noreply.github.com>
+Date: Sat, 14 Aug 2021 17:29:24 +0100
+Subject: [PATCH] src/fspp/fuse/Fuse.h: add <memory.h> include for
+ std::shared_ptr (#395)
+
+Needed to fix build with Boost 1.77 (some indirect inclusion
+got lost).
+
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ src/fspp/fuse/Fuse.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/fspp/fuse/Fuse.h b/src/fspp/fuse/Fuse.h
+index 2dd3c2d4d..3841e38a4 100644
+--- a/src/fspp/fuse/Fuse.h
++++ b/src/fspp/fuse/Fuse.h
+@@ -11,6 +11,7 @@
+ #include <boost/optional.hpp>
+ #include <cpp-utils/macros.h>
+ #include <atomic>
++#include <memory>
+ #include "stat_compatibility.h"
+ #include <fspp/fs_interface/Context.h>
+
+
diff --git a/source/l/cryfs/27587ea1acec5f939a31217f1c43953378f18821.patch b/source/l/cryfs/27587ea1acec5f939a31217f1c43953378f18821.patch
new file mode 100644
index 00000000..0d739b07
--- /dev/null
+++ b/source/l/cryfs/27587ea1acec5f939a31217f1c43953378f18821.patch
@@ -0,0 +1,297 @@
+From 27587ea1acec5f939a31217f1c43953378f18821 Mon Sep 17 00:00:00 2001
+From: Sebastian Messmer <messmer@cryfs.org>
+Date: Sat, 8 May 2021 14:44:27 -0700
+Subject: [PATCH] Fixed an issue when compiling with GCC 11, see
+ https://github.com/cryfs/cryfs/issues/389
+
+---
+ ChangeLog.txt | 5 ++
+ .../onblocks/datanodestore/DataNodeView.h | 8 +--
+ .../filesystem/fsblobstore/utils/DirEntry.cpp | 66 +++++++++----------
+ src/cryfs/localstate/LocalStateMetadata.cpp | 24 +++----
+ src/cryfs/localstate/LocalStateMetadata.h | 10 +--
+ 5 files changed, 59 insertions(+), 54 deletions(-)
+
+diff --git a/ChangeLog.txt b/ChangeLog.txt
+index f9776eb93..9d7a6708c 100644
+--- a/ChangeLog.txt
++++ b/ChangeLog.txt
+@@ -1,3 +1,8 @@
++Version 0.10.4 (unreleased)
++--------------
++Fixed bugs:
++* Fixed an issue when compiling with GCC 11, see https://github.com/cryfs/cryfs/issues/389
++
+ Version 0.10.3
+ ---------------
+ Fixed bugs:
+diff --git a/src/blobstore/implementations/onblocks/datanodestore/DataNodeView.h b/src/blobstore/implementations/onblocks/datanodestore/DataNodeView.h
+index 256c28495..3799612e3 100644
+--- a/src/blobstore/implementations/onblocks/datanodestore/DataNodeView.h
++++ b/src/blobstore/implementations/onblocks/datanodestore/DataNodeView.h
+@@ -67,7 +67,7 @@ class DataNodeView final {
+
+ static DataNodeView create(blockstore::BlockStore *blockStore, const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, cpputils::Data data) {
+ ASSERT(data.size() <= layout.datasizeBytes(), "Data is too large for node");
+- cpputils::Data serialized = _serialize(layout, formatVersion, depth, size, std::move(data));
++ cpputils::Data serialized = serialize_(layout, formatVersion, depth, size, std::move(data));
+ ASSERT(serialized.size() == layout.blocksizeBytes(), "Wrong block size");
+ auto block = blockStore->create(serialized);
+ return DataNodeView(std::move(block));
+@@ -75,7 +75,7 @@ class DataNodeView final {
+
+ static DataNodeView initialize(cpputils::unique_ref<blockstore::Block> block, const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, cpputils::Data data) {
+ ASSERT(data.size() <= DataNodeLayout(block->size()).datasizeBytes(), "Data is too large for node");
+- cpputils::Data serialized = _serialize(layout, formatVersion, depth, size, std::move(data));
++ cpputils::Data serialized = serialize_(layout, formatVersion, depth, size, std::move(data));
+ ASSERT(serialized.size() == block->size(), "Block has wrong size");
+ block->write(serialized.data(), 0, serialized.size());
+ return DataNodeView(std::move(block));
+@@ -83,7 +83,7 @@ class DataNodeView final {
+
+ static DataNodeView overwrite(blockstore::BlockStore *blockStore, const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, const blockstore::BlockId &blockId, cpputils::Data data) {
+ ASSERT(data.size() <= layout.datasizeBytes(), "Data is too large for node");
+- cpputils::Data serialized = _serialize(layout, formatVersion, depth, size, std::move(data));
++ cpputils::Data serialized = serialize_(layout, formatVersion, depth, size, std::move(data));
+ auto block = blockStore->overwrite(blockId, std::move(serialized));
+ return DataNodeView(std::move(block));
+ }
+@@ -143,7 +143,7 @@ class DataNodeView final {
+ }
+
+ private:
+- static cpputils::Data _serialize(const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, cpputils::Data data) {
++ static cpputils::Data serialize_(const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, cpputils::Data data) {
+ cpputils::Data result(layout.blocksizeBytes());
+ cpputils::serialize<uint16_t>(result.dataOffset(layout.FORMAT_VERSION_OFFSET_BYTES), formatVersion);
+ cpputils::serialize<uint8_t>(result.dataOffset(layout.DEPTH_OFFSET_BYTES), depth);
+diff --git a/src/cryfs/filesystem/fsblobstore/utils/DirEntry.cpp b/src/cryfs/filesystem/fsblobstore/utils/DirEntry.cpp
+index 941148db9..70dd5a560 100644
+--- a/src/cryfs/filesystem/fsblobstore/utils/DirEntry.cpp
++++ b/src/cryfs/filesystem/fsblobstore/utils/DirEntry.cpp
+@@ -11,55 +11,55 @@ namespace cryfs {
+
+ namespace {
+ template<typename DataType>
+- size_t _serialize(void* dst, const DataType& obj) {
++ size_t serialize_(void* dst, const DataType& obj) {
+ cpputils::serialize<DataType>(dst, obj);
+ return sizeof(DataType);
+ }
+
+ template<typename DataType>
+- DataType _deserialize(const char** src) {
++ DataType deserialize_(const char** src) {
+ DataType result = cpputils::deserialize<DataType>(*src);
+ *src += sizeof(DataType);
+ return result;
+ }
+
+- constexpr size_t _serializedTimeValueSize() {
++ constexpr size_t serializedTimeValueSize_() {
+ return sizeof(uint64_t) + sizeof(uint32_t);
+ }
+
+- unsigned int _serializeTimeValue(uint8_t *dest, timespec value) {
++ unsigned int serializeTimeValue_(uint8_t *dest, timespec value) {
+ unsigned int offset = 0;
+- offset += _serialize<uint64_t>(dest + offset, value.tv_sec);
+- offset += _serialize<uint32_t>(dest + offset, value.tv_nsec);
+- ASSERT(offset == _serializedTimeValueSize(), "serialized to wrong size");
++ offset += serialize_<uint64_t>(dest + offset, value.tv_sec);
++ offset += serialize_<uint32_t>(dest + offset, value.tv_nsec);
++ ASSERT(offset == serializedTimeValueSize_(), "serialized to wrong size");
+ return offset;
+ }
+
+- timespec _deserializeTimeValue(const char **pos) {
++ timespec deserializeTimeValue_(const char **pos) {
+ timespec value{};
+- value.tv_sec = _deserialize<uint64_t>(pos);
+- value.tv_nsec = _deserialize<uint32_t>(pos);
++ value.tv_sec = deserialize_<uint64_t>(pos);
++ value.tv_nsec = deserialize_<uint32_t>(pos);
+ return value;
+ }
+
+- unsigned int _serializeString(uint8_t *dest, const string &value) {
++ unsigned int serializeString_(uint8_t *dest, const string &value) {
+ std::memcpy(dest, value.c_str(), value.size()+1);
+ return value.size() + 1;
+ }
+
+- string _deserializeString(const char **pos) {
++ string deserializeString_(const char **pos) {
+ size_t length = strlen(*pos);
+ string value(*pos, length);
+ *pos += length + 1;
+ return value;
+ }
+
+- unsigned int _serializeBlockId(uint8_t *dest, const BlockId &blockId) {
++ unsigned int serializeBlockId_(uint8_t *dest, const BlockId &blockId) {
+ blockId.ToBinary(dest);
+ return blockId.BINARY_LENGTH;
+ }
+
+- BlockId _deserializeBlockId(const char **pos) {
++ BlockId deserializeBlockId_(const char **pos) {
+ BlockId blockId = BlockId::FromBinary(*pos);
+ *pos += BlockId::BINARY_LENGTH;
+ return blockId;
+@@ -75,35 +75,35 @@ namespace cryfs {
+ _mode.hasDirFlag()) + ", " + std::to_string(_mode.hasSymlinkFlag()) + ", " + std::to_string(static_cast<uint8_t>(_type))
+ );
+ unsigned int offset = 0;
+- offset += _serialize<uint8_t>(dest + offset, static_cast<uint8_t>(_type));
+- offset += _serialize<uint32_t>(dest + offset, _mode.value());
+- offset += _serialize<uint32_t>(dest + offset, _uid.value());
+- offset += _serialize<uint32_t>(dest + offset, _gid.value());
+- offset += _serializeTimeValue(dest + offset, _lastAccessTime);
+- offset += _serializeTimeValue(dest + offset, _lastModificationTime);
+- offset += _serializeTimeValue(dest + offset, _lastMetadataChangeTime);
+- offset += _serializeString(dest + offset, _name);
+- offset += _serializeBlockId(dest + offset, _blockId);
++ offset += serialize_<uint8_t>(dest + offset, static_cast<uint8_t>(_type));
++ offset += serialize_<uint32_t>(dest + offset, _mode.value());
++ offset += serialize_<uint32_t>(dest + offset, _uid.value());
++ offset += serialize_<uint32_t>(dest + offset, _gid.value());
++ offset += serializeTimeValue_(dest + offset, _lastAccessTime);
++ offset += serializeTimeValue_(dest + offset, _lastModificationTime);
++ offset += serializeTimeValue_(dest + offset, _lastMetadataChangeTime);
++ offset += serializeString_(dest + offset, _name);
++ offset += serializeBlockId_(dest + offset, _blockId);
+ ASSERT(offset == serializedSize(), "Didn't write correct number of elements");
+ }
+
+ const char *DirEntry::deserializeAndAddToVector(const char *pos, vector<DirEntry> *result) {
+- fspp::Dir::EntryType type = static_cast<fspp::Dir::EntryType>(_deserialize<uint8_t>(&pos));
+- fspp::mode_t mode = fspp::mode_t(_deserialize<uint32_t>(&pos));
+- fspp::uid_t uid = fspp::uid_t(_deserialize<uint32_t>(&pos));
+- fspp::gid_t gid = fspp::gid_t(_deserialize<uint32_t>(&pos));
+- timespec lastAccessTime = _deserializeTimeValue(&pos);
+- timespec lastModificationTime = _deserializeTimeValue(&pos);
+- timespec lastMetadataChangeTime = _deserializeTimeValue(&pos);
+- string name = _deserializeString(&pos);
+- BlockId blockId = _deserializeBlockId(&pos);
++ fspp::Dir::EntryType type = static_cast<fspp::Dir::EntryType>(deserialize_<uint8_t>(&pos));
++ fspp::mode_t mode = fspp::mode_t(deserialize_<uint32_t>(&pos));
++ fspp::uid_t uid = fspp::uid_t(deserialize_<uint32_t>(&pos));
++ fspp::gid_t gid = fspp::gid_t(deserialize_<uint32_t>(&pos));
++ timespec lastAccessTime = deserializeTimeValue_(&pos);
++ timespec lastModificationTime = deserializeTimeValue_(&pos);
++ timespec lastMetadataChangeTime = deserializeTimeValue_(&pos);
++ string name = deserializeString_(&pos);
++ BlockId blockId = deserializeBlockId_(&pos);
+
+ result->emplace_back(type, name, blockId, mode, uid, gid, lastAccessTime, lastModificationTime, lastMetadataChangeTime);
+ return pos;
+ }
+
+ size_t DirEntry::serializedSize() const {
+- return 1 + sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint32_t) + 3*_serializedTimeValueSize() + (
++ return 1 + sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint32_t) + 3*serializedTimeValueSize_() + (
+ _name.size() + 1) + _blockId.BINARY_LENGTH;
+ }
+ }
+diff --git a/src/cryfs/localstate/LocalStateMetadata.cpp b/src/cryfs/localstate/LocalStateMetadata.cpp
+index 529a26129..dfa952a1a 100644
+--- a/src/cryfs/localstate/LocalStateMetadata.cpp
++++ b/src/cryfs/localstate/LocalStateMetadata.cpp
+@@ -30,10 +30,10 @@ LocalStateMetadata::LocalStateMetadata(uint32_t myClientId, Hash encryptionKeyHa
+
+ LocalStateMetadata LocalStateMetadata::loadOrGenerate(const bf::path &statePath, const Data& encryptionKey, bool allowReplacedFilesystem) {
+ auto metadataFile = statePath / "metadata";
+- auto loaded = _load(metadataFile);
++ auto loaded = load_(metadataFile);
+ if (loaded == none) {
+ // If it couldn't be loaded, generate a new client id.
+- return _generate(metadataFile, encryptionKey);
++ return generate_(metadataFile, encryptionKey);
+ }
+
+ if (!allowReplacedFilesystem && loaded->_encryptionKeyHash.digest != cpputils::hash::hash(encryptionKey, loaded->_encryptionKeyHash.salt).digest) {
+@@ -42,22 +42,22 @@ LocalStateMetadata LocalStateMetadata::loadOrGenerate(const bf::path &statePath,
+ return *loaded;
+ }
+
+-optional<LocalStateMetadata> LocalStateMetadata::_load(const bf::path &metadataFilePath) {
++optional<LocalStateMetadata> LocalStateMetadata::load_(const bf::path &metadataFilePath) {
+ ifstream file(metadataFilePath.string());
+ if (!file.good()) {
+ // State file doesn't exist
+ return none;
+ }
+- return _deserialize(file);
++ return deserialize_(file);
+ }
+
+-void LocalStateMetadata::_save(const bf::path &metadataFilePath) const {
++void LocalStateMetadata::save_(const bf::path &metadataFilePath) const {
+ ofstream file(metadataFilePath.string(), std::ios::trunc);
+- _serialize(file);
++ serialize_(file);
+ }
+
+ namespace {
+-uint32_t _generateClientId() {
++uint32_t generateClientId_() {
+ uint32_t result;
+ do {
+ result = cpputils::deserialize<uint32_t>(Random::PseudoRandom().getFixedSize<sizeof(uint32_t)>().data());
+@@ -82,8 +82,8 @@ optional<uint32_t> _tryLoadClientIdFromLegacyFile(const bf::path &metadataFilePa
+ #endif
+ }
+
+-LocalStateMetadata LocalStateMetadata::_generate(const bf::path &metadataFilePath, const Data& encryptionKey) {
+- uint32_t myClientId = _generateClientId();
++LocalStateMetadata LocalStateMetadata::generate_(const bf::path &metadataFilePath, const Data& encryptionKey) {
++ uint32_t myClientId = generateClientId_();
+ #ifndef CRYFS_NO_COMPATIBILITY
+ // In the old format, this was stored in a "myClientId" file. If that file exists, load it from there.
+ optional<uint32_t> legacy = _tryLoadClientIdFromLegacyFile(metadataFilePath);
+@@ -93,11 +93,11 @@ LocalStateMetadata LocalStateMetadata::_generate(const bf::path &metadataFilePat
+ #endif
+
+ LocalStateMetadata result(myClientId, cpputils::hash::hash(encryptionKey, cpputils::hash::generateSalt()));
+- result._save(metadataFilePath);
++ result.save_(metadataFilePath);
+ return result;
+ }
+
+-void LocalStateMetadata::_serialize(ostream& stream) const {
++void LocalStateMetadata::serialize_(ostream& stream) const {
+ ptree pt;
+ pt.put<uint32_t>("myClientId", myClientId());
+ pt.put<string>("encryptionKey.salt", _encryptionKeyHash.salt.ToString());
+@@ -106,7 +106,7 @@ void LocalStateMetadata::_serialize(ostream& stream) const {
+ write_json(stream, pt);
+ }
+
+-LocalStateMetadata LocalStateMetadata::_deserialize(istream& stream) {
++LocalStateMetadata LocalStateMetadata::deserialize_(istream& stream) {
+ try {
+ ptree pt;
+ read_json(stream, pt);
+diff --git a/src/cryfs/localstate/LocalStateMetadata.h b/src/cryfs/localstate/LocalStateMetadata.h
+index 8b0ffc662..c06b0f05b 100644
+--- a/src/cryfs/localstate/LocalStateMetadata.h
++++ b/src/cryfs/localstate/LocalStateMetadata.h
+@@ -20,11 +20,11 @@ class LocalStateMetadata final {
+ const uint32_t _myClientId;
+ const cpputils::hash::Hash _encryptionKeyHash;
+
+- static boost::optional<LocalStateMetadata> _load(const boost::filesystem::path &metadataFilePath);
+- static LocalStateMetadata _deserialize(std::istream& stream);
+- static LocalStateMetadata _generate(const boost::filesystem::path &metadataFilePath, const cpputils::Data& encryptionKey);
+- void _save(const boost::filesystem::path &metadataFilePath) const;
+- void _serialize(std::ostream& stream) const;
++ static boost::optional<LocalStateMetadata> load_(const boost::filesystem::path &metadataFilePath);
++ static LocalStateMetadata deserialize_(std::istream& stream);
++ static LocalStateMetadata generate_(const boost::filesystem::path &metadataFilePath, const cpputils::Data& encryptionKey);
++ void save_(const boost::filesystem::path &metadataFilePath) const;
++ void serialize_(std::ostream& stream) const;
+
+ LocalStateMetadata(uint32_t myClientId, cpputils::hash::Hash encryptionKey);
+ };
+
diff --git a/source/l/cryfs/cryfs.SlackBuild b/source/l/cryfs/cryfs.SlackBuild
index 007bd1f7..e37b529b 100755
--- a/source/l/cryfs/cryfs.SlackBuild
+++ b/source/l/cryfs/cryfs.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=cryfs
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -89,6 +89,12 @@ find . \
# Oddly, cryfs expects a static boost, so we'll need to hit it with the LART:
export LDFLAGS="$SLKLDFLAGS -lboost_thread -lboost_program_options -lboost_filesystem -lboost_chrono -lcryptopp -lfuse"
+# gcc11 fixes:
+zcat $CWD/27587ea1acec5f939a31217f1c43953378f18821.patch.gz | patch -p1 --verbose || exit 1
+
+# Boost 1.77.0 fix:
+zcat $CWD/041b5baea5a4efceff33df2f316646b47a1cd7c0.patch.gz | patch -p1 --verbose || exit 1
+
# Configure, build, and install:
mkdir cmake-build
cd cmake-build
diff --git a/source/l/glib2/glib2.SlackBuild b/source/l/glib2/glib2.SlackBuild
index ca7b1431..dc4bbfde 100755
--- a/source/l/glib2/glib2.SlackBuild
+++ b/source/l/glib2/glib2.SlackBuild
@@ -100,7 +100,7 @@ meson setup \
-Dselinux=disabled \
-Dfam=false \
-Dman=true \
- -Dgtk_doc=true \
+ -Dgtk_doc=false \
-Dinstalled_tests=false \
.. || exit 1
"${NINJA:=ninja}" $NUMJOBS || exit 1
diff --git a/source/l/gst-plugins-base/gst-plugins-base.SlackBuild b/source/l/gst-plugins-base/gst-plugins-base.SlackBuild
index 22de1419..2221f7b7 100755
--- a/source/l/gst-plugins-base/gst-plugins-base.SlackBuild
+++ b/source/l/gst-plugins-base/gst-plugins-base.SlackBuild
@@ -101,7 +101,7 @@ meson setup \
--buildtype=release \
-Dexamples=disabled \
.. || exit 1
- "${NINJA:=ninja}" $NUMJOBS || exit 1
+ "${NINJA:=ninja}" $NUMJOBS || cp -a gst-libs/gst/gl/xdg-shell-client-protocol.h .. && "${NINJA:=ninja}" $NUMJOBS || exit 1
DESTDIR=$PKG $NINJA install || exit 1
cd ..
diff --git a/source/l/gst-plugins-good/gst-plugins-good.SlackBuild b/source/l/gst-plugins-good/gst-plugins-good.SlackBuild
index 1a7b8b6f..fd87f2d5 100755
--- a/source/l/gst-plugins-good/gst-plugins-good.SlackBuild
+++ b/source/l/gst-plugins-good/gst-plugins-good.SlackBuild
@@ -88,6 +88,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+zcat $CWD/gst-plugins-good.gcc11.patch.gz | patch -p1 --verbose || exit 1
+
# Configure, build, and install:
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
diff --git a/source/l/gst-plugins-good/gst-plugins-good.gcc11.patch b/source/l/gst-plugins-good/gst-plugins-good.gcc11.patch
new file mode 100644
index 00000000..f44e3a72
--- /dev/null
+++ b/source/l/gst-plugins-good/gst-plugins-good.gcc11.patch
@@ -0,0 +1,316 @@
+From a1bf3d8d540a25268d612a489e1e836d6ea737b0 Mon Sep 17 00:00:00 2001
+From: Matthew Waters <matthew@centricular.com>
+Date: Thu, 18 Mar 2021 19:52:53 +1100
+Subject: [PATCH] gst: don't use volatile to mean atomic
+
+volatile is not sufficient to provide atomic guarantees and real atomics
+should be used instead. GCC 11 has started warning about using volatile
+with atomic operations.
+
+https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
+
+Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/941>
+---
+ ext/jack/gstjack.c | 6 +++---
+ ext/jack/gstjackaudiosink.c | 2 +-
+ ext/jack/gstjackaudiosrc.c | 2 +-
+ ext/pulse/pulsesink.h | 2 +-
+ ext/qt/gstqsgtexture.cc | 2 +-
+ ext/qt/gstqtglutility.cc | 2 +-
+ ext/qt/qtglrenderer.cc | 6 +++---
+ ext/qt/qtitem.cc | 2 +-
+ ext/qt/qtwindow.cc | 4 ++--
+ ext/vpx/gstvpxdec.c | 2 +-
+ ext/vpx/gstvpxenc.c | 14 +++++++-------
+ gst/audioparsers/gstac3parse.h | 2 +-
+ sys/rpicamsrc/gstrpicamsrc.c | 2 +-
+ sys/ximage/ximageutil.c | 2 +-
+ 14 files changed, 25 insertions(+), 25 deletions(-)
+
+diff --git a/ext/jack/gstjack.c b/ext/jack/gstjack.c
+index ca98dc405..fdd507d87 100644
+--- a/ext/jack/gstjack.c
++++ b/ext/jack/gstjack.c
+@@ -28,7 +28,7 @@
+ GType
+ gst_jack_connect_get_type (void)
+ {
+- static volatile gsize jack_connect_type = 0;
++ static gsize jack_connect_type = 0;
+
+ if (g_once_init_enter (&jack_connect_type)) {
+ static const GEnumValue jack_connect_enums[] = {
+@@ -50,7 +50,7 @@ gst_jack_connect_get_type (void)
+ GType
+ gst_jack_transport_get_type (void)
+ {
+- static volatile gsize type = 0;
++ static gsize type = 0;
+
+ if (g_once_init_enter (&type)) {
+ static const GFlagsValue flag_values[] = {
+@@ -84,7 +84,7 @@ gst_jack_client_free (gpointer jclient)
+ GType
+ gst_jack_client_get_type (void)
+ {
+- static volatile gsize jack_client_type = 0;
++ static gsize jack_client_type = 0;
+
+ if (g_once_init_enter (&jack_client_type)) {
+ /* hackish, but makes it show up nicely in gst-inspect */
+diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c
+index ee7cea8c0..6e8d04ae5 100644
+--- a/ext/jack/gstjackaudiosink.c
++++ b/ext/jack/gstjackaudiosink.c
+@@ -131,7 +131,7 @@ gst_jack_audio_sink_free_channels (GstJackAudioSink * sink)
+ static GType
+ gst_jack_ring_buffer_get_type (void)
+ {
+- static volatile gsize ringbuffer_type = 0;
++ static gsize ringbuffer_type = 0;
+
+ if (g_once_init_enter (&ringbuffer_type)) {
+ static const GTypeInfo ringbuffer_info = {
+diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c
+index 1d2cf82ee..d43a447a7 100644
+--- a/ext/jack/gstjackaudiosrc.c
++++ b/ext/jack/gstjackaudiosrc.c
+@@ -151,7 +151,7 @@ gst_jack_audio_src_free_channels (GstJackAudioSrc * src)
+ static GType
+ gst_jack_ring_buffer_get_type (void)
+ {
+- static volatile gsize ringbuffer_type = 0;
++ static gsize ringbuffer_type = 0;
+
+ if (g_once_init_enter (&ringbuffer_type)) {
+ static const GTypeInfo ringbuffer_info = { sizeof (GstJackRingBufferClass),
+diff --git a/ext/pulse/pulsesink.h b/ext/pulse/pulsesink.h
+index 86f3dcdbb..51ec86a25 100644
+--- a/ext/pulse/pulsesink.h
++++ b/ext/pulse/pulsesink.h
+@@ -72,7 +72,7 @@ struct _GstPulseSink
+ GstStructure *properties;
+ pa_proplist *proplist;
+
+- volatile gint format_lost;
++ gint format_lost;
+ GstClockTime format_lost_time;
+ };
+
+diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
+index a05d26edd..bfa79cda0 100644
+--- a/ext/qt/gstqsgtexture.cc
++++ b/ext/qt/gstqsgtexture.cc
+@@ -35,7 +35,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+ GstQSGTexture::GstQSGTexture ()
+ {
+- static volatile gsize _debug;
++ static gsize _debug;
+
+ initializeOpenGLFunctions();
+
+diff --git a/ext/qt/gstqtglutility.cc b/ext/qt/gstqtglutility.cc
+index acb89b6e1..d2c092202 100644
+--- a/ext/qt/gstqtglutility.cc
++++ b/ext/qt/gstqtglutility.cc
+@@ -66,7 +66,7 @@ gst_qt_get_gl_display ()
+ {
+ GstGLDisplay *display = NULL;
+ QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
+- static volatile gsize _debug;
++ static gsize _debug;
+
+ g_assert (app != NULL);
+
+diff --git a/ext/qt/qtglrenderer.cc b/ext/qt/qtglrenderer.cc
+index 2ad5601fc..52965fd0b 100644
+--- a/ext/qt/qtglrenderer.cc
++++ b/ext/qt/qtglrenderer.cc
+@@ -22,7 +22,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+ static void
+ init_debug (void)
+ {
+- static volatile gsize _debug;
++ static gsize _debug;
+
+ if (g_once_init_enter (&_debug)) {
+ GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglrenderer", 0,
+@@ -115,7 +115,7 @@ typedef enum
+
+ struct SharedRenderData
+ {
+- volatile int refcount;
++ int refcount;
+ SharedRenderDataState state;
+ GMutex lock;
+ GCond cond;
+@@ -130,7 +130,7 @@ shared_render_data_new (void)
+ {
+ struct SharedRenderData *ret = g_new0 (struct SharedRenderData, 1);
+
+- ret->refcount = 1;
++ g_atomic_int_set (&ret->refcount, 1);
+ g_mutex_init (&ret->lock);
+
+ return ret;
+diff --git a/ext/qt/qtitem.cc b/ext/qt/qtitem.cc
+index 7659800b6..bc99639b4 100644
+--- a/ext/qt/qtitem.cc
++++ b/ext/qt/qtitem.cc
+@@ -104,7 +104,7 @@ void InitializeSceneGraph::run()
+
+ QtGLVideoItem::QtGLVideoItem()
+ {
+- static volatile gsize _debug;
++ static gsize _debug;
+
+ if (g_once_init_enter (&_debug)) {
+ GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglwidget", 0, "Qt GL Widget");
+diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc
+index 9360c3337..7c44ac54e 100644
+--- a/ext/qt/qtwindow.cc
++++ b/ext/qt/qtwindow.cc
+@@ -103,7 +103,7 @@ QtGLWindow::QtGLWindow ( QWindow * parent, QQuickWindow *src ) :
+ QQuickWindow( parent ), source (src)
+ {
+ QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
+- static volatile gsize _debug;
++ static gsize _debug;
+
+ g_assert (app != NULL);
+
+@@ -152,7 +152,7 @@ QtGLWindow::beforeRendering()
+
+ g_mutex_lock (&this->priv->lock);
+
+- static volatile gsize once = 0;
++ static gsize once = 0;
+ if (g_once_init_enter(&once)) {
+ this->priv->start = QDateTime::currentDateTime().toMSecsSinceEpoch();
+ g_once_init_leave(&once,1);
+diff --git a/ext/vpx/gstvpxdec.c b/ext/vpx/gstvpxdec.c
+index e92aa85c7..74cc3c970 100644
+--- a/ext/vpx/gstvpxdec.c
++++ b/ext/vpx/gstvpxdec.c
+@@ -79,7 +79,7 @@ gst_vpx_dec_post_processing_flags_get_type (void)
+ {C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+diff --git a/ext/vpx/gstvpxenc.c b/ext/vpx/gstvpxenc.c
+index cd5b30d14..4b3b4f770 100644
+--- a/ext/vpx/gstvpxenc.c
++++ b/ext/vpx/gstvpxenc.c
+@@ -165,7 +165,7 @@ gst_vpx_enc_end_usage_get_type (void)
+ {VPX_CQ, "Constant Quality Mode (CQ) mode", "cq"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+@@ -188,7 +188,7 @@ gst_vpx_enc_multipass_mode_get_type (void)
+ {VPX_RC_LAST_PASS, "Last pass of multipass encoding", "last-pass"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+@@ -210,7 +210,7 @@ gst_vpx_enc_kf_mode_get_type (void)
+ {VPX_KF_DISABLED, "Don't automatically place keyframes", "disabled"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+@@ -232,7 +232,7 @@ gst_vpx_enc_tuning_get_type (void)
+ {VP8_TUNE_SSIM, "Tune for SSIM", "ssim"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+@@ -256,7 +256,7 @@ gst_vpx_enc_scaling_mode_get_type (void)
+ {VP8E_ONETWO, "1:2", "1:2"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+@@ -280,7 +280,7 @@ gst_vpx_enc_token_partitions_get_type (void)
+ {VP8_EIGHT_TOKENPARTITION, "Eight token partitions", "8"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+@@ -303,7 +303,7 @@ gst_vpx_enc_er_flags_get_type (void)
+ "Allow partitions to be decoded independently", "partitions"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+diff --git a/gst/audioparsers/gstac3parse.h b/gst/audioparsers/gstac3parse.h
+index 0e7af5acd..81e2104d5 100644
+--- a/gst/audioparsers/gstac3parse.h
++++ b/gst/audioparsers/gstac3parse.h
+@@ -62,7 +62,7 @@ struct _GstAc3Parse {
+ gint blocks;
+ gboolean eac;
+ gboolean sent_codec_tag;
+- volatile gint align;
++ gint align;
+ GstPadChainFunction baseparse_chainfunc;
+ };
+
+diff --git a/sys/rpicamsrc/gstrpicamsrc.c b/sys/rpicamsrc/gstrpicamsrc.c
+index a148d4106..f719acb4c 100644
+--- a/sys/rpicamsrc/gstrpicamsrc.c
++++ b/sys/rpicamsrc/gstrpicamsrc.c
+@@ -292,7 +292,7 @@ gst_rpi_cam_src_sensor_mode_get_type (void)
+ "640x480 4:3 60.1-90fps", "640x480-fast"},
+ {0, NULL, NULL}
+ };
+- static volatile GType id = 0;
++ static GType id = 0;
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+ _id = g_enum_register_static ("GstRpiCamSrcSensorMode", values);
+diff --git a/sys/ximage/ximageutil.c b/sys/ximage/ximageutil.c
+index 57c9392c7..018b60515 100644
+--- a/sys/ximage/ximageutil.c
++++ b/sys/ximage/ximageutil.c
+@@ -26,7 +26,7 @@
+ GType
+ gst_meta_ximage_api_get_type (void)
+ {
+- static volatile GType type;
++ static GType type;
+ static const gchar *tags[] = { "memory", NULL };
+
+ if (g_once_init_enter (&type)) {
+--
+GitLab
+
+
diff --git a/source/l/gtk+3/gtk+3.SlackBuild b/source/l/gtk+3/gtk+3.SlackBuild
index 377b619a..74090980 100755
--- a/source/l/gtk+3/gtk+3.SlackBuild
+++ b/source/l/gtk+3/gtk+3.SlackBuild
@@ -82,6 +82,9 @@ find . \
# the configure process doesn't try to call it:
zcat $CWD/gtk.fix.missing.version-check.py.diff.gz | patch -p1 --verbose || exit 1
+# Loosen this up for gcc11:
+zcat $CWD/gtk.array-bounds.gcc11.diff.gz | patch -p1 --verbose || exit 1
+
# Configure, build, and install:
export CFLAGS="$SLKCFLAGS -DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
export CXXFLAGS="$SLKCFLAGS -DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
diff --git a/source/l/gtk+3/gtk.array-bounds.gcc11.diff b/source/l/gtk+3/gtk.array-bounds.gcc11.diff
new file mode 100644
index 00000000..99392a31
--- /dev/null
+++ b/source/l/gtk+3/gtk.array-bounds.gcc11.diff
@@ -0,0 +1,10 @@
+--- ./meson.build.orig 2021-08-05 23:49:52.169416580 -0500
++++ ./meson.build 2021-08-05 23:50:01.955416038 -0500
+@@ -309,7 +309,6 @@
+ '-Werror=sequence-point',
+ '-Werror=return-type',
+ '-Werror=trigraphs',
+- '-Werror=array-bounds',
+ '-Werror=write-strings',
+ '-Werror=address',
+ '-Werror=int-to-pointer-cast',
diff --git a/source/l/gtk4/doinst.sh b/source/l/gtk4/doinst.sh
new file mode 100644
index 00000000..74cd752a
--- /dev/null
+++ b/source/l/gtk4/doinst.sh
@@ -0,0 +1,21 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+# Obsolete in gtk4?
+#config etc/gtk-4.0/gtkrc.new
+#config etc/gtk-4.0/im-multipress.conf.new
+#rm -f etc/gtk-4.0/gtkrc.new
+
+chroot . rm -f /usr/share/icons/*/icon-theme.cache 1> /dev/null 2> /dev/null
+chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/ 1> /dev/null 2> /dev/null
+chroot . /usr/bin/gio-querymodules /usr/lib64/gtk-4.0/4.0.0/media 1> /dev/null 2> /dev/null
+chroot . /usr/bin/gio-querymodules /usr/lib64/gtk-4.0/4.0.0/printbackends 1> /dev/null 2> /dev/null
diff --git a/source/l/gtk4/gtk4.SlackBuild b/source/l/gtk4/gtk4.SlackBuild
new file mode 100755
index 00000000..6f6101b1
--- /dev/null
+++ b/source/l/gtk4/gtk4.SlackBuild
@@ -0,0 +1,161 @@
+#!/bin/bash
+
+# Copyright 2008, 2009, 2010, 2011, 2013, 2018, 2020, 2021 Patrick J. Volkerding, Sebeka, 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.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=gtk4
+VERSION=${VERSION:-$(echo gtk-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-gtk4
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG/usr
+cd $TMP
+rm -rf gtk-$VERSION
+tar xvf $CWD/gtk-$VERSION.tar.?z || exit 1
+cd gtk-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# Configure, build, and install:
+export CFLAGS="$SLKCFLAGS -DG_ENABLE_DEBUG"
+export CXXFLAGS="$SLKCFLAGS -DG_ENABLE_DEBUG"
+mkdir meson-build
+cd meson-build
+meson setup \
+ --prefix=/usr \
+ --libdir=lib${LIBDIRSUFFIX} \
+ --libexecdir=/usr/libexec \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --includedir=/usr/include \
+ --datadir=/usr/share \
+ --mandir=/usr/man \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --buildtype=release \
+ -Dman-pages=true \
+ -Ddemos=true \
+ -Dgtk_doc=false \
+ -Dbroadway_backend=true \
+ -Dexamples=false \
+ -Dtests=false \
+ -Dinstalled_tests=false \
+ -Dwayland_backend=true \
+ .. || exit 1
+ "${NINJA:=ninja}" $NUMJOBS || exit 1
+ DESTDIR=$PKG $NINJA install || exit 1
+cd ..
+
+# The following four things don't seem to be used by gtk4. But if something
+# similar ends up being required, let me know.
+
+# Don't clobber im-multipress.conf
+#mv $PKG/etc/gtk-4.0/im-multipress.conf $PKG/etc/gtk-4.0/im-multipress.conf.new
+
+# Install a "starter" gtkrc
+#echo 'gtk-theme-name="Adwaita"' > $PKG/etc/gtk-4.0/gtkrc.new
+
+# We need to have separate 32-bit and 64-bit binaries for places where we have
+# two copies of the GTK package installed (we might have x86_64 and i586
+# packages on the same system, for example.)
+#if [ "$LIBDIRSUFFIX" = "64" ]; then
+# mv $PKG/usr/bin/gtk-query-immodules-4.0{,-64}
+# ( cd $PKG/usr/bin
+# ln -sf gtk-query-immodules-4.0-64 gtk-query-immodules-4.0
+# )
+#else
+# mv $PKG/usr/bin/gtk-query-immodules-4.0{,-32}
+# ( cd $PKG/usr/bin
+# ln -sf gtk-query-immodules-4.0-32 gtk-query-immodules-4.0
+# )
+#fi
+
+# Install wrappers for the binaries:
+#cp $CWD/update-gtk-immodules-4.0 $PKG/usr/bin/update-gtk-immodules-4.0
+#chmod 0755 $PKG/usr/bin/update-*
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress manual pages:
+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
+
+# Copy extra documentation into package.
+mkdir -p $PKG/usr/doc/gtk4-$VERSION
+cp -a \
+ AUTHORS COPYING NEWS README \
+ $PKG/usr/doc/gtk4-$VERSION
+find $PKG/usr/doc/gtk4-$VERSION/ -type f -exec chmod 644 {} \+
+chown -R root:root $PKG/usr/doc/gtk4-$VERSION
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -p -l y -c n $TMP/gtk4-${VERSION}-$ARCH-${BUILD}.txz
diff --git a/source/l/gtk4/slack-desc b/source/l/gtk4/slack-desc
new file mode 100644
index 00000000..7187360b
--- /dev/null
+++ b/source/l/gtk4/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 ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+gtk4: gtk4 (multi-platform GUI toolkit v4)
+gtk4:
+gtk4: This is GTK, a multi-platform toolkit for creating graphical user
+gtk4: interfaces. Offering a complete set of widgets, GTK+ is suitable for
+gtk4: projects ranging from small one-off projects to complete application
+gtk4: suites.
+gtk4:
+gtk4:
+gtk4:
+gtk4:
+gtk4:
diff --git a/source/l/gtkmm3/gtkmm3.SlackBuild b/source/l/gtkmm3/gtkmm3.SlackBuild
index 1c944f61..cb5d066a 100755
--- a/source/l/gtkmm3/gtkmm3.SlackBuild
+++ b/source/l/gtkmm3/gtkmm3.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
SRCNAM=gtkmm
PKGNAM=gtkmm3
VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
SRCNAM=gtkmm
diff --git a/source/l/libwebp/libwebp.SlackBuild b/source/l/libwebp/libwebp.SlackBuild
index 4474c8d2..3417a96e 100755
--- a/source/l/libwebp/libwebp.SlackBuild
+++ b/source/l/libwebp/libwebp.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libwebp
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/libwpd/libwpd.SlackBuild b/source/l/libwpd/libwpd.SlackBuild
index 86a6eeff..bd365653 100755
--- a/source/l/libwpd/libwpd.SlackBuild
+++ b/source/l/libwpd/libwpd.SlackBuild
@@ -81,6 +81,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+zcat $CWD/libwpd.gcc11.diff.gz | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/l/libwpd/libwpd.gcc11.diff b/source/l/libwpd/libwpd.gcc11.diff
new file mode 100644
index 00000000..83855a04
--- /dev/null
+++ b/source/l/libwpd/libwpd.gcc11.diff
@@ -0,0 +1,21 @@
+--- ./src/lib/WPXContentListener.cpp.orig 2018-12-25 10:19:19.000000000 -0600
++++ ./src/lib/WPXContentListener.cpp 2021-08-06 00:05:53.939363381 -0500
+@@ -23,6 +23,7 @@
+ * Corel Corporation or Corel Corporation Limited."
+ */
+
++#include <cstddef>
+ #include "WPXContentListener.h"
+ #include "WPXPageSpan.h"
+ #include "libwpd_internal.h"
+--- ./src/lib/WPXTable.cpp.orig 2018-12-25 10:19:19.000000000 -0600
++++ ./src/lib/WPXTable.cpp 2021-08-06 00:05:19.424365290 -0500
+@@ -25,6 +25,8 @@
+ * Corel Corporation or Corel Corporation Limited."
+ */
+
++#include <cstddef>
++
+ #include "WPXTable.h"
+
+ #include "libwpd_internal.h"
diff --git a/source/l/mlt/mlt.SlackBuild b/source/l/mlt/mlt.SlackBuild
index 59182265..870e1b7d 100755
--- a/source/l/mlt/mlt.SlackBuild
+++ b/source/l/mlt/mlt.SlackBuild
@@ -1,7 +1,6 @@
#!/bin/bash
-# Copyright 2017, 2018, 2019, 2020 Eric Hameleers, Eindhoven, NL
-# Copyright 2020 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2021 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -86,66 +85,37 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-PYTHONSITEPKG=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
-
# Configure, build, and install:
-if [ ! -r configure ]; then
- if [ -x ./autogen.sh ]; then
- NOCONFIGURE=1 ./autogen.sh
- else
- autoreconf -vif
- fi
-fi
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --docdir=/usr/doc/$PKGNAM-$VERSION \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --disable-static \
- --avformat-swscale \
- --disable-debug \
- --enable-gpl \
- --enable-gpl3 \
- --enable-motion-est \
- --enable-opencv \
- --enable-qt \
- --qt-libdir=$(pkg-config Qt5Core --variable=libdir) \
- --qt-includedir=$(pkg-config Qt5Core --variable=includedir) \
- --swig-languages="python" \
- --build=$ARCH-slackware-linux || exit 1
-make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG || exit 1
-
-# Install the extensions we enabled:
-install -D -m0755 src/swig/python/_mlt.so $PKG/$PYTHONSITEPKG/_mlt.so
-install -D -m0755 src/swig/python/mlt_wrap.o $PKG/$PYTHONSITEPKG/mlt_wrap.o
-install -D -m0755 src/swig/python/mlt.py $PKG/$PYTHONSITEPKG/mlt.py
-
-# Don't ship .la files:
-rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+mkdir cmake-build
+cd cmake-build
+ cmake \
+ -DCMAKE_C_FLAGS="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX="$LIBDIRSUFFIX" \
+ -DDOC_INSTALL_DIR="doc" \
+ -DMAN_INSTALL_DIR=/usr/man \
+ .. || exit 1
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+cd ..
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# Compress manual pages:
+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
+
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- AUTHORS* ChangeLog COPYING* GPL* NEWS* README* docs/*.txt \
+ AUTHORS* ChangeLog CHANGES COPYING* LICENSE* NEWS* README* THANKS* TODO* \
$PKG/usr/doc/${PKGNAM}-$VERSION
-# If there's a ChangeLog, installing at least part of the recent history
-# is useful, but don't let it get totally out of control:
-if [ -r ChangeLog ]; then
- DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
- cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
- touch -r ChangeLog $DOCSDIR/ChangeLog
-fi
-
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/l/mozilla-nss/mozilla-nss.SlackBuild b/source/l/mozilla-nss/mozilla-nss.SlackBuild
index 4bef0f09..073f8b9c 100755
--- a/source/l/mozilla-nss/mozilla-nss.SlackBuild
+++ b/source/l/mozilla-nss/mozilla-nss.SlackBuild
@@ -26,8 +26,8 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=mozilla-nss
SRCNAM=nss
-VERSION=${VERSION:-3.67}
-NSPR=${NSPR:-4.31}
+VERSION=${VERSION:-3.69}
+NSPR=${NSPR:-4.32}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
diff --git a/source/l/ocl-icd/ocl-icd.SlackBuild b/source/l/ocl-icd/ocl-icd.SlackBuild
index c133142d..a190ca15 100755
--- a/source/l/ocl-icd/ocl-icd.SlackBuild
+++ b/source/l/ocl-icd/ocl-icd.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=ocl-icd
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
diff --git a/source/l/openexr/openexr.SlackBuild b/source/l/openexr/openexr.SlackBuild
index 6305eae9..286b4fc0 100755
--- a/source/l/openexr/openexr.SlackBuild
+++ b/source/l/openexr/openexr.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=openexr
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/pulseaudio/pulseaudio-autostart-meson.build.patch b/source/l/pulseaudio/pulseaudio-autostart-meson.build.patch
new file mode 100644
index 00000000..a7fadb99
--- /dev/null
+++ b/source/l/pulseaudio/pulseaudio-autostart-meson.build.patch
@@ -0,0 +1,10 @@
+--- ./src/daemon/meson.build.orig 2021-07-27 15:02:27.738868200 -0500
++++ ./src/daemon/meson.build 2021-08-09 13:15:24.344941127 -0500
+@@ -38,6 +38,7 @@
+ if x11_dep.found()
+ conf = configuration_data()
+ conf.set('PACTL_BINARY', join_paths(bindir, 'pactl'))
++ conf.set('PA_BINARY', join_paths(bindir, 'pulseaudio'))
+
+ configure_file(
+ input : 'start-pulseaudio-x11.in',
diff --git a/source/l/pulseaudio/pulseaudio.SlackBuild b/source/l/pulseaudio/pulseaudio.SlackBuild
index 39d4b77b..bf389d8f 100755
--- a/source/l/pulseaudio/pulseaudio.SlackBuild
+++ b/source/l/pulseaudio/pulseaudio.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=pulseaudio
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -91,6 +91,8 @@ echo "X-MATE-Autostart-Phase=Initialization" >> src/daemon/pulseaudio.desktop.in
# If autospawn isn't working, start-pulseaudio-x11 should start it manually:
zcat $CWD/pulseaudio-autostart.patch.gz | patch -p1 --verbose || exit 1
+# When built by meson, this patch also required to fix the above issue:
+zcat $CWD/pulseaudio-autostart-meson.build.patch.gz | patch -p1 --verbose || exit 1
# Configure, build, and install:
export CFLAGS="$SLKCFLAGS"
diff --git a/source/l/qt5/patches/0006-Fix-build-with-GCC-11-include-limits.patch b/source/l/qt5/patches/0006-Fix-build-with-GCC-11-include-limits.patch
new file mode 100644
index 00000000..f014a160
--- /dev/null
+++ b/source/l/qt5/patches/0006-Fix-build-with-GCC-11-include-limits.patch
@@ -0,0 +1,53 @@
+From 9c56d4da2ff631a8c1c30475bd792f6c86bda53c Mon Sep 17 00:00:00 2001
+From: Thiago Macieira <thiago.macieira@intel.com>
+Date: Mon, 18 Jan 2021 07:40:54 -0800
+Subject: [PATCH] Fix build with GCC 11: include <limits>
+
+Fixes: QTBUG-90395
+Pick-to: 6.0
+Change-Id: Iecc74d2000eb40dfbe7bfffd165b5dd3708b7a40
+Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
+
+[Retrieved (and backported) from:
+https://github.com/qt/qtbase/commit/9c56d4da2ff631a8c1c30475bd792f6c86bda53c]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/corelib/global/qendian.h | 6 ++++--
+ src/corelib/global/qfloat16.h | 1 +
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h
+index 99b529f17cd..c874c5e47ab 100644
+--- a/src/corelib/global/qendian.h
++++ b/src/corelib/global/qendian.h
+@@ -1,7 +1,7 @@
+ /****************************************************************************
+ **
+-** Copyright (C) 2016 The Qt Company Ltd.
+-** Copyright (C) 2016 Intel Corporation.
++** Copyright (C) 2021 The Qt Company Ltd.
++** Copyright (C) 2021 Intel Corporation.
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the QtCore module of the Qt Toolkit.
+@@ -44,6 +44,8 @@
+ #include <QtCore/qfloat16.h>
+ #include <QtCore/qglobal.h>
+
++#include <limits>
++
+ // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/src/corelib/global/qfloat16.h b/src/corelib/global/qfloat16.h
+index e9477d2ecec..a25fac28862 100644
+--- a/src/corelib/global/qfloat16.h
++++ b/src/corelib/global/qfloat16.h
+@@ -44,6 +44,7 @@
+
+ #include <QtCore/qglobal.h>
+ #include <QtCore/qmetatype.h>
++#include <limits>
+ #include <string.h>
+
+ #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__)
diff --git a/source/l/qt5/patches/qt5-qtbase-gcc11.patch b/source/l/qt5/patches/qt5-qtbase-gcc11.patch
new file mode 100644
index 00000000..c9567128
--- /dev/null
+++ b/source/l/qt5/patches/qt5-qtbase-gcc11.patch
@@ -0,0 +1,171 @@
+diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
+index 06fd88da..dbff3239 100644
+--- a/src/corelib/codecs/qtextcodec.cpp
++++ b/src/corelib/codecs/qtextcodec.cpp
+@@ -38,6 +38,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "qplatformdefs.h"
+
+ #include "qtextcodec.h"
+diff --git a/src/corelib/codecs/qutfcodec.cpp b/src/corelib/codecs/qutfcodec.cpp
+index 8561f908..8128d3cf 100644
+--- a/src/corelib/codecs/qutfcodec.cpp
++++ b/src/corelib/codecs/qutfcodec.cpp
+@@ -38,6 +38,8 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
++
+ #include "qutfcodec_p.h"
+ #include "qlist.h"
+ #include "qendian.h"
+diff --git a/src/corelib/global/qendian.cpp b/src/corelib/global/qendian.cpp
+index eb08b2f8..6b41b3dd 100644
+--- a/src/corelib/global/qendian.cpp
++++ b/src/corelib/global/qendian.cpp
+@@ -38,6 +38,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "qendian.h"
+
+ #include "qalgorithms.h"
+diff --git a/src/corelib/global/qfloat16.cpp b/src/corelib/global/qfloat16.cpp
+index c9733174..c62a1972 100644
+--- a/src/corelib/global/qfloat16.cpp
++++ b/src/corelib/global/qfloat16.cpp
+@@ -38,6 +38,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "qfloat16.h"
+ #include "private/qsimd_p.h"
+ #include <cmath> // for fpclassify()'s return values
+diff --git a/src/corelib/global/qrandom.cpp b/src/corelib/global/qrandom.cpp
+index 10672c1f..6d5fd63e 100644
+--- a/src/corelib/global/qrandom.cpp
++++ b/src/corelib/global/qrandom.cpp
+@@ -40,6 +40,7 @@
+ // for rand_s
+ #define _CRT_RAND_S
+
++#include <limits>
+ #include "qrandom.h"
+ #include "qrandom_p.h"
+ #include <qobjectdefs.h>
+diff --git a/src/corelib/plugin/qelfparser_p.cpp b/src/corelib/plugin/qelfparser_p.cpp
+index 13eee353..9e7a7a41 100644
+--- a/src/corelib/plugin/qelfparser_p.cpp
++++ b/src/corelib/plugin/qelfparser_p.cpp
+@@ -37,6 +37,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "qelfparser_p.h"
+
+ #if defined (Q_OF_ELF) && defined(Q_CC_GNU)
+diff --git a/src/corelib/plugin/qmachparser.cpp b/src/corelib/plugin/qmachparser.cpp
+index 11670caf..39f5596b 100644
+--- a/src/corelib/plugin/qmachparser.cpp
++++ b/src/corelib/plugin/qmachparser.cpp
+@@ -37,6 +37,8 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
++
+ #include "qmachparser_p.h"
+
+ #if defined(Q_OF_MACH_O)
+diff --git a/src/corelib/plugin/quuid.cpp b/src/corelib/plugin/quuid.cpp
+index 83873edf..5aafb4e5 100644
+--- a/src/corelib/plugin/quuid.cpp
++++ b/src/corelib/plugin/quuid.cpp
+@@ -38,6 +38,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "quuid.h"
+
+ #include "qcryptographichash.h"
+diff --git a/src/corelib/serialization/qdatastream.cpp b/src/corelib/serialization/qdatastream.cpp
+index 5082a8cb..7eecfcca 100644
+--- a/src/corelib/serialization/qdatastream.cpp
++++ b/src/corelib/serialization/qdatastream.cpp
+@@ -40,6 +40,8 @@
+ #include "qdatastream.h"
+ #include "qdatastream_p.h"
+
++#include <limits>
++
+ #if !defined(QT_NO_DATASTREAM) || defined(QT_BOOTSTRAPPED)
+ #include "qbuffer.h"
+ #include "qfloat16.h"
+diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp
+index 9a72df58..6651ee98 100644
+--- a/src/corelib/text/qbytearray.cpp
++++ b/src/corelib/text/qbytearray.cpp
+@@ -39,6 +39,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "qbytearray.h"
+ #include "qbytearraymatcher.h"
+ #include "private/qtools_p.h"
+diff --git a/src/corelib/text/qbytearraymatcher.cpp b/src/corelib/text/qbytearraymatcher.cpp
+index 72e09226..80511cb5 100644
+--- a/src/corelib/text/qbytearraymatcher.cpp
++++ b/src/corelib/text/qbytearraymatcher.cpp
+@@ -37,6 +37,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "qbytearraymatcher.h"
+
+ #include <limits.h>
+diff --git a/src/corelib/tools/qbitarray.cpp b/src/corelib/tools/qbitarray.cpp
+index ab3054d5..22efb3a0 100644
+--- a/src/corelib/tools/qbitarray.cpp
++++ b/src/corelib/tools/qbitarray.cpp
+@@ -38,6 +38,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "qbitarray.h"
+ #include <qalgorithms.h>
+ #include <qdatastream.h>
+diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp
+index fa8d21e0..cd85956d 100644
+--- a/src/corelib/tools/qcryptographichash.cpp
++++ b/src/corelib/tools/qcryptographichash.cpp
+@@ -38,6 +38,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include <qcryptographichash.h>
+ #include <qiodevice.h>
+
+diff --git a/src/gui/text/qfontengine_qpf2.cpp b/src/gui/text/qfontengine_qpf2.cpp
+index e00f9d05..917ab5f9 100644
+--- a/src/gui/text/qfontengine_qpf2.cpp
++++ b/src/gui/text/qfontengine_qpf2.cpp
+@@ -37,6 +37,7 @@
+ **
+ ****************************************************************************/
+
++#include <limits>
+ #include "qfontengine_qpf2_p.h"
+
+ #include <QtCore/QFile>
diff --git a/source/l/qt5/patches/qt5-qtdeclarative-gcc11.patch b/source/l/qt5/patches/qt5-qtdeclarative-gcc11.patch
new file mode 100644
index 00000000..91ea88b9
--- /dev/null
+++ b/source/l/qt5/patches/qt5-qtdeclarative-gcc11.patch
@@ -0,0 +1,21 @@
+--- ./qtdeclarative/src/qml/jsruntime/qv4regexp_p.h.orig 2020-10-27 03:02:12.000000000 -0500
++++ ./qtdeclarative/src/qml/jsruntime/qv4regexp_p.h 2021-08-05 13:38:38.366445122 -0500
+@@ -57,7 +57,7 @@
+ #include <wtf/FastAllocBase.h>
+ #include <wtf/BumpPointerAllocator.h>
+
+-#include <limits.h>
++#include <limits>
+
+ #include <yarr/Yarr.h>
+ #include <yarr/YarrInterpreter.h>
+--- ./qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h.orig 2020-10-27 03:02:12.000000000 -0500
++++ ./qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h 2021-08-05 13:39:39.671441731 -0500
+@@ -48,6 +48,7 @@
+ #include <QtCore/qmetatype.h>
+
+ #include <initializer_list>
++#include <limits>
+ #include <type_traits>
+
+ //
diff --git a/source/l/qt5/patches/qt5-qtwebengine-gcc11.patch b/source/l/qt5/patches/qt5-qtwebengine-gcc11.patch
new file mode 100644
index 00000000..3b2606e6
--- /dev/null
+++ b/source/l/qt5/patches/qt5-qtwebengine-gcc11.patch
@@ -0,0 +1,20 @@
+-- a/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
++++ b/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
+@@ -40,6 +40,7 @@
+ #include "absl/base/internal/hide_ptr.h"
+ #include "absl/base/internal/raw_logging.h"
+ #include "absl/base/internal/spinlock.h"
++#include <limits>
+
+ // Do not use STL. This module does not use standard memory allocation.
+
+--- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.h
++++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.h
+@@ -19,6 +19,7 @@
+
+ #include <stddef.h>
+ #include <stdint.h>
++#include <limits>
+
+ #include <unordered_map>
+ #include <vector>
diff --git a/source/l/qt5/patches/qt5-qtwebsockets-gcc11.patch b/source/l/qt5/patches/qt5-qtwebsockets-gcc11.patch
new file mode 100644
index 00000000..5b33d7b3
--- /dev/null
+++ b/source/l/qt5/patches/qt5-qtwebsockets-gcc11.patch
@@ -0,0 +1,12 @@
+diff --git a/src/websockets/qwebsocketprotocol.cpp b/src/websockets/qwebsocketprotocol.cpp
+index df87a93..9556d18 100644
+--- a/src/websockets/qwebsocketprotocol.cpp
++++ b/src/websockets/qwebsocketprotocol.cpp
+@@ -38,6 +38,7 @@
+ ****************************************************************************/
+
+ #include "qwebsocketprotocol_p.h"
++#include <limits>
+ #include <QtCore/QString>
+ #include <QtCore/QSet>
+ #include <QtCore/QtEndian>
diff --git a/source/l/qt5/patches/qtconcurrentthreadengine.h-gcc11.patch b/source/l/qt5/patches/qtconcurrentthreadengine.h-gcc11.patch
new file mode 100644
index 00000000..534b594d
--- /dev/null
+++ b/source/l/qt5/patches/qtconcurrentthreadengine.h-gcc11.patch
@@ -0,0 +1,14 @@
+--- ./qtbase/src/concurrent/qtconcurrentthreadengine.h.orig 2020-10-27 03:02:11.000000000 -0500
++++ ./qtbase/src/concurrent/qtconcurrentthreadengine.h 2021-08-05 14:20:37.774305766 -0500
+@@ -247,8 +247,9 @@
+ class ThreadEngineStarter<void> : public ThreadEngineStarterBase<void>
+ {
+ public:
+- ThreadEngineStarter<void>(ThreadEngine<void> *_threadEngine)
+- :ThreadEngineStarterBase<void>(_threadEngine) {}
++ ThreadEngineStarter(ThreadEngine<void> *_threadEngine)
++ : ThreadEngineStarterBase<void>(_threadEngine) {}
++
+
+ void startBlocking()
+ {
diff --git a/source/l/qt5/qt5.SlackBuild b/source/l/qt5/qt5.SlackBuild
index a406bd9f..d6de2438 100755
--- a/source/l/qt5/qt5.SlackBuild
+++ b/source/l/qt5/qt5.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -31,7 +31,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=qt5
VERSION=$(ls qt-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
-BUILD=${BUILD:-10}
+BUILD=${BUILD:-11}
PKGSRC=$(echo $VERSION | cut -d - -f 1)
PKGVER=$(echo $VERSION | tr - _)
@@ -124,6 +124,20 @@ fi
# Fix path to mysql header:
zcat $CWD/patches/qt5.mysql.h.diff.gz | patch -p1 --verbose || exit 1
+# Fix build with gcc11:
+cd qtbase
+ zcat $CWD/patches/qt5-qtbase-gcc11.patch.gz | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/0006-Fix-build-with-GCC-11-include-limits.patch.gz | patch -p1 --verbose || exit 1
+cd - 1>/dev/null
+zcat $CWD/patches/qt5-qtdeclarative-gcc11.patch.gz | patch -p1 --verbose || exit 1
+cd qtwebsockets
+ zcat $CWD/patches/qt5-qtwebsockets-gcc11.patch.gz | patch -p1 --verbose || exit 1
+cd - 1>/dev/null
+zcat $CWD/patches/qtconcurrentthreadengine.h-gcc11.patch.gz | patch -p1 --verbose || exit 1
+cd qtwebengine
+ zcat $CWD/patches/qt5-qtwebengine-gcc11.patch.gz | patch -p1 --verbose || exit 1
+cd - 1>/dev/null
+
# CMake generates wrong -isystem /usr/include compilations flags with Qt5::Gui
# and for it breaks KWin compilation with:
# /usr/include/c++/9.1.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
@@ -217,7 +231,9 @@ export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins"
# Sometimes a failure happens when parallelizing make. Try again if make fails,
# but make a failure the second time around (single threaded) a fatal error:
-make $NUMJOBS || make || exit 1
+#### DEBUG
+make $NUMJOBS || exit 1
+#make $NUMJOBS || make || exit 1
make install INSTALL_ROOT=$PKG || exit 1
# Strip binaries:
diff --git a/source/l/tidy-html5/tidy-html5.SlackBuild b/source/l/tidy-html5/tidy-html5.SlackBuild
index 5b42defa..70402eaa 100755
--- a/source/l/tidy-html5/tidy-html5.SlackBuild
+++ b/source/l/tidy-html5/tidy-html5.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2020 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2020, 2021 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=tidy-html5
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -102,7 +102,7 @@ cd cmake-build
cd ..
# Don't package static library:
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libtidys.a
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libtidy.a
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/l/v4l-utils/v4l-utils.SlackBuild b/source/l/v4l-utils/v4l-utils.SlackBuild
index e2ac7aa3..f83a0899 100755
--- a/source/l/v4l-utils/v4l-utils.SlackBuild
+++ b/source/l/v4l-utils/v4l-utils.SlackBuild
@@ -79,9 +79,12 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+# Using -std=gnu++14 to fix compile with gcc11 - revisit later to see if it's
+# still needed.
+
# Configure:
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -std=gnu++14" \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
diff --git a/source/n/ModemManager/ModemManager.SlackBuild b/source/n/ModemManager/ModemManager.SlackBuild
index fdb4017e..84ca46a6 100755
--- a/source/n/ModemManager/ModemManager.SlackBuild
+++ b/source/n/ModemManager/ModemManager.SlackBuild
@@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=ModemManager
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/source/n/dhcpcd/dhcpcd-8.1.9.tar.xz.distinfo b/source/n/dhcpcd/dhcpcd-8.1.9.tar.xz.distinfo
deleted file mode 100644
index 395b1162..00000000
--- a/source/n/dhcpcd/dhcpcd-8.1.9.tar.xz.distinfo
+++ /dev/null
@@ -1 +0,0 @@
-SHA256 (dhcpcd-8.1.9.tar.xz) = 8e2a505eb2bd8007d7c6fd855fcb4dd28cced8fc28886c7ce41fb4fc5630fbcf
diff --git a/source/n/dhcpcd/dhcpcd-9.4.0.tar.xz.distinfo b/source/n/dhcpcd/dhcpcd-9.4.0.tar.xz.distinfo
new file mode 100644
index 00000000..fa1cbf65
--- /dev/null
+++ b/source/n/dhcpcd/dhcpcd-9.4.0.tar.xz.distinfo
@@ -0,0 +1 @@
+SHA256 (dhcpcd-9.4.0.tar.xz) = 41a69297f380bf15ee8f94f73154f8c2bca7157a087c0d5aca8de000ba1d4513
diff --git a/source/n/dhcpcd/dhcpcd.SlackBuild b/source/n/dhcpcd/dhcpcd.SlackBuild
index 1a7e1526..2027e5b6 100755
--- a/source/n/dhcpcd/dhcpcd.SlackBuild
+++ b/source/n/dhcpcd/dhcpcd.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=dhcpcd
VERSION=${VERSION:-$(echo dhcpcd-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
diff --git a/source/n/dhcpcd/patches/use-hostname_short-in-dhcpcd.conf.patch b/source/n/dhcpcd/patches/use-hostname_short-in-dhcpcd.conf.patch
index 077aa17b..75322ad8 100644
--- a/source/n/dhcpcd/patches/use-hostname_short-in-dhcpcd.conf.patch
+++ b/source/n/dhcpcd/patches/use-hostname_short-in-dhcpcd.conf.patch
@@ -1,11 +1,10 @@
-diff -Nur dhcpcd-7.0.0.orig/src/dhcpcd.conf dhcpcd-7.0.0/src/dhcpcd.conf
---- dhcpcd-7.0.0.orig/src/dhcpcd.conf 2018-01-01 05:17:56.000000000 -0600
-+++ dhcpcd-7.0.0/src/dhcpcd.conf 2018-01-02 04:14:37.026484155 -0600
+--- ./src/dhcpcd.conf.orig 2021-08-09 22:58:29.034640117 -0500
++++ ./src/dhcpcd.conf 2021-08-09 23:00:11.296642405 -0500
@@ -5,7 +5,7 @@
#controlgroup wheel
# Inform the DHCP server of our hostname for DDNS.
--hostname
+-#hostname
+hostname_short
# Use the hardware address of the interface for the Client ID.
diff --git a/source/n/nmap/nmap.SlackBuild b/source/n/nmap/nmap.SlackBuild
index c2ba46ab..b35e4133 100755
--- a/source/n/nmap/nmap.SlackBuild
+++ b/source/n/nmap/nmap.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=nmap
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/n/openresolv/doinst.sh b/source/n/openresolv/doinst.sh
new file mode 100644
index 00000000..810b1c10
--- /dev/null
+++ b/source/n/openresolv/doinst.sh
@@ -0,0 +1,18 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config etc/resolvconf.conf.new
+# This file is optional (added with OPENVPN=yes); let's make sure it exists
+if [ -e etc/openvpn/update-resolv-conf.new ]; then
+ config etc/openvpn/update-resolv-conf.new
+fi
diff --git a/source/n/openresolv/openresolv-3.12.0.tar.xz.distinfo b/source/n/openresolv/openresolv-3.12.0.tar.xz.distinfo
new file mode 100644
index 00000000..c2f8e4a1
--- /dev/null
+++ b/source/n/openresolv/openresolv-3.12.0.tar.xz.distinfo
@@ -0,0 +1 @@
+SHA256 (openresolv-3.12.0.tar.xz) = 42b30508e857a228535c631eaac936862d86eca68c14b5c0bf387ba176b91b97
diff --git a/source/n/openresolv/openresolv.SlackBuild b/source/n/openresolv/openresolv.SlackBuild
new file mode 100755
index 00000000..85c340e9
--- /dev/null
+++ b/source/n/openresolv/openresolv.SlackBuild
@@ -0,0 +1,134 @@
+#!/bin/bash
+
+# Copyright 2012-2013 synbq Bucharest
+# Copyright 2017-2021 Jeremy Hansen <jebrhansen+SBo -at- gmail.com>
+# Copyright 2021 Patrick J. Volkerding, Sebeka, Minnesota, 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.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=openresolv
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Set this option to yes to add an optional config script for OpenVPN:
+OPENVPN=${OPENVPN:-no}
+
+# Automatically determine the architecture we're building on:
+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 ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-noarch-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/libexec/openresolv \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+mv $PKG/etc/resolvconf.conf $PKG/etc/resolvconf.conf.new
+if [ "${OPENVPN}" = "yes" ]; then
+ mkdir -p $PKG/etc/openvpn
+ install -m 0755 $CWD/update-resolv-conf $PKG/etc/openvpn/update-resolv-conf.new
+fi
+
+## There are no ELF objects in this package...
+## Strip binaries:
+#find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress manual pages:
+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
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ LICENSE* COPYING* README* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-noarch-$BUILD.txz
diff --git a/source/n/openresolv/openresolv.url b/source/n/openresolv/openresolv.url
new file mode 100644
index 00000000..1ca43733
--- /dev/null
+++ b/source/n/openresolv/openresolv.url
@@ -0,0 +1 @@
+https://roy.marples.name/downloads/openresolv/
diff --git a/source/n/openresolv/slack-desc b/source/n/openresolv/slack-desc
new file mode 100644
index 00000000..c4d8a732
--- /dev/null
+++ b/source/n/openresolv/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------------------------------------------------------|
+openresolv: openresolv (management framework for resolv.conf)
+openresolv:
+openresolv: Allows multiple daemons to manage resolv.conf and configures local
+openresolv: resolvers such as dnsmasq and unbound.
+openresolv: This package may require some manual configuration.
+openresolv: Please read resolvconf(8) and resolvconf.conf(5) for detailed
+openresolv: instructions.
+openresolv:
+openresolv: Homepage: https://roy.marples.name/projects/openresolv
+openresolv:
+openresolv:
diff --git a/source/n/openresolv/update-resolv-conf b/source/n/openresolv/update-resolv-conf
new file mode 100644
index 00000000..a2026057
--- /dev/null
+++ b/source/n/openresolv/update-resolv-conf
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# Parses DHCP options from openvpn to update resolv.conf
+# To use set as 'up' and 'down' script in your openvpn *.conf:
+# up /etc/openvpn/update-resolv-conf
+# down /etc/openvpn/update-resolv-conf
+#
+# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk>
+# and Chris Hanson
+# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL.
+#
+# 05/2006 chlauber@bnc.ch
+#
+# Example envs set from openvpn:
+# foreign_option_1='dhcp-option DNS 193.43.27.132'
+# foreign_option_2='dhcp-option DNS 193.43.27.133'
+# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
+
+[ -x /usr/sbin/resolvconf ] || exit 0
+
+case $script_type in
+
+up)
+ for optionname in ${!foreign_option_*} ; do
+ option="${!optionname}"
+ echo $option
+ part1=$(echo "$option" | cut -d " " -f 1)
+ if [ "$part1" == "dhcp-option" ] ; then
+ part2=$(echo "$option" | cut -d " " -f 2)
+ part3=$(echo "$option" | cut -d " " -f 3)
+ if [ "$part2" == "DNS" ] ; then
+ IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
+ fi
+ if [ "$part2" == "DOMAIN" ] ; then
+ IF_DNS_SEARCH="$IF_DNS_SEARCH $part3"
+ fi
+ fi
+ done
+ R=""
+ for SS in $IF_DNS_SEARCH ; do
+ R="${R}search $SS
+"
+ done
+ for NS in $IF_DNS_NAMESERVERS ; do
+ R="${R}nameserver $NS
+"
+ done
+ echo -n "$R" | /usr/sbin/resolvconf -x -a "${dev}.inet"
+ ;;
+down)
+ /usr/sbin/resolvconf -d "${dev}.inet"
+ ;;
+esac
+
diff --git a/source/n/php/php.SlackBuild b/source/n/php/php.SlackBuild
index 9b7cde93..9e03145a 100755
--- a/source/n/php/php.SlackBuild
+++ b/source/n/php/php.SlackBuild
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=php
VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ALPINE=2.24
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/x/libepoxy/libepoxy.url b/source/x/libepoxy/libepoxy.url
index 91bbee9f..bf9b5eda 100644
--- a/source/x/libepoxy/libepoxy.url
+++ b/source/x/libepoxy/libepoxy.url
@@ -1 +1 @@
-https://github.com/anholt/libepoxy/releases/download/1.5.8/libepoxy-1.5.8.tar.xz
+https://github.com/anholt/libepoxy/releases/download/1.5.9/libepoxy-1.5.9.tar.xz
diff --git a/source/x/vulkan-sdk/vulkan-sdk.SlackBuild b/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
index a6ee5ae2..72a86f7d 100755
--- a/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
+++ b/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=vulkan-sdk
# The ./VERSION file is created by ./fetch-sources.sh:
VERSION=${VERSION:-$(cat VERSION)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
MARCH=$( uname -m )
@@ -461,7 +461,7 @@ mkdir -p build
cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -Wno-error=stringop-overflow" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
..
@@ -484,7 +484,7 @@ mkdir -p build
cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -Wno-error=stringop-truncation" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_INCLUDEDIR=include/dxc \
diff --git a/source/x/x11/build/xrdb b/source/x/x11/build/xrdb
index 00750edc..d00491fd 100644
--- a/source/x/x11/build/xrdb
+++ b/source/x/x11/build/xrdb
@@ -1 +1 @@
-3
+1
diff --git a/source/xap/fluxbox/fluxbox.SlackBuild b/source/xap/fluxbox/fluxbox.SlackBuild
index 5bb39832..934b6b0a 100755
--- a/source/xap/fluxbox/fluxbox.SlackBuild
+++ b/source/xap/fluxbox/fluxbox.SlackBuild
@@ -83,6 +83,9 @@ zcat $CWD/fluxbox.startfluxbox.dbus.diff.gz | patch -p1 --verbose || exit 1
# Fix multimedia volume keys:
zcat $CWD/fluxbox.keys.diff.gz | patch -p1 --verbose || exit 1
+# Fix build with gcc11:
+zcat $CWD/fluxbox.gcc11.patch.gz | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/xap/fluxbox/fluxbox.gcc11.patch b/source/xap/fluxbox/fluxbox.gcc11.patch
new file mode 100644
index 00000000..f0184971
--- /dev/null
+++ b/source/xap/fluxbox/fluxbox.gcc11.patch
@@ -0,0 +1,11 @@
+--- ./util/fluxbox-remote.cc.orig 2015-02-08 04:44:45.377187009 -0600
++++ ./util/fluxbox-remote.cc 2021-08-05 23:16:44.301526535 -0500
+@@ -73,7 +73,7 @@
+ if (strcmp(cmd, "result") == 0) {
+ XTextProperty text_prop;
+ if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0
+- && text_prop.value > 0
++ && text_prop.value != 0
+ && text_prop.nitems > 0) {
+
+ printf("%s", text_prop.value);
diff --git a/source/xap/mozilla-firefox/build-deps/nodejs/nodejs.build b/source/xap/mozilla-firefox/build-deps/nodejs/nodejs.build
index d0813df0..aa09beab 100755
--- a/source/xap/mozilla-firefox/build-deps/nodejs/nodejs.build
+++ b/source/xap/mozilla-firefox/build-deps/nodejs/nodejs.build
@@ -81,6 +81,9 @@ if [ ! -z $LIBDIRSUFFIX ]; then
sed -i "s|lib/|lib${LIBDIRSUFFIX}/|g" tools/install.py
fi
+# Use gcc as there have been linker failures with objects build with clang:
+CC="gcc" \
+CXX="g++" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/xap/mozilla-firefox/build-deps/nodejs/nodejs.url b/source/xap/mozilla-firefox/build-deps/nodejs/nodejs.url
index 88bd888a..75f7f4d3 100644
--- a/source/xap/mozilla-firefox/build-deps/nodejs/nodejs.url
+++ b/source/xap/mozilla-firefox/build-deps/nodejs/nodejs.url
@@ -1,2 +1,2 @@
-https://nodejs.org/dist/latest-v14.x/node-v14.17.1.tar.xz
+https://nodejs.org/dist/v10.16.0/node-v10.16.0.tar.gz
#https://github.com/nodejs/node
diff --git a/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild
index d81bea33..4b558e78 100755
--- a/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild
+++ b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild
@@ -333,8 +333,8 @@ DESTDIR=$PKG ./mach install || exit 1
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-# Clean up the build time dependencies:
-rm -rf $TMP/mozilla-firefox-build-deps
+## Clean up the build time dependencies:
+#rm -rf $TMP/mozilla-firefox-build-deps
# We don't need these (just symlinks anyway):
rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/firefox-devel-$RELEASEVER
diff --git a/source/xap/mozilla-thunderbird/build-deps/nodejs/nodejs.build b/source/xap/mozilla-thunderbird/build-deps/nodejs/nodejs.build
index 6f98074f..e07f5a72 100755
--- a/source/xap/mozilla-thunderbird/build-deps/nodejs/nodejs.build
+++ b/source/xap/mozilla-thunderbird/build-deps/nodejs/nodejs.build
@@ -81,6 +81,9 @@ if [ ! -z $LIBDIRSUFFIX ]; then
sed -i "s|lib/|lib${LIBDIRSUFFIX}/|g" tools/install.py
fi
+# Use gcc as there have been linker failures with objects build with clang:
+CC="gcc" \
+CXX="g++" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff b/source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff
index 75980927..115ba0e7 100644
--- a/source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff
+++ b/source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff
@@ -1,27 +1,31 @@
---- ./config/makefiles/rust.mk.orig 2020-08-04 21:42:49.000000000 -0500
-+++ ./config/makefiles/rust.mk 2020-08-24 21:44:11.930497037 -0500
-@@ -303,15 +303,15 @@
+--- ./config/makefiles/rust.mk.orig 2021-03-15 12:42:08.219987929 -0500
++++ ./config/makefiles/rust.mk 2021-03-15 12:43:15.996984180 -0500
+@@ -332,17 +332,17 @@
# the chance of proxy bypasses originating from rust code.
- # The check only works when rust code is built with -Clto.
+ # The check only works when rust code is built with -Clto but without MOZ_LTO_RUST_CROSS.
# Sanitizers and sancov also fail because compiler-rt hooks network functions.
-ifndef MOZ_PROFILE_GENERATE
-ifeq ($(OS_ARCH), Linux)
-ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
+-ifndef MOZ_LTO_RUST_CROSS
-ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
- $(call py_action,check_binary,--target --networking $@)
-endif
-endif
-endif
-endif
+-endif
+#ifndef MOZ_PROFILE_GENERATE
+#ifeq ($(OS_ARCH), Linux)
+#ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
++#ifndef MOZ_LTO_RUST_CROSS
+#ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
+# $(call py_action,check_binary,--target --networking $@)
+#endif
+#endif
+#endif
+#endif
++#endif
force-cargo-library-check:
$(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag)
diff --git a/source/xap/mozilla-thunderbird/mozilla-firefox.xpcom_arm.patch b/source/xap/mozilla-thunderbird/mozilla-firefox.xpcom_arm.patch
deleted file mode 100644
index 7309b55a..00000000
--- a/source/xap/mozilla-thunderbird/mozilla-firefox.xpcom_arm.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/xpcom/glue/objs.mk
-+++ a/xpcom/glue/objs.mk
-@@ -71,13 +71,13 @@ XPCOM_GLUENS_SRC_LCPPSRCS = \
- SSE.cpp \
- unused.cpp \
- nsProxyRelease.cpp \
- nsTextFormatter.cpp \
- GenericFactory.cpp \
- FileUtils.cpp \
- $(NULL)
-
--ifeq (arm,$(TARGET_CPU))
-+ifneq (,$(filter arm%,$(TARGET_CPU)))
- XPCOM_GLUENS_SRC_LCPPSRCS += arm.cpp
- endif
-
- XPCOM_GLUENS_SRC_CPPSRCS = $(addprefix $(topsrcdir)/xpcom/glue/,$(XPCOM_GLUENS_SRC_LCPPSRCS))
-
diff --git a/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild b/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild
index afc9aa5b..3ad94b60 100755
--- a/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild
+++ b/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild
@@ -50,14 +50,6 @@ LANG=C
# this to something other than "YES":
MOZ_ALLOW_DOWNGRADE=${MOZ_ALLOW_DOWNGRADE:-YES}
-# This can be set to YES or NO:
-ENABLE_CALENDAR=${ENABLE_CALENDAR:-YES}
-if [ "$ENABLE_CALENDAR" = "NO" ]; then
- ENABLE_CALENDAR="--disable-calendar"
-else
- ENABLE_CALENDAR="--enable-calendar"
-fi
-
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -192,8 +184,6 @@ fi
# Arch-dependent patches:
case "$ARCH" in
armv7hl) ARCH_CONFIG="--with-arch=armv7-a --with-float-abi=hard --with-fpu=vfpv3-d16 --disable-elf-hack"
- # Make Thunderbird compile on ARM platforms lacking neon support:
- zcat $CWD/mozilla-firefox.xpcom_arm.patch.gz | patch -p1 --verbose || exit 1
;;
*) ARCH_CONFIG=" "
;;
@@ -216,7 +206,6 @@ OPTIONS="\
--with-system-nspr \
--enable-alsa \
--enable-application=comm/mail \
- $ENABLE_CALENDAR \
--enable-default-toolkit=cairo-gtk3-wayland \
--enable-linker=$LINKER \
--disable-strip \
@@ -291,8 +280,8 @@ DESTDIR=$PKG ./mach install || exit 1
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-# Clean up the build time dependencies:
-rm -rf $TMP/mozilla-thunderbird-build-deps
+## Clean up the build time dependencies:
+#rm -rf $TMP/mozilla-thunderbird-build-deps
# We don't need these (just symlinks anyway):
rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-devel-$RELEASEVER
diff --git a/source/xap/network-manager-applet/network-manager-applet.SlackBuild b/source/xap/network-manager-applet/network-manager-applet.SlackBuild
index f033b3e1..1e39ed78 100755
--- a/source/xap/network-manager-applet/network-manager-applet.SlackBuild
+++ b/source/xap/network-manager-applet/network-manager-applet.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=network-manager-applet
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/source/xap/pan/pan.SlackBuild b/source/xap/pan/pan.SlackBuild
index d9cacee9..a7dec169 100755
--- a/source/xap/pan/pan.SlackBuild
+++ b/source/xap/pan/pan.SlackBuild
@@ -81,6 +81,8 @@ zcat $CWD/pan.glib-2.68.0.diff.gz | patch -p1 --verbose || exit 1
# Build with enchant-2:
zcat $CWD/pan.enchant2.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/pan.gcc11.diff.gz | patch -p1 --verbose || exit 1
+
# Configure:
CFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/xap/pan/pan.gcc11.diff b/source/xap/pan/pan.gcc11.diff
new file mode 100644
index 00000000..fe7e6b2f
--- /dev/null
+++ b/source/xap/pan/pan.gcc11.diff
@@ -0,0 +1,20 @@
+--- ./pan/usenet-utils/mime-utils.cc.orig 2019-09-29 16:01:34.000000000 -0500
++++ ./pan/usenet-utils/mime-utils.cc 2021-08-05 23:56:48.628393544 -0500
+@@ -1749,7 +1749,7 @@
+ #ifdef HAVE_GMIME_30
+ GMimeObject *gmo;
+ gmo = g_mime_message_get_mime_part (body);
+- if (g_mime_multipart_signed_sign (gpg_ctx, gmo, uid.c_str(), &err) <0)
++ if (g_mime_multipart_signed_sign (gpg_ctx, gmo, uid.c_str(), &err) != 0)
+ #else
+ if (g_mime_multipart_signed_sign (mps, GMIME_OBJECT (part), gpg_ctx, uid.c_str(), GMIME_DIGEST_ALGO_SHA1, &err) <0)
+ #endif
+@@ -1784,7 +1784,7 @@
+
+ #ifdef HAVE_GMIME_30
+ if (g_mime_multipart_encrypted_encrypt(gpg_ctx, GMIME_OBJECT (part), sign, uid.c_str(),
+- GMIME_ENCRYPT_NONE, rcp, &err) < 0)
++ GMIME_ENCRYPT_NONE, rcp, &err) != 0)
+ #else
+ if (g_mime_multipart_encrypted_encrypt(mpe, GMIME_OBJECT (part), gpg_ctx, sign,
+ uid.c_str(), GMIME_DIGEST_ALGO_SHA1, rcp, &err) < 0)