We have done the work now to get an out-of-band result from
abi-compliance-checker confirming that this library's ABI is not affected.

On Mon, Feb 05, 2024 at 10:06:28PM +0000, Steve Langasek wrote:
> Source: xdp-tools
> Version: 1.4.0-1
> Severity: serious
> Tags: patch pending sid trixie
> Justification: library ABI skew on upgrade
> User: debian-...@lists.debian.org
> Usertags: time-t
> 
> NOTICE: these changes must not be uploaded to unstable yet!
> 
> Dear maintainer,
> 
> As part of the 64-bit time_t transition required to support 32-bit
> architectures in 2038 and beyond
> (https://wiki.debian.org/ReleaseGoals/64bit-time), we have identified
> xdp-tools as a source package shipping runtime libraries whose ABI
> either is affected by the change in size of time_t, or could not be
> analyzed via abi-compliance-checker (and therefore to be on the safe
> side we assume is affected).
> 
> To ensure that inconsistent combinations of libraries with their
> reverse-dependencies are never installed together, it is necessary to
> have a library transition, which is most easily done by renaming the
> runtime library package.
> 
> Since turning on 64-bit time_t is being handled centrally through a change
> to the default dpkg-buildflags (https://bugs.debian.org/1037136), it is
> important that libraries affected by this ABI change all be uploaded close
> together in time.  Therefore I have prepared a 0-day NMU for xdp-tools
> which will initially be uploaded to experimental if possible, then to
> unstable after packages have cleared binary NEW.
> 
> Please find the patch for this NMU attached.
> 
> If you have any concerns about this patch, please reach out ASAP.  Although
> this package will be uploaded to experimental immediately, there will be a
> period of several days before we begin uploads to unstable; so if information
> becomes available that your package should not be included in the transition,
> there is time for us to amend the planned uploads.
> 
> 
> 
> -- System Information:
> Debian Release: trixie/sid
>   APT prefers unstable
>   APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
> 'experimental')
> Architecture: amd64 (x86_64)
> 
> Kernel: Linux 6.5.0-14-generic (SMP w/12 CPU threads; PREEMPT)
> Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
> Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
> Shell: /bin/sh linked to /usr/bin/dash
> Init: systemd (via /run/systemd/system)

> diff -Nru xdp-tools-1.4.0/debian/changelog xdp-tools-1.4.0/debian/changelog
> --- xdp-tools-1.4.0/debian/changelog  2023-07-08 15:10:01.000000000 +0000
> +++ xdp-tools-1.4.0/debian/changelog  2024-02-05 20:59:22.000000000 +0000
> @@ -1,3 +1,10 @@
> +xdp-tools (1.4.0-1.1) experimental; urgency=medium
> +
> +  * Non-maintainer upload.
> +  * Rename libraries for 64-bit time_t transition.
> +
> + -- Steve Langasek <vor...@debian.org>  Mon, 05 Feb 2024 20:59:22 +0000
> +
>  xdp-tools (1.4.0-1) unstable; urgency=medium
>  
>    * Enable ELF metadata stamping
> diff -Nru xdp-tools-1.4.0/debian/control xdp-tools-1.4.0/debian/control
> --- xdp-tools-1.4.0/debian/control    2023-07-08 14:55:18.000000000 +0000
> +++ xdp-tools-1.4.0/debian/control    2024-02-05 20:59:21.000000000 +0000
> @@ -18,7 +18,10 @@
>  Vcs-Browser: https://salsa.debian.org/debian/xdp-tools
>  Vcs-Git: https://salsa.debian.org/debian/xdp-tools.git
>  
> -Package: libxdp1
> +Package: libxdp1t64
> +Provides: ${t64:Provides}
> +Replaces: libxdp1
> +Breaks: libxdp1 (<< ${source:Version})
>  Section: libs
>  Architecture: linux-any
>  Multi-Arch: same
> @@ -32,7 +35,7 @@
>  Section: libdevel
>  Architecture: linux-any
>  Multi-Arch: same
> -Depends: libxdp1 (= ${binary:Version}), ${misc:Depends}, libbpf-dev,
> +Depends: libxdp1t64 (= ${binary:Version}), ${misc:Depends}, libbpf-dev,
>  Description: library and utilities for use with XDP - development files
>   Library for working with the eXpress Data Path facility of the Linux kernel,
>   and a collection of utilities and example code that uses the library.
> @@ -41,7 +44,7 @@
>  
>  Package: xdp-tools
>  Architecture: linux-any
> -Depends: libxdp1 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends},
> +Depends: libxdp1t64 (= ${binary:Version}), ${misc:Depends}, 
> ${shlibs:Depends},
>  Description: library and utilities for use with XDP
>   Library for working with the eXpress Data Path facility of the Linux kernel,
>   and a collection of utilities and example code that uses the library.
> diff -Nru xdp-tools-1.4.0/debian/libxdp1.install 
> xdp-tools-1.4.0/debian/libxdp1.install
> --- xdp-tools-1.4.0/debian/libxdp1.install    2023-07-08 14:55:18.000000000 
> +0000
> +++ xdp-tools-1.4.0/debian/libxdp1.install    1970-01-01 00:00:00.000000000 
> +0000
> @@ -1,2 +0,0 @@
> -usr/lib/*/bpf/
> -usr/lib/*/lib*.so.*
> diff -Nru xdp-tools-1.4.0/debian/libxdp1.lintian-overrides 
> xdp-tools-1.4.0/debian/libxdp1.lintian-overrides
> --- xdp-tools-1.4.0/debian/libxdp1.lintian-overrides  2023-07-08 
> 14:55:18.000000000 +0000
> +++ xdp-tools-1.4.0/debian/libxdp1.lintian-overrides  1970-01-01 
> 00:00:00.000000000 +0000
> @@ -1,2 +0,0 @@
> -# BPF binaries
> -libxdp1: binary-from-other-architecture [usr/lib/*/bpf/*.o]
> diff -Nru xdp-tools-1.4.0/debian/libxdp1.symbols 
> xdp-tools-1.4.0/debian/libxdp1.symbols
> --- xdp-tools-1.4.0/debian/libxdp1.symbols    2023-07-08 15:10:01.000000000 
> +0000
> +++ xdp-tools-1.4.0/debian/libxdp1.symbols    1970-01-01 00:00:00.000000000 
> +0000
> @@ -1,75 +0,0 @@
> -libxdp.so.1 libxdp1 #MINVER#
> -* Build-Depends-Package: libxdp-dev
> - LIBXDP_1.0.0@LIBXDP_1.0.0 1.0.0
> - LIBXDP_1.2.0@LIBXDP_1.2.0 1.2.0
> - LIBXDP_1.3.0@LIBXDP_1.3.0 1.3.0
> - LIBXDP_1.4.0@LIBXDP_1.4.0 1.4.0
> - libxdp_clean_references@LIBXDP_1.2.0 1.2.0
> - libxdp_get_error@LIBXDP_1.0.0 1.0.0
> - libxdp_set_print@LIBXDP_1.0.0 1.0.0
> - libxdp_strerror@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__attach_mode@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__close@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__detach@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__get_from_ifindex@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__hw_prog@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__is_legacy@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__main_prog@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__next_prog@LIBXDP_1.0.0 1.0.0
> - xdp_multiprog__program_count@LIBXDP_1.2.0 1.2.0
> - xdp_multiprog__xdp_frags_support@LIBXDP_1.3.0 1.3.0
> - xdp_program__attach@LIBXDP_1.0.0 1.0.0
> - xdp_program__attach_multi@LIBXDP_1.0.0 1.0.0
> - xdp_program__bpf_obj@LIBXDP_1.0.0 1.0.0
> - xdp_program__btf@LIBXDP_1.0.0 1.0.0
> - xdp_program__chain_call_enabled@LIBXDP_1.0.0 1.0.0
> - xdp_program__clone@LIBXDP_1.3.0 1.3.0
> - xdp_program__close@LIBXDP_1.0.0 1.0.0
> - xdp_program__create@LIBXDP_1.3.0 1.3.0
> - xdp_program__detach@LIBXDP_1.0.0 1.0.0
> - xdp_program__detach_multi@LIBXDP_1.0.0 1.0.0
> - xdp_program__fd@LIBXDP_1.0.0 1.0.0
> - xdp_program__find_file@LIBXDP_1.0.0 1.0.0
> - xdp_program__from_bpf_obj@LIBXDP_1.0.0 1.0.0
> - xdp_program__from_fd@LIBXDP_1.0.0 1.0.0
> - xdp_program__from_id@LIBXDP_1.0.0 1.0.0
> - xdp_program__from_pin@LIBXDP_1.0.0 1.0.0
> - xdp_program__id@LIBXDP_1.0.0 1.0.0
> - xdp_program__is_attached@LIBXDP_1.0.0 1.0.0
> - xdp_program__name@LIBXDP_1.0.0 1.0.0
> - xdp_program__open_file@LIBXDP_1.0.0 1.0.0
> - xdp_program__pin@LIBXDP_1.0.0 1.0.0
> - xdp_program__print_chain_call_actions@LIBXDP_1.0.0 1.0.0
> - xdp_program__run_prio@LIBXDP_1.0.0 1.0.0
> - xdp_program__set_chain_call_enabled@LIBXDP_1.0.0 1.0.0
> - xdp_program__set_run_prio@LIBXDP_1.0.0 1.0.0
> - xdp_program__set_xdp_frags_support@LIBXDP_1.3.0 1.3.0
> - xdp_program__tag@LIBXDP_1.0.0 1.0.0
> - xdp_program__test_run@LIBXDP_1.3.0 1.3.0
> - xdp_program__xdp_frags_support@LIBXDP_1.3.0 1.3.0
> - xsk_cons_nb_avail@LIBXDP_1.2.0 1.2.0
> - xsk_prod_nb_free@LIBXDP_1.2.0 1.2.0
> - xsk_ring_cons__cancel@LIBXDP_1.2.0 1.2.0
> - xsk_ring_cons__comp_addr@LIBXDP_1.2.0 1.2.0
> - xsk_ring_cons__peek@LIBXDP_1.2.0 1.2.0
> - xsk_ring_cons__release@LIBXDP_1.2.0 1.2.0
> - xsk_ring_cons__rx_desc@LIBXDP_1.2.0 1.2.0
> - xsk_ring_prod__fill_addr@LIBXDP_1.2.0 1.2.0
> - xsk_ring_prod__needs_wakeup@LIBXDP_1.2.0 1.2.0
> - xsk_ring_prod__reserve@LIBXDP_1.2.0 1.2.0
> - xsk_ring_prod__submit@LIBXDP_1.2.0 1.2.0
> - xsk_ring_prod__tx_desc@LIBXDP_1.2.0 1.2.0
> - xsk_setup_xdp_prog@LIBXDP_1.2.0 1.2.0
> - xsk_socket__create@LIBXDP_1.2.0 1.2.0
> - xsk_socket__create_shared@LIBXDP_1.2.0 1.2.0
> - xsk_socket__delete@LIBXDP_1.2.0 1.2.0
> - xsk_socket__fd@LIBXDP_1.2.0 1.2.0
> - xsk_socket__update_xskmap@LIBXDP_1.2.0 1.2.0
> - xsk_umem__add_offset_to_addr@LIBXDP_1.2.0 1.2.0
> - xsk_umem__create@LIBXDP_1.2.0 1.2.0
> - xsk_umem__create_with_fd@LIBXDP_1.4.0 1.4.0
> - xsk_umem__delete@LIBXDP_1.2.0 1.2.0
> - xsk_umem__extract_addr@LIBXDP_1.2.0 1.2.0
> - xsk_umem__extract_offset@LIBXDP_1.2.0 1.2.0
> - xsk_umem__fd@LIBXDP_1.2.0 1.2.0
> - xsk_umem__get_data@LIBXDP_1.2.0 1.2.0
> diff -Nru xdp-tools-1.4.0/debian/libxdp1t64.install 
> xdp-tools-1.4.0/debian/libxdp1t64.install
> --- xdp-tools-1.4.0/debian/libxdp1t64.install 1970-01-01 00:00:00.000000000 
> +0000
> +++ xdp-tools-1.4.0/debian/libxdp1t64.install 2023-07-08 14:55:18.000000000 
> +0000
> @@ -0,0 +1,2 @@
> +usr/lib/*/bpf/
> +usr/lib/*/lib*.so.*
> diff -Nru xdp-tools-1.4.0/debian/libxdp1t64.lintian-overrides 
> xdp-tools-1.4.0/debian/libxdp1t64.lintian-overrides
> --- xdp-tools-1.4.0/debian/libxdp1t64.lintian-overrides       1970-01-01 
> 00:00:00.000000000 +0000
> +++ xdp-tools-1.4.0/debian/libxdp1t64.lintian-overrides       2024-02-05 
> 20:59:22.000000000 +0000
> @@ -0,0 +1,3 @@
> +# BPF binaries
> +libxdp1t64: binary-from-other-architecture [usr/lib/*/bpf/*.o]
> +libxdp1t64: package-name-doesnt-match-sonames libxdp1
> diff -Nru xdp-tools-1.4.0/debian/libxdp1t64.symbols 
> xdp-tools-1.4.0/debian/libxdp1t64.symbols
> --- xdp-tools-1.4.0/debian/libxdp1t64.symbols 1970-01-01 00:00:00.000000000 
> +0000
> +++ xdp-tools-1.4.0/debian/libxdp1t64.symbols 2024-02-05 20:59:22.000000000 
> +0000
> @@ -0,0 +1,75 @@
> +libxdp.so.1 libxdp1t64 #MINVER#
> +* Build-Depends-Package: libxdp-dev
> + LIBXDP_1.0.0@LIBXDP_1.0.0 1.0.0
> + LIBXDP_1.2.0@LIBXDP_1.2.0 1.2.0
> + LIBXDP_1.3.0@LIBXDP_1.3.0 1.3.0
> + LIBXDP_1.4.0@LIBXDP_1.4.0 1.4.0
> + libxdp_clean_references@LIBXDP_1.2.0 1.2.0
> + libxdp_get_error@LIBXDP_1.0.0 1.0.0
> + libxdp_set_print@LIBXDP_1.0.0 1.0.0
> + libxdp_strerror@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__attach_mode@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__close@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__detach@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__get_from_ifindex@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__hw_prog@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__is_legacy@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__main_prog@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__next_prog@LIBXDP_1.0.0 1.0.0
> + xdp_multiprog__program_count@LIBXDP_1.2.0 1.2.0
> + xdp_multiprog__xdp_frags_support@LIBXDP_1.3.0 1.3.0
> + xdp_program__attach@LIBXDP_1.0.0 1.0.0
> + xdp_program__attach_multi@LIBXDP_1.0.0 1.0.0
> + xdp_program__bpf_obj@LIBXDP_1.0.0 1.0.0
> + xdp_program__btf@LIBXDP_1.0.0 1.0.0
> + xdp_program__chain_call_enabled@LIBXDP_1.0.0 1.0.0
> + xdp_program__clone@LIBXDP_1.3.0 1.3.0
> + xdp_program__close@LIBXDP_1.0.0 1.0.0
> + xdp_program__create@LIBXDP_1.3.0 1.3.0
> + xdp_program__detach@LIBXDP_1.0.0 1.0.0
> + xdp_program__detach_multi@LIBXDP_1.0.0 1.0.0
> + xdp_program__fd@LIBXDP_1.0.0 1.0.0
> + xdp_program__find_file@LIBXDP_1.0.0 1.0.0
> + xdp_program__from_bpf_obj@LIBXDP_1.0.0 1.0.0
> + xdp_program__from_fd@LIBXDP_1.0.0 1.0.0
> + xdp_program__from_id@LIBXDP_1.0.0 1.0.0
> + xdp_program__from_pin@LIBXDP_1.0.0 1.0.0
> + xdp_program__id@LIBXDP_1.0.0 1.0.0
> + xdp_program__is_attached@LIBXDP_1.0.0 1.0.0
> + xdp_program__name@LIBXDP_1.0.0 1.0.0
> + xdp_program__open_file@LIBXDP_1.0.0 1.0.0
> + xdp_program__pin@LIBXDP_1.0.0 1.0.0
> + xdp_program__print_chain_call_actions@LIBXDP_1.0.0 1.0.0
> + xdp_program__run_prio@LIBXDP_1.0.0 1.0.0
> + xdp_program__set_chain_call_enabled@LIBXDP_1.0.0 1.0.0
> + xdp_program__set_run_prio@LIBXDP_1.0.0 1.0.0
> + xdp_program__set_xdp_frags_support@LIBXDP_1.3.0 1.3.0
> + xdp_program__tag@LIBXDP_1.0.0 1.0.0
> + xdp_program__test_run@LIBXDP_1.3.0 1.3.0
> + xdp_program__xdp_frags_support@LIBXDP_1.3.0 1.3.0
> + xsk_cons_nb_avail@LIBXDP_1.2.0 1.2.0
> + xsk_prod_nb_free@LIBXDP_1.2.0 1.2.0
> + xsk_ring_cons__cancel@LIBXDP_1.2.0 1.2.0
> + xsk_ring_cons__comp_addr@LIBXDP_1.2.0 1.2.0
> + xsk_ring_cons__peek@LIBXDP_1.2.0 1.2.0
> + xsk_ring_cons__release@LIBXDP_1.2.0 1.2.0
> + xsk_ring_cons__rx_desc@LIBXDP_1.2.0 1.2.0
> + xsk_ring_prod__fill_addr@LIBXDP_1.2.0 1.2.0
> + xsk_ring_prod__needs_wakeup@LIBXDP_1.2.0 1.2.0
> + xsk_ring_prod__reserve@LIBXDP_1.2.0 1.2.0
> + xsk_ring_prod__submit@LIBXDP_1.2.0 1.2.0
> + xsk_ring_prod__tx_desc@LIBXDP_1.2.0 1.2.0
> + xsk_setup_xdp_prog@LIBXDP_1.2.0 1.2.0
> + xsk_socket__create@LIBXDP_1.2.0 1.2.0
> + xsk_socket__create_shared@LIBXDP_1.2.0 1.2.0
> + xsk_socket__delete@LIBXDP_1.2.0 1.2.0
> + xsk_socket__fd@LIBXDP_1.2.0 1.2.0
> + xsk_socket__update_xskmap@LIBXDP_1.2.0 1.2.0
> + xsk_umem__add_offset_to_addr@LIBXDP_1.2.0 1.2.0
> + xsk_umem__create@LIBXDP_1.2.0 1.2.0
> + xsk_umem__create_with_fd@LIBXDP_1.4.0 1.4.0
> + xsk_umem__delete@LIBXDP_1.2.0 1.2.0
> + xsk_umem__extract_addr@LIBXDP_1.2.0 1.2.0
> + xsk_umem__extract_offset@LIBXDP_1.2.0 1.2.0
> + xsk_umem__fd@LIBXDP_1.2.0 1.2.0
> + xsk_umem__get_data@LIBXDP_1.2.0 1.2.0


-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slanga...@ubuntu.com                                     vor...@debian.org

Attachment: signature.asc
Description: PGP signature

Reply via email to