From bca077698f9c32775b31af554aaee068a1429479 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Wed, 30 Oct 2024 13:00:19 -0600 Subject: [PATCH] package/mosh: fix compatibility with newer protobuf versions We need to backport a patch to fix compatibility with newer protobuf versions, prior to bumping protobuf. Remove CFLAGS setting -std=c++11 and enable autoreconf so that the patch is applied properly. Signed-off-by: James Hilliard Signed-off-by: Thomas Petazzoni --- .../mosh/0001-Bump-C-version-to-C-17.patch | 49 +++++++++++++++++++ package/mosh/mosh.mk | 4 +- 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 package/mosh/0001-Bump-C-version-to-C-17.patch diff --git a/package/mosh/0001-Bump-C-version-to-C-17.patch b/package/mosh/0001-Bump-C-version-to-C-17.patch new file mode 100644 index 0000000000..eea3889828 --- /dev/null +++ b/package/mosh/0001-Bump-C-version-to-C-17.patch @@ -0,0 +1,49 @@ +From eee1a8cf413051c2a9104e8158e699028ff56b26 Mon Sep 17 00:00:00 2001 +From: Alex Chernyakhovsky +Date: Sun, 30 Jul 2023 16:19:46 -0400 +Subject: [PATCH] Bump C++ version to C++17 + +Protobuf versions since 3.6.0 have long had a C++11 dependency; even +more recent versions have picked up an Abseil dependency bumping that +to C++14. Since it is now 2023, defaulting to C++17 is reasonable, so +remove the conditional C++ standards version check that mosh +previously had and replace it with an unconditional C++17 check. + +This means that all future commits can use C++17 features. According +to https://en.cppreference.com/w/cpp/compiler_support/17 this means +that minimum effective compiler versions for mosh become: + +gcc 7 (May 2017) +clang 5 (September 2017) + +This, in turn, implies that future versions of mosh will no longer be +available for RHEL/CentOS 7 (June 2014). + +Closes: #1267 + +Signed-off-by: James Hilliard +Upstream: https://github.com/mobile-shell/mosh/commit/eee1a8cf413051c2a9104e8158e699028ff56b26 +--- + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ee70c7b..7f7dc3b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -22,9 +22,9 @@ AS_IF([test x"$PROTOC" = x], + # automake 1.12 seems to require this, but automake 1.11 doesn't recognize it + m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) + +-# Protobuf 3.6+ requires C++11. +-AS_IF([pkg-config --atleast-version 3.6.0 protobuf], +- [AX_CXX_COMPILE_STDCXX([11])]) ++# Protobuf transitively requires at least C++14, get ahead of the ++# curve and require at least C++17. ++AX_CXX_COMPILE_STDCXX([17]) + + WARNING_CXXFLAGS="" + PICKY_CXXFLAGS="" +-- +2.34.1 + diff --git a/package/mosh/mosh.mk b/package/mosh/mosh.mk index c938f70719..3c41a17401 100644 --- a/package/mosh/mosh.mk +++ b/package/mosh/mosh.mk @@ -9,9 +9,7 @@ MOSH_SITE = https://mosh.org MOSH_DEPENDENCIES = zlib ncurses protobuf host-pkgconf MOSH_LICENSE = GPL-3.0+ with exception MOSH_LICENSE_FILES = COPYING COPYING.iOS - -# protobuf needs c++11 (since 3.6.0) -MOSH_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" +MOSH_AUTORECONF = YES ifeq ($(BR2_PACKAGE_OPENSSL),y) MOSH_CONF_OPTS += --with-crypto-library=openssl