#3 Unbundle catch2 (fix RHBZ#1987466)
Closed 2 years ago by salimma. Opened 2 years ago by music.
rpms/ music/et catch2  into  rawhide

@@ -1,16 +0,0 @@ 

- --- EternalTerminal-et-v6.1.4/external_imported/Catch2/single_include/catch2/catch.hpp.fix_minsigstksz	2021-03-13 19:16:53.000000000 -0800

- +++ EternalTerminal-et-v6.1.4/external_imported/Catch2/single_include/catch2/catch.hpp	2021-03-16 17:45:40.115988071 -0700

- @@ -10819,7 +10819,13 @@

-  

-      // 32kb for the alternate stack seems to be sufficient. However, this value

-      // is experimentally determined, so that's not guaranteed.

- +#ifdef _SC_SIGSTKSZ_SOURCE

- +    // on glibc > 2.33 this is no longer constant, see

- +    // http://sourceware-org.1504.n7.nabble.com/PATCH-sysconf-Add-SC-MINSIGSTKSZ-SC-SIGSTKSZ-BZ-20305-td650948.html

- +    static constexpr std::size_t sigStackSize = 32768;

- +#else

-      static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ;

- +#endif

-  

-      static SignalDefs signalDefs[] = {

-          { SIGINT,  "SIGINT - Terminal interrupt signal" },

file modified
+8 -4
@@ -13,7 +13,7 @@ 

  

  Name:           et

  Version:        6.1.8

- Release:        3%{?dist}

+ Release:        4%{?dist}

  Summary:        Remote shell that survives IP roaming and disconnect

  

  License:        ASL 2.0
@@ -23,14 +23,13 @@ 

  # SIGSTKSZ is no longer constant in glibc > 2.33 but a function returning a long

  # cast the result before taking max

  Patch0:         et-6.1.4-fix-sentry-breakpad-sigstksz.patch

- # ditto with MINSIGSTKSZ

- Patch1:         et-6.1.4-fix-catch2-minsigstksz.patch

  

  BuildRequires:  boost-devel

  BuildRequires:  cmake3

  BuildRequires:  firewalld-filesystem

  BuildRequires:  gcc-c++

  BuildRequires:  gflags-devel

+ BuildRequires:  catch-devel

  BuildRequires:  libatomic

  BuildRequires:  libcurl-devel

  BuildRequires:  libsodium-devel
@@ -45,7 +44,6 @@ 

  # cat .gitmodules | grep submodule | sort

  # for tarball, s/external/external_imported

  Provides:       bundled(base64) = 0

- # Catch2 is only a test framework

  # external_imported/cotire/CMake/cotire.cmake

  Provides:       bundled(cotire) = 1.8.0

  # grep User-Agent external/cpp-httlib/httplib.h
@@ -82,6 +80,9 @@ 

  

  %prep

  %autosetup -p1 -n EternalTerminal-et-v%{version}

+ # Remove bundled Catch2 test framework

+ rm -rf external_imported/Catch2

+ sed -r -i '/\$\{EXTERNAL_DIR\}\/Catch2\/single_include/d' CMakeLists.txt

  

  

  %build
@@ -142,6 +143,9 @@ 

  

  

  %changelog

+ * Mon Oct 18 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 6.1.8-4

+ - Unbundle catch2 (fix RHBZ#1987466)

+ 

  * Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 6.1.8-3

  - Rebuilt with OpenSSL 3.0.0

  

RHBZ#1987466 describes build failures related to non-constant MINSIGSTKSZ despite et-6.1.4-fix-catch2-minsigstksz.patch. This PR would resolve the issue by unbundling Catch2 and using the system copy instead.

Is this fixed in more recent versions of Catch2? Can we just bump Catch2?

Is this fixed in more recent versions of Catch2? Can we just bump Catch2?

That should be feasible. Here is the upstream issue. The fix is in Catch2 versions 2.13.5 and later.

This needs to be rebased, so I'll do this by hand and credit you. Thanks!

I'll also switch over to rpmautospec, which will make merging in patches much easier as it removes the pesky patching of the release field.

Pull-Request has been closed by salimma

2 years ago

Thanks! Glad this was helpful.