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@xxxxxxxxxxxxxxxxx Reporter: richmattes@xxxxxxxxx QA Contact: extras-qa@xxxxxxxxxxxxxxxxx CC: package-review@xxxxxxxxxxxxxxxxxxxxxxx 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.fc32.src.rpm 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@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@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@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 _______________________________________________ package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx