diff options
-rw-r--r-- | community/fzf/no-glide-install.patch | 11 | ||||
-rw-r--r-- | community/glib-networking/proxy-test.patch | 13 | ||||
-rw-r--r-- | community/gns3-gui/fix-qt5-sip.patch | 200 | ||||
-rw-r--r-- | community/gource/logmill.patch | 11 | ||||
-rw-r--r-- | community/latte-dock/fix-build.patch | 12 | ||||
-rw-r--r-- | community/libretro-bsnes/flags.patch | 33 | ||||
-rw-r--r-- | community/logstalgia/gcc6-fix.patch | 11 | ||||
-rw-r--r-- | community/minetest/fix-header-include-namespace.patch | 22 | ||||
-rw-r--r-- | community/python3-tkinter/CVE-2019-5010.patch | 116 | ||||
-rw-r--r-- | community/remmina/no-gnome-keyring.patch | 11 | ||||
-rw-r--r-- | community/remmina/remmina-1.0.0-vte2.91.patch | 50 | ||||
-rw-r--r-- | community/rippled/boost-1.69.patch | 1276 | ||||
-rw-r--r-- | community/sysprof/allow-disabling-systemdunitdir.patch | 32 | ||||
-rw-r--r-- | community/wt/960e8d017b264710e344c63f9feb6ea1fa593eeb.patch | 638 |
14 files changed, 0 insertions, 2436 deletions
diff --git a/community/fzf/no-glide-install.patch b/community/fzf/no-glide-install.patch deleted file mode 100644 index 1704ee9e227..00000000000 --- a/community/fzf/no-glide-install.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -99,7 +99,7 @@ - ln -sf $(ROOT_DIR)/vendor $(VENDOR_LINK) - - vendor: $(GLIDE_YAML) -- go get -u github.com/Masterminds/glide && $(GOPATH)/bin/glide install && touch $@ -+ touch $@ - - test: $(SOURCES) vendor - SHELL=/bin/sh GOOS= go test -v -tags "$(TAGS)" \ diff --git a/community/glib-networking/proxy-test.patch b/community/glib-networking/proxy-test.patch deleted file mode 100644 index 2cab5d9f65d..00000000000 --- a/community/glib-networking/proxy-test.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- ./Makefile.am.orig -+++ ./Makefile.am -@@ -11,9 +11,9 @@ - - if HAVE_GNOME_PROXY - SUBDIRS += proxy/gnome -+SUBDIRS += proxy/tests - endif - --SUBDIRS += proxy/tests - - if HAVE_GNUTLS - SUBDIRS += tls/gnutls diff --git a/community/gns3-gui/fix-qt5-sip.patch b/community/gns3-gui/fix-qt5-sip.patch deleted file mode 100644 index 0712fc4497f..00000000000 --- a/community/gns3-gui/fix-qt5-sip.patch +++ /dev/null @@ -1,200 +0,0 @@ -diff --git a/gns3/console_cmd.py b/gns3/console_cmd.py -index 5e630f43..b1d0673a 100644 ---- a/gns3/console_cmd.py -+++ b/gns3/console_cmd.py -@@ -22,7 +22,7 @@ Handles commands typed in the GNS3 console. - import sys - import cmd - import struct --import sip -+from .qt import sip - import json - - from .node import Node -diff --git a/gns3/console_view.py b/gns3/console_view.py -index 10edb860..365f7bc1 100644 ---- a/gns3/console_view.py -+++ b/gns3/console_view.py -@@ -16,7 +16,7 @@ - # along with this program. If not, see <http://www.gnu.org/licenses/>. - - import sys --import sip -+from .qt import sip - import struct - import inspect - import datetime -diff --git a/gns3/crash_report.py b/gns3/crash_report.py -index bc37d061..a9379e16 100644 ---- a/gns3/crash_report.py -+++ b/gns3/crash_report.py -@@ -132,7 +132,7 @@ class CrashReport: - def _add_qt_information(self, context): - try: - from .qt import QtCore -- import sip -+ from .qt import sip - except ImportError: - return context - context["psutil:version"] = psutil.__version__ -diff --git a/gns3/dialogs/appliance_wizard.py b/gns3/dialogs/appliance_wizard.py -index 06f2bf2a..8ab386b4 100644 ---- a/gns3/dialogs/appliance_wizard.py -+++ b/gns3/dialogs/appliance_wizard.py -@@ -16,7 +16,7 @@ - # along with this program. If not, see <http://www.gnu.org/licenses/>. - - import os --import sip -+from ..qt import sip - import shutil - - from ..qt import QtWidgets, QtCore, QtGui, qpartial, qslot -diff --git a/gns3/graphics_view.py b/gns3/graphics_view.py -index 517bfaaf..da058385 100644 ---- a/gns3/graphics_view.py -+++ b/gns3/graphics_view.py -@@ -21,7 +21,7 @@ Graphical view on the scene where items are drawn. - - import logging - import os --import sip -+from .qt import sip - import sys - - from .qt import QtCore, QtGui, QtNetwork, QtWidgets, qpartial, qslot -diff --git a/gns3/http_client.py b/gns3/http_client.py -index c0ceca69..6993bf58 100644 ---- a/gns3/http_client.py -+++ b/gns3/http_client.py -@@ -15,7 +15,7 @@ - # You should have received a copy of the GNU General Public License - # along with this program. If not, see <http://www.gnu.org/licenses/>. - --import sip -+from .qt import sip - import json - import copy - import http -diff --git a/gns3/items/node_item.py b/gns3/items/node_item.py -index cac82e70..b4ec7930 100644 ---- a/gns3/items/node_item.py -+++ b/gns3/items/node_item.py -@@ -19,7 +19,7 @@ - Graphical representation of a node on the QGraphicsScene. - """ - --import sip -+from ..qt import sip - - from ..qt import QtCore, QtGui, QtWidgets, QtSvg, qslot - from ..qt.qimage_svg_renderer import QImageSvgRenderer -diff --git a/gns3/link.py b/gns3/link.py -index 1cd634c0..323823b1 100644 ---- a/gns3/link.py -+++ b/gns3/link.py -@@ -21,7 +21,7 @@ Manages and stores everything needed for a connection between 2 devices. - - import os - import re --import sip -+from .qt import sip - import uuid - - from .qt import QtCore, QtWidgets -diff --git a/gns3/nodes_view.py b/gns3/nodes_view.py -index 463a63fe..16f51ed4 100644 ---- a/gns3/nodes_view.py -+++ b/gns3/nodes_view.py -@@ -22,7 +22,7 @@ on the QGraphics scene. - - import tempfile - import json --import sip -+from .qt import sip - - from .qt import QtCore, QtGui, QtWidgets, qpartial - from .modules import MODULES -diff --git a/gns3/ports/port.py b/gns3/ports/port.py -index 66776a33..3425df0a 100644 ---- a/gns3/ports/port.py -+++ b/gns3/ports/port.py -@@ -19,7 +19,7 @@ - Base class for port objects. - """ - --import sip -+from ..qt import sip - - from ..qt import qslot - -diff --git a/gns3/progress.py b/gns3/progress.py -index 4f167bbd..33135513 100644 ---- a/gns3/progress.py -+++ b/gns3/progress.py -@@ -15,7 +15,7 @@ - # You should have received a copy of the GNU General Public License - # along with this program. If not, see <http://www.gnu.org/licenses/>. - --import sip -+from .qt import sip - import time - from contextlib import contextmanager - -diff --git a/gns3/qt/__init__.py b/gns3/qt/__init__.py -index b8d9550e..ae88c4bf 100644 ---- a/gns3/qt/__init__.py -+++ b/gns3/qt/__init__.py -@@ -24,7 +24,6 @@ Compatibility layer for Qt bindings, so it is easier to switch to PySide if need - - - import sys --import sip - import os - import re - import inspect -@@ -33,12 +32,17 @@ import functools - import logging - log = logging.getLogger("qt/__init__.py") - -+try: -+ import sip -+except ImportError: -+ from PyQt5 import sip - from PyQt5 import QtCore, QtGui, QtNetwork, QtWidgets, Qt - sys.modules[__name__ + '.QtCore'] = QtCore - sys.modules[__name__ + '.QtGui'] = QtGui - sys.modules[__name__ + '.QtNetwork'] = QtNetwork - sys.modules[__name__ + '.QtWidgets'] = QtWidgets - sys.modules[__name__ + '.Qt'] = Qt -+sys.modules[__name__ + '.sip'] = sip - - try: - from PyQt5 import QtSvg -diff --git a/gns3/utils/progress_dialog.py b/gns3/utils/progress_dialog.py -index b6a84af9..9742e1b3 100644 ---- a/gns3/utils/progress_dialog.py -+++ b/gns3/utils/progress_dialog.py -@@ -19,7 +19,7 @@ - Progress dialog that blocking tasks (file operations, network connections etc.) - """ - --import sip -+from ..qt import sip - from gns3.version import __version__ - from ..qt import QtWidgets, QtCore, qslot - -diff --git a/gns3/utils/wait_for_lambda_worker.py b/gns3/utils/wait_for_lambda_worker.py -index 78a5207a..d24a3cb0 100644 ---- a/gns3/utils/wait_for_lambda_worker.py -+++ b/gns3/utils/wait_for_lambda_worker.py -@@ -19,7 +19,7 @@ - Thread showing a progress dialog and running the code from a lambda - """ - --import sip -+from ..qt import sip - - from ..qt import QtCore - - diff --git a/community/gource/logmill.patch b/community/gource/logmill.patch deleted file mode 100644 index 4ed4e998f99..00000000000 --- a/community/gource/logmill.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./src/logmill.cpp.orig -+++ ./src/logmill.cpp -@@ -176,7 +176,7 @@ RCommitLog* RLogMill::fetchLog(std::string& log_format) { - logfile = repo_path.string(); - } - } -- } catch(boost::filesystem3::filesystem_error& error) { -+ } catch(boost::filesystem::filesystem_error& error) { - } - } - diff --git a/community/latte-dock/fix-build.patch b/community/latte-dock/fix-build.patch deleted file mode 100644 index a1af4933544..00000000000 --- a/community/latte-dock/fix-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index deadb48..fcf6d67 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -76,7 +76,5 @@ add_subdirectory(icons) - add_subdirectory(plasmoid) - add_subdirectory(shell) - --ki18n_install(${CMAKE_CURRENT_BINARY_DIR}/po) -- - find_package(KF5I18n CONFIG REQUIRED) - ki18n_install(po) diff --git a/community/libretro-bsnes/flags.patch b/community/libretro-bsnes/flags.patch deleted file mode 100644 index aa05ec1dfc1..00000000000 --- a/community/libretro-bsnes/flags.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -rupN libretro-bsnes.orig/.git/FETCH_HEAD libretro-bsnes/.git/FETCH_HEAD ---- libretro-bsnes.orig/.git/FETCH_HEAD 1970-01-01 01:00:00.000000000 +0100 -+++ libretro-bsnes/.git/FETCH_HEAD 2018-12-07 18:31:25.943337424 +0100 -@@ -0,0 +1,3 @@ -+2a0b1a4f0b47100a781e025b085cb7ed88798527 not-for-merge branch '096' of /home/alucryd/Packages/src/libretro-bsnes -+c6e90ddcdfdc5ca1b56319df662912b3c026d78f not-for-merge branch 'libretro' of /home/alucryd/Packages/src/libretro-bsnes -+95350550af6c76b57593dea980b5c3a27e5bf09e not-for-merge branch 'master' of /home/alucryd/Packages/src/libretro-bsnes -Binary files libretro-bsnes.orig/.git/index and libretro-bsnes/.git/index differ -diff -rupN libretro-bsnes.orig/Makefile libretro-bsnes/Makefile ---- libretro-bsnes.orig/Makefile 2018-12-07 18:09:48.766873570 +0100 -+++ libretro-bsnes/Makefile 2018-12-07 18:22:39.006021877 +0100 -@@ -32,7 +32,8 @@ sfc_lagfix := 1 - ifeq ($(DEBUG), 1) - flags := -I. -Ilibco -O0 -g - else -- flags := -I. -Ilibco -O3 -fomit-frame-pointer -+ flags := $(CFLAGS) -I. -Ilibco -fomit-frame-pointer -+ link := $(LDFLAGS) - endif - - cflags := -std=gnu99 -xc -diff -rupN libretro-bsnes.orig/target-libretro/Makefile libretro-bsnes/target-libretro/Makefile ---- libretro-bsnes.orig/target-libretro/Makefile 2018-12-07 18:09:48.813540589 +0100 -+++ libretro-bsnes/target-libretro/Makefile 2018-12-07 18:31:23.149982988 +0100 -@@ -46,7 +46,7 @@ obj/libretro-$(profile).o: $(ui)/libretr - #targets - build: $(objects) - ifeq ($(platform),linux) -- $(compiler) -o out/bsnes_$(profile)_libretro.so -shared $(objects) -ldl -Wl,--no-undefined -Wl,--version-script=$(ui)/link.T -+ $(compiler) -o out/bsnes_$(profile)_libretro.so $(link) -shared $(objects) -ldl -Wl,--no-undefined -Wl,--version-script=$(ui)/link.T - else ifneq (,$(findstring ios,$(platform))) - ifeq ($(platform),ios-arm64) - $(compiler) -o out/bsnes_$(profile)_libretro_ios.dylib -dynamiclib $(objects) -isysroot $(IOSSDK) -arch arm64 diff --git a/community/logstalgia/gcc6-fix.patch b/community/logstalgia/gcc6-fix.patch deleted file mode 100644 index 1033af44a98..00000000000 --- a/community/logstalgia/gcc6-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./src/paddle.cpp.orig -+++ ./src/paddle.cpp -@@ -95,7 +95,7 @@ - - bool Paddle::mouseOver(TextArea& textarea, vec2& mouse) { - -- if(pos.x <= mouse.x && pos.x + width >= mouse.x && abs(pos.y - mouse.y) < height/2) { -+ if(pos.x <= mouse.x && pos.x + width >= mouse.x && abs(int(pos.y) - int(mouse.y)) < height/2) { - - std::vector<std::string> content; - diff --git a/community/minetest/fix-header-include-namespace.patch b/community/minetest/fix-header-include-namespace.patch deleted file mode 100644 index d2f1cac76cb..00000000000 --- a/community/minetest/fix-header-include-namespace.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/src/porting.h b/src/porting.h -index 492c9d3..39499ef 100644 ---- a/src/porting.h -+++ b/src/porting.h -@@ -59,6 +59,8 @@ with this program; if not, write to the Free Software Foundation, Inc., - #else - #include <unistd.h> - #include <stdint.h> //for uintptr_t -+ #include <sys/time.h> -+ #include <time.h> - - #if (defined(linux) || defined(__linux) || defined(__GNU__)) && !defined(_GNU_SOURCE) - #define _GNU_SOURCE -@@ -190,8 +192,6 @@ void initIrrlicht(irr::IrrlichtDevice * ); - } - - #else // Posix --#include <sys/time.h> --#include <time.h> - #if defined(__MACH__) && defined(__APPLE__) - #include <mach/clock.h> - #include <mach/mach.h> diff --git a/community/python3-tkinter/CVE-2019-5010.patch b/community/python3-tkinter/CVE-2019-5010.patch deleted file mode 100644 index f2ba16360b2..00000000000 --- a/community/python3-tkinter/CVE-2019-5010.patch +++ /dev/null @@ -1,116 +0,0 @@ -From bc947d7cd67c96cbfbc55dd53bce52392bd6f80d Mon Sep 17 00:00:00 2001 -From: Christian Heimes <christian@python.org> -Date: Tue, 15 Jan 2019 23:47:42 +0100 -Subject: [PATCH] bpo-35746: Fix segfault in ssl's cert parser (GH-11569) - -Fix a NULL pointer deref in ssl module. The cert parser did not handle CRL -distribution points with empty DP or URI correctly. A malicious or buggy -certificate can result into segfault. - -Signed-off-by: Christian Heimes <christian@python.org> - -https://bugs.python.org/issue35746 -(cherry picked from commit a37f52436f9aa4b9292878b72f3ff1480e2606c3) - -Co-authored-by: Christian Heimes <christian@python.org> ---- - Lib/test/talos-2019-0758.pem | 22 +++++++++++++++++++ - Lib/test/test_ssl.py | 22 +++++++++++++++++++ - .../2019-01-15-18-16-05.bpo-35746.nMSd0j.rst | 3 +++ - Modules/_ssl.c | 4 ++++ - 4 files changed, 51 insertions(+) - create mode 100644 Lib/test/talos-2019-0758.pem - create mode 100644 Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst - -diff --git a/Lib/test/talos-2019-0758.pem b/Lib/test/talos-2019-0758.pem -new file mode 100644 -index 000000000000..13b95a77fd8a ---- /dev/null -+++ b/Lib/test/talos-2019-0758.pem -@@ -0,0 +1,22 @@ -+-----BEGIN CERTIFICATE----- -+MIIDqDCCApKgAwIBAgIBAjALBgkqhkiG9w0BAQswHzELMAkGA1UEBhMCVUsxEDAO -+BgNVBAMTB2NvZHktY2EwHhcNMTgwNjE4MTgwMDU4WhcNMjgwNjE0MTgwMDU4WjA7 -+MQswCQYDVQQGEwJVSzEsMCoGA1UEAxMjY29kZW5vbWljb24tdm0tMi50ZXN0Lmxh -+bC5jaXNjby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC63fGB -+J80A9Av1GB0bptslKRIUtJm8EeEu34HkDWbL6AJY0P8WfDtlXjlPaLqFa6sqH6ES -+V48prSm1ZUbDSVL8R6BYVYpOlK8/48xk4pGTgRzv69gf5SGtQLwHy8UPBKgjSZoD -+5a5k5wJXGswhKFFNqyyxqCvWmMnJWxXTt2XDCiWc4g4YAWi4O4+6SeeHVAV9rV7C -+1wxqjzKovVe2uZOHjKEzJbbIU6JBPb6TRfMdRdYOw98n1VXDcKVgdX2DuuqjCzHP -+WhU4Tw050M9NaK3eXp4Mh69VuiKoBGOLSOcS8reqHIU46Reg0hqeL8LIL6OhFHIF -+j7HR6V1X6F+BfRS/AgMBAAGjgdYwgdMwCQYDVR0TBAIwADAdBgNVHQ4EFgQUOktp -+HQjxDXXUg8prleY9jeLKeQ4wTwYDVR0jBEgwRoAUx6zgPygZ0ZErF9sPC4+5e2Io -+UU+hI6QhMB8xCzAJBgNVBAYTAlVLMRAwDgYDVQQDEwdjb2R5LWNhggkA1QEAuwb7 -+2s0wCQYDVR0SBAIwADAuBgNVHREEJzAlgiNjb2Rlbm9taWNvbi12bS0yLnRlc3Qu -+bGFsLmNpc2NvLmNvbTAOBgNVHQ8BAf8EBAMCBaAwCwYDVR0fBAQwAjAAMAsGCSqG -+SIb3DQEBCwOCAQEAvqantx2yBlM11RoFiCfi+AfSblXPdrIrHvccepV4pYc/yO6p -+t1f2dxHQb8rWH3i6cWag/EgIZx+HJQvo0rgPY1BFJsX1WnYf1/znZpkUBGbVmlJr -+t/dW1gSkNS6sPsM0Q+7HPgEv8CPDNK5eo7vU2seE0iWOkxSyVUuiCEY9ZVGaLVit -+p0C78nZ35Pdv4I+1cosmHl28+es1WI22rrnmdBpH8J1eY6WvUw2xuZHLeNVN0TzV -+Q3qq53AaCWuLOD1AjESWuUCxMZTK9DPS4JKXTK8RLyDeqOvJGjsSWp3kL0y3GaQ+ -+10T1rfkKJub2+m9A9duin1fn6tHc2wSvB7m3DA== -+-----END CERTIFICATE----- -diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py -index 705f1d3245b6..0aeabc10f2a9 100644 ---- a/Lib/test/test_ssl.py -+++ b/Lib/test/test_ssl.py -@@ -79,6 +79,7 @@ def data_file(*name): - BADKEY = data_file("badkey.pem") - NOKIACERT = data_file("nokia.pem") - NULLBYTECERT = data_file("nullbytecert.pem") -+TALOS_INVALID_CRLDP = data_file("talos-2019-0758.pem") - - DHFILE = data_file("ffdh3072.pem") - BYTES_DHFILE = os.fsencode(DHFILE) -@@ -293,6 +294,27 @@ def test_parse_cert(self): - self.assertEqual(p['crlDistributionPoints'], - ('http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl',)) - -+ def test_parse_cert_CVE_2019_5010(self): -+ p = ssl._ssl._test_decode_cert(TALOS_INVALID_CRLDP) -+ if support.verbose: -+ sys.stdout.write("\n" + pprint.pformat(p) + "\n") -+ self.assertEqual( -+ p, -+ { -+ 'issuer': ( -+ (('countryName', 'UK'),), (('commonName', 'cody-ca'),)), -+ 'notAfter': 'Jun 14 18:00:58 2028 GMT', -+ 'notBefore': 'Jun 18 18:00:58 2018 GMT', -+ 'serialNumber': '02', -+ 'subject': ((('countryName', 'UK'),), -+ (('commonName', -+ 'codenomicon-vm-2.test.lal.cisco.com'),)), -+ 'subjectAltName': ( -+ ('DNS', 'codenomicon-vm-2.test.lal.cisco.com'),), -+ 'version': 3 -+ } -+ ) -+ - def test_parse_cert_CVE_2013_4238(self): - p = ssl._ssl._test_decode_cert(NULLBYTECERT) - if support.verbose: -diff --git a/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst b/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst -new file mode 100644 -index 000000000000..dffe347eec84 ---- /dev/null -+++ b/Misc/NEWS.d/next/Security/2019-01-15-18-16-05.bpo-35746.nMSd0j.rst -@@ -0,0 +1,3 @@ -+[CVE-2019-5010] Fix a NULL pointer deref in ssl module. The cert parser did -+not handle CRL distribution points with empty DP or URI correctly. A -+malicious or buggy certificate can result into segfault. -diff --git a/Modules/_ssl.c b/Modules/_ssl.c -index a188d6a7291a..7365630a5eaf 100644 ---- a/Modules/_ssl.c -+++ b/Modules/_ssl.c -@@ -1338,6 +1338,10 @@ _get_crl_dp(X509 *certificate) { - STACK_OF(GENERAL_NAME) *gns; - - dp = sk_DIST_POINT_value(dps, i); -+ if (dp->distpoint == NULL) { -+ /* Ignore empty DP value, CVE-2019-5010 */ -+ continue; -+ } - gns = dp->distpoint->name.fullname; - - for (j=0; j < sk_GENERAL_NAME_num(gns); j++) { diff --git a/community/remmina/no-gnome-keyring.patch b/community/remmina/no-gnome-keyring.patch deleted file mode 100644 index fed2768a43f..00000000000 --- a/community/remmina/no-gnome-keyring.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./CMakeLists.txt.orig -+++ ./CMakeLists.txt -@@ -96,7 +96,7 @@ - if(GTK_FOUND) - add_subdirectory(remmina) - add_subdirectory(remmina-plugins) -- add_subdirectory(remmina-plugins-gnome) -+# add_subdirectory(remmina-plugins-gnome) - endif() - - find_suggested_package(AVAHI) diff --git a/community/remmina/remmina-1.0.0-vte2.91.patch b/community/remmina/remmina-1.0.0-vte2.91.patch deleted file mode 100644 index 25014c629ca..00000000000 --- a/community/remmina/remmina-1.0.0-vte2.91.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff -up ./cmake/FindVTE.cmake.vte ./cmake/FindVTE.cmake ---- ./cmake/FindVTE.cmake.vte 2012-02-10 20:54:23.000000000 +0200 -+++ ./cmake/FindVTE.cmake 2014-06-08 11:14:23.778316473 +0300 -@@ -21,12 +21,10 @@ if(NOT _VTE_VERSION_NUM) - set(_VTE_LIB_NAME vte) - set(_VTE_VERSION vte) - else() -- set(_VTE_LIB_NAME vte${_VTE_VERSION_NUM}) -+ set(_VTE_LIB_NAME vte-${_VTE_VERSION_NUM}) - set(_VTE_VERSION vte-${_VTE_VERSION_NUM}) - endif() - --string(REPLACE . _ _VTE_LIB_NAME ${_VTE_LIB_NAME}) -- - pkg_check_modules(PC_VTE ${_VTE_VERSION}) - - find_path(VTE_INCLUDE_DIR NAMES vte/vte.h -diff -up ./remmina/CMakeLists.txt.vte ./remmina/CMakeLists.txt ---- ./remmina/CMakeLists.txt.vte 2014-06-08 11:14:23.634322160 +0300 -+++ ./remmina/CMakeLists.txt 2014-06-08 11:14:23.777316512 +0300 -@@ -120,7 +120,7 @@ if(AVAHI_FOUND) - endif() - - if(GTK3_FOUND) -- set(_VTE_VERSION_NUM 2.90) -+ set(_VTE_VERSION_NUM 2.91) - else() - set(_VTE_VERSION_NUM) - endif() -diff -up ./remmina/src/remmina_ssh_plugin.c.vte ./remmina/src/remmina_ssh_plugin.c ---- ./remmina/src/remmina_ssh_plugin.c.vte 2012-02-10 20:54:23.000000000 +0200 -+++ ./remmina/src/remmina_ssh_plugin.c 2014-06-08 11:43:08.341286290 +0300 -@@ -169,7 +169,7 @@ remmina_plugin_ssh_set_vte_pref (Remmina - gpdata = (RemminaPluginSshData*) g_object_get_data (G_OBJECT(gp), "plugin-data"); - if (remmina_pref.vte_font && remmina_pref.vte_font[0]) - { -- vte_terminal_set_font_from_string (VTE_TERMINAL (gpdata->vte), remmina_pref.vte_font); -+ vte_terminal_set_font (VTE_TERMINAL (gpdata->vte), pango_font_description_from_string (remmina_pref.vte_font)); - } - vte_terminal_set_allow_bold (VTE_TERMINAL (gpdata->vte), remmina_pref.vte_allow_bold_text); - if (remmina_pref.vte_lines > 0) -@@ -205,7 +205,7 @@ remmina_plugin_ssh_init (RemminaProtocol - - remmina_plugin_service->protocol_plugin_register_hostkey (gp, vte); - -- vscrollbar = gtk_vscrollbar_new (vte_terminal_get_adjustment (VTE_TERMINAL (vte))); -+ vscrollbar = gtk_vscrollbar_new (gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (vte))); - gtk_widget_show(vscrollbar); - gtk_box_pack_start (GTK_BOX (hbox), vscrollbar, FALSE, TRUE, 0); - } diff --git a/community/rippled/boost-1.69.patch b/community/rippled/boost-1.69.patch deleted file mode 100644 index f3894fd6e8f..00000000000 --- a/community/rippled/boost-1.69.patch +++ /dev/null @@ -1,1276 +0,0 @@ -From 9695fd44bae802e6ad9a6f9a2011e4693e2e5ac4 Mon Sep 17 00:00:00 2001 -From: seelabs <scott.determan@yahoo.com> -Date: Wed, 12 Dec 2018 10:06:45 -0500 -Subject: [PATCH] Support boost 1.69 - ---- - Builds/CMake/FindBoost.cmake | 669 +++++++++--------- - .../container/detail/aged_ordered_container.h | 34 +- - .../detail/aged_unordered_container.h | 32 +- - .../detail/empty_base_optimization.h | 98 +++ - src/ripple/server/impl/BaseWSPeer.h | 18 +- - 5 files changed, 497 insertions(+), 354 deletions(-) - create mode 100644 src/ripple/beast/container/detail/empty_base_optimization.h - -diff --git a/Builds/CMake/FindBoost.cmake b/Builds/CMake/FindBoost.cmake -index 8ad1481fe4..ce307fad7f 100644 ---- a/Builds/CMake/FindBoost.cmake -+++ b/Builds/CMake/FindBoost.cmake -@@ -1,237 +1,242 @@ - # Distributed under the OSI-approved BSD 3-Clause License. See accompanying - # file Copyright.txt or https://cmake.org/licensing for details. - --#.rst: --# FindBoost --# --------- --# --# Find Boost include dirs and libraries --# --# Use this module by invoking find_package with the form:: --# --# find_package(Boost --# [version] [EXACT] # Minimum or EXACT version e.g. 1.67.0 --# [REQUIRED] # Fail with error if Boost is not found --# [COMPONENTS <libs>...] # Boost libraries by their canonical name --# # e.g. "date_time" for "libboost_date_time" --# [OPTIONAL_COMPONENTS <libs>...] --# # Optional Boost libraries by their canonical name) --# ) # e.g. "date_time" for "libboost_date_time" --# --# This module finds headers and requested component libraries OR a CMake --# package configuration file provided by a "Boost CMake" build. For the --# latter case skip to the "Boost CMake" section below. For the former --# case results are reported in variables:: --# --# Boost_FOUND - True if headers and requested libraries were found --# Boost_INCLUDE_DIRS - Boost include directories --# Boost_LIBRARY_DIRS - Link directories for Boost libraries --# Boost_LIBRARIES - Boost component libraries to be linked --# Boost_<C>_FOUND - True if component <C> was found (<C> is upper-case) --# Boost_<C>_LIBRARY - Libraries to link for component <C> (may include --# target_link_libraries debug/optimized keywords) --# Boost_VERSION - BOOST_VERSION value from boost/version.hpp --# Boost_LIB_VERSION - Version string appended to library filenames --# Boost_MAJOR_VERSION - Boost major version number (X in X.y.z) --# Boost_MINOR_VERSION - Boost minor version number (Y in x.Y.z) --# Boost_SUBMINOR_VERSION - Boost subminor version number (Z in x.y.Z) --# Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows) --# - Pass to add_definitions() to have diagnostic --# information about Boost's automatic linking --# displayed during compilation --# --# Note that Boost Python components require a Python version suffix --# (Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the --# versions built against Python 3.6 and 2.7, respectively. This also --# applies to additional components using Python including --# ``mpi_python`` and ``numpy``. Earlier Boost releases may use --# distribution-specific suffixes such as ``2``, ``3`` or ``2.7``. --# These may also be used as suffixes, but note that they are not --# portable. --# --# This module reads hints about search locations from variables:: --# --# BOOST_ROOT - Preferred installation prefix --# (or BOOSTROOT) --# BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include --# BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib --# Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not --# specified by these hint variables. Default is OFF. --# Boost_ADDITIONAL_VERSIONS --# - List of Boost versions not known to this module --# (Boost install locations may contain the version) --# --# and saves search results persistently in CMake cache entries:: --# --# Boost_INCLUDE_DIR - Directory containing Boost headers --# Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries --# Boost_LIBRARY_DIR_DEBUG - Directory containing debug Boost libraries --# Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant --# Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant --# --# The following :prop_tgt:`IMPORTED` targets are also defined:: --# --# Boost::boost - Target for header-only dependencies --# (Boost include directory) --# Boost::<C> - Target for specific component dependency --# (shared or static library); <C> is lower- --# case --# Boost::diagnostic_definitions - interface target to enable diagnostic --# information about Boost's automatic linking --# during compilation (adds BOOST_LIB_DIAGNOSTIC) --# Boost::disable_autolinking - interface target to disable automatic --# linking with MSVC (adds BOOST_ALL_NO_LIB) --# Boost::dynamic_linking - interface target to enable dynamic linking --# linking with MSVC (adds BOOST_ALL_DYN_LINK) --# --# Implicit dependencies such as Boost::filesystem requiring --# Boost::system will be automatically detected and satisfied, even --# if system is not specified when using find_package and if --# Boost::system is not added to target_link_libraries. If using --# Boost::thread, then Threads::Threads will also be added automatically. --# --# It is important to note that the imported targets behave differently --# than variables created by this module: multiple calls to --# find_package(Boost) in the same directory or sub-directories with --# different options (e.g. static or shared) will not override the --# values of the targets created by the first call. --# --# Users may set these hints or results as cache entries. Projects --# should not read these entries directly but instead use the above --# result variables. Note that some hint names start in upper-case --# "BOOST". One may specify these as environment variables if they are --# not specified as CMake variables or cache entries. --# --# This module first searches for the Boost header files using the above --# hint variables (excluding BOOST_LIBRARYDIR) and saves the result in --# Boost_INCLUDE_DIR. Then it searches for requested component libraries --# using the above hints (excluding BOOST_INCLUDEDIR and --# Boost_ADDITIONAL_VERSIONS), "lib" directories near Boost_INCLUDE_DIR, --# and the library name configuration settings below. It saves the --# library directories in Boost_LIBRARY_DIR_DEBUG and --# Boost_LIBRARY_DIR_RELEASE and individual library --# locations in Boost_<C>_LIBRARY_DEBUG and Boost_<C>_LIBRARY_RELEASE. --# When one changes settings used by previous searches in the same build --# tree (excluding environment variables) this module discards previous --# search results affected by the changes and searches again. --# --# Boost libraries come in many variants encoded in their file name. --# Users or projects may tell this module which variant to find by --# setting variables:: --# --# Boost_USE_DEBUG_LIBS - Set to ON or OFF to specify whether to search --# and use the debug libraries. Default is ON. --# Boost_USE_RELEASE_LIBS - Set to ON or OFF to specify whether to search --# and use the release libraries. Default is ON. --# Boost_USE_MULTITHREADED - Set to OFF to use the non-multithreaded --# libraries ('mt' tag). Default is ON. --# Boost_USE_STATIC_LIBS - Set to ON to force the use of the static --# libraries. Default is OFF. --# Boost_USE_STATIC_RUNTIME - Set to ON or OFF to specify whether to use --# libraries linked statically to the C++ runtime --# ('s' tag). Default is platform dependent. --# Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use --# libraries linked to the MS debug C++ runtime --# ('g' tag). Default is ON. --# Boost_USE_DEBUG_PYTHON - Set to ON to use libraries compiled with a --# debug Python build ('y' tag). Default is OFF. --# Boost_USE_STLPORT - Set to ON to use libraries compiled with --# STLPort ('p' tag). Default is OFF. --# Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS --# - Set to ON to use libraries compiled with --# STLPort deprecated "native iostreams" --# ('n' tag). Default is OFF. --# Boost_COMPILER - Set to the compiler-specific library suffix --# (e.g. "-gcc43"). Default is auto-computed --# for the C++ compiler in use. A list may be --# used if multiple compatible suffixes should --# be tested for, in decreasing order of --# preference. --# Boost_THREADAPI - Suffix for "thread" component library name, --# such as "pthread" or "win32". Names with --# and without this suffix will both be tried. --# Boost_NAMESPACE - Alternate namespace used to build boost with --# e.g. if set to "myboost", will search for --# myboost_thread instead of boost_thread. --# --# Other variables one may set to control this module are:: --# --# Boost_DEBUG - Set to ON to enable debug output from FindBoost. --# Please enable this before filing any bug report. --# Boost_DETAILED_FAILURE_MSG --# - Set to ON to add detailed information to the --# failure message even when the REQUIRED option --# is not given to the find_package call. --# Boost_REALPATH - Set to ON to resolve symlinks for discovered --# libraries to assist with packaging. For example, --# the "system" component library may be resolved to --# "/usr/lib/libboost_system.so.1.67.0" instead of --# "/usr/lib/libboost_system.so". This does not --# affect linking and should not be enabled unless --# the user needs this information. --# Boost_LIBRARY_DIR - Default value for Boost_LIBRARY_DIR_RELEASE and --# Boost_LIBRARY_DIR_DEBUG. --# --# On Visual Studio and Borland compilers Boost headers request automatic --# linking to corresponding libraries. This requires matching libraries --# to be linked explicitly or available in the link library search path. --# In this case setting Boost_USE_STATIC_LIBS to OFF may not achieve --# dynamic linking. Boost automatic linking typically requests static --# libraries with a few exceptions (such as Boost.Python). Use:: --# --# add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) --# --# to ask Boost to report information about automatic linking requests. --# --# Example to find Boost headers only:: --# --# find_package(Boost 1.36.0) --# if(Boost_FOUND) --# include_directories(${Boost_INCLUDE_DIRS}) --# add_executable(foo foo.cc) --# endif() --# --# Example to find Boost libraries and use imported targets:: --# --# find_package(Boost 1.56 REQUIRED COMPONENTS --# date_time filesystem iostreams) --# add_executable(foo foo.cc) --# target_link_libraries(foo Boost::date_time Boost::filesystem --# Boost::iostreams) --# --# Example to find Boost Python 3.6 libraries and use imported targets:: --# --# find_package(Boost 1.67 REQUIRED COMPONENTS --# python36 numpy36) --# add_executable(foo foo.cc) --# target_link_libraries(foo Boost::python36 Boost::numpy36) --# --# Example to find Boost headers and some *static* (release only) libraries:: --# --# set(Boost_USE_STATIC_LIBS ON) # only find static libs --# set(Boost_USE_DEBUG_LIBS OFF) # ignore debug libs and --# set(Boost_USE_RELEASE_LIBS ON) # only find release libs --# set(Boost_USE_MULTITHREADED ON) --# set(Boost_USE_STATIC_RUNTIME OFF) --# find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...) --# if(Boost_FOUND) --# include_directories(${Boost_INCLUDE_DIRS}) --# add_executable(foo foo.cc) --# target_link_libraries(foo ${Boost_LIBRARIES}) --# endif() --# --# Boost CMake --# ^^^^^^^^^^^ --# --# If Boost was built using the boost-cmake project it provides a package --# configuration file for use with find_package's Config mode. This --# module looks for the package configuration file called --# BoostConfig.cmake or boost-config.cmake and stores the result in cache --# entry "Boost_DIR". If found, the package configuration file is loaded --# and this module returns with no further action. See documentation of --# the Boost CMake package configuration for details on what it provides. --# --# Set Boost_NO_BOOST_CMAKE to ON to disable the search for boost-cmake. -+#[=======================================================================[.rst: -+FindBoost -+--------- -+ -+Find Boost include dirs and libraries -+ -+Use this module by invoking find_package with the form:: -+ -+ find_package(Boost -+ [version] [EXACT] # Minimum or EXACT version e.g. 1.67.0 -+ [REQUIRED] # Fail with error if Boost is not found -+ [COMPONENTS <libs>...] # Boost libraries by their canonical name -+ # e.g. "date_time" for "libboost_date_time" -+ [OPTIONAL_COMPONENTS <libs>...] -+ # Optional Boost libraries by their canonical name) -+ ) # e.g. "date_time" for "libboost_date_time" -+ -+This module finds headers and requested component libraries OR a CMake -+package configuration file provided by a "Boost CMake" build. For the -+latter case skip to the "Boost CMake" section below. For the former -+case results are reported in variables:: -+ -+ Boost_FOUND - True if headers and requested libraries were found -+ Boost_INCLUDE_DIRS - Boost include directories -+ Boost_LIBRARY_DIRS - Link directories for Boost libraries -+ Boost_LIBRARIES - Boost component libraries to be linked -+ Boost_<C>_FOUND - True if component <C> was found (<C> is upper-case) -+ Boost_<C>_LIBRARY - Libraries to link for component <C> (may include -+ target_link_libraries debug/optimized keywords) -+ Boost_VERSION - BOOST_VERSION value from boost/version.hpp -+ Boost_LIB_VERSION - Version string appended to library filenames -+ Boost_MAJOR_VERSION - Boost major version number (X in X.y.z) -+ Boost_MINOR_VERSION - Boost minor version number (Y in x.Y.z) -+ Boost_SUBMINOR_VERSION - Boost subminor version number (Z in x.y.Z) -+ Boost_VERSION_STRING - Boost version number in x.y.z format -+ Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows) -+ - Pass to add_definitions() to have diagnostic -+ information about Boost's automatic linking -+ displayed during compilation -+ -+Note that Boost Python components require a Python version suffix -+(Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the -+versions built against Python 3.6 and 2.7, respectively. This also -+applies to additional components using Python including -+``mpi_python`` and ``numpy``. Earlier Boost releases may use -+distribution-specific suffixes such as ``2``, ``3`` or ``2.7``. -+These may also be used as suffixes, but note that they are not -+portable. -+ -+This module reads hints about search locations from variables:: -+ -+ BOOST_ROOT - Preferred installation prefix -+ (or BOOSTROOT) -+ BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include -+ BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib -+ Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not -+ specified by these hint variables. Default is OFF. -+ Boost_ADDITIONAL_VERSIONS -+ - List of Boost versions not known to this module -+ (Boost install locations may contain the version) -+ -+and saves search results persistently in CMake cache entries:: -+ -+ Boost_INCLUDE_DIR - Directory containing Boost headers -+ Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries -+ Boost_LIBRARY_DIR_DEBUG - Directory containing debug Boost libraries -+ Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant -+ Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant -+ -+The following :prop_tgt:`IMPORTED` targets are also defined:: -+ -+ Boost::boost - Target for header-only dependencies -+ (Boost include directory) -+ Boost::<C> - Target for specific component dependency -+ (shared or static library); <C> is lower- -+ case -+ Boost::diagnostic_definitions - interface target to enable diagnostic -+ information about Boost's automatic linking -+ during compilation (adds BOOST_LIB_DIAGNOSTIC) -+ Boost::disable_autolinking - interface target to disable automatic -+ linking with MSVC (adds BOOST_ALL_NO_LIB) -+ Boost::dynamic_linking - interface target to enable dynamic linking -+ linking with MSVC (adds BOOST_ALL_DYN_LINK) -+ -+Implicit dependencies such as Boost::filesystem requiring -+Boost::system will be automatically detected and satisfied, even -+if system is not specified when using find_package and if -+Boost::system is not added to target_link_libraries. If using -+Boost::thread, then Threads::Threads will also be added automatically. -+ -+It is important to note that the imported targets behave differently -+than variables created by this module: multiple calls to -+find_package(Boost) in the same directory or sub-directories with -+different options (e.g. static or shared) will not override the -+values of the targets created by the first call. -+ -+Users may set these hints or results as cache entries. Projects -+should not read these entries directly but instead use the above -+result variables. Note that some hint names start in upper-case -+"BOOST". One may specify these as environment variables if they are -+not specified as CMake variables or cache entries. -+ -+This module first searches for the Boost header files using the above -+hint variables (excluding BOOST_LIBRARYDIR) and saves the result in -+Boost_INCLUDE_DIR. Then it searches for requested component libraries -+using the above hints (excluding BOOST_INCLUDEDIR and -+Boost_ADDITIONAL_VERSIONS), "lib" directories near Boost_INCLUDE_DIR, -+and the library name configuration settings below. It saves the -+library directories in Boost_LIBRARY_DIR_DEBUG and -+Boost_LIBRARY_DIR_RELEASE and individual library -+locations in Boost_<C>_LIBRARY_DEBUG and Boost_<C>_LIBRARY_RELEASE. -+When one changes settings used by previous searches in the same build -+tree (excluding environment variables) this module discards previous -+search results affected by the changes and searches again. -+ -+Boost libraries come in many variants encoded in their file name. -+Users or projects may tell this module which variant to find by -+setting variables:: -+ -+ Boost_USE_DEBUG_LIBS - Set to ON or OFF to specify whether to search -+ and use the debug libraries. Default is ON. -+ Boost_USE_RELEASE_LIBS - Set to ON or OFF to specify whether to search -+ and use the release libraries. Default is ON. -+ Boost_USE_MULTITHREADED - Set to OFF to use the non-multithreaded -+ libraries ('mt' tag). Default is ON. -+ Boost_USE_STATIC_LIBS - Set to ON to force the use of the static -+ libraries. Default is OFF. -+ Boost_USE_STATIC_RUNTIME - Set to ON or OFF to specify whether to use -+ libraries linked statically to the C++ runtime -+ ('s' tag). Default is platform dependent. -+ Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use -+ libraries linked to the MS debug C++ runtime -+ ('g' tag). Default is ON. -+ Boost_USE_DEBUG_PYTHON - Set to ON to use libraries compiled with a -+ debug Python build ('y' tag). Default is OFF. -+ Boost_USE_STLPORT - Set to ON to use libraries compiled with -+ STLPort ('p' tag). Default is OFF. -+ Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS -+ - Set to ON to use libraries compiled with -+ STLPort deprecated "native iostreams" -+ ('n' tag). Default is OFF. -+ Boost_COMPILER - Set to the compiler-specific library suffix -+ (e.g. "-gcc43"). Default is auto-computed -+ for the C++ compiler in use. A list may be -+ used if multiple compatible suffixes should -+ be tested for, in decreasing order of -+ preference. -+ Boost_ARCHITECTURE - Set to the architecture-specific library suffix -+ (e.g. "-x64"). Default is auto-computed for the -+ C++ compiler in use. -+ Boost_THREADAPI - Suffix for "thread" component library name, -+ such as "pthread" or "win32". Names with -+ and without this suffix will both be tried. -+ Boost_NAMESPACE - Alternate namespace used to build boost with -+ e.g. if set to "myboost", will search for -+ myboost_thread instead of boost_thread. -+ -+Other variables one may set to control this module are:: -+ -+ Boost_DEBUG - Set to ON to enable debug output from FindBoost. -+ Please enable this before filing any bug report. -+ Boost_DETAILED_FAILURE_MSG -+ - Set to ON to add detailed information to the -+ failure message even when the REQUIRED option -+ is not given to the find_package call. -+ Boost_REALPATH - Set to ON to resolve symlinks for discovered -+ libraries to assist with packaging. For example, -+ the "system" component library may be resolved to -+ "/usr/lib/libboost_system.so.1.67.0" instead of -+ "/usr/lib/libboost_system.so". This does not -+ affect linking and should not be enabled unless -+ the user needs this information. -+ Boost_LIBRARY_DIR - Default value for Boost_LIBRARY_DIR_RELEASE and -+ Boost_LIBRARY_DIR_DEBUG. -+ -+On Visual Studio and Borland compilers Boost headers request automatic -+linking to corresponding libraries. This requires matching libraries -+to be linked explicitly or available in the link library search path. -+In this case setting Boost_USE_STATIC_LIBS to OFF may not achieve -+dynamic linking. Boost automatic linking typically requests static -+libraries with a few exceptions (such as Boost.Python). Use:: -+ -+ add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) -+ -+to ask Boost to report information about automatic linking requests. -+ -+Example to find Boost headers only:: -+ -+ find_package(Boost 1.36.0) -+ if(Boost_FOUND) -+ include_directories(${Boost_INCLUDE_DIRS}) -+ add_executable(foo foo.cc) -+ endif() -+ -+Example to find Boost libraries and use imported targets:: -+ -+ find_package(Boost 1.56 REQUIRED COMPONENTS -+ date_time filesystem iostreams) -+ add_executable(foo foo.cc) -+ target_link_libraries(foo Boost::date_time Boost::filesystem -+ Boost::iostreams) -+ -+Example to find Boost Python 3.6 libraries and use imported targets:: -+ -+ find_package(Boost 1.67 REQUIRED COMPONENTS -+ python36 numpy36) -+ add_executable(foo foo.cc) -+ target_link_libraries(foo Boost::python36 Boost::numpy36) -+ -+Example to find Boost headers and some *static* (release only) libraries:: -+ -+ set(Boost_USE_STATIC_LIBS ON) # only find static libs -+ set(Boost_USE_DEBUG_LIBS OFF) # ignore debug libs and -+ set(Boost_USE_RELEASE_LIBS ON) # only find release libs -+ set(Boost_USE_MULTITHREADED ON) -+ set(Boost_USE_STATIC_RUNTIME OFF) -+ find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...) -+ if(Boost_FOUND) -+ include_directories(${Boost_INCLUDE_DIRS}) -+ add_executable(foo foo.cc) -+ target_link_libraries(foo ${Boost_LIBRARIES}) -+ endif() -+ -+Boost CMake -+^^^^^^^^^^^ -+ -+If Boost was built using the boost-cmake project it provides a package -+configuration file for use with find_package's Config mode. This -+module looks for the package configuration file called -+BoostConfig.cmake or boost-config.cmake and stores the result in cache -+entry "Boost_DIR". If found, the package configuration file is loaded -+and this module returns with no further action. See documentation of -+the Boost CMake package configuration for details on what it provides. -+ -+Set Boost_NO_BOOST_CMAKE to ON to disable the search for boost-cmake. -+#]=======================================================================] - - # Save project's policies - cmake_policy(PUSH) -@@ -406,15 +411,18 @@ endmacro() - - #------------------------------------------------------------------------------- - --# --# Runs compiler with "-dumpversion" and parses major/minor --# version with a regex. --# --function(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION) -- string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\1\\2" -- _boost_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION}) -+# Convert CMAKE_CXX_COMPILER_VERSION to boost compiler suffix version. -+function(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION _OUTPUT_VERSION_MAJOR _OUTPUT_VERSION_MINOR) -+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\1" -+ _boost_COMPILER_VERSION_MAJOR "${CMAKE_CXX_COMPILER_VERSION}") -+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\2" -+ _boost_COMPILER_VERSION_MINOR "${CMAKE_CXX_COMPILER_VERSION}") -+ -+ set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}${_boost_COMPILER_VERSION_MINOR}") - - set(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE) -+ set(${_OUTPUT_VERSION_MAJOR} ${_boost_COMPILER_VERSION_MAJOR} PARENT_SCOPE) -+ set(${_OUTPUT_VERSION_MINOR} ${_boost_COMPILER_VERSION_MINOR} PARENT_SCOPE) - endfunction() - - # -@@ -458,28 +466,10 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret) - elseif (GHSMULTI) - set(_boost_COMPILER "-ghs") - elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC") -- #[========================================================[ -- NOTE: newer versions of FindBoost from kitware -- change this version check to use MSVC_TOOLSET_VERSION. -- That variable only exists in make 3.12 or greater, so -- until all envs (including bundled visual studio) have -- this min version of cmake, stick with this -- CMAKE_CXX_COMPILER_VERSION check -- #]========================================================] -- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.10) -+ if(MSVC_TOOLSET_VERSION GREATER_EQUAL 141) - set(_boost_COMPILER "-vc141;-vc140") -- elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19) -- set(_boost_COMPILER "-vc140") -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18) -- set(_boost_COMPILER "-vc120") -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17) -- set(_boost_COMPILER "-vc110") -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16) -- set(_boost_COMPILER "-vc100") -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15) -- set(_boost_COMPILER "-vc90") -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14) -- set(_boost_COMPILER "-vc80") -+ elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80) -+ set(_boost_COMPILER "-vc${MSVC_TOOLSET_VERSION}") - elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.10) - set(_boost_COMPILER "-vc71") - elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13) # Good luck! -@@ -497,25 +487,35 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret) - if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34) - set(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34 - else() -- _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION) -+ _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR) - set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}") - endif() - elseif (UNIX) -- if (CMAKE_COMPILER_IS_GNUCXX) -+ _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR) -+ if(NOT Boost_VERSION VERSION_LESS 106900) -+ # From GCC 5 and clang 4, versioning changes and minor becomes patch. -+ # For those compilers, patch is exclude from compiler tag in Boost 1.69+ library naming. -+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 4) -+ set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}") -+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 3) -+ set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}") -+ endif() -+ endif() -+ -+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34) - set(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34 - else() -- _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION) - # Determine which version of GCC we have. - if(APPLE) - if(Boost_MINOR_VERSION) - if(${Boost_MINOR_VERSION} GREATER 35) - # In Boost 1.36.0 and newer, the mangled compiler name used -- # on Mac OS X/Darwin is "xgcc". -+ # on macOS/Darwin is "xgcc". - set(_boost_COMPILER "-xgcc${_boost_COMPILER_VERSION}") - else() - # In Boost <= 1.35.0, there is no mangled compiler name for -- # the Mac OS X/Darwin version of GCC. -+ # the macOS/Darwin version of GCC. - set(_boost_COMPILER "") - endif() - else() -@@ -527,7 +527,10 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret) - set(_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}") - endif() - endif() -- endif () -+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") -+ # TODO: Find out any Boost version constraints vs clang support. -+ set(_boost_COMPILER "-clang${_boost_COMPILER_VERSION}") -+ endif() - else() - # TODO at least Boost_DEBUG here? - set(_boost_COMPILER "") -@@ -591,7 +594,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) - endif() - - set(_Boost_IMPORTED_TARGETS TRUE) -- if(Boost_VERSION VERSION_LESS 103300) -+ if(Boost_VERSION AND Boost_VERSION VERSION_LESS 103300) - message(WARNING "Imported targets and dependency information not available for Boost version ${Boost_VERSION} (all versions older than 1.33)") - set(_Boost_IMPORTED_TARGETS FALSE) - elseif(NOT Boost_VERSION VERSION_LESS 103300 AND Boost_VERSION VERSION_LESS 103500) -@@ -841,27 +844,41 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) - set(_Boost_TIMER_DEPENDENCIES chrono system) - set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) - set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) -+ elseif(NOT Boost_VERSION VERSION_LESS 106800 AND Boost_VERSION VERSION_LESS 106900) -+ set(_Boost_CHRONO_DEPENDENCIES system) -+ set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time) -+ set(_Boost_CONTRACT_DEPENDENCIES thread chrono system date_time) -+ set(_Boost_COROUTINE_DEPENDENCIES context system) -+ set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time) -+ set(_Boost_FILESYSTEM_DEPENDENCIES system) -+ set(_Boost_IOSTREAMS_DEPENDENCIES regex) -+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic) -+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic) -+ set(_Boost_MPI_DEPENDENCIES serialization) -+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization) -+ set(_Boost_NUMPY_DEPENDENCIES python${component_python_version}) -+ set(_Boost_RANDOM_DEPENDENCIES system) -+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic) -+ set(_Boost_TIMER_DEPENDENCIES chrono system) -+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) -+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) - else() -- if(NOT Boost_VERSION VERSION_LESS 106800) -- set(_Boost_CHRONO_DEPENDENCIES system) -- set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time) -- set(_Boost_CONTRACT_DEPENDENCIES thread chrono system date_time) -- set(_Boost_COROUTINE_DEPENDENCIES context system) -- set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time) -- set(_Boost_FILESYSTEM_DEPENDENCIES system) -+ if(NOT Boost_VERSION VERSION_LESS 106900) -+ set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time) -+ set(_Boost_COROUTINE_DEPENDENCIES context) -+ set(_Boost_FIBER_DEPENDENCIES context) - set(_Boost_IOSTREAMS_DEPENDENCIES regex) -- set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic) -+ set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic) - set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic) - set(_Boost_MPI_DEPENDENCIES serialization) - set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization) - set(_Boost_NUMPY_DEPENDENCIES python${component_python_version}) -- set(_Boost_RANDOM_DEPENDENCIES system) -- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic) -+ set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic) - set(_Boost_TIMER_DEPENDENCIES chrono system) -- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) -+ set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic) - set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) - endif() -- if(NOT Boost_VERSION VERSION_LESS 106900) -+ if(NOT Boost_VERSION VERSION_LESS 107000) - message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets") - endif() - endif() -@@ -899,7 +916,11 @@ function(_Boost_COMPONENT_HEADERS component _hdrs) - set(_Boost_CHRONO_HEADERS "boost/chrono.hpp") - set(_Boost_CONTAINER_HEADERS "boost/container/container_fwd.hpp") - set(_Boost_CONTRACT_HEADERS "boost/contract.hpp") -- set(_Boost_CONTEXT_HEADERS "boost/context/detail/fcontext.hpp") -+ if(Boost_VERSION VERSION_LESS 106100) -+ set(_Boost_CONTEXT_HEADERS "boost/context/all.hpp") -+ else() -+ set(_Boost_CONTEXT_HEADERS "boost/context/detail/fcontext.hpp") -+ endif() - set(_Boost_COROUTINE_HEADERS "boost/coroutine/all.hpp") - set(_Boost_DATE_TIME_HEADERS "boost/date_time/date.hpp") - set(_Boost_EXCEPTION_HEADERS "boost/exception/exception.hpp") -@@ -928,6 +949,12 @@ function(_Boost_COMPONENT_HEADERS component _hdrs) - set(_Boost_REGEX_HEADERS "boost/regex.hpp") - set(_Boost_SERIALIZATION_HEADERS "boost/serialization/serialization.hpp") - set(_Boost_SIGNALS_HEADERS "boost/signals.hpp") -+ set(_Boost_STACKTRACE_ADDR2LINE_HEADERS "boost/stacktrace.hpp") -+ set(_Boost_STACKTRACE_BACKTRACE_HEADERS "boost/stacktrace.hpp") -+ set(_Boost_STACKTRACE_BASIC_HEADERS "boost/stacktrace.hpp") -+ set(_Boost_STACKTRACE_NOOP_HEADERS "boost/stacktrace.hpp") -+ set(_Boost_STACKTRACE_WINDBG_CACHED_HEADERS "boost/stacktrace.hpp") -+ set(_Boost_STACKTRACE_WINDBG_HEADERS "boost/stacktrace.hpp") - set(_Boost_SYSTEM_HEADERS "boost/system/config.hpp") - set(_Boost_TEST_EXEC_MONITOR_HEADERS "boost/test/test_exec_monitor.hpp") - set(_Boost_THREAD_HEADERS "boost/thread.hpp") -@@ -1036,21 +1063,12 @@ function(_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS component - else() - set(_arch_suffix 32) - endif() -- if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.10) -+ if(MSVC_TOOLSET_VERSION GREATER_EQUAL 141) - list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-14.1) - list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-14.0) -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19) -- list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-14.0) -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18) -- list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-12.0) -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17) -- list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-11.0) -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16) -- list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-10.0) -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15) -- list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-9.0) -- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14) -- list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-8.0) -+ elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80) -+ math(EXPR _toolset_major_version "${MSVC_TOOLSET_VERSION} / 10") -+ list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-${_toolset_major_version}.0) - endif() - set(${componentlibvar} ${${componentlibvar}} PARENT_SCOPE) - endif() -@@ -1108,6 +1126,7 @@ else() - # _Boost_COMPONENT_HEADERS. See the instructions at the top of - # _Boost_COMPONENT_DEPENDENCIES. - set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS} -+ "1.69.0" "1.69" - "1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65" - "1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60" - "1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55" -@@ -1265,7 +1284,7 @@ if(NOT Boost_INCLUDE_DIR) - list(APPEND _boost_INCLUDE_SEARCH_DIRS NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH) - else() - if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC") -- foreach(ver ${_Boost_KNOWN_VERSIONS}) -+ foreach(ver ${_boost_TEST_VERSIONS}) - string(REPLACE "." "_" ver "${ver}") - list(APPEND _boost_INCLUDE_SEARCH_DIRS PATHS "C:/local/boost_${ver}") - endforeach() -@@ -1350,6 +1369,7 @@ if(Boost_INCLUDE_DIR) - math(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000") - math(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000") - math(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100") -+ set(Boost_VERSION_STRING "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") - - string(APPEND Boost_ERROR_REASON - "Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}\nBoost include path: ${Boost_INCLUDE_DIR}") -@@ -1409,6 +1429,13 @@ if ( NOT Boost_NAMESPACE ) - set(Boost_NAMESPACE "boost") - endif() - -+if(Boost_DEBUG) -+ message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " -+ "Boost_LIB_PREFIX = ${Boost_LIB_PREFIX}") -+ message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " -+ "Boost_NAMESPACE = ${Boost_NAMESPACE}") -+endif() -+ - # ------------------------------------------------------------------------ - # Suffix initialization and compiler suffix detection. - # ------------------------------------------------------------------------ -@@ -1501,27 +1528,35 @@ endif() - # -x86 Architecture and address model tag - # First character is the architecture, then word-size, either 32 or 64 - # Only used in 'versioned' layout, added in Boost 1.66.0 --set(_boost_ARCHITECTURE_TAG "") --# {CMAKE_CXX_COMPILER_ARCHITECTURE_ID} is not currently set for all compilers --if(NOT "x${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "x" AND NOT Boost_VERSION VERSION_LESS 106600) -- string(APPEND _boost_ARCHITECTURE_TAG "-") -- # This needs to be kept in-sync with the section of CMakePlatformId.h.in -- # inside 'defined(_WIN32) && defined(_MSC_VER)' -- if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "IA64") -- string(APPEND _boost_ARCHITECTURE_TAG "i") -- elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "X86" -- OR CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "x64") -- string(APPEND _boost_ARCHITECTURE_TAG "x") -- elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID MATCHES "^ARM") -- string(APPEND _boost_ARCHITECTURE_TAG "a") -- elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "MIPS") -- string(APPEND _boost_ARCHITECTURE_TAG "m") -- endif() -- -- if(CMAKE_SIZEOF_VOID_P EQUAL 8) -- string(APPEND _boost_ARCHITECTURE_TAG "64") -- else() -- string(APPEND _boost_ARCHITECTURE_TAG "32") -+if(DEFINED Boost_ARCHITECTURE) -+ set(_boost_ARCHITECTURE_TAG "${Boost_ARCHITECTURE}") -+ if(Boost_DEBUG) -+ message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " -+ "using user-specified Boost_ARCHITECTURE = ${_boost_ARCHITECTURE_TAG}") -+ endif() -+else() -+ set(_boost_ARCHITECTURE_TAG "") -+ # {CMAKE_CXX_COMPILER_ARCHITECTURE_ID} is not currently set for all compilers -+ if(NOT "x${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "x" AND NOT Boost_VERSION VERSION_LESS 106600) -+ string(APPEND _boost_ARCHITECTURE_TAG "-") -+ # This needs to be kept in-sync with the section of CMakePlatformId.h.in -+ # inside 'defined(_WIN32) && defined(_MSC_VER)' -+ if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "IA64") -+ string(APPEND _boost_ARCHITECTURE_TAG "i") -+ elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "X86" -+ OR CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "x64") -+ string(APPEND _boost_ARCHITECTURE_TAG "x") -+ elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID MATCHES "^ARM") -+ string(APPEND _boost_ARCHITECTURE_TAG "a") -+ elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "MIPS") -+ string(APPEND _boost_ARCHITECTURE_TAG "m") -+ endif() -+ -+ if(CMAKE_SIZEOF_VOID_P EQUAL 8) -+ string(APPEND _boost_ARCHITECTURE_TAG "64") -+ else() -+ string(APPEND _boost_ARCHITECTURE_TAG "32") -+ endif() - endif() - endif() - -@@ -1576,7 +1611,7 @@ foreach(c DEBUG RELEASE) - if( Boost_NO_SYSTEM_PATHS ) - list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH) - else() -- foreach(ver ${_Boost_KNOWN_VERSIONS}) -+ foreach(ver ${_boost_TEST_VERSIONS}) - string(REPLACE "." "_" ver "${ver}") - _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "C:/local/boost_${ver}") - endforeach() -@@ -1763,6 +1798,7 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS}) - list(APPEND _boost_RELEASE_NAMES - ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG} -+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED} - ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component} ) - if(_boost_STATIC_RUNTIME_WORKAROUND) - set(_boost_RELEASE_STATIC_ABI_TAG "-s${_boost_RELEASE_ABI_TAG}") -@@ -2064,6 +2100,9 @@ if(Boost_FOUND) - message (STATUS " ${COMPONENT}") - endif() - list(APPEND Boost_LIBRARIES ${Boost_${UPPERCOMPONENT}_LIBRARY}) -+ if(COMPONENT STREQUAL "thread") -+ list(APPEND Boost_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) -+ endif() - endif() - endforeach() - else() -diff --git a/src/ripple/beast/container/detail/aged_ordered_container.h b/src/ripple/beast/container/detail/aged_ordered_container.h -index 13483040ff..201c04b72d 100644 ---- a/src/ripple/beast/container/detail/aged_ordered_container.h -+++ b/src/ripple/beast/container/detail/aged_ordered_container.h -@@ -22,9 +22,9 @@ - - #include <ripple/beast/container/detail/aged_container_iterator.h> - #include <ripple/beast/container/detail/aged_associative_container.h> -+#include <ripple/beast/container/detail/empty_base_optimization.h> - #include <ripple/beast/container/aged_container.h> - #include <ripple/beast/clock/abstract_clock.h> --#include <boost/beast/core/detail/empty_base_optimization.hpp> - #include <boost/intrusive/list.hpp> - #include <boost/intrusive/set.hpp> - #include <boost/version.hpp> -@@ -162,7 +162,7 @@ class aged_ordered_container - - // VFALCO TODO This should only be enabled for maps. - class pair_value_compare -- : public boost::beast::detail::empty_base_optimization <Compare> -+ : public beast::detail::empty_base_optimization <Compare> - #ifdef _LIBCPP_VERSION - , public std::binary_function <value_type, value_type, bool> - #endif -@@ -184,7 +184,7 @@ class aged_ordered_container - } - - pair_value_compare (pair_value_compare const& other) -- : boost::beast::detail::empty_base_optimization <Compare> (other) -+ : beast::detail::empty_base_optimization <Compare> (other) - { - } - -@@ -192,7 +192,7 @@ class aged_ordered_container - friend aged_ordered_container; - - pair_value_compare (Compare const& compare) -- : boost::beast::detail::empty_base_optimization <Compare> (compare) -+ : beast::detail::empty_base_optimization <Compare> (compare) - { - } - }; -@@ -200,7 +200,7 @@ class aged_ordered_container - // Compares value_type against element, used in insert_check - // VFALCO TODO hoist to remove template argument dependencies - class KeyValueCompare -- : public boost::beast::detail::empty_base_optimization <Compare> -+ : public beast::detail::empty_base_optimization <Compare> - #ifdef _LIBCPP_VERSION - , public std::binary_function <Key, element, bool> - #endif -@@ -215,7 +215,7 @@ class aged_ordered_container - KeyValueCompare () = default; - - KeyValueCompare (Compare const& compare) -- : boost::beast::detail::empty_base_optimization <Compare> (compare) -+ : beast::detail::empty_base_optimization <Compare> (compare) - { - } - -@@ -252,12 +252,12 @@ class aged_ordered_container - - Compare& compare() - { -- return boost::beast::detail::empty_base_optimization <Compare>::member(); -+ return beast::detail::empty_base_optimization <Compare>::member(); - } - - Compare const& compare() const - { -- return boost::beast::detail::empty_base_optimization <Compare>::member(); -+ return beast::detail::empty_base_optimization <Compare>::member(); - } - }; - -@@ -283,7 +283,7 @@ class aged_ordered_container - - class config_t - : private KeyValueCompare -- , public boost::beast::detail::empty_base_optimization <ElementAllocator> -+ , public beast::detail::empty_base_optimization <ElementAllocator> - { - public: - explicit config_t ( -@@ -303,7 +303,7 @@ class aged_ordered_container - config_t ( - clock_type& clock_, - Allocator const& alloc_) -- : boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc_) -+ : beast::detail::empty_base_optimization <ElementAllocator> (alloc_) - , clock (clock_) - { - } -@@ -313,14 +313,14 @@ class aged_ordered_container - Compare const& comp, - Allocator const& alloc_) - : KeyValueCompare (comp) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc_) -+ , beast::detail::empty_base_optimization <ElementAllocator> (alloc_) - , clock (clock_) - { - } - - config_t (config_t const& other) - : KeyValueCompare (other.key_compare()) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> ( -+ , beast::detail::empty_base_optimization <ElementAllocator> ( - ElementAllocatorTraits:: - select_on_container_copy_construction ( - other.alloc())) -@@ -330,14 +330,14 @@ class aged_ordered_container - - config_t (config_t const& other, Allocator const& alloc) - : KeyValueCompare (other.key_compare()) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc) -+ , beast::detail::empty_base_optimization <ElementAllocator> (alloc) - , clock (other.clock) - { - } - - config_t (config_t&& other) - : KeyValueCompare (std::move (other.key_compare())) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> ( -+ , beast::detail::empty_base_optimization <ElementAllocator> ( - std::move (other)) - , clock (other.clock) - { -@@ -345,7 +345,7 @@ class aged_ordered_container - - config_t (config_t&& other, Allocator const& alloc) - : KeyValueCompare (std::move (other.key_compare())) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc) -+ , beast::detail::empty_base_optimization <ElementAllocator> (alloc) - , clock (other.clock) - { - } -@@ -391,13 +391,13 @@ class aged_ordered_container - - ElementAllocator& alloc() - { -- return boost::beast::detail::empty_base_optimization < -+ return beast::detail::empty_base_optimization < - ElementAllocator>::member(); - } - - ElementAllocator const& alloc() const - { -- return boost::beast::detail::empty_base_optimization < -+ return beast::detail::empty_base_optimization < - ElementAllocator>::member(); - } - -diff --git a/src/ripple/beast/container/detail/aged_unordered_container.h b/src/ripple/beast/container/detail/aged_unordered_container.h -index 024ef9a70b..271045ee47 100644 ---- a/src/ripple/beast/container/detail/aged_unordered_container.h -+++ b/src/ripple/beast/container/detail/aged_unordered_container.h -@@ -22,9 +22,9 @@ - - #include <ripple/beast/container/detail/aged_container_iterator.h> - #include <ripple/beast/container/detail/aged_associative_container.h> -+#include <ripple/beast/container/detail/empty_base_optimization.h> - #include <ripple/beast/container/aged_container.h> - #include <ripple/beast/clock/abstract_clock.h> --#include <boost/beast/core/detail/empty_base_optimization.hpp> - #include <boost/intrusive/list.hpp> - #include <boost/intrusive/unordered_set.hpp> - #include <algorithm> -@@ -163,7 +163,7 @@ class aged_unordered_container - - // VFALCO TODO hoist to remove template argument dependencies - class ValueHash -- : private boost::beast::detail::empty_base_optimization <Hash> -+ : private beast::detail::empty_base_optimization <Hash> - #ifdef _LIBCPP_VERSION - , public std::unary_function <element, std::size_t> - #endif -@@ -179,7 +179,7 @@ class aged_unordered_container - } - - ValueHash (Hash const& hash) -- : boost::beast::detail::empty_base_optimization <Hash> (hash) -+ : beast::detail::empty_base_optimization <Hash> (hash) - { - } - -@@ -202,7 +202,7 @@ class aged_unordered_container - // Compares value_type against element, used in find/insert_check - // VFALCO TODO hoist to remove template argument dependencies - class KeyValueEqual -- : private boost::beast::detail::empty_base_optimization <KeyEqual> -+ : private beast::detail::empty_base_optimization <KeyEqual> - #ifdef _LIBCPP_VERSION - , public std::binary_function <Key, element, bool> - #endif -@@ -219,7 +219,7 @@ class aged_unordered_container - } - - KeyValueEqual (KeyEqual const& keyEqual) -- : boost::beast::detail::empty_base_optimization <KeyEqual> (keyEqual) -+ : beast::detail::empty_base_optimization <KeyEqual> (keyEqual) - { - } - -@@ -300,7 +300,7 @@ class aged_unordered_container - class config_t - : private ValueHash - , private KeyValueEqual -- , private boost::beast::detail::empty_base_optimization <ElementAllocator> -+ , private beast::detail::empty_base_optimization <ElementAllocator> - { - public: - explicit config_t ( -@@ -328,7 +328,7 @@ class aged_unordered_container - config_t ( - clock_type& clock_, - Allocator const& alloc_) -- : boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc_) -+ : beast::detail::empty_base_optimization <ElementAllocator> (alloc_) - , clock (clock_) - { - } -@@ -348,7 +348,7 @@ class aged_unordered_container - Hash const& hash, - Allocator const& alloc_) - : ValueHash (hash) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc_) -+ , beast::detail::empty_base_optimization <ElementAllocator> (alloc_) - , clock (clock_) - { - } -@@ -358,7 +358,7 @@ class aged_unordered_container - KeyEqual const& keyEqual, - Allocator const& alloc_) - : KeyValueEqual (keyEqual) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc_) -+ , beast::detail::empty_base_optimization <ElementAllocator> (alloc_) - , clock (clock_) - { - } -@@ -370,7 +370,7 @@ class aged_unordered_container - Allocator const& alloc_) - : ValueHash (hash) - , KeyValueEqual (keyEqual) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc_) -+ , beast::detail::empty_base_optimization <ElementAllocator> (alloc_) - , clock (clock_) - { - } -@@ -378,7 +378,7 @@ class aged_unordered_container - config_t (config_t const& other) - : ValueHash (other.hash_function()) - , KeyValueEqual (other.key_eq()) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> ( -+ , beast::detail::empty_base_optimization <ElementAllocator> ( - ElementAllocatorTraits:: - select_on_container_copy_construction ( - other.alloc())) -@@ -389,7 +389,7 @@ class aged_unordered_container - config_t (config_t const& other, Allocator const& alloc) - : ValueHash (other.hash_function()) - , KeyValueEqual (other.key_eq()) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc) -+ , beast::detail::empty_base_optimization <ElementAllocator> (alloc) - , clock (other.clock) - { - } -@@ -397,7 +397,7 @@ class aged_unordered_container - config_t (config_t&& other) - : ValueHash (std::move (other.hash_function())) - , KeyValueEqual (std::move (other.key_eq())) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> ( -+ , beast::detail::empty_base_optimization <ElementAllocator> ( - std::move (other.alloc())) - , clock (other.clock) - { -@@ -406,7 +406,7 @@ class aged_unordered_container - config_t (config_t&& other, Allocator const& alloc) - : ValueHash (std::move (other.hash_function())) - , KeyValueEqual (std::move (other.key_eq())) -- , boost::beast::detail::empty_base_optimization <ElementAllocator> (alloc) -+ , beast::detail::empty_base_optimization <ElementAllocator> (alloc) - , clock (other.clock) - { - } -@@ -471,13 +471,13 @@ class aged_unordered_container - - ElementAllocator& alloc() - { -- return boost::beast::detail::empty_base_optimization < -+ return beast::detail::empty_base_optimization < - ElementAllocator>::member(); - } - - ElementAllocator const& alloc() const - { -- return boost::beast::detail::empty_base_optimization < -+ return beast::detail::empty_base_optimization < - ElementAllocator>::member(); - } - -diff --git a/src/ripple/beast/container/detail/empty_base_optimization.h b/src/ripple/beast/container/detail/empty_base_optimization.h -new file mode 100644 -index 0000000000..3b1acb99b1 ---- /dev/null -+++ b/src/ripple/beast/container/detail/empty_base_optimization.h -@@ -0,0 +1,98 @@ -+// -+// Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com) -+// -+// Distributed under the Boost Software License, Version 1.0. (See accompanying -+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -+// -+// Official repository: https://github.com/boostorg/beast -+// -+ -+#ifndef BEAST_CONTAINER_DETAIL_EMPTY_BASE_OPTIMIZATION_H_INCLUDED -+#define BEAST_CONTAINER_DETAIL_EMPTY_BASE_OPTIMIZATION_H_INCLUDED -+ -+#include <boost/type_traits/is_final.hpp> -+#include <type_traits> -+#include <utility> -+ -+namespace beast { -+namespace detail { -+ -+template<class T> -+struct is_empty_base_optimization_derived -+ : std::integral_constant<bool, -+ std::is_empty<T>::value && -+ ! boost::is_final<T>::value> -+{ -+}; -+ -+template<class T, int UniqueID = 0, -+ bool isDerived = -+ is_empty_base_optimization_derived<T>::value> -+class empty_base_optimization : private T -+{ -+public: -+ empty_base_optimization() = default; -+ empty_base_optimization(empty_base_optimization&&) = default; -+ empty_base_optimization(empty_base_optimization const&) = default; -+ empty_base_optimization& operator=(empty_base_optimization&&) = default; -+ empty_base_optimization& operator=(empty_base_optimization const&) = default; -+ -+ template<class Arg1, class... ArgN> -+ explicit -+ empty_base_optimization(Arg1&& arg1, ArgN&&... argn) -+ : T(std::forward<Arg1>(arg1), -+ std::forward<ArgN>(argn)...) -+ { -+ } -+ -+ T& member() noexcept -+ { -+ return *this; -+ } -+ -+ T const& member() const noexcept -+ { -+ return *this; -+ } -+}; -+ -+//------------------------------------------------------------------------------ -+ -+template< -+ class T, -+ int UniqueID -+> -+class empty_base_optimization <T, UniqueID, false> -+{ -+ T t_; -+ -+public: -+ empty_base_optimization() = default; -+ empty_base_optimization(empty_base_optimization&&) = default; -+ empty_base_optimization(empty_base_optimization const&) = default; -+ empty_base_optimization& operator=(empty_base_optimization&&) = default; -+ empty_base_optimization& operator=(empty_base_optimization const&) = default; -+ -+ template<class Arg1, class... ArgN> -+ explicit -+ empty_base_optimization(Arg1&& arg1, ArgN&&... argn) -+ : t_(std::forward<Arg1>(arg1), -+ std::forward<ArgN>(argn)...) -+ { -+ } -+ -+ T& member() noexcept -+ { -+ return t_; -+ } -+ -+ T const& member() const noexcept -+ { -+ return t_; -+ } -+}; -+ -+} // detail -+} // beast -+ -+#endif -diff --git a/src/ripple/server/impl/BaseWSPeer.h b/src/ripple/server/impl/BaseWSPeer.h -index c4fc9b79dc..301d78ace3 100644 ---- a/src/ripple/server/impl/BaseWSPeer.h -+++ b/src/ripple/server/impl/BaseWSPeer.h -@@ -291,14 +291,20 @@ on_write(error_code const& ec) - start_timer(); - if(! result.first) - impl().ws_.async_write_some( -- result.first, result.second, strand_.wrap(std::bind( -- &BaseWSPeer::on_write, impl().shared_from_this(), -- std::placeholders::_1))); -+ static_cast<bool>(result.first), -+ result.second, -+ strand_.wrap(std::bind( -+ &BaseWSPeer::on_write, -+ impl().shared_from_this(), -+ std::placeholders::_1))); - else - impl().ws_.async_write_some( -- result.first, result.second, strand_.wrap(std::bind( -- &BaseWSPeer::on_write_fin, impl().shared_from_this(), -- std::placeholders::_1))); -+ static_cast<bool>(result.first), -+ result.second, -+ strand_.wrap(std::bind( -+ &BaseWSPeer::on_write_fin, -+ impl().shared_from_this(), -+ std::placeholders::_1))); - } - - template<class Handler, class Impl> diff --git a/community/sysprof/allow-disabling-systemdunitdir.patch b/community/sysprof/allow-disabling-systemdunitdir.patch deleted file mode 100644 index 4c0329e08c5..00000000000 --- a/community/sysprof/allow-disabling-systemdunitdir.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/data/meson.build b/data/meson.build -index cc924ae..63dc69b 100644 ---- a/data/meson.build -+++ b/data/meson.build -@@ -86,16 +86,18 @@ if get_option('with_sysprofd') == 'bundled' - ) - - systemdunitdir = get_option('systemdunitdir') -- if systemdunitdir == '' -- systemdunitdir = dependency('systemd').get_pkgconfig_variable('systemdsystemunitdir') -+ if systemdunitdir != 'no' -+ if systemdunitdir == '' -+ systemdunitdir = dependency('systemd').get_pkgconfig_variable('systemdsystemunitdir') -+ endif -+ configure_file( -+ input: 'sysprof2.service.in', -+ output: 'sysprof2.service', -+ configuration: sysprofdconf, -+ install: true, -+ install_dir: systemdunitdir, -+ ) - endif -- configure_file( -- input: 'sysprof2.service.in', -- output: 'sysprof2.service', -- configuration: sysprofdconf, -- install: true, -- install_dir: systemdunitdir, -- ) - - i18n.merge_file( - input: 'org.gnome.sysprof2.policy.in', diff --git a/community/wt/960e8d017b264710e344c63f9feb6ea1fa593eeb.patch b/community/wt/960e8d017b264710e344c63f9feb6ea1fa593eeb.patch deleted file mode 100644 index c0dc62a05f9..00000000000 --- a/community/wt/960e8d017b264710e344c63f9feb6ea1fa593eeb.patch +++ /dev/null @@ -1,638 +0,0 @@ -From 960e8d017b264710e344c63f9feb6ea1fa593eeb Mon Sep 17 00:00:00 2001 -From: Roel Standaert <roel@emweb.be> -Date: Tue, 19 Dec 2017 17:33:41 +0100 -Subject: [PATCH] Several changes: - - - Compatibility with Boost 1.66 (asio changes) - - WDialog: Document that autofocus is enabled by default, and don't change focus if it was set explicitly - - Fix findById - - WWebWidget: Avoid copy of children vector - - Json: Document headers to include for Wt::Json::parse() and Wt::Json::serialize() - - <num-threads> does not exist anymore as a child of <connector-fcgi> or <connector-isapi> ---- - examples/filetreetable/CMakeLists.txt | 1 + - examples/gitmodel/CMakeLists.txt | 2 +- - examples/wt-homepage/CMakeLists.txt | 2 +- - src/Wt/AsioWrapper/strand.hpp | 19 +++++++++++++++++ - src/Wt/Http/Client.C | 8 ++++++- - src/Wt/Http/Client.h | 5 +++++ - src/Wt/Json/Value.h | 5 ++++- - src/Wt/WDialog.C | 6 ++++-- - src/Wt/WDialog.h | 3 +++ - src/Wt/WWebWidget.C | 12 ++++++++--- - src/http/Connection.C | 39 +++++++++++++++++++++-------------- - src/http/Connection.h | 8 +++++-- - src/http/Reply.C | 3 ++- - src/http/Server.C | 4 ++++ - src/http/Server.h | 2 +- - src/http/SessionProcess.C | 5 +++++ - src/http/SslConnection.C | 16 +++++++------- - src/http/TcpConnection.C | 18 ++++++++-------- - src/web/Configuration.C | 4 ---- - 19 files changed, 113 insertions(+), 49 deletions(-) - -diff --git a/examples/filetreetable/CMakeLists.txt b/examples/filetreetable/CMakeLists.txt -index 4265b9b7..c0c94100 100644 ---- a/examples/filetreetable/CMakeLists.txt -+++ b/examples/filetreetable/CMakeLists.txt -@@ -10,6 +10,7 @@ ELSE(NOT BOOST_FS_LIB) - - TARGET_LINK_LIBRARIES(filetreetable.wt - ${BOOST_FS_LIB} -+ ${BOOST_SYSTEM_LIB} - ) - - INCLUDE_DIRECTORIES(${WT_SOURCE_DIR}/src) -diff --git a/examples/gitmodel/CMakeLists.txt b/examples/gitmodel/CMakeLists.txt -index 9b124c98..ed557d1f 100644 ---- a/examples/gitmodel/CMakeLists.txt -+++ b/examples/gitmodel/CMakeLists.txt -@@ -7,7 +7,7 @@ IF(BOOST_FS_LIB) - ../wt-homepage/SourceView.C - GitView.C - ) -- TARGET_LINK_LIBRARIES(gitview.wt ${BOOST_FS_LIB}) -+ TARGET_LINK_LIBRARIES(gitview.wt ${BOOST_FS_LIB} ${BOOST_SYSTEM_LIB}) - - INCLUDE_DIRECTORIES( - ${WT_SOURCE_DIR}/src -diff --git a/examples/wt-homepage/CMakeLists.txt b/examples/wt-homepage/CMakeLists.txt -index b60e7c5f..513bc570 100644 ---- a/examples/wt-homepage/CMakeLists.txt -+++ b/examples/wt-homepage/CMakeLists.txt -@@ -34,7 +34,7 @@ ENDIF(WT_EMWEB_BUILD) - - WT_ADD_EXAMPLE(Home.wt ${SRC}) - --TARGET_LINK_LIBRARIES(Home.wt ${EXAMPLES_DBO_LIBS} ${BOOST_FS_LIB}) -+TARGET_LINK_LIBRARIES(Home.wt ${EXAMPLES_DBO_LIBS} ${BOOST_FS_LIB} ${BOOST_SYSTEM_LIB}) - - # Test whether crypt(3) is provided by libc. If it's not, check if - # libcrypt exists and if it provides crypt(3). -diff --git a/src/Wt/AsioWrapper/strand.hpp b/src/Wt/AsioWrapper/strand.hpp -index 0c3a201f..9ddd8d1b 100644 ---- a/src/Wt/AsioWrapper/strand.hpp -+++ b/src/Wt/AsioWrapper/strand.hpp -@@ -12,10 +12,29 @@ - #ifdef WT_ASIO_IS_BOOST_ASIO - - #include <boost/asio/strand.hpp> -+namespace Wt { -+ namespace AsioWrapper { -+#if BOOST_VERSION >= 106600 -+ using strand = boost::asio::io_context::strand; -+#else -+ using strand = boost::asio::strand; -+#endif -+ } -+} - - #else // WT_ASIO_IS_STANDALONE_ASIO - -+#include <asio/version.hpp> - #include <asio/strand.hpp> -+namespace Wt { -+ namespace AsioWrapper { -+#if ASIO_VERSION >= 101100 -+ using strand = asio::io_service::strand; -+#else -+ using strand = asio::strand; -+#endif -+ } -+} - - #endif // WT_ASIO_IS_BOOST_ASIO - -diff --git a/src/Wt/Http/Client.C b/src/Wt/Http/Client.C -index 85230d10..6bb21a95 100644 ---- a/src/Wt/Http/Client.C -+++ b/src/Wt/Http/Client.C -@@ -642,7 +642,7 @@ private: - - protected: - asio::io_service& ioService_; -- asio::strand strand_; -+ AsioWrapper::strand strand_; - tcp::resolver resolver_; - asio::streambuf requestBuf_; - asio::streambuf responseBuf_; -@@ -929,8 +929,14 @@ bool Client::request(Http::Method method, const std::string& url, - - #ifdef WT_WITH_SSL - } else if (parsedUrl.protocol == "https") { -+#if defined(WT_ASIO_IS_BOOST_ASIO) && BOOST_VERSION >= 106600 -+ asio::ssl::context context(asio::ssl::context::tls); -+#elif defined(WT_ASIO_IS_STANDALONE_ASIO) && ASIO_VERSION >= 101100 -+ asio::ssl::context context(asio::ssl::context::sslv23); -+#else - asio::ssl::context context - (*ioService, asio::ssl::context::sslv23); -+#endif - long sslOptions = asio::ssl::context::no_sslv2 | asio::ssl::context::no_sslv3; - context.set_options(sslOptions); - -diff --git a/src/Wt/Http/Client.h b/src/Wt/Http/Client.h -index f3c7169a..77946867 100644 ---- a/src/Wt/Http/Client.h -+++ b/src/Wt/Http/Client.h -@@ -23,7 +23,12 @@ - #ifdef WT_ASIO_IS_BOOST_ASIO - namespace boost { - namespace asio { -+#if BOOST_VERSION >= 106600 -+ class io_context; -+ typedef io_context io_service; -+#else - class io_service; -+#endif - } - } - #else // WT_ASIO_IS_STANDALONE_ASIO -diff --git a/src/Wt/Json/Value.h b/src/Wt/Json/Value.h -index 948277fa..0b0bc0d7 100644 ---- a/src/Wt/Json/Value.h -+++ b/src/Wt/Json/Value.h -@@ -23,7 +23,7 @@ class Array; - * \brief A JSON representation and parsing library. - * - * The JSON library contains data types to represent a JSON data -- * structure (Value, Object and Array), and a JSON parser. -+ * structure (Value, Object and Array), a JSON parser, and a JSON serializer. - * - * Usage example: - * \code -@@ -39,6 +39,9 @@ class Array; - * bool b = result.get("b"); - * std::cerr << "a: " << s << ", b: " << b << std::endl; // a: That's great, b: true - * \endcode -+ * -+ * Include the <Wt/Json/Parser.h> header for Wt::Json::parse(), and -+ * the <Wt/Json/Serializer.h> header for Wt::Json::serialize(). - */ - - /*! \brief Enumeration for the type of a JSON value. -diff --git a/src/Wt/WDialog.C b/src/Wt/WDialog.C -index 65ba51d7..31bd88b0 100644 ---- a/src/Wt/WDialog.C -+++ b/src/Wt/WDialog.C -@@ -436,8 +436,10 @@ void WDialog::render(WFlags<RenderFlag> flags) - if (!isModal()) - impl_->mouseWentDown().connect(this, &WDialog::bringToFront); - -- if ( flags.test(RenderFlag::Full) && autoFocus_) -- impl_->setFirstFocus(); -+ if ( flags.test(RenderFlag::Full) && autoFocus_) { -+ if (!impl_->findById(Wt::WApplication::instance()->focus())) -+ impl_->setFirstFocus(); -+ } - - WPopupWidget::render(flags); - } -diff --git a/src/Wt/WDialog.h b/src/Wt/WDialog.h -index 810d6945..967087c8 100644 ---- a/src/Wt/WDialog.h -+++ b/src/Wt/WDialog.h -@@ -337,6 +337,9 @@ class WT_API WDialog : public WPopupWidget - bool closable() const { return closeIcon_ != nullptr; } - - /*! \brief Set focus on the first widget in the dialog. -+ * -+ * Autofocus is enabled by default. If a widget inside of -+ * this dialog already has focus, the focus will not be changed. - */ - void setAutoFocus(bool enable){ autoFocus_ = enable;} - -diff --git a/src/Wt/WWebWidget.C b/src/Wt/WWebWidget.C -index 42fc00fd..5835244f 100644 ---- a/src/Wt/WWebWidget.C -+++ b/src/Wt/WWebWidget.C -@@ -1983,9 +1983,13 @@ bool WWebWidget::setFirstFocus() - return true; - } - -- for (unsigned i = 0; i < children().size(); i++) -- if (children()[i]->setFirstFocus()) -- return true; -+ bool result = false; -+ iterateChildren([&result](Wt::WWidget *w){ -+ if (!result) -+ result = w->setFirstFocus(); -+ }); -+ if (result) -+ return true; - - return false; - } else -@@ -2207,6 +2211,8 @@ WWidget *WWebWidget::findById(const std::string& id) - if (!result) - result = c->findById(id); - }); -+ if (result) -+ return result; - } - - return nullptr; -diff --git a/src/http/Connection.C b/src/http/Connection.C -index cab77089..27380a8a 100644 ---- a/src/http/Connection.C -+++ b/src/http/Connection.C -@@ -61,6 +61,15 @@ Connection::~Connection() - LOG_DEBUG("~Connection"); - } - -+asio::ip::tcp::socket::native_handle_type Connection::native() -+{ -+#if (defined(WT_ASIO_IS_BOOST_ASIO) && BOOST_VERSION >= 106600) || (defined(WT_ASIO_IS_STANDALONE_ASIO) && ASIO_VERSION >= 101100) -+ return socket().native_handle(); -+#else -+ return socket().native(); -+#endif -+} -+ - void Connection::finishReply() - { - if (!request_.uri.empty()) { -@@ -78,7 +87,7 @@ void Connection::scheduleStop() - - void Connection::start() - { -- LOG_DEBUG(socket().native() << ": start()"); -+ LOG_DEBUG(native() << ": start()"); - - request_parser_.reset(); - request_.reset(); -@@ -106,7 +115,7 @@ void Connection::stop() - void Connection::setReadTimeout(int seconds) - { - if (seconds != 0) { -- LOG_DEBUG(socket().native() << " setting read timeout (ws: " -+ LOG_DEBUG(native() << " setting read timeout (ws: " - << request_.webSocketVersion << ")"); - state_ |= Reading; - -@@ -118,7 +127,7 @@ void Connection::setReadTimeout(int seconds) - - void Connection::setWriteTimeout(int seconds) - { -- LOG_DEBUG(socket().native() << " setting write timeout (ws: " -+ LOG_DEBUG(native() << " setting write timeout (ws: " - << request_.webSocketVersion << ")"); - state_ |= Writing; - -@@ -129,7 +138,7 @@ void Connection::setWriteTimeout(int seconds) - - void Connection::cancelReadTimer() - { -- LOG_DEBUG(socket().native() << " cancel read timeout"); -+ LOG_DEBUG(native() << " cancel read timeout"); - state_.clear(Reading); - - readTimer_.cancel(); -@@ -137,7 +146,7 @@ void Connection::cancelReadTimer() - - void Connection::cancelWriteTimer() - { -- LOG_DEBUG(socket().native() << " cancel write timeout"); -+ LOG_DEBUG(native() << " cancel write timeout"); - state_.clear(Writing); - - writeTimer_.cancel(); -@@ -163,7 +172,7 @@ void Connection::handleReadRequest0() - - #ifdef DEBUG - try { -- LOG_DEBUG(socket().native() << "incoming request: " -+ LOG_DEBUG(socket().native_handle() << "incoming request: " - << socket().remote_endpoint().port() << " (avail= " - << (rcv_buffer_size_ - (rcv_remaining_ - buffer.data())) << "): " - << std::string(rcv_remaining_, -@@ -189,7 +198,7 @@ void Connection::handleReadRequest0() - if (doWebSockets) - request_.enableWebSocket(); - -- LOG_DEBUG(socket().native() << "request: " << status); -+ LOG_DEBUG(native() << "request: " << status); - - if (status >= 300) - sendStockReply(status); -@@ -242,7 +251,7 @@ void Connection::sendStockReply(StockReply::status_type status) - void Connection::handleReadRequest(const Wt::AsioWrapper::error_code& e, - std::size_t bytes_transferred) - { -- LOG_DEBUG(socket().native() << ": handleReadRequest(): " << e.message()); -+ LOG_DEBUG(native() << ": handleReadRequest(): " << e.message()); - - cancelReadTimer(); - -@@ -261,7 +270,7 @@ void Connection::close() - cancelReadTimer(); - cancelWriteTimer(); - -- LOG_DEBUG(socket().native() << ": close()"); -+ LOG_DEBUG(native() << ": close()"); - - ConnectionManager_.stop(shared_from_this()); - } -@@ -274,7 +283,7 @@ bool Connection::closed() const - - void Connection::handleError(const Wt::AsioWrapper::error_code& e) - { -- LOG_DEBUG(socket().native() << ": error: " << e.message()); -+ LOG_DEBUG(native() << ": error: " << e.message()); - - close(); - } -@@ -349,7 +358,7 @@ void Connection::handleReadBody0(ReplyPtr reply, - const Wt::AsioWrapper::error_code& e, - std::size_t bytes_transferred) - { -- LOG_DEBUG(socket().native() << ": handleReadBody0(): " << e.message()); -+ LOG_DEBUG(native() << ": handleReadBody0(): " << e.message()); - - if (disconnectCallback_) { - if (e && e != asio::error::operation_aborted) { -@@ -357,7 +366,7 @@ void Connection::handleReadBody0(ReplyPtr reply, - disconnectCallback_ = boost::function<void()>(); - f(); - } else if (!e) { -- LOG_ERROR(socket().native() -+ LOG_ERROR(native() - << ": handleReadBody(): while waiting for disconnect, " - "received unexpected data, closing"); - close(); -@@ -410,7 +419,7 @@ void Connection::startWriteResponse(ReplyPtr reply) - } - #endif - -- LOG_DEBUG(socket().native() << " sending: " << s << "(buffers: " -+ LOG_DEBUG(native() << " sending: " << s << "(buffers: " - << buffers.size() << ")"); - - if (!buffers.empty()) { -@@ -423,7 +432,7 @@ void Connection::startWriteResponse(ReplyPtr reply) - - void Connection::handleWriteResponse(ReplyPtr reply) - { -- LOG_DEBUG(socket().native() << ": handleWriteResponse() " << -+ LOG_DEBUG(native() << ": handleWriteResponse() " << - haveResponse_ << " " << responseDone_); - if (haveResponse_) - startWriteResponse(reply); -@@ -458,7 +467,7 @@ void Connection::handleWriteResponse0(ReplyPtr reply, - const Wt::AsioWrapper::error_code& e, - std::size_t bytes_transferred) - { -- LOG_DEBUG(socket().native() << ": handleWriteResponse0(): " -+ LOG_DEBUG(native() << ": handleWriteResponse0(): " - << bytes_transferred << " ; " << e.message()); - - cancelWriteTimer(); -diff --git a/src/http/Connection.h b/src/http/Connection.h -index b0b71a36..f925177c 100644 ---- a/src/http/Connection.h -+++ b/src/http/Connection.h -@@ -18,6 +18,7 @@ - #define HTTP_CONNECTION_HPP - - #include <Wt/AsioWrapper/asio.hpp> -+#include <Wt/AsioWrapper/strand.hpp> - #include <Wt/AsioWrapper/steady_timer.hpp> - - #include "Buffer.h" -@@ -61,7 +62,7 @@ class Connection : public std::enable_shared_from_this<Connection> - virtual ~Connection(); - - Server *server() const { return server_; } -- asio::strand& strand() { return strand_; } -+ Wt::AsioWrapper::strand& strand() { return strand_; } - - /// Stop all asynchronous operations associated with the connection. - void scheduleStop(); -@@ -86,6 +87,9 @@ class Connection : public std::enable_shared_from_this<Connection> - const std::function<void()>& callback); - - protected: -+ /// Get the native handle of the socket -+ asio::ip::tcp::socket::native_handle_type native(); -+ - void handleWriteResponse0(ReplyPtr reply, - const Wt::AsioWrapper::error_code& e, - std::size_t bytes_transferred); -@@ -104,7 +108,7 @@ class Connection : public std::enable_shared_from_this<Connection> - /// The manager for this connection. - ConnectionManager& ConnectionManager_; - -- asio::strand strand_; -+ Wt::AsioWrapper::strand strand_; - - void finishReply(); - -diff --git a/src/http/Reply.C b/src/http/Reply.C -index 0d79e39f..b55ece21 100644 ---- a/src/http/Reply.C -+++ b/src/http/Reply.C -@@ -596,7 +596,8 @@ bool Reply::encodeNextContentBuffer( - originalSize += bs; - - gzipStrm_.avail_in = bs; -- gzipStrm_.next_in = (unsigned char *)asio::detail::buffer_cast_helper(b); -+ gzipStrm_.next_in = const_cast<unsigned char*>( -+ asio::buffer_cast<const unsigned char*>(b)); - - unsigned char out[16*1024]; - do { -diff --git a/src/http/Server.C b/src/http/Server.C -index fc69be21..ad16591f 100644 ---- a/src/http/Server.C -+++ b/src/http/Server.C -@@ -116,7 +116,11 @@ Server::Server(const Configuration& config, Wt::WServer& wtServer) - accept_strand_(wt_.ioService()), - // post_strand_(ioService_), - #ifdef HTTP_WITH_SSL -+#if (defined(WT_ASIO_IS_BOOST_ASIO) && BOOST_VERSION >= 106600) || (defined(WT_ASIO_IS_STANDALONE_ASIO) && ASIO_VERSION >= 101100) -+ ssl_context_(asio::ssl::context::sslv23), -+#else - ssl_context_(wt_.ioService(), asio::ssl::context::sslv23), -+#endif - #endif // HTTP_WITH_SSL - connection_manager_(), - sessionManager_(0), -diff --git a/src/http/Server.h b/src/http/Server.h -index 3d3229ac..97387b11 100644 ---- a/src/http/Server.h -+++ b/src/http/Server.h -@@ -129,7 +129,7 @@ class Server - Wt::WLogger accessLogger_; - - /// The strand for handleTcpAccept(), handleSslAccept() and handleStop() -- asio::strand accept_strand_; -+ Wt::AsioWrapper::strand accept_strand_; - - /// Acceptors used to listen for incoming http connections. - std::vector<TcpListener> tcp_listeners_; -diff --git a/src/http/SessionProcess.C b/src/http/SessionProcess.C -index 72d9a881..fb057f2f 100644 ---- a/src/http/SessionProcess.C -+++ b/src/http/SessionProcess.C -@@ -16,6 +16,7 @@ - #include <signal.h> - #endif // WT_WIN32 - -+#include "Wt/WConfig.h" - #include "Wt/WLogger.h" - - namespace Wt { -@@ -80,7 +81,11 @@ void SessionProcess::asyncExec(const Configuration &config, - if (!ec) - acceptor_->listen(0, ec); - #ifndef WT_WIN32 -+#if (defined(WT_ASIO_IS_BOOST_ASIO) && BOOST_VERSION >= 106600) || (defined(WT_ASIO_IS_STANDALONE_ASIO) && ASIO_VERSION >= 101100) -+ fcntl(acceptor_->native_handle(), F_SETFD, FD_CLOEXEC); -+#else - fcntl(acceptor_->native(), F_SETFD, FD_CLOEXEC); -+#endif - #endif // !WT_WIN32 - if (ec) { - LOG_ERROR("Couldn't create listening socket: " << ec.message()); -diff --git a/src/http/SslConnection.C b/src/http/SslConnection.C -index 74c8642a..12eb7465 100644 ---- a/src/http/SslConnection.C -+++ b/src/http/SslConnection.C -@@ -81,9 +81,9 @@ void SslConnection::handleHandshake(const Wt::AsioWrapper::error_code& error) - - void SslConnection::stop() - { -- LOG_DEBUG(socket().native() << ": stop()"); -+ LOG_DEBUG(native() << ": stop()"); - finishReply(); -- LOG_DEBUG(socket().native() << ": SSL shutdown"); -+ LOG_DEBUG(native() << ": SSL shutdown"); - - Connection::stop(); - -@@ -108,20 +108,20 @@ void SslConnection::stopNextLayer(const Wt::AsioWrapper::error_code& ec) - // In case of timeout, we will get here twice. - sslShutdownTimer_.cancel(); - if (ec) { -- LOG_DEBUG(socket().native() << ": ssl_shutdown failed:" -+ LOG_DEBUG(native() << ": ssl_shutdown failed:" - << ec.message()); - } - try { - if (socket().is_open()) { - Wt::AsioWrapper::error_code ignored_ec; -- LOG_DEBUG(socket().native() << ": socket shutdown"); -+ LOG_DEBUG(native() << ": socket shutdown"); - socket().shutdown(asio::ip::tcp::socket::shutdown_both, - ignored_ec); -- LOG_DEBUG(socket().native() << "closing socket"); -+ LOG_DEBUG(native() << "closing socket"); - socket().close(); - } - } catch (Wt::AsioWrapper::system_error& e) { -- LOG_DEBUG(socket().native() << ": error " << e.what()); -+ LOG_DEBUG(native() << ": error " << e.what()); - } - } - -@@ -161,7 +161,7 @@ void SslConnection::startAsyncReadBody(ReplyPtr reply, - Buffer& buffer, int timeout) - { - if (state_ & Reading) { -- LOG_DEBUG(socket().native() << ": state_ = " -+ LOG_DEBUG(native() << ": state_ = " - << (state_ & Reading ? "reading " : "") - << (state_ & Writing ? "writing " : "")); - stop(); -@@ -198,7 +198,7 @@ void SslConnection - int timeout) - { - if (state_ & Writing) { -- LOG_DEBUG(socket().native() << ": state_ = " -+ LOG_DEBUG(native() << ": state_ = " - << (state_ & Reading ? "reading " : "") - << (state_ & Writing ? "writing " : "")); - stop(); -diff --git a/src/http/TcpConnection.C b/src/http/TcpConnection.C -index ad731647..ab2476ed 100644 ---- a/src/http/TcpConnection.C -+++ b/src/http/TcpConnection.C -@@ -38,17 +38,17 @@ asio::ip::tcp::socket& TcpConnection::socket() - - void TcpConnection::stop() - { -- LOG_DEBUG(socket().native() << ": stop()"); -+ LOG_DEBUG(native() << ": stop()"); - - finishReply(); - - try { - Wt::AsioWrapper::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); -- LOG_DEBUG(socket().native() << ": closing socket"); -+ LOG_DEBUG(native() << ": closing socket"); - socket_.close(); - } catch (Wt::AsioWrapper::system_error& e) { -- LOG_DEBUG(socket().native() << ": error " << e.what()); -+ LOG_DEBUG(native() << ": error " << e.what()); - } - - Connection::stop(); -@@ -56,10 +56,10 @@ void TcpConnection::stop() - - void TcpConnection::startAsyncReadRequest(Buffer& buffer, int timeout) - { -- LOG_DEBUG(socket().native() << ": startAsyncReadRequest"); -+ LOG_DEBUG(native() << ": startAsyncReadRequest"); - - if (state_ & Reading) { -- LOG_DEBUG(socket().native() << ": state_ = " -+ LOG_DEBUG(native() << ": state_ = " - << (state_ & Reading ? "reading " : "") - << (state_ & Writing ? "writing " : "")); - stop(); -@@ -81,10 +81,10 @@ void TcpConnection::startAsyncReadRequest(Buffer& buffer, int timeout) - void TcpConnection::startAsyncReadBody(ReplyPtr reply, - Buffer& buffer, int timeout) - { -- LOG_DEBUG(socket().native() << ": startAsyncReadBody"); -+ LOG_DEBUG(native() << ": startAsyncReadBody"); - - if (state_ & Reading) { -- LOG_DEBUG(socket().native() << ": state_ = " -+ LOG_DEBUG(native() << ": state_ = " - << (state_ & Reading ? "reading " : "") - << (state_ & Writing ? "writing " : "")); - stop(); -@@ -109,10 +109,10 @@ void TcpConnection::startAsyncWriteResponse - const std::vector<asio::const_buffer>& buffers, - int timeout) - { -- LOG_DEBUG(socket().native() << ": startAsyncWriteResponse"); -+ LOG_DEBUG(native() << ": startAsyncWriteResponse"); - - if (state_ & Writing) { -- LOG_DEBUG(socket().native() << ": state_ = " -+ LOG_DEBUG(native() << ": state_ = " - << (state_ & Reading ? "reading " : "") - << (state_ & Writing ? "writing " : "")); - stop(); -diff --git a/src/web/Configuration.C b/src/web/Configuration.C -index 6b6507b7..e5f06505 100644 ---- a/src/web/Configuration.C -+++ b/src/web/Configuration.C -@@ -825,14 +825,10 @@ void Configuration::readApplicationSettings(xml_node<> *app) - runDirectory_ = singleChildElementValue(fcgi, "run-directory", - runDirectory_); - -- setInt(fcgi, "num-threads", numThreads_); // backward compatibility < 3.2.0 -- - xml_node<> *isapi = singleChildElement(app, "connector-isapi"); - if (!isapi) - isapi = app; // backward compatibility - -- setInt(isapi, "num-threads", numThreads_); // backward compatibility < 3.2.0 -- - std::string maxMemoryRequestSizeStr = - singleChildElementValue(isapi, "max-memory-request-size", ""); - if (!maxMemoryRequestSizeStr.empty()) { |