https://bugzilla.redhat.com/show_bug.cgi?id=1839553
Bug ID: 1839553
Summary: Review Request: abseil-cpp - C++ Common Libraries
Product: Fedora
Version: rawhide
Hardware: All
OS: Linux
Status: NEW
Component: Package Review
Severity: medium
Priority: medium
Assignee: nobody(a)fedoraproject.org
Reporter: richmattes(a)gmail.com
QA Contact: extras-qa(a)fedoraproject.org
CC: package-review(a)lists.fedoraproject.org
Target Milestone: ---
Classification: Fedora
Spec URL:
https://rmattes.fedorapeople.org/RPMS/abseil-cpp/abseil-cpp.spec
SRPM URL:
https://rmattes.fedorapeople.org/RPMS/abseil-cpp/abseil-cpp-20200225.2-1....
Description:
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 own C++ code base, has been extensively tested and used in
production, and is the same code we depend on in our daily coding lives.
In some cases, Abseil provides pieces missing from the C++ standard; in
others, Abseil provides alternatives to the standard for special needs we've
found through usage in the Google code base. We denote those cases clearly
within the library code we provide you.
Abseil is not meant to be a competitor to the standard library; we've just
found that many of these utilities serve a purpose within our code base,
and we now want to provide those resources to the C++ community as a whole.
Fedora Account System Username: rmattes
rpmlint:
$ rpmlint abseil-cpp.spec ../RPMS/x86_64/abseil-cpp-*
../SRPMS/abseil-cpp-20200225.2-1.fc32.src.rpm
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_bad_any_cast_impl.so
libabsl_bad_any_cast_impl.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_bad_any_cast_impl.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_bad_optional_access.so
libabsl_bad_optional_access.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_bad_optional_access.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_bad_variant_access.so
libabsl_bad_variant_access.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_bad_variant_access.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_base.so libabsl_base.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_city.so libabsl_city.so
abseil-cpp.x86_64: E: shared-lib-without-dependency-information
/usr/lib64/libabsl_city.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_civil_time.so
libabsl_civil_time.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_cord.so libabsl_cord.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_debugging_internal.so
libabsl_debugging_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_demangle_internal.so
libabsl_demangle_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_dynamic_annotations.so
libabsl_dynamic_annotations.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_examine_stack.so
libabsl_examine_stack.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_exponential_biased.so
libabsl_exponential_biased.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_exponential_biased.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_failure_signal_handler.so libabsl_failure_signal_handler.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags.so
libabsl_flags.so
abseil-cpp.x86_64: E: shared-lib-without-dependency-information
/usr/lib64/libabsl_flags.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags_config.so
libabsl_flags_config.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags_internal.so
libabsl_flags_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags_marshalling.so
libabsl_flags_marshalling.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags_parse.so
libabsl_flags_parse.so
abseil-cpp.x86_64: W: shared-lib-calls-exit /usr/lib64/libabsl_flags_parse.so
exit(a)GLIBC_2.2.5
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags_program_name.so
libabsl_flags_program_name.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags_registry.so
libabsl_flags_registry.so
abseil-cpp.x86_64: W: shared-lib-calls-exit
/usr/lib64/libabsl_flags_registry.so exit(a)GLIBC_2.2.5
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags_usage.so
libabsl_flags_usage.so
abseil-cpp.x86_64: W: shared-lib-calls-exit /usr/lib64/libabsl_flags_usage.so
exit(a)GLIBC_2.2.5
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_flags_usage_internal.so
libabsl_flags_usage_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_graphcycles_internal.so
libabsl_graphcycles_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_hash.so libabsl_hash.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_hash.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_hashtablez_sampler.so
libabsl_hashtablez_sampler.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_hashtablez_sampler.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_leak_check.so
libabsl_leak_check.so
abseil-cpp.x86_64: E: shared-lib-without-dependency-information
/usr/lib64/libabsl_leak_check.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_leak_check_disable.so
libabsl_leak_check_disable.so
abseil-cpp.x86_64: E: shared-lib-without-dependency-information
/usr/lib64/libabsl_leak_check_disable.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_log_severity.so
libabsl_log_severity.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_log_severity.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_malloc_internal.so
libabsl_malloc_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_periodic_sampler.so
libabsl_periodic_sampler.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_periodic_sampler.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_random_distributions.so
libabsl_random_distributions.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_internal_distribution_test_util.so
libabsl_random_internal_distribution_test_util.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_internal_pool_urbg.so
libabsl_random_internal_pool_urbg.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_internal_randen.so libabsl_random_internal_randen.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_random_internal_randen.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_internal_randen_hwaes.so
libabsl_random_internal_randen_hwaes.so
abseil-cpp.x86_64: E: shared-lib-without-dependency-information
/usr/lib64/libabsl_random_internal_randen_hwaes.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_internal_randen_hwaes_impl.so
libabsl_random_internal_randen_hwaes_impl.so
abseil-cpp.x86_64: E: shared-lib-without-dependency-information
/usr/lib64/libabsl_random_internal_randen_hwaes_impl.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_internal_randen_slow.so
libabsl_random_internal_randen_slow.so
abseil-cpp.x86_64: E: shared-lib-without-dependency-information
/usr/lib64/libabsl_random_internal_randen_slow.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_internal_seed_material.so
libabsl_random_internal_seed_material.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_seed_gen_exception.so
libabsl_random_seed_gen_exception.so
abseil-cpp.x86_64: E: invalid-soname
/usr/lib64/libabsl_random_seed_sequences.so libabsl_random_seed_sequences.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_raw_hash_set.so
libabsl_raw_hash_set.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_raw_hash_set.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_raw_logging_internal.so
libabsl_raw_logging_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_scoped_set_env.so
libabsl_scoped_set_env.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_spinlock_wait.so
libabsl_spinlock_wait.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_stacktrace.so
libabsl_stacktrace.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_stacktrace.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_status.so
libabsl_status.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_str_format_internal.so
libabsl_str_format_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_strings.so
libabsl_strings.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_strings_internal.so
libabsl_strings_internal.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_symbolize.so
libabsl_symbolize.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_synchronization.so
libabsl_synchronization.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_throw_delegate.so
libabsl_throw_delegate.so
abseil-cpp.x86_64: E: library-not-linked-against-libc
/usr/lib64/libabsl_throw_delegate.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_time.so libabsl_time.so
abseil-cpp.x86_64: E: invalid-soname /usr/lib64/libabsl_time_zone.so
libabsl_time_zone.so
abseil-cpp-devel.x86_64: W: only-non-binary-in-usr-lib
abseil-cpp-devel.x86_64: W: no-documentation
5 packages and 1 specfiles checked; 73 errors, 5 warnings.
The invalid-soname warnings are probably to be expected due to the upstream
release management process[1]. Upstream explicitly doesn't version their
library, preferring that projects bundle it into their build processes as a
static lib. I could hack in a version or soversion for Fedora, but I don't
think upstream will accept it. For Fedora, we can treat it as a static library
and require all deps to be re-compiled when abseil-cpp is updated, and we can
forbid upgrading the LTS branch within a fedora release.
I'm not sure where the "library-not-linked-against-libc" warnings are
coming
from: I see linkage to libc
$ ldd /usr/lib64/libabsl_stacktrace.so
linux-vdso.so.1 (0x00007ffe42103000)
libabsl_debugging_internal.so => /lib64/libabsl_debugging_internal.so
(0x00007f5f12962000)
libabsl_dynamic_annotations.so => /lib64/libabsl_dynamic_annotations.so
(0x00007f5f1295d000)
libabsl_raw_logging_internal.so =>
/lib64/libabsl_raw_logging_internal.so (0x00007f5f12958000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f5f12768000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f5f1274d000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5f12583000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5f1243b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5f129c8000)
Finally, the "shared-lib-without-dependency-information" seems to be a result
of -Wl,--as-needed. Nothing looks suspicious about the build flags, I think
those libs just really don't link against anything in libc or libstdc++
[ 17%] Linking CXX shared library libabsl_city.so
cd /home/rich/rpmbuild/BUILD/abseil-cpp-20200225.2/absl/hash && /usr/bin/cmake
-E cmake_link_script CMakeFiles/city.dir/link.txt --verbose=1
/usr/lib64/ccache/c++ -fPIC -O2 -g -pipe -Wall -Werror=format-security
-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions
-fstack-protector-strong -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g
-DNDEBUG -Wl,-z,relro -Wl,--as-needed -Wl,-z,now
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared
-Wl,-soname,libabsl_city.so -o libabsl_city.so
CMakeFiles/city.dir/internal/city.cc.o
[1]
https://abseil.io/about/releases
--
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component