diff options
28 files changed, 1095 insertions, 0 deletions
diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 00000000..7c0dd3c0 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,9 @@ +Abseil for Debian +----------------- + +libabsl-dev installs a number of files to 'internal' directories. In general, +your project should not directly include any files from these directories; they +may change without warning. If you think you need something from one of those +files, please report a bug with reportbug(1). + + -- Benjamin Barenblat <bbaren@debian.org> Thu, 07 May 2020 11:35:28 -0400 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..275c8bb5 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,208 @@ +abseil (20240116.2-2) experimental; urgency=medium + + * Backport an upstream patch to enable demangling on mips64el. + + -- Benjamin Barenblat <bbaren@debian.org> Thu, 16 May 2024 16:15:02 -0400 + +abseil (20240116.2-1) experimental; urgency=medium + + * New upstream release. + + -- Benjamin Barenblat <bbaren@debian.org> Wed, 08 May 2024 16:16:57 -0400 + +abseil (20230802.1-4) unstable; urgency=medium + + * Add extra build dependencies to prevent premature migration (see + https://bugs.debian.org/1059535#39) and to ensure tests have access to + tzdata. + + -- Benjamin Barenblat <bbaren@debian.org> Mon, 01 Apr 2024 17:50:22 -0400 + +abseil (20230802.1-3) unstable; urgency=medium + + * Apply an upstream patch to prevent SIGILLs on RISC-V. (Closes: + #1059532) + + -- Benjamin Barenblat <bbaren@debian.org> Sun, 31 Mar 2024 21:05:37 -0400 + +abseil (20230802.1-2) experimental; urgency=medium + + * Disable a unit test to work around https://bugs.debian.org/1059340. + + -- Benjamin Barenblat <bbaren@debian.org> Fri, 22 Dec 2023 15:46:28 -0500 + +abseil (20230802.1-1) experimental; urgency=medium + + * New upstream release. + + -- Benjamin Barenblat <bbaren@debian.org> Tue, 19 Sep 2023 11:38:43 -0400 + +abseil (20230802.0-1) experimental; urgency=medium + + * New upstream release. + + -- Benjamin Barenblat <bbaren@debian.org> Thu, 07 Sep 2023 13:53:48 -0400 + +abseil (20230125.3-2) experimental; urgency=medium + + * Reenable unit tests, which were accidentally disabled in the previous + version. + * Backport an upstream patch to allow building tests on mipsel. + * Backport a patch from upstream to correct symbolization on ppc64, and + enable unit tests on that platform. + + -- Benjamin Barenblat <bbaren@debian.org> Wed, 02 Aug 2023 14:06:31 -0400 + +abseil (20230125.3-1) experimental; urgency=medium + + * New upstream release. (Closes: #1033466, #1034908) + * Run tests serially on riscv64 to avoid hitting Debian build hardware + limits. (Closes: #1025221) + + -- Benjamin Barenblat <bbaren@debian.org> Sun, 14 May 2023 19:12:11 -0400 + +abseil (20220623.1-1) unstable; urgency=medium + + * New upstream release. + + -- Benjamin Barenblat <bbaren@debian.org> Tue, 18 Oct 2022 10:02:49 -0400 + +abseil (0~20220623.0-2) unstable; urgency=medium + + * Backport an upstream patch to correct pkg-config file generation. + + -- Benjamin Barenblat <bbaren@debian.org> Tue, 30 Aug 2022 22:54:45 -0400 + +abseil (0~20220623.0-1) unstable; urgency=medium + + * New upstream release. (Closes: #1008730, #1012194) + + -- Benjamin Barenblat <bbaren@debian.org> Mon, 22 Aug 2022 22:17:36 -0400 + +abseil (0~20210324.2-4) unstable; urgency=medium + + * Fix "spurious -Wl flag in some pkg-config entries" by backporting a + patch from upstream that corrects CMake pkg-config generation. + (Closes: #1011294) + + -- Benjamin Barenblat <bbaren@debian.org> Fri, 27 May 2022 16:58:38 -0400 + +abseil (0~20210324.2-3) unstable; urgency=medium + + * Backport an upstream patch to disable a problematic unit test. + (Closes: #1007136) + * Reenable unit tests on hppa. + + -- Benjamin Barenblat <bbaren@debian.org> Thu, 14 Apr 2022 13:20:16 -0400 + +abseil (0~20210324.2-2) unstable; urgency=medium + + * Disable a test that doesn’t play well with multiarch on armel and + armhf. + + -- Benjamin Barenblat <bbaren@debian.org> Mon, 07 Feb 2022 11:54:21 -0500 + +abseil (0~20210324.2-1) experimental; urgency=medium + + * New upstream release. + * Stop installing libabsl_flags.so and libabsl_flags.a, since they are + empty on every platform that Debian supports. + * Correct debian/watch search URLs to avoid picking up rc versions. + * Mangle upstream version in debian/watch to match manual mangling in + debian/changelog. + * Stop forcing -Wl,--no-as-needed on dependents. (Closes: #1001596) + * Compute Thumb function bounds correctly. (Closes: #987314) + * Reenable unit tests on most architectures. + + -- Benjamin Barenblat <bbaren@debian.org> Fri, 04 Feb 2022 13:11:32 -0500 + +abseil (0~20200923.3-3) unstable; urgency=medium + + * Fix "ftbfs with -march=x86-64-v3" by correcting the relevant unit + tests. (Closes: #983936) + * Disable double-double unit tests due to compiler bugs. + * Reenable unit tests on ppc64el. + + -- Benjamin Barenblat <bbaren@debian.org> Fri, 05 Mar 2021 15:57:38 -0500 + +abseil (0~20200923.3-2) unstable; urgency=medium + + * Correct string formatting on POWER. + + -- Benjamin Barenblat <bbaren@debian.org> Tue, 09 Feb 2021 14:41:06 -0500 + +abseil (0~20200923.3-1) unstable; urgency=medium + + * New upstream release. + * Correct endianness issues in hash functions and RNG. + + -- Benjamin Barenblat <bbaren@debian.org> Mon, 08 Feb 2021 15:04:52 -0500 + +abseil (0~20200923.2-3) unstable; urgency=medium + + * Fix some issues in unit tests. + * Re-disable unit tests on most platforms until they’re working + everywhere. + + -- Benjamin Barenblat <bbaren@debian.org> Sun, 31 Jan 2021 15:13:51 -0500 + +abseil (0~20200923.2-2) unstable; urgency=medium + + * Reenable unit tests. + + -- Benjamin Barenblat <bbaren@debian.org> Tue, 01 Dec 2020 12:37:56 -0500 + +abseil (0~20200923.2-1) unstable; urgency=medium + + * New upstream release. + * Fix build on hppa via patch. (Closes: #971768) + * Link libatomic where necessary to prevent issues with load-time + symbol resolution. (Closes: #973492) + + -- Benjamin Barenblat <bbaren@debian.org> Fri, 06 Nov 2020 16:51:39 -0500 + +abseil (0~20200923.1-1) unstable; urgency=medium + + * New upstream release. + + -- Benjamin Barenblat <bbaren@debian.org> Mon, 12 Oct 2020 12:40:50 -0400 + +abseil (0~20200923-2) unstable; urgency=medium + + * Release for unstable. + + -- Benjamin Barenblat <bbaren@debian.org> Tue, 06 Oct 2020 10:00:02 -0400 + +abseil (0~20200923-1) experimental; urgency=medium + + * New upstream release. + + -- Benjamin Barenblat <bbaren@debian.org> Fri, 25 Sep 2020 17:57:31 -0400 + +abseil (0~20200225.2-4) unstable; urgency=medium + + * Fix "autopkgtest needs update for new version of cmake: warning on + stderr" by applying a patch from upstream. (Closes: #970333) + + -- Benjamin Barenblat <bbaren@debian.org> Mon, 14 Sep 2020 17:40:05 -0400 + +abseil (0~20200225.2-3) unstable; urgency=medium + + * Replace symbols file with shlibs infrastructure. (Closes: #966183) + + -- Benjamin Barenblat <bbaren@debian.org> Fri, 24 Jul 2020 09:42:03 -0400 + +abseil (0~20200225.2-2) unstable; urgency=medium + + * Rebuild for unstable. + * Rework symbols file using pkg-kde-tools for increased robustness. + * Avoid SSSE3 on amd64 and SSE2 on i386 for greater processor + compatibility. + + -- Benjamin Barenblat <bbaren@debian.org> Thu, 23 Jul 2020 17:23:57 -0400 + +abseil (0~20200225.2-1) experimental; urgency=medium + + * Initial release. (Closes: #888705) + + -- Benjamin Barenblat <bbaren@debian.org> Thu, 18 Jun 2020 16:27:49 -0400 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..2c0f51c3 --- /dev/null +++ b/debian/control @@ -0,0 +1,60 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +Source: abseil +Priority: optional +Maintainer: Benjamin Barenblat <bbaren@debian.org> +Build-Depends: + cmake (>= 3.13), + debhelper-compat (= 12), + googletest (>= 1.12), + tzdata, +Rules-Requires-Root: no +Standards-Version: 4.6.2 +Section: libs +Homepage: https://abseil.io/ +Vcs-Browser: https://salsa.debian.org/debian/abseil +Vcs-Git: https://salsa.debian.org/debian/abseil.git +Description: extensions to the C++ standard library + Abseil is an open-source collection of C++ library code designed to augment the + C++ standard library. The Abseil library code is collected from Google's C++ + codebase and has been extensively tested and used in production. In some cases, + Abseil provides pieces missing from the C++ standard; in others, Abseil + provides alternatives to the standard for special needs. + +Package: libabsl-dev +Architecture: any +Multi-Arch: same +Section: libdevel +Depends: + libabsl20240116 (= ${binary:Version}), + ${misc:Depends}, +Recommends: + cmake (>= 3.13) | pkgconf, + g++ (>= 7.3.1), + libgmock-dev (>= 1.12), +Description: ${source:Synopsis} (development files) + ${source:Extended-Description} + . + This package contains header files and other data necessary for developing with + Abseil. + +Package: libabsl20240116 +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: ${source:Synopsis} + ${source:Extended-Description} + . + This package contains Abseil's shared libraries. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..50743e9c --- /dev/null +++ b/debian/copyright @@ -0,0 +1,35 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Abseil +Upstream-Contact: abseil-io@googlegroups.com +Source: https://github.com/abseil/abseil-cpp/ +Copyright: 2017 The Abseil Authors +License: Apache-2.0 + +Files: * +Copyright: + 2000-2017 Google Inc. + 2017-2023 The Abseil Authors +License: Apache-2.0 + +Files: debian/* +Copyright: 2020-2022 Google LLC +License: Apache-2.0 + +Files: debian/patches/riscv-nan-formatting.diff +Copyright: 2024 aurel32 <aurelien@aurel32.net> +License: Apache-2.0 + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at + . + https://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software distributed + under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. See the License for the + specific language governing permissions and limitations under the License. + . + On Debian systems, the complete text of the Apache License, Version 2.0, can be + found in "/usr/share/common-licenses/Apache-2.0". diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 00000000..2aa4a7bc --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,16 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +[DEFAULT] +upstream-tag = 20240116.2 diff --git a/debian/libabsl-dev.install b/debian/libabsl-dev.install new file mode 100644 index 00000000..9e2cb20e --- /dev/null +++ b/debian/libabsl-dev.install @@ -0,0 +1,19 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +usr/include/absl +usr/lib/*/*.a +usr/lib/*/*.so +usr/lib/*/cmake +usr/lib/*/pkgconfig/*.pc diff --git a/debian/libabsl-dev.lintian-overrides b/debian/libabsl-dev.lintian-overrides new file mode 100644 index 00000000..6765e8c9 --- /dev/null +++ b/debian/libabsl-dev.lintian-overrides @@ -0,0 +1,18 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +libabsl-dev: no-code-sections [usr/lib/*/libabsl_log_entry.*] +libabsl-dev: no-code-sections [usr/lib/*/libabsl_log_internal_nullguard.*] +libabsl-dev: no-code-sections [usr/lib/*/libabsl_random_internal_platform.*] +libabsl-dev: no-code-sections [usr/lib/*/libabsl_test_instance_tracker.*] diff --git a/debian/libabsl20240116.install b/debian/libabsl20240116.install new file mode 100644 index 00000000..ab3017e5 --- /dev/null +++ b/debian/libabsl20240116.install @@ -0,0 +1,15 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +usr/lib/*/libabsl_*.so.* diff --git a/debian/libabsl20240116.lintian-overrides b/debian/libabsl20240116.lintian-overrides new file mode 100644 index 00000000..d439987e --- /dev/null +++ b/debian/libabsl20240116.lintian-overrides @@ -0,0 +1,46 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +libabsl20240116: hardening-no-fortify-functions [usr/lib/*/libabsl_base.so*] +libabsl20240116: hardening-no-fortify-functions [usr/lib/*/libabsl_debugging_internal.so*] +libabsl20240116: hardening-no-fortify-functions [usr/lib/*/libabsl_random_internal_seed_material.so*] +libabsl20240116: hardening-no-fortify-functions [usr/lib/*/libabsl_time_zone.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_bad_any_cast_impl.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_bad_optional_access.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_bad_variant_access.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_cordz_functions.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_cordz_sample_token.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_exponential_biased.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_flags_commandlineflag.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_flags_commandlineflag_internal.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_hash.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_log_initialize.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_log_internal_conditions.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_log_severity.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_log_sink.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_periodic_sampler.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_random_internal_randen.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_random_internal_randen_hwaes_impl.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_random_internal_randen_slow.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_random_seed_gen_exception.so*] +libabsl20240116: library-not-linked-against-libc [usr/lib/*/libabsl_throw_delegate.so*] +libabsl20240116: no-symbols-control-file usr/lib/*/libabsl_* +libabsl20240116: package-name-doesnt-match-sonames libabsl-* +libabsl20240116: shared-library-lacks-prerequisites [usr/lib/*/libabsl_city.so*] +libabsl20240116: shared-library-lacks-prerequisites [usr/lib/*/libabsl_leak_check.so*] +libabsl20240116: shared-library-lacks-prerequisites [usr/lib/*/libabsl_log_entry.so*] +libabsl20240116: shared-library-lacks-prerequisites [usr/lib/*/libabsl_log_internal_nullguard.so*] +libabsl20240116: shared-library-lacks-prerequisites [usr/lib/*/libabsl_low_level_hash.so*] +libabsl20240116: shared-library-lacks-prerequisites [usr/lib/*/libabsl_random_internal_platform.so*] +libabsl20240116: shared-library-lacks-prerequisites [usr/lib/*/libabsl_random_internal_randen_hwaes.so*] diff --git a/debian/libabsl20240116.shlibs b/debian/libabsl20240116.shlibs new file mode 100644 index 00000000..ebebddb7 --- /dev/null +++ b/debian/libabsl20240116.shlibs @@ -0,0 +1,100 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +# +libabsl_bad_any_cast_impl 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_bad_optional_access 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_bad_variant_access 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_base 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_city 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_civil_time 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_cord 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_cord_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_cordz_functions 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_cordz_handle 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_cordz_info 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_cordz_sample_token 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_crc32c 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_crc_cord_state 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_crc_cpu_detect 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_crc_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_debugging_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_demangle_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_die_if_null 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_examine_stack 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_exponential_biased 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_failure_signal_handler 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_commandlineflag 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_commandlineflag_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_config 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_marshalling 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_parse 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_private_handle_accessor 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_program_name 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_reflection 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_usage 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_flags_usage_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_graphcycles_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_hash 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_hashtablez_sampler 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_int128 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_kernel_timeout_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_leak_check 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_entry 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_flags 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_globals 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_initialize 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_check_op 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_conditions 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_fnmatch 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_format 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_globals 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_log_sink_set 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_message 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_nullguard 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_internal_proto 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_severity 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_log_sink 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_low_level_hash 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_malloc_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_periodic_sampler 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_distributions 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_internal_distribution_test_util 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_internal_platform 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_internal_pool_urbg 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_internal_randen 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_internal_randen_hwaes 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_internal_randen_hwaes_impl 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_internal_randen_slow 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_internal_seed_material 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_seed_gen_exception 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_random_seed_sequences 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_raw_hash_set 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_raw_logging_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_scoped_set_env 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_spinlock_wait 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_stacktrace 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_status 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_statusor 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_str_format_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_strerror 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_string_view 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_strings 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_strings_internal 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_symbolize 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_synchronization 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_throw_delegate 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_time 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_time_zone 20240116 libabsl20240116 (>= 20240116.2-1) +libabsl_vlog_config_internal 20240116 libabsl20240116 (>= 20240116.2-1) diff --git a/debian/patches/configure.diff b/debian/patches/configure.diff new file mode 100644 index 00000000..c9a28733 --- /dev/null +++ b/debian/patches/configure.diff @@ -0,0 +1,82 @@ +From: Benjamin Barenblat <bbaren@google.com> +Subject: Set package configuration options +Forwarded: not-needed + +Configure Abseil for Debian. + + - Set the SONAME appropriately. + + - To minimize the possibility of future ABI breakage, treat absl::any, + absl::optional, absl::string_view, and absl::variant as their own types + (rather than aliases for the std:: versions), and compile everything in an + inline namespace. + + - Enable upstream's hardened build mode. + +--- a/CMake/AbseilHelpers.cmake ++++ b/CMake/AbseilHelpers.cmake +@@ -298,7 +298,8 @@ + if(ABSL_ENABLE_INSTALL) + set_target_properties(${_NAME} PROPERTIES + OUTPUT_NAME "absl_${_NAME}" +- SOVERSION "2401.0.0" ++ SOVERSION 20240116 ++ VERSION "20240116.0.1" + ) + endif() + else() +--- a/absl/base/options.h ++++ b/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 + // +@@ -226,7 +226,7 @@ + // allowed. + + #define ABSL_OPTION_USE_INLINE_NAMESPACE 1 +-#define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_20240116 ++#define ABSL_OPTION_INLINE_NAMESPACE_NAME debian6 + + // ABSL_OPTION_HARDENED + // +@@ -253,6 +253,6 @@ + // checks enabled by this option may abort the program in a different way and + // log additional information when `NDEBUG` is not defined. + +-#define ABSL_OPTION_HARDENED 0 ++#define ABSL_OPTION_HARDENED 1 + + #endif // ABSL_BASE_OPTIONS_H_ diff --git a/debian/patches/cordz-info-statistics-test.diff b/debian/patches/cordz-info-statistics-test.diff new file mode 100644 index 00000000..3e2861f3 --- /dev/null +++ b/debian/patches/cordz-info-statistics-test.diff @@ -0,0 +1,11 @@ +--- a/absl/strings/internal/cordz_info_statistics_test.cc ++++ b/absl/strings/internal/cordz_info_statistics_test.cc +@@ -412,6 +412,8 @@ + } + + TEST(CordzInfoStatisticsTest, ThreadSafety) { ++ GTEST_SKIP() << "Skipping test; see https://bugs.debian.org/1018804"; ++ + Notification stop; + static constexpr int kNumThreads = 8; + int64_t sampled_node_count = 0; diff --git a/debian/patches/cpu-features.diff b/debian/patches/cpu-features.diff new file mode 100644 index 00000000..485d2bc5 --- /dev/null +++ b/debian/patches/cpu-features.diff @@ -0,0 +1,55 @@ +From: Benjamin Barenblat <bbaren@google.com> +Subject: Canonicalize supported CPU feature set +Forwarded: not-needed + +Explicitly set supported CPU features. + + - Disable Intel SSE and SSE2 on i386, since Debian supports some i386 + processors without those extensions. Keep them enabled on amd64, since all + amd64 processors have them. + + - Disable Intel SSSE3 entirely, since no i386 processor supports it and Debian + supports amd64 processors without it. + + - Disable NEON on armel and armhf, since no armel processor supports NEON and + Debian supports some armhf processors without it. Keep it enabled on arm64, + since all arm64 processors have it. + +--- a/absl/base/config.h ++++ b/absl/base/config.h +@@ -915,7 +915,7 @@ + // which architectures support the various x86 instruction sets. + #ifdef ABSL_INTERNAL_HAVE_SSE + #error ABSL_INTERNAL_HAVE_SSE cannot be directly set +-#elif defined(__SSE__) ++#elif defined(__x86_64__) + #define ABSL_INTERNAL_HAVE_SSE 1 + #elif (defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1)) && \ + !defined(_M_ARM64EC) +@@ -931,7 +931,7 @@ + // which architectures support the various x86 instruction sets. + #ifdef ABSL_INTERNAL_HAVE_SSE2 + #error ABSL_INTERNAL_HAVE_SSE2 cannot be directly set +-#elif defined(__SSE2__) ++#elif defined(__x86_64__) + #define ABSL_INTERNAL_HAVE_SSE2 1 + #elif (defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2)) && \ + !defined(_M_ARM64EC) +@@ -953,8 +953,6 @@ + // by the CPU. + #ifdef ABSL_INTERNAL_HAVE_SSSE3 + #error ABSL_INTERNAL_HAVE_SSSE3 cannot be directly set +-#elif defined(__SSSE3__) +-#define ABSL_INTERNAL_HAVE_SSSE3 1 + #endif + + // ABSL_INTERNAL_HAVE_ARM_NEON is used for compile-time detection of NEON (ARM +@@ -966,7 +964,7 @@ + // https://llvm.org/docs/CompileCudaWithLLVM.html#detecting-clang-vs-nvcc-from-code + #ifdef ABSL_INTERNAL_HAVE_ARM_NEON + #error ABSL_INTERNAL_HAVE_ARM_NEON cannot be directly set +-#elif defined(__ARM_NEON) && !defined(__CUDA_ARCH__) ++#elif defined(__aarch64__) + #define ABSL_INTERNAL_HAVE_ARM_NEON 1 + #endif + diff --git a/debian/patches/latomic.diff b/debian/patches/latomic.diff new file mode 100644 index 00000000..ef952275 --- /dev/null +++ b/debian/patches/latomic.diff @@ -0,0 +1,20 @@ +From: Benjamin Barenblat <bbaren@google.com> +Subject: Use libatomic if necessary +Bug-Debian: https://bugs.debian.org/973492 + +On some architectures, notably armel, Abseil needs symbols defined in +libatomic. Abseil does not currently have a well-developed system to +declare external library dependencies, so just have the linker determine +if anything needs libatomic and add the DT_NEEDED entry where necessary. + +--- a/absl/copts/AbseilConfigureCopts.cmake ++++ b/absl/copts/AbseilConfigureCopts.cmake +@@ -103,4 +103,8 @@ + set(ABSL_TEST_COPTS "") + endif() + ++list(APPEND ABSL_DEFAULT_LINKOPTS ++ "-Wl,--push-state,--as-needed" "-latomic" "-Wl,--pop-state" ++) ++ + set(ABSL_CXX_STANDARD "${CMAKE_CXX_STANDARD}") diff --git a/debian/patches/mips-cxa-demangle.diff b/debian/patches/mips-cxa-demangle.diff new file mode 100644 index 00000000..81a5cbac --- /dev/null +++ b/debian/patches/mips-cxa-demangle.diff @@ -0,0 +1,21 @@ +From: Benjamin Barenblat <bbaren@google.com> +Subject: Allow __cxa_demangle on MIPS +Origin: backport, https://github.com/abseil/abseil-cpp/commit/519ef3b3f1927972bce669d775abb9b512dd590d + +Both libstdc++ and libc++abi currently ship a __cxa_demangle on MIPS; +there’s no reason to avoid using it. + +--- a/absl/base/config.h ++++ b/absl/base/config.h +@@ -902,9 +902,8 @@ + #error ABSL_INTERNAL_HAS_CXA_DEMANGLE cannot be directly set + #elif defined(OS_ANDROID) && (defined(__i386__) || defined(__x86_64__)) + #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 0 +-#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && \ +- (__GNUC__ >= 4 || (__GNUC__ >= 3 && __GNUC_MINOR__ >= 4)) && \ +- !defined(__mips__) ++#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && \ ++ (__GNUC__ >= 4 || (__GNUC__ >= 3 && __GNUC_MINOR__ >= 4)) + #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 1 + #elif defined(__clang__) && !defined(_MSC_VER) + #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 1 diff --git a/debian/patches/overload-test-dependencies.diff b/debian/patches/overload-test-dependencies.diff new file mode 100644 index 00000000..fb843c91 --- /dev/null +++ b/debian/patches/overload-test-dependencies.diff @@ -0,0 +1,27 @@ +From: Benjamin Barenblat <bbaren@google.com> +Subject: Resynchronize absl/functional/CMakeLists.txt with BUILD.bazel +Forwarded: yes +Applied-Upstream: https://github.com/abseil/abseil-cpp/commit/7b87d959346cab4ab9829724efee377f7fb254ed + +overload_test needs some extra dependencies to build when absl::variant +is not an alias for std::variant; these dependencies are listed in +absl/functional/BUILD.bazel but not in absl/functional/CMakeLists.txt. +Copy dependencies from BUILD.bazel to CMakeLists.txt. + +The author works at Google. Upstream applied this patch as Piper +revision 631845552 and exported it to GitHub; the Applied-Upstream URL +above points to the exported commit. + +--- a/absl/functional/CMakeLists.txt ++++ b/absl/functional/CMakeLists.txt +@@ -129,6 +129,10 @@ + COPTS + ${ABSL_TEST_COPTS} + DEPS ++ absl::config ++ absl::overload ++ absl::string_view + absl::strings ++ absl::variant + GTest::gmock_main + ) diff --git a/debian/patches/pkg-config-directives.diff b/debian/patches/pkg-config-directives.diff new file mode 100644 index 00000000..726d6aec --- /dev/null +++ b/debian/patches/pkg-config-directives.diff @@ -0,0 +1,21 @@ +From: Benjamin Barenblat <bbaren@google.com> +Subject: Do not propagate -Wno-... flags into pkg-config files +Forwarded: not-needed + +Lintian doesn't like any -W flags in pkg-config files, even if those flags +disable warnings. + +--- a/CMake/AbseilHelpers.cmake ++++ b/CMake/AbseilHelpers.cmake +@@ -187,10 +187,7 @@ + endif() + endforeach() + foreach(cflag ${ABSL_CC_LIB_COPTS}) +- if(${cflag} MATCHES "^(-Wno|/wd)") +- # These flags are needed to suppress warnings that might fire in our headers. +- set(PC_CFLAGS "${PC_CFLAGS} ${cflag}") +- elseif(${cflag} MATCHES "^(-W|/w[1234eo])") ++ if(${cflag} MATCHES "^(-W|/w[1234eo])") + # Don't impose our warnings on others. + elseif(${cflag} MATCHES "^-m") + # Don't impose CPU instruction requirements on others, as diff --git a/debian/patches/riscv-nan-formatting.diff b/debian/patches/riscv-nan-formatting.diff new file mode 100644 index 00000000..8ad9b629 --- /dev/null +++ b/debian/patches/riscv-nan-formatting.diff @@ -0,0 +1,20 @@ +From: Benjamin Barenblat <bbaren@google.com> +Subject: riscv64: Disable negative NaN float ostream format checking +Bug-Debian: https://bugs.debian.org/1059340 + +Streaming a negative NaN float with libstdc++ on riscv64 produces an +optimization-dependent result. Don't require that logging such a float with +Abseil produce the same result as libstdc++ streaming. + +--- a/absl/log/log_format_test.cc ++++ b/absl/log/log_format_test.cc +@@ -611,7 +611,9 @@ + EXPECT_CALL( + test_sink, + Send(AllOf( ++#ifndef __riscv // see https://bugs.debian.org/1059340 + TextMessage(MatchesOstream(comparison_stream)), ++#endif + TextMessage(AnyOf(Eq("-nan"), Eq("nan"), Eq("NaN"), Eq("-nan(ind)"))), + ENCODED_MESSAGE( + AnyOf(EqualsProto(R"pb(value { str: "-nan" })pb"), diff --git a/debian/patches/riscv-rdcycle.diff b/debian/patches/riscv-rdcycle.diff new file mode 100644 index 00000000..24682c93 --- /dev/null +++ b/debian/patches/riscv-rdcycle.diff @@ -0,0 +1,71 @@ +From: aurel32 <aurelien@aurel32.net> +Subject: unscaledcycleclock: remove RISC-V support +Bug-Debian: https://bugs.debian.org/1059532 +Origin: upstream, https://github.com/abseil/abseil-cpp/commit/7335a36d0b5c1c597566f9aa3f458a5b6817c3b4 + +Starting with Linux 6.6 [1], RDCYCLE is a privileged instruction on +RISC-V and can't be used directly from userland. There is a sysctl +option to change that as a transition period, but it will eventually +disappear. + +The RDTIME instruction is another less accurate alternative, however its +frequency varies from board to board, and there is currently now way to +get its frequency from userland [2]. + +Therefore this patch just removes the code for unscaledcycleclock on +RISC-V. Without processor specific implementation, abseil relies on +std::chrono::steady_clock::now().time_since_epoch() which is basically a +wrapper around clock_gettime (CLOCK_MONOTONIC), which in turns use +__vdso_clock_gettime(). On RISC-V this VDSO is just a wrapper around +RDTIME correctly scaled to use nanoseconds units. + +This fixes the testsuite on riscv64, tested on a VisionFive 2 board. + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc4c07c89aada16229084eeb93895c95b7eabaa3 +[2] https://github.com/abseil/abseil-cpp/pull/1631 + +--- a/absl/base/internal/unscaledcycleclock.cc ++++ b/absl/base/internal/unscaledcycleclock.cc +@@ -121,18 +121,6 @@ + return aarch64_timer_frequency; + } + +-#elif defined(__riscv) +- +-int64_t UnscaledCycleClock::Now() { +- int64_t virtual_timer_value; +- asm volatile("rdcycle %0" : "=r"(virtual_timer_value)); +- return virtual_timer_value; +-} +- +-double UnscaledCycleClock::Frequency() { +- return base_internal::NominalCPUFrequency(); +-} +- + #elif defined(_M_IX86) || defined(_M_X64) + + #pragma intrinsic(__rdtsc) +--- a/absl/base/internal/unscaledcycleclock_config.h ++++ b/absl/base/internal/unscaledcycleclock_config.h +@@ -21,8 +21,8 @@ + + // The following platforms have an implementation of a hardware counter. + #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \ +- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \ +- defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC)) ++ defined(__powerpc__) || defined(__ppc__) || defined(_M_IX86) || \ ++ (defined(_M_X64) && !defined(_M_ARM64EC)) + #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1 + #else + #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 0 +@@ -53,8 +53,8 @@ + #if ABSL_USE_UNSCALED_CYCLECLOCK + // This macro can be used to test if UnscaledCycleClock::Frequency() + // is NominalCPUFrequency() on a particular platform. +-#if (defined(__i386__) || defined(__x86_64__) || defined(__riscv) || \ +- defined(_M_IX86) || defined(_M_X64)) ++#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || \ ++ defined(_M_X64)) + #define ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY + #endif + #endif diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..b7caff14 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,9 @@ +configure.diff +cpu-features.diff +latomic.diff +cordz-info-statistics-test.diff +pkg-config-directives.diff +riscv-nan-formatting.diff +riscv-rdcycle.diff +overload-test-dependencies.diff +mips-cxa-demangle.diff diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..16a2e263 --- /dev/null +++ b/debian/rules @@ -0,0 +1,54 @@ +#!/usr/bin/make -f +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +include /usr/share/dpkg/architecture.mk + +export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow reproducible=+fixfilepath + +# Unit tests require more than 2 GB of RAM, so disable them on mipsel. +# +# Disable unit tests unconditionally if nocheck is set. +ifeq ($(DEB_HOST_ARCH),mipsel) +ABSL_RUN_TESTS=OFF +else ifneq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),) +ABSL_RUN_TESTS=OFF +else +ABSL_RUN_TESTS=ON +endif + +%: + dh $@ + +override_dh_auto_clean: + $(RM) -r $(CURDIR)/static + $(RM) -r $(CURDIR)/shared + +override_dh_auto_configure: + dh_auto_configure -Bstatic -- -DCMAKE_CXX_STANDARD=17 -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=ON -DABSL_BUILD_TESTING=ON -DABSL_USE_GOOGLETEST_HEAD=OFF + dh_auto_configure -Bshared -- -DCMAKE_CXX_STANDARD=17 -DBUILD_SHARED_LIBS=ON + +override_dh_auto_build: + dh_auto_build -Bstatic + dh_auto_build -Bshared + +ifeq ($(ABSL_RUN_TESTS),ON) +override_dh_auto_test: + dh_auto_test -Bstatic $(ABSL_TEST_EXTRA_ARGS) +endif + +override_dh_auto_install: + dh_auto_install -Bstatic + dh_auto_install -Bshared + find debian/tmp -type d -empty -delete diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/tests/bug1011294 b/debian/tests/bug1011294 new file mode 100755 index 00000000..302bcf73 --- /dev/null +++ b/debian/tests/bug1011294 @@ -0,0 +1,24 @@ +#!/bin/sh +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +set -eu + +readonly TMP="$(mktemp -d)" +trap "rm -rf \"$TMP\"" EXIT +cd "$TMP" + +echo 'int main() {}' >noop.cc + +g++ -o noop noop.cc $(pkg-config --cflags absl_base) $(pkg-config --libs absl_base) diff --git a/debian/tests/cmake b/debian/tests/cmake new file mode 100755 index 00000000..43eb3408 --- /dev/null +++ b/debian/tests/cmake @@ -0,0 +1,45 @@ +#!/bin/sh -eu +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +readonly TMP="$(mktemp -d)" +trap "rm -rf \"$TMP\"" EXIT +cd "$TMP" + +cat >test.cc <<EOF +#include <absl/strings/numbers.h> + +int main(int argc, char* argv[]) { + int n; + if (!absl::SimpleAtoi(argv[1], &n)) { + return 1; + } + return n; +} +EOF + +cat >CMakeLists.txt <<EOF +cmake_minimum_required(VERSION 3.5) +project(test CXX) +set(CMAKE_CXX_STANDARD 17) +add_executable(test test.cc) +find_package(absl REQUIRED) +target_link_libraries(test absl::strings) +EOF + +mkdir build +cd build +cmake .. +make +./test 0 diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 00000000..7bda87a7 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,25 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +Tests: smoke +Depends: @, g++, libgtest-dev + +Tests: cmake +Depends: @, cmake (>= 3.5), g++, make + +Tests: bug1011294 +Depends: @, g++, pkg-config + +Tests: upstream1407 +Depends: @, g++, libgmock-dev diff --git a/debian/tests/smoke b/debian/tests/smoke new file mode 100755 index 00000000..7c4b66fa --- /dev/null +++ b/debian/tests/smoke @@ -0,0 +1,37 @@ +#!/bin/sh -eu +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +readonly TMP="$(mktemp -d)" +trap "rm -rf \"$TMP\"" EXIT +cd "$TMP" + +cat >smoke.cc <<EOF +#include <absl/strings/str_join.h> +#include <gtest/gtest.h> + +#include <vector> + +namespace { + +TEST(AbseilTest, StrJoinWorks) { + std::vector<std::string> v = {"foo", "bar", "baz"}; + EXPECT_EQ(absl::StrJoin(v, "-"), "foo-bar-baz"); +} + +} // namespace +EOF + +g++ -o smoke smoke.cc -labsl_strings -lgtest -lgtest_main -pthread +./smoke diff --git a/debian/tests/upstream1407 b/debian/tests/upstream1407 new file mode 100755 index 00000000..332fc947 --- /dev/null +++ b/debian/tests/upstream1407 @@ -0,0 +1,28 @@ +#!/bin/sh +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +set -eu + +readonly TMP="$(mktemp -d)" +trap "rm -rf \"$TMP\"" EXIT +cd "$TMP" + +cat >scoped_mock_log_trial.cc <<EOF +#include <absl/log/scoped_mock_log.h> + +int main() { absl::ScopedMockLog scoped_mock_log; } +EOF + +g++ -o scoped_mock_log_trial scoped_mock_log_trial.cc -labsl_scoped_mock_log -labsl_log_entry -labsl_log_sink -labsl_log_internal_log_sink_set -labsl_raw_logging_internal -labsl_log_severity -labsl_strings -lgmock -lgtest diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000..fc9d681d --- /dev/null +++ b/debian/watch @@ -0,0 +1,18 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +version=4 +opts="filenamemangle=s%(?:.*?)?v?@ANY_VERSION@(@ARCHIVE_EXT@)%@PACKAGE@-$1$2%, uversionmangle=s/(\d)[-+_.]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/" \ + https://github.com/abseil/abseil-cpp/tags \ + (?:.*?/)?v?@ANY_VERSION@@ARCHIVE_EXT@ |