[Bug 1839553] New: Review Request: abseil-cpp - C++ Common Libraries

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux