From 4ed05860d08bc75b75542a04baef03406ad28b1916d723ae2f2c956cc1c25a29 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 15 Jan 2025 07:31:14 +0000 Subject: [PATCH] Extend options-cxx17.patch and options-old.patch to avoid race-condition (boo#1235867) OBS-URL: https://build.opensuse.org/package/show/devel:microos/abseil-cpp?expand=0&rev=41 --- .gitattributes | 23 ++ .gitignore | 1 + abseil-cmake-gtest-testonly.patch | 26 ++ abseil-cpp-20240116.2.tar.gz | 3 + abseil-cpp-20240722.0.tar.gz | 3 + abseil-cpp.changes | 428 ++++++++++++++++++++++++++++++ abseil-cpp.spec | 219 +++++++++++++++ baselibs.conf | 2 + cmake.patch | 13 + options-cxx17.patch | 54 ++++ options-old.patch | 54 ++++ 11 files changed, 826 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 abseil-cmake-gtest-testonly.patch create mode 100644 abseil-cpp-20240116.2.tar.gz create mode 100644 abseil-cpp-20240722.0.tar.gz create mode 100644 abseil-cpp.changes create mode 100644 abseil-cpp.spec create mode 100644 baselibs.conf create mode 100644 cmake.patch create mode 100644 options-cxx17.patch create mode 100644 options-old.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/abseil-cmake-gtest-testonly.patch b/abseil-cmake-gtest-testonly.patch new file mode 100644 index 0000000..8e83a44 --- /dev/null +++ b/abseil-cmake-gtest-testonly.patch @@ -0,0 +1,26 @@ +From 779a3565ac6c5b69dd1ab9183e500a27633117d5 Mon Sep 17 00:00:00 2001 +From: Derek Mauro +Date: Tue, 30 Jan 2024 10:13:25 -0800 +Subject: [PATCH] Avoid export of testonly target absl::test_allocator in CMake + builds + +Closes #1536 + +PiperOrigin-RevId: 602764437 +Change-Id: Ia5c20a3874262a2ddb8797f608af17d7e86dd6d6 +--- + absl/container/CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/absl/container/CMakeLists.txt b/absl/container/CMakeLists.txt +index 449a2cad17e..ee9ca9c3c4a 100644 +--- a/absl/container/CMakeLists.txt ++++ b/absl/container/CMakeLists.txt +@@ -213,6 +213,7 @@ absl_cc_library( + DEPS + absl::config + GTest::gmock ++ TESTONLY + ) + + absl_cc_test( diff --git a/abseil-cpp-20240116.2.tar.gz b/abseil-cpp-20240116.2.tar.gz new file mode 100644 index 0000000..d49d422 --- /dev/null +++ b/abseil-cpp-20240116.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:733726b8c3a6d39a4120d7e45ea8b41a434cdacde401cba500f14236c49b39dc +size 2151288 diff --git a/abseil-cpp-20240722.0.tar.gz b/abseil-cpp-20240722.0.tar.gz new file mode 100644 index 0000000..f510251 --- /dev/null +++ b/abseil-cpp-20240722.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3 +size 2242861 diff --git a/abseil-cpp.changes b/abseil-cpp.changes new file mode 100644 index 0000000..c253839 --- /dev/null +++ b/abseil-cpp.changes @@ -0,0 +1,428 @@ +------------------------------------------------------------------- +Wed Jan 15 02:02:17 UTC 2025 - Bernhard Wiedemann + +- Extend options-cxx17.patch and options-old.patch + to avoid race-condition (boo#1235867) + +------------------------------------------------------------------- +Sat Nov 16 22:20:54 UTC 2024 - Andreas Stieger + +- update to 20240722.0: + * Add GoogleTest matchers for absl::Status. These matchers make + it easier to write unit tests for code that uses absl::Status. + * absl::AlphaNum no longer allows brace-initialization + * The deprecated symbol absl::kuint128max has been removed and + should be replaced with absl::Uint128Max(). + * absl::aligned_storage_t, which was a polyfill consistent with + std::aligned_storage_t, has been removed. + std::aligned_storage_t is deprecated in C++23 + * absl::StrJoin now has a absl::string_view overload. This + allows for passing a collection of string-like objects without + having to convert everything to the same type first. However, + this may be a breaking change for users passing an explicit + template argument to absl::StrJoin. In this case, simply remove + the explicit template parameter. + * vlog_is_on.h is now a public header and is no longer included + from log.h. To use VLOG_IS_ON(), absl/log/vlog_is_on.h must be + included. +- drop abseil-cmake-gtest-testonly.patch + +------------------------------------------------------------------- +Fri Jul 5 21:27:25 UTC 2024 - Christoph G + +- Add upstream patch abseil-cmake-gtest-testonly.patch to fix + issue with GTest and CMake 3.30 + +------------------------------------------------------------------- +Thu Apr 11 20:12:22 UTC 2024 - Andreas Stieger + +- update to 20240116.2 + * Added absl::NoDestructor to simplify defining static types + that do not need to be destructed upon program exit. + * Added configurable verbose logging (also known as VLOG). + * Added absl::Overload(), which returns a functor that provides + overloads based on the functors passed to it. (from C++17) + * Breaking change: AbslHashValue() no longer accepts C-style + arrays as a parameter. + * Breaking change: absl::weak_equality and absl::strong_equality + have been removed + +------------------------------------------------------------------- +Tue Apr 2 13:01:58 UTC 2024 - Dirk Müller + +- split abseil libraries so that libzypp / protobuf doesn't + require all to be installed (jsc#PED-8153) + +------------------------------------------------------------------- +Mon Mar 4 10:30:53 UTC 2024 - Fridrich Strba + +- Fix broken link to sources +- Fix build for distributions that lack the ldconfig_scriptlets + macro +- Make the gcc version condition a bit more generic + +------------------------------------------------------------------- +Sun Mar 3 06:35:57 UTC 2024 - Andreas Stieger + +- update to 20240116.1: + * Add absl::NoDestructor to simplify defining static types + that do not need to be destructed upon program exit. + * Add configurable verbose logging (also known as VLOG). + * Added absl::Overload(), which returns a functor that provides + overloads based on the functors passed to it. Note that this + functionality requires C++17 or newer. + * Breaking Change: AbslHashValue() no longer accepts C-style + arrays as a parameter, caller need to wrap C-string literals in + absl::string_view. + * Breaking Change: absl::weak_equality and absl::strong_equality + have been removed. The corresponding std types were removed + before C++20 was finalized + +------------------------------------------------------------------- +Fri Jan 19 15:53:47 UTC 2024 - Dirk Müller + +- fix build for non-SUSE distributions + +------------------------------------------------------------------- +Fri Oct 6 17:44:18 UTC 2023 - Andreas Stieger + +- update to 20230802.1: + * Add StdcppWaiter to the end of the list of waiter + implementations + +------------------------------------------------------------------- +Thu Sep 7 06:49:51 UTC 2023 - Adrian Schröter + +- update to 20230802.0 + What's New: + * Added the nullability library for designating the expected + nullability of pointers. Currently these serve as annotations + only, but it is expected that compilers will one day be able + to use these annotations for diagnostic purposes. + * Added the prefetch library as a portable layer for moving data + into caches before it is read. + * Abseil's hash tables now detect many more programming errors + in debug and sanitizer builds. + * Abseil's synchronization objects now differentiate absolute + waits (when passed an absl::Time) from relative waits (when + passed an absl::Duration) when the underlying platform supports + differentiating these cases. This only makes a difference when + system clocks are adjusted. + * Abseil's flag parsing library includes additional methods that + make it easier to use when another library also expects to be + able to parse flags. + * absl::string_view is now available as a smaller target, + @com_google_absl//absl/strings:string_view, so that users may + use this library without depending on the much larger + @com_google_absl//absl/strings target. + +------------------------------------------------------------------- +Wed Aug 9 15:18:16 UTC 2023 - Fridrich Strba + +- Fix build on older systems by requiring C++17 compliant compiler +- Added patch: + * cmake.patch + + lower the cmake requirement to 3.5 in order to be able to + build on SLE12SP5 + +------------------------------------------------------------------- +Thu Jun 29 09:52:24 UTC 2023 - Fabian Vogt + +- Add baselibs.conf to make protobuf happy. Hopefully temporary. + +------------------------------------------------------------------- +Thu May 25 07:40:01 UTC 2023 - Adrian Schröter + +- update to 20230125.3 + Details can be found on: + https://github.com/abseil/abseil-cpp/releases/tag/20230125.3 + +------------------------------------------------------------------- +Mon Apr 24 12:12:45 UTC 2023 - Adrian Schröter + +- update to 20230125.2 + What's New: + The Abseil logging library has been released. This library + provides facilities for writing short text messages about the + status of a program to stderr, disk files, or other sinks + (via an extension API). See the logging library documentation + for more information. + An extension point, AbslStringify(), allows user-defined types + to seamlessly work with Abseil's string formatting functions + like absl::StrCat() and absl::StrFormat(). + A library for computing CRC32C checksums has been added. + Floating-point parsing now uses the Eisel-Lemire algorithm, + which provides a significant speed improvement. + The flags library now provides suggestions for the closest + flag(s) in the case of misspelled flags. + Using CMake to install Abseil now makes the installed artifacts + (in particular absl/base/options.h) reflect the compiled ABI. + + Breaking Changes: + Abseil now requires at least C++14 and follows Google's Foundational + C++ Support Policy. See this table for a list of currently supported + versions compilers, platforms, and build tools. + The legacy spellings of the thread annotation macros/functions + (e.g. GUARDED_BY()) have been removed by default in favor of the + ABSL_ prefixed versions (e.g. ABSL_GUARDED_BY()) due to clashes with + other libraries. The compatibility macro ABSL_LEGACY_THREAD_ANNOTATIONS + can be defined on the compile command-line to temporarily restore these + spellings, but this compatibility macro will be removed in the future. + + Known Issues + The Abseil logging library in this release is not a feature-complete + replacement for glog yet. VLOG and DFATAL are examples of features + that have not yet been released. + +- obsolete Fix-maes-msse41-leaking-into-pkgconfig.patch + +------------------------------------------------------------------- +Sat Sep 24 13:47:49 UTC 2022 - Dirk Müller + +- update to 20220623.1: + * minor warning fix + +------------------------------------------------------------------- +Mon Jul 11 14:56:15 UTC 2022 - Bruno Pitrus + +- Add Fix-maes-msse41-leaking-into-pkgconfig.patch + * Do not make programs compiled with abseil require new-ish CPUs (boo#1203379) + +------------------------------------------------------------------- +Sun Jul 3 21:25:15 UTC 2022 - Matthias Eliasson + +- Update to version 20220623.0 + What's New: + * Added absl::AnyInvocable, a move-only function type. + * Added absl::CordBuffer, a type for buffering data for eventual inclusion an + absl::Cord, which is useful for writing zero-copy code. + * Added support for command-line flags of type absl::optional. + Breaking Changes: + * CMake builds now use the flag ABSL_BUILD_TESTING (default: OFF) to control + whether or not unit tests are built. + * The ABSL_DEPRECATED macro now works with the GCC compiler. GCC users that + are experiencing new warnings can use -Wno-deprecated-declatations silence + the warnings or use -Wno-error=deprecated-declarations to see warnings but + not fail the build. + * ABSL_CONST_INIT uses the C++20 keyword constinit when available. Some + compilers are more strict about where this keyword must appear compared to + the pre-C++20 implementation. + * Bazel builds now depend on the bazelbuild/bazel-skylib repository. + See Abseil's WORKSPACE file for an example of how to add this dependency. + Other: + * This will be the last release to support C++11. Future releases will require at least C++14. +- run spec-cleaner + +------------------------------------------------------------------- +Wed Jun 29 12:49:20 UTC 2022 - Fabian Vogt + +- Remove obsolete 0%{suse_version} < 1500 conditions + +------------------------------------------------------------------- +Wed Jun 29 12:04:22 UTC 2022 - Bruno Pitrus + +- Add options-old.patch, options-cxx17.patch (boo#1203378) + * Ensure ABI stability regardless of compiler settings per instruction in the header. + +------------------------------------------------------------------- +Mon Apr 4 11:37:33 UTC 2022 - Jan Engelhardt + +- Implement shlib packaging policy + +------------------------------------------------------------------- +Fri Mar 4 09:42:26 UTC 2022 - Danilo Spinella + +- Fix build on SLE-12-SP5 + +------------------------------------------------------------------- +Tue Jan 4 18:55:41 UTC 2022 - Dirk Müller + +- update to 20211102.0: + * absl::Cord is now implemented as a b-tree. The new implementation offers + improved performance in most workloads. + * absl::SimpleHexAtoi() has been added to strings library for parsing + hexadecimal strings + +------------------------------------------------------------------- +Wed Jun 30 11:18:51 UTC 2021 - Ferdinand Thiessen + +- Update to version 20210324.2 (LTS): + * No user visible changes, only build system related + +------------------------------------------------------------------- +Sun Apr 25 05:42:19 UTC 2021 - Ferdinand Thiessen + +- Update to LTS version 20210324.1 + * Fixed missing absl::Cleanup + * Fixed pkgconfig install path +- Dropped upstream merged Correctly-install-pkgconfig.patch + +------------------------------------------------------------------- +Tue Apr 13 18:39:09 UTC 2021 - Ferdinand Thiessen + +- Update to LTS version 20210324.0 + * Breaking: The empty absl::container target has been removed from + the CMake build. This target had no effect and references to + this target in user code can safely be removed. + * New: The cleanup library has been released. This library contains + the control-flow-construct-like type absl::Cleanup which is used + for executing a callback on scope exit. + * New: The numeric library now includes bits.h, a polyfill header + containing implementations of C++20's bitwise math functions. + * New: Abseil now installs pkg-config files to make it easier to + use Abseil with some other build systems. + * New: Abseil now respects the default CMake installation paths. + Standard CMake variables like CMAKE_INSTALL_PREFIX can be used + to change the installation path. +- Added Correctly-install-pkgconfig.patch from upstream to fix + installation of pkgconfig files +- Call ldconfig on post and postun + +------------------------------------------------------------------- +Tue Dec 29 12:18:55 UTC 2020 - Matthias Eliasson + +- Update to version 20200923.2 + What's New: + * absl::StatusOr has been released. See our blog + post for more information. + * Abseil Flags reflection interfaces have been released. + * Abseil Flags memory usage has been significantly optimized. + * Abseil now supports a "hardened" build mode. This build mode enables + runtime checks that guard against programming errors that may lead + to security vulnerabilities. + Notable Fixes: + * Sanitizer dynamic annotations like AnnotateRWLockCreate that are + also defined by the compiler sanitizer implementation are no longer + also defined by Abseil. + * Sanitizer macros are now prefixed with ABSL_ to avoid naming collisions. + * Sanitizer usage is now automatically detected and no longer requires + macros like ADDRESS_SANITIZER to be defined on the command line. + Breaking Changes: + * Abseil no longer contains a dynamic_annotations library. Users + using a supported build system (Bazel or CMake) are unaffected by + this, but users manually specifying link libraries may get an error + about a missing linker input. + +------------------------------------------------------------------- +Fri Nov 6 08:31:58 UTC 2020 - Fabian Vogt + +- Drop source package, was only used by grpc which was switched + over to use the shared library + +------------------------------------------------------------------- +Tue Oct 27 09:16:46 UTC 2020 - Jan Engelhardt + +- Build shared libraries of abseil for use by grpc + (related to https://github.com/grpc/grpc/issues/24476) + +------------------------------------------------------------------- +Sat Sep 5 20:03:38 UTC 2020 - Jan Engelhardt + +- Switch the package to noarch. + +------------------------------------------------------------------- +Fri Jul 24 21:15:12 UTC 2020 - Matthias Eliasson + +- Update to version 20200225.2 + * This release fixes the list of dependencies of absl::Cord in the CMake build. + * bug fix for absl::Status::ErasePayload + +------------------------------------------------------------------- +Thu Jan 16 14:50:51 UTC 2020 - Michał Rostecki + +- Remove all packages except source. + +------------------------------------------------------------------- +Tue Jan 14 11:54:55 UTC 2020 - Dominique Leuenberger + +- Set ExcludeArch: %ix86: bazel is required to build which in turn + is not supported on ix86. + +------------------------------------------------------------------- +Wed Dec 18 23:12:35 UTC 2019 - Swaminathan Vasudevan + +- Update to version 20190808 + +------------------------------------------------------------------- +Sat Nov 23 21:26:12 UTC 2019 - Bernhard Wiedemann + +- Sort find output to make build reproducible (boo#1041090) + +------------------------------------------------------------------- +Thu Oct 17 12:49:40 UTC 2019 - Richard Brown + +- Remove obsolete Groups tag (fate#326485) + +------------------------------------------------------------------- +Mon Sep 23 11:07:09 UTC 2019 - mrostecki@opensuse.org + +- Update to version 20190605: + * avoid use of undefined ABSL_HAVE_ELF_MEM_IMAGE + * Avoid undefined behavior when nullptr is passed to memcpy with size 0 + * CMake: Set correct flags for clang-cl + * Adding linking of CoreFoundation to CMakeLists in absl/time as + time_zone_lookup.cc includes CoreFoundation + * Implement Span::first and Span::last from C++20 + * Changed HTTP URLs to HTTPS where possible + * Fix GCC8 warnings + * Fix library order for Conan package + * _umul128 is not available on Windows ARM64 + * Add note at top that this is supported best-effort + * Update Conan author + * Add Conan topics + * Remove cctz as external dependency + * Add Conan recipe + +------------------------------------------------------------------- +Thu Sep 19 17:14:48 UTC 2019 - Michał Rostecki + +- Add source package. + +------------------------------------------------------------------- +Wed Jul 24 11:22:19 UTC 2019 - Michał Rostecki + +- Use bazel0.19 as build fails with the latest bazel (0.26) + +------------------------------------------------------------------- +Thu Mar 7 13:00:12 UTC 2019 - Michal Rostecki + +- Add soname to all *.so* files. + +------------------------------------------------------------------- +Thu Feb 28 15:11:56 UTC 2019 - Michał Rostecki + +- Fix build with Bazel 0.22.0. +- Add optflags. + +------------------------------------------------------------------- +Fri Jan 18 10:34:06 UTC 2019 - Guillaume GARDET + +- Fix aarch64 and ppc64 builds + +------------------------------------------------------------------- +Wed Dec 12 13:17:59 UTC 2018 - Jan Engelhardt + +- Trim redundancies from description. + +------------------------------------------------------------------- +Thu Nov 29 15:19:39 UTC 2018 - Michał Rostecki + +- Update to version 20181127: + * Export of internal Abseil changes. -- 15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen : + * Export of internal Abseil changes. -- 5278e56bd7d322ecf161eaf29fd7fa3941d7431b by Greg Falcon : +- Switch from CMake to Bazel + +------------------------------------------------------------------- +Mon Nov 19 16:37:44 UTC 2018 - Michał Rostecki + +- Update to version 20181116: + * Export of internal Abseil changes. -- da04b8cd21f6225d71397471474d34a77df0efd6 by Jon Cohen : + * Export of internal Abseil changes. -- 5f1ab09522226336830d9ea6ef7276d37f536ac5 by Abseil Team : + * Export of internal Abseil changes. -- 07575526242a8e1275ac4223a3d2822795f46569 by CJ Johnson : + * Export of internal Abseil changes. -- 178e7a9a76fc8fcd6df6335b59139cbe644a16b9 by Jon Cohen : + * Export of internal Abseil changes. -- ee19e203eca970ff88e8f25ce4e19c32e143b988 by Jon Cohen : + * Export of internal Abseil changes. -- 4e224c85c3730398919fc5195cb1fc7a752e6e4f by Mark Barolak : + * Export of internal Abseil changes. -- 9e8aa654630015ea8221703b0ea10dd1a47a848f by Abseil Team : + * Export of internal Abseil changes. -- ba4dd47492748bd630462eb68b7959037fc6a11a by Abseil Team : + * Fix compilation of generic byteswap routines + * Fix absl::container on VS2017 v15.8 (#192) diff --git a/abseil-cpp.spec b/abseil-cpp.spec new file mode 100644 index 0000000..e6ef80f --- /dev/null +++ b/abseil-cpp.spec @@ -0,0 +1,219 @@ +# +# spec file for package abseil-cpp +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2024 Andreas Stieger +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global soversion so.2407.0.0 +%global lname_suffix 2407_0_0 +%if 0%{?gcc_version} < 7 +%global with_gcc 7 +%endif +Name: abseil-cpp +Version: 20240722.0 +Release: 0 +Summary: C++11 libraries which augment the C++ stdlib +License: Apache-2.0 +URL: https://abseil.io/ +Source0: https://github.com/abseil/abseil-cpp/releases/download/%{version}/%{name}-%{version}.tar.gz +Source1: baselibs.conf +BuildRequires: cmake +BuildRequires: fdupes +BuildRequires: gcc%{?with_gcc} +BuildRequires: gcc%{?with_gcc}-c++ +BuildRequires: pkgconfig +# PATCH-FIX-OPENSUSE options-{old,cxx17}.patch Ensure ABI stability regardless of compiler options +%if 0%{?suse_version} && 0%{?suse_version} < 1550 +Patch0: options-old.patch +Patch1: cmake.patch +%else +Patch0: options-cxx17.patch +%endif + +%description +Abseil is a collection of C++11 libraries which augment the C++ +standard library. It also provides features incorporated into C++14 +and C++17 standards. + +%package -n libabsl_lite_%{lname_suffix} +Summary: C++11 libraries which augment the C++ stdlib - lite +Obsoletes: abseil-cpp < %{version}-%{release} +Provides: abseil-cpp = %{version}-%{release} + +%description -n libabsl_lite_%{lname_suffix} +Abseil is a collection of C++11 libraries which augment the C++ +standard library. It also provides features incorporated into C++14 +and C++17 standards. + +This package provides the subset needed by protobuf-lite. + +%package -n libabsl_%{lname_suffix} +Summary: C++11 libraries which augment the C++ stdlib - others +Obsoletes: abseil-cpp < %{version}-%{release} +Obsoletes: libabsl2401_0_0 < %{version}-%{release} +Provides: abseil-cpp = %{version}-%{release} + +%description -n libabsl_%{lname_suffix} +Abseil is a collection of C++11 libraries which augment the C++ +standard library. It also provides features incorporated into C++14 +and C++17 standards. + +%package devel +Summary: Header files for Abseil +Requires: libabsl_%{lname_suffix} +Requires: libabsl_lite_%{lname_suffix} + +%description devel +Abseil is a collection of C++11 libraries which augment the C++ +standard library. +This package contains headers and build system files for it. + +%prep +%autosetup -p1 + +%build +%if 0%{?with_gcc} +export CC="gcc-%{with_gcc}" +export CXX="g++-%{with_gcc}" +%endif +%cmake +%cmake_build + +%install +%cmake_install +%fdupes %{buildroot}/%{_prefix} + +%check +%ctest + +# SLE12 doed not define this macro +%if %{undefined ldconfig_scriptlets} +%post -n libabsl_lite_%{lname_suffix} -p /sbin/ldconfig +%postun -n libabsl_lite_%{lname_suffix} -p /sbin/ldconfig + +%post -n libabsl_%{lname_suffix} -p /sbin/ldconfig +%postun -n libabsl_%{lname_suffix} -p /sbin/ldconfig + +%else +%ldconfig_scriptlets -n libabsl_lite_%{lname_suffix} +%ldconfig_scriptlets -n libabsl_%{lname_suffix} +%endif + +%files -n libabsl_lite_%{lname_suffix} +%license LICENSE +%{_libdir}/libabsl_base.%{soversion} +%{_libdir}/libabsl_city.%{soversion} +%{_libdir}/libabsl_cord.%{soversion} +%{_libdir}/libabsl_cord_internal.%{soversion} +%{_libdir}/libabsl_cordz_functions.%{soversion} +%{_libdir}/libabsl_cordz_handle.%{soversion} +%{_libdir}/libabsl_cordz_info.%{soversion} +%{_libdir}/libabsl_crc32c.%{soversion} +%{_libdir}/libabsl_crc_cord_state.%{soversion} +%{_libdir}/libabsl_crc_internal.%{soversion} +%{_libdir}/libabsl_debugging_internal.%{soversion} +%{_libdir}/libabsl_demangle_internal.%{soversion} +%{_libdir}/libabsl_examine_stack.%{soversion} +%{_libdir}/libabsl_exponential_biased.%{soversion} +%{_libdir}/libabsl_hash.%{soversion} +%{_libdir}/libabsl_int128.%{soversion} +%{_libdir}/libabsl_kernel_timeout_internal.%{soversion} +%{_libdir}/libabsl_log_globals.%{soversion} +%{_libdir}/libabsl_log_internal_check_op.%{soversion} +%{_libdir}/libabsl_log_internal_format.%{soversion} +%{_libdir}/libabsl_log_internal_globals.%{soversion} +%{_libdir}/libabsl_log_internal_log_sink_set.%{soversion} +%{_libdir}/libabsl_log_internal_message.%{soversion} +%{_libdir}/libabsl_log_internal_nullguard.%{soversion} +%{_libdir}/libabsl_log_internal_proto.%{soversion} +%{_libdir}/libabsl_log_sink.%{soversion} +%{_libdir}/libabsl_low_level_hash.%{soversion} +%{_libdir}/libabsl_malloc_internal.%{soversion} +%{_libdir}/libabsl_raw_hash_set.%{soversion} +%{_libdir}/libabsl_raw_logging_internal.%{soversion} +%{_libdir}/libabsl_spinlock_wait.%{soversion} +%{_libdir}/libabsl_stacktrace.%{soversion} +%{_libdir}/libabsl_str_format_internal.%{soversion} +%{_libdir}/libabsl_strerror.%{soversion} +%{_libdir}/libabsl_string_view.%{soversion} +%{_libdir}/libabsl_strings.%{soversion} +%{_libdir}/libabsl_strings_internal.%{soversion} +%{_libdir}/libabsl_symbolize.%{soversion} +%{_libdir}/libabsl_synchronization.%{soversion} +%{_libdir}/libabsl_throw_delegate.%{soversion} +%{_libdir}/libabsl_time.%{soversion} +%{_libdir}/libabsl_time_zone.%{soversion} + +%files -n libabsl_%{lname_suffix} +%license LICENSE +%{_libdir}/libabsl_bad_any_cast_impl.%{soversion} +%{_libdir}/libabsl_bad_optional_access.%{soversion} +%{_libdir}/libabsl_bad_variant_access.%{soversion} +%{_libdir}/libabsl_civil_time.%{soversion} +%{_libdir}/libabsl_cordz_sample_token.%{soversion} +%{_libdir}/libabsl_crc_cpu_detect.%{soversion} +%{_libdir}/libabsl_decode_rust_punycode.%{soversion} +%{_libdir}/libabsl_demangle_rust.%{soversion} +%{_libdir}/libabsl_die_if_null.%{soversion} +%{_libdir}/libabsl_failure_signal_handler.%{soversion} +%{_libdir}/libabsl_flags_commandlineflag_internal.%{soversion} +%{_libdir}/libabsl_flags_commandlineflag.%{soversion} +%{_libdir}/libabsl_flags_config.%{soversion} +%{_libdir}/libabsl_flags_internal.%{soversion} +%{_libdir}/libabsl_flags_marshalling.%{soversion} +%{_libdir}/libabsl_flags_parse.%{soversion} +%{_libdir}/libabsl_flags_private_handle_accessor.%{soversion} +%{_libdir}/libabsl_flags_program_name.%{soversion} +%{_libdir}/libabsl_flags_reflection.%{soversion} +%{_libdir}/libabsl_flags_usage_internal.%{soversion} +%{_libdir}/libabsl_flags_usage.%{soversion} +%{_libdir}/libabsl_graphcycles_internal.%{soversion} +%{_libdir}/libabsl_hashtablez_sampler.%{soversion} +%{_libdir}/libabsl_leak_check.%{soversion} +%{_libdir}/libabsl_log_entry.%{soversion} +%{_libdir}/libabsl_log_flags.%{soversion} +%{_libdir}/libabsl_log_initialize.%{soversion} +%{_libdir}/libabsl_log_internal_conditions.%{soversion} +%{_libdir}/libabsl_log_internal_fnmatch.%{soversion} +%{_libdir}/libabsl_log_severity.%{soversion} +%{_libdir}/libabsl_periodic_sampler.%{soversion} +%{_libdir}/libabsl_poison.%{soversion} +%{_libdir}/libabsl_random_distributions.%{soversion} +%{_libdir}/libabsl_random_internal_distribution_test_util.%{soversion} +%{_libdir}/libabsl_random_internal_platform.%{soversion} +%{_libdir}/libabsl_random_internal_pool_urbg.%{soversion} +%{_libdir}/libabsl_random_internal_randen_hwaes_impl.%{soversion} +%{_libdir}/libabsl_random_internal_randen_hwaes.%{soversion} +%{_libdir}/libabsl_random_internal_randen_slow.%{soversion} +%{_libdir}/libabsl_random_internal_randen.%{soversion} +%{_libdir}/libabsl_random_internal_seed_material.%{soversion} +%{_libdir}/libabsl_random_seed_gen_exception.%{soversion} +%{_libdir}/libabsl_random_seed_sequences.%{soversion} +%{_libdir}/libabsl_scoped_set_env.%{soversion} +%{_libdir}/libabsl_statusor.%{soversion} +%{_libdir}/libabsl_status.%{soversion} +%{_libdir}/libabsl_utf8_for_code_point.%{soversion} +%{_libdir}/libabsl_vlog_config_internal.%{soversion} + +%files devel +%license LICENSE +%doc README.md +%{_includedir}/absl +%{_libdir}/cmake/absl +%{_libdir}/libabsl_*.so +%{_libdir}/pkgconfig/absl_*.pc + +%changelog diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..b350608 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,2 @@ +libabsl_lite_2407_0_0 +libabsl_2407_0_0 diff --git a/cmake.patch b/cmake.patch new file mode 100644 index 0000000..8ebc8f0 --- /dev/null +++ b/cmake.patch @@ -0,0 +1,13 @@ +Index: abseil-cpp-20240722.0/CMakeLists.txt +=================================================================== +--- abseil-cpp-20240722.0.orig/CMakeLists.txt ++++ abseil-cpp-20240722.0/CMakeLists.txt +@@ -16,7 +16,7 @@ + + # https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md + # As of 2024-07-01, CMake 3.16 is the minimum supported version. +-cmake_minimum_required(VERSION 3.16) ++cmake_minimum_required(VERSION 3.5) + + # Allow the user to specify the CMAKE_MSVC_DEBUG_INFORMATION_FORMAT + if (POLICY CMP0141) diff --git a/options-cxx17.patch b/options-cxx17.patch new file mode 100644 index 0000000..40b6207 --- /dev/null +++ b/options-cxx17.patch @@ -0,0 +1,54 @@ +Make the headers always tell the truth about the ABI of the compiled dll's +to avoid mysterious linker errors when using wrong C++ version in compiler. +This version of patch is for new systems (Tumbleweed) where Abseil is built with C++17 support. +For more information, see “notice for package managers” in options.h + +Index: abseil-cpp-20240116.1/absl/base/options.h +=================================================================== +--- abseil-cpp-20240116.1.orig/absl/base/options.h ++++ abseil-cpp-20240116.1/absl/base/options.h +@@ -94,7 +94,7 @@ + // User code should not inspect this macro. To check in the preprocessor if + // absl::any is a typedef of std::any, use the feature macro ABSL_USES_STD_ANY. + +-#define ABSL_OPTION_USE_STD_ANY 2 ++#define ABSL_OPTION_USE_STD_ANY 1 + + + // ABSL_OPTION_USE_STD_OPTIONAL +@@ -121,7 +121,7 @@ + // absl::optional is a typedef of std::optional, use the feature macro + // ABSL_USES_STD_OPTIONAL. + +-#define ABSL_OPTION_USE_STD_OPTIONAL 2 ++#define ABSL_OPTION_USE_STD_OPTIONAL 1 + + + // ABSL_OPTION_USE_STD_STRING_VIEW +@@ -148,7 +148,7 @@ + // absl::string_view is a typedef of std::string_view, use the feature macro + // ABSL_USES_STD_STRING_VIEW. + +-#define ABSL_OPTION_USE_STD_STRING_VIEW 2 ++#define ABSL_OPTION_USE_STD_STRING_VIEW 1 + + // ABSL_OPTION_USE_STD_VARIANT + // +@@ -174,7 +174,7 @@ + // absl::variant is a typedef of std::variant, use the feature macro + // ABSL_USES_STD_VARIANT. + +-#define ABSL_OPTION_USE_STD_VARIANT 2 ++#define ABSL_OPTION_USE_STD_VARIANT 1 + + // ABSL_OPTION_USE_STD_ORDERING + // +@@ -201,7 +201,7 @@ + // the ordering types are aliases of std:: ordering types, use the feature macro + // ABSL_USES_STD_ORDERING. + +-#define ABSL_OPTION_USE_STD_ORDERING 2 ++#define ABSL_OPTION_USE_STD_ORDERING 0 + + // ABSL_OPTION_USE_INLINE_NAMESPACE + // ABSL_OPTION_INLINE_NAMESPACE_NAME diff --git a/options-old.patch b/options-old.patch new file mode 100644 index 0000000..0c2cf7e --- /dev/null +++ b/options-old.patch @@ -0,0 +1,54 @@ +Make the headers always tell the truth about the ABI of the compiled dll's +to avoid mysterious linker errors when using wrong C++ version in compiler. +This version of the patch is for old systems where the system compiler does not use C++17. +For more information, see “notice for package managers” in options.h + +Index: abseil-cpp-20240116.1/absl/base/options.h +=================================================================== +--- abseil-cpp-20240116.1.orig/absl/base/options.h ++++ abseil-cpp-20240116.1/absl/base/options.h +@@ -94,7 +94,7 @@ + // User code should not inspect this macro. To check in the preprocessor if + // absl::any is a typedef of std::any, use the feature macro ABSL_USES_STD_ANY. + +-#define ABSL_OPTION_USE_STD_ANY 2 ++#define ABSL_OPTION_USE_STD_ANY 0 + + + // ABSL_OPTION_USE_STD_OPTIONAL +@@ -121,7 +121,7 @@ + // absl::optional is a typedef of std::optional, use the feature macro + // ABSL_USES_STD_OPTIONAL. + +-#define ABSL_OPTION_USE_STD_OPTIONAL 2 ++#define ABSL_OPTION_USE_STD_OPTIONAL 0 + + + // ABSL_OPTION_USE_STD_STRING_VIEW +@@ -148,7 +148,7 @@ + // absl::string_view is a typedef of std::string_view, use the feature macro + // ABSL_USES_STD_STRING_VIEW. + +-#define ABSL_OPTION_USE_STD_STRING_VIEW 2 ++#define ABSL_OPTION_USE_STD_STRING_VIEW 0 + + // ABSL_OPTION_USE_STD_VARIANT + // +@@ -174,7 +174,7 @@ + // absl::variant is a typedef of std::variant, use the feature macro + // ABSL_USES_STD_VARIANT. + +-#define ABSL_OPTION_USE_STD_VARIANT 2 ++#define ABSL_OPTION_USE_STD_VARIANT 0 + + // ABSL_OPTION_USE_STD_ORDERING + // +@@ -201,7 +201,7 @@ + // the ordering types are aliases of std:: ordering types, use the feature macro + // ABSL_USES_STD_ORDERING. + +-#define ABSL_OPTION_USE_STD_ORDERING 2 ++#define ABSL_OPTION_USE_STD_ORDERING 0 + + // ABSL_OPTION_USE_INLINE_NAMESPACE + // ABSL_OPTION_INLINE_NAMESPACE_NAME