summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@gentoo.org>2024-08-07 18:02:02 -0400
committerEli Schwartz <eschwartz@gentoo.org>2024-08-08 12:06:26 -0400
commitd36216af23a4eaa6a6c8d25e04d92dd4c71987ce (patch)
tree8ec5b423ca16cd4ace9ea2ce153954b5cf2e05e7 /dev-db
parentnet-wireless/wpa_supplicant: fix live ebuild (diff)
downloadgentoo-d36216af23a4eaa6a6c8d25e04d92dd4c71987ce.tar.gz
gentoo-d36216af23a4eaa6a6c8d25e04d92dd4c71987ce.tar.bz2
gentoo-d36216af23a4eaa6a6c8d25e04d92dd4c71987ce.zip
dev-db/percona-xtrabackup: backport patch to fix compilation with procps 4
Without this patch, it fails to build at all. No revbump. Closes: https://bugs.gentoo.org/913649 Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/percona-xtrabackup/files/6038a7934cbd4e6c01389fdc9b8ffabf8c3e006a.patch139
-rw-r--r--dev-db/percona-xtrabackup/percona-xtrabackup-8.0.30.23.ebuild4
2 files changed, 142 insertions, 1 deletions
diff --git a/dev-db/percona-xtrabackup/files/6038a7934cbd4e6c01389fdc9b8ffabf8c3e006a.patch b/dev-db/percona-xtrabackup/files/6038a7934cbd4e6c01389fdc9b8ffabf8c3e006a.patch
new file mode 100644
index 000000000000..30c333128166
--- /dev/null
+++ b/dev-db/percona-xtrabackup/files/6038a7934cbd4e6c01389fdc9b8ffabf8c3e006a.patch
@@ -0,0 +1,139 @@
+From 6038a7934cbd4e6c01389fdc9b8ffabf8c3e006a Mon Sep 17 00:00:00 2001
+From: Marcelo Altmann <marcelo.altmann@percona.com>
+Date: Tue, 20 Jun 2023 15:41:12 -0300
+Subject: [PATCH] Fixed PXB-2993 - make PXB compatible with procps-4
+
+Fixed Issue with procps version 4.
+Now we detect the version during cmake and use the correct library
+when linking xbtrabackup
+
+This also fixes PXB-3066 - Compilation issues on Debian 12
+---
+ cmake/procps.cmake | 32 +++++++++++++++++++
+ .../innobase/xtrabackup/src/CMakeLists.txt | 10 ++++--
+ storage/innobase/xtrabackup/src/utils.cc | 24 +++++++++++++-
+ 3 files changed, 62 insertions(+), 4 deletions(-)
+ create mode 100644 cmake/procps.cmake
+
+diff --git a/cmake/procps.cmake b/cmake/procps.cmake
+new file mode 100644
+index 000000000000..f463248c48eb
+--- /dev/null
++++ b/cmake/procps.cmake
+@@ -0,0 +1,32 @@
++# Copyright (c) 2023 Percona LLC and/or its affiliates
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; version 2 of the License.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++
++MACRO (FIND_PROCPS)
++ FIND_FILE(PROCPS_INCLUDE_DIR NAMES proc/procps.h NO_CACHE)
++ IF (PROCPS_INCLUDE_DIR)
++ MESSAGE("-- Found proc/sysinfo.h in ${PROCPS_INCLUDE_DIR} Procps version 3.")
++ ADD_DEFINITIONS(-DHAVE_PROCPS_V3)
++ SET(PROCPS_VERSION "3")
++ ELSE()
++ FIND_FILE(PROCPS_INCLUDE_DIR NAMES libproc2/meminfo.h NO_CACHE)
++ IF (PROCPS_INCLUDE_DIR)
++ MESSAGE("-- Found libproc2/meminfo.h in ${PROCPS_INCLUDE_DIR}. Procps version 4.")
++ ADD_DEFINITIONS(-DHAVE_PROCPS_V4)
++ SET(PROCPS_VERSION "4")
++ ELSE()
++ MESSAGE(SEND_ERROR "Cannot find proc/sysinfo.h or libproc2/meminfo.h in ${PROCPS_INCLUDE_PATH}. You can pass it to CMake with -DPROCPS_INCLUDE_PATH=<path> or install procps-devel/procps-ng-devel/libproc2-dev package")
++ ENDIF()
++ ENDIF()
++ENDMACRO()
+diff --git a/storage/innobase/xtrabackup/src/CMakeLists.txt b/storage/innobase/xtrabackup/src/CMakeLists.txt
+index e3a1b9056536..68e33365a36b 100644
+--- a/storage/innobase/xtrabackup/src/CMakeLists.txt
++++ b/storage/innobase/xtrabackup/src/CMakeLists.txt
+@@ -14,12 +14,14 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+ INCLUDE(gcrypt)
++INCLUDE(procps)
+
+ OPTION(WITH_VERSION_CHECK "Build with version check" ON)
+
+ INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake)
+
+ FIND_GCRYPT()
++FIND_PROCPS()
+
+ CHECK_TYPE_SIZE("unsigned long" SIZEOF_UNSIGNED_LONG)
+
+@@ -134,9 +136,11 @@ TARGET_LINK_LIBRARIES(xtrabackup
+ )
+
+ IF(NOT APPLE)
+- TARGET_LINK_LIBRARIES(xtrabackup
+- procps
+- )
++ IF(PROCPS_VERSION EQUAL 4)
++ TARGET_LINK_LIBRARIES(xtrabackup proc2)
++ ELSE()
++ TARGET_LINK_LIBRARIES(xtrabackup procps)
++ ENDIF()
+ ENDIF()
+
+ # We depend on protobuf because of the mysqlx plugin and replication.
+diff --git a/storage/innobase/xtrabackup/src/utils.cc b/storage/innobase/xtrabackup/src/utils.cc
+index 527d17d19d47..635b271b0ab1 100644
+--- a/storage/innobase/xtrabackup/src/utils.cc
++++ b/storage/innobase/xtrabackup/src/utils.cc
+@@ -23,8 +23,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ #include <mach/mach_host.h>
+ #include <sys/sysctl.h>
+ #else
++#ifdef HAVE_PROCPS_V3
+ #include <proc/sysinfo.h>
+-#endif
++#else
++#include <libproc2/meminfo.h>
++#endif // HAVE_PROCPS_V3
++#endif // __APPLE__
+ #include <boost/uuid/uuid.hpp> // uuid class
+ #include <boost/uuid/uuid_generators.hpp> // generators
+ #include <boost/uuid/uuid_io.hpp> // streaming operators etc.
+@@ -141,13 +145,31 @@ unsigned long host_free_memory() {
+ }
+ #else
+ unsigned long host_total_memory() {
++#ifdef HAVE_PROCPS_V3
+ meminfo();
+ return kb_main_total * 1024;
++#else
++ struct meminfo_info *mem_info;
++ if (procps_meminfo_new(&mem_info) < 0) {
++ return 0;
++ }
++
++ return MEMINFO_GET(mem_info, MEMINFO_MEM_TOTAL, ul_int) * 1024;
++#endif // HAVE_PROCPS_V3
+ }
+
+ unsigned long host_free_memory() {
++#ifdef HAVE_PROCPS_V3
+ meminfo();
+ return kb_main_available * 1024;
++#else
++ struct meminfo_info *mem_info;
++ if (procps_meminfo_new(&mem_info) < 0) {
++ return 0;
++ }
++
++ return MEMINFO_GET(mem_info, MEMINFO_MEM_AVAILABLE, ul_int) * 1024;
++#endif // HAVE_PROCPS_V3
+ }
+ #endif
+
diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-8.0.30.23.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-8.0.30.23.ebuild
index c75845fa0b49..cf31400b9055 100644
--- a/dev-db/percona-xtrabackup/percona-xtrabackup-8.0.30.23.ebuild
+++ b/dev-db/percona-xtrabackup/percona-xtrabackup-8.0.30.23.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -51,6 +51,8 @@ RDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-8.0.26-remove-rpm.patch
"${FILESDIR}"/${PN}-8.0.30.23-gcc13.patch
+ # procps 4 support, released in 8.0.33
+ "${FILESDIR}"/6038a7934cbd4e6c01389fdc9b8ffabf8c3e006a.patch
)
S="${WORKDIR}/percona-xtrabackup-${MY_PV}"