Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1034908: Update libabsl-dev to new upstream version/snapshot for newer protobuf

221 views
Skip to first unread message

Pirate Praveen

unread,
Apr 27, 2023, 7:30:04 AM4/27/23
to
Package: libabsl-dev
Version: 20220623.1-1
Severity: wishlist
Control: block 1034668 by -1
Control: affects -1 protobuf

Please update libabsl-dev so that we can build protobuf 3.22.3 in
experimental.

CMake Error at cmake/libprotobuf-lite.cmake:26 (target_link_libraries):
Target "libprotobuf-lite" links to:

absl::absl_check

but the target was not found. Possible reasons include:

* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.

Call Stack (most recent call first):
CMakeLists.txt:354 (include)

If you want to reprpoduce this, a wip version is available at
https://people.debian.org/~praveen/new/pool/main/p/protobuf/

Pirate Praveen

unread,
Apr 27, 2023, 10:00:05 AM4/27/23
to
Control: forwarded
-1 https://salsa.debian.org/debian/abseil/-/merge_requests/1
I have created a merge request with the new upstream version
https://salsa.debian.org/debian/abseil/-/merge_requests/1

though now the error changed to,
CMake Error at cmake/tests.cmake:97 (target_link_libraries):
Target "tests" links to:

absl::scoped_mock_log

but the target was not found. Possible reasons include:

* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.

Call Stack (most recent call first):
CMakeLists.txt:401 (include)

Pirate Praveen

unread,
Apr 27, 2023, 10:50:05 AM4/27/23
to
On Thu, 27 Apr 2023 19:16:36 +0530 Pirate Praveen
<pra...@onenetbeyond.org> wrote:
> though now the error changed to,
> CMake Error at cmake/tests.cmake:97 (target_link_libraries):
> Target "tests" links to:
>
> absl::scoped_mock_log
>
> but the target was not found. Possible reasons include:
>
> * There is a typo in the target name.
> * A find_package call is missing for an IMPORTED target.
> * An ALIAS target is missing.
>
> Call Stack (most recent call first):
> CMakeLists.txt:401 (include)

Looks like this is a bug in abseil itself
https://github.com/abseil/abseil-cpp/issues/1407

Pirate Praveen

unread,
Apr 27, 2023, 12:20:05 PM4/27/23
to
After adding and adapting the patch from upstream, the build fails with
below error. I can't find libgtest.so in any package.

apt-file list libgtest-dev gives
libgtest-dev: /usr/lib/x86_64-linux-gnu/libgtest.a

so we should either ship .so in libgtest-dev or adapt abseil to link
against libgtest.a

dpkg-shlibdeps: error: cannot find library libgtest.so.1.12.1 needed by
debian/libabsl20230125/usr/lib/x86_64-linux-gnu/libabsl_per_thread_sem_test_common.so.20230125.0.0
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libgtest.so.1.12.1 needed by
debian/libabsl20230125/usr/lib/x86_64-linux-gnu/libabsl_spinlock_test_common.so.20230125.0.0
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libgmock.so.1.12.1 needed by
debian/libabsl20230125/usr/lib/x86_64-linux-gnu/libabsl_scoped_mock_log.so.20230125.0.0
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libgtest.so.1.12.1 needed by
debian/libabsl20230125/usr/lib/x86_64-linux-gnu/libabsl_scoped_mock_log.so.20230125.0.0
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libgtest.so.1.12.1 needed by
debian/libabsl20230125/usr/lib/x86_64-linux-gnu/libabsl_exception_safety_testing.so.20230125.0.0
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libgtest.so.1.12.1 needed by
debian/libabsl20230125/usr/lib/x86_64-linux-gnu/libabsl_log_internal_test_matchers.so.20230125.0.0
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libgtest.so.1.12.1 needed by
debian/libabsl20230125/usr/lib/x86_64-linux-gnu/libabsl_log_internal_test_helpers.so.20230125.0.0
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot continue due to the errors listed above
Note: libraries are not searched in other binary packages that do not
have any shlibs or symbols file.

Steven Robbins

unread,
Apr 30, 2023, 11:40:04 PM4/30/23
to
On Friday, April 28, 2023 2:45:05 A.M. CDT Debian Bug Tracking System wrote:
> Processing control commands:
> > block 1034908 by -1
>
> Bug #1034908 [libabsl-dev] Update libabsl-dev to new upstream
> version/snapshot for newer protobuf 1034908 was not blocked by any bugs.
> 1034908 was blocking: 1034668
> Added blocking bug(s) of 1034908: 1035045

The reported build error is:

dpkg-shlibdeps: error: cannot find library libgtest.so.1.12.1 needed by
debian/libabsl20230125/usr/lib/x86_64-linux-gnu/
libabsl_per_thread_sem_test_common.so.20230125.0.0
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')

How did libabsl20230125 get such a dependency? Debian has never shipped
libgtest.so -- was this built against a locally-built libgtest somehow?

My recommendation is to preferably build libgtest in your own build process --
this ensures gtest is built with the same compiler options as your test code;
or else link against the provided static libgtest.a.

-Steve


signature.asc

Benjamin Barenblat

unread,
May 14, 2023, 7:40:05 PM5/14/23
to
Control: owner 1034908 !

On Sun, 30 Apr 2023 22:29:27 -0500 Steven Robbins <st...@sumost.ca> wrote:
> The reported build error is:
>
> dpkg-shlibdeps: error: cannot find library libgtest.so.1.12.1 needed by
> debian/libabsl20230125/usr/lib/x86_64-linux-gnu/
> libabsl_per_thread_sem_test_common.so.20230125.0.0
> (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
>
> How did libabsl20230125 get such a dependency? Debian has never shipped
> libgtest.so -- was this built against a locally-built libgtest
> somehow?

Yes. Historically, Abseil has dynamically linked its unit tests against
a one-off libgtest.so built from /usr/src/googletest. Depending on the
local libgtest.so was never a problem because Abseil never shipped any
public libraries that depended on GoogleTest. As of 20230125, however,
Abseil ships a library that (a) is intended for public consumption and
(b) depends on GoogleTest, which brings us to this issue.

> My recommendation is to preferably build libgtest in your own build process --
> this ensures gtest is built with the same compiler options as your test code;
> or else link against the provided static libgtest.a.

On Mon, 1 May 2023 18:39:06 +0530 Praveen Arimbrathodiyil <pra...@onenetbeyond.org> wrote:
> I will leave it to abseil maintainer to decide which approach to take.

I’m about to do an upload to experimental that encourages the first
option. abseil 20230125.3-1 and later will avoid shipping dynamic
libraries for any Abseil library that depends on googletest; library
consumers will have to manually link against libgtest. This only affects
consumers who want to use Abseil libraries that involve GoogleTest
(e.g., libabsl_scoped_mock_log).

Thank you both for bringing this to my attention, and thank you,
Praveen, for all the work you’ve done keeping Abseil going in Debian!
0 new messages