Although the package renaming in this patch appears to have been correct,
the actual code fails to build on 32-bit archs with 64-bit time_t.  Please
find an updated NMU patch that corrects this issue.

I am uploading this change to unstable.

On Wed, Feb 28, 2024 at 04:52:14PM +0000, Steve Langasek wrote:
> Dear maintainer,
> 
> Please find attached a final version of this patch for the time_t
> transition.  This patch is being uploaded to unstable.
> 
> Note that this adds a versioned build-dependency on dpkg-dev, to guard
> against accidental backports with a wrong ABI.
> 
> Thanks!
> 
> 
> -- System Information:
> Debian Release: trixie/sid
>   APT prefers unstable
>   APT policy: (500, 'unstable'), (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 coin3-4.0.2+ds/debian/changelog coin3-4.0.2+ds/debian/changelog
> --- coin3-4.0.2+ds/debian/changelog   2023-12-09 15:57:42.000000000 +0000
> +++ coin3-4.0.2+ds/debian/changelog   2024-02-28 16:47:51.000000000 +0000
> @@ -1,3 +1,10 @@
> +coin3 (4.0.2+ds-1.1) unstable; urgency=medium
> +
> +  * Non-maintainer upload.
> +  * Rename libraries for 64-bit time_t transition.  Closes: #1062092
> +
> + -- Steve Langasek <vor...@debian.org>  Wed, 28 Feb 2024 16:47:51 +0000
> +
>  coin3 (4.0.2+ds-1) unstable; urgency=medium
>  
>    * Team upload.
> diff -Nru coin3-4.0.2+ds/debian/control coin3-4.0.2+ds/debian/control
> --- coin3-4.0.2+ds/debian/control     2023-12-09 15:56:48.000000000 +0000
> +++ coin3-4.0.2+ds/debian/control     2024-02-28 16:47:51.000000000 +0000
> @@ -3,7 +3,7 @@
>  Uploaders: Leopold Palomo-Avellaneda <l...@alaxarxa.net>
>  Section: graphics
>  Priority: optional
> -Build-Depends: debhelper-compat (= 13),
> +Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13),
>                 cmake,
>                 doxygen,
>                 libexpat-dev,
> @@ -25,7 +25,10 @@
>  Vcs-Git: https://salsa.debian.org/science-team/coin3.git
>  Homepage: https://github.com/coin3d
>  
> -Package: libcoin80c
> +Package: libcoin80t64
> +Provides: ${t64:Provides}
> +X-Time64-Compat: libcoin80c
> +Breaks: libcoin80c (<< ${source:Version})
>  Architecture: any
>  Multi-Arch: same
>  Section: libs
> @@ -37,7 +40,7 @@
>            libsimage-dev,
>            zlib1g
>  Pre-Depends: ${misc:Pre-Depends}
> -Replaces: libcoin80v5
> +Replaces: libcoin80c, libcoin80v5
>  Description: high-level 3D graphics kit implementing the Open Inventor API
>   Coin is an OpenGL-based, retain-mode 3D graphics library that
>   implements the Open Inventor 2.1 API. It also includes support for
> @@ -52,7 +55,7 @@
>  Package: libcoin-dev
>  Architecture: any
>  Section: libdevel
> -Depends: libcoin80c (= ${binary:Version}),
> +Depends: libcoin80t64 (= ${binary:Version}),
>           libgl-dev,
>        libopengl-dev,
>        libglew-dev,
> @@ -93,7 +96,7 @@
>  Multi-Arch: foreign
>  Section: libs
>  Depends: ${misc:Depends}
> -Suggests: libcoin80c
> +Suggests: libcoin80t64
>  Replaces: libcoin80-runtime
>  Breaks: libcoin80-runtime
>  Description: high-level 3D graphics kit - external data files
> diff -Nru coin3-4.0.2+ds/debian/libcoin80c.install 
> coin3-4.0.2+ds/debian/libcoin80c.install
> --- coin3-4.0.2+ds/debian/libcoin80c.install  2023-12-09 15:56:48.000000000 
> +0000
> +++ coin3-4.0.2+ds/debian/libcoin80c.install  1970-01-01 00:00:00.000000000 
> +0000
> @@ -1 +0,0 @@
> -usr/lib/*/lib*.so.*
> diff -Nru coin3-4.0.2+ds/debian/libcoin80t64.install 
> coin3-4.0.2+ds/debian/libcoin80t64.install
> --- coin3-4.0.2+ds/debian/libcoin80t64.install        1970-01-01 
> 00:00:00.000000000 +0000
> +++ coin3-4.0.2+ds/debian/libcoin80t64.install        2023-12-09 
> 15:56:48.000000000 +0000
> @@ -0,0 +1 @@
> +usr/lib/*/lib*.so.*
> diff -Nru coin3-4.0.2+ds/debian/libcoin80t64.lintian-overrides 
> coin3-4.0.2+ds/debian/libcoin80t64.lintian-overrides
> --- coin3-4.0.2+ds/debian/libcoin80t64.lintian-overrides      1970-01-01 
> 00:00:00.000000000 +0000
> +++ coin3-4.0.2+ds/debian/libcoin80t64.lintian-overrides      2024-02-28 
> 16:46:37.000000000 +0000
> @@ -0,0 +1 @@
> +libcoin80t64: package-name-doesnt-match-sonames libcoin80c


-- 
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
diff -Nru coin3-4.0.2+ds/debian/changelog coin3-4.0.2+ds/debian/changelog
--- coin3-4.0.2+ds/debian/changelog     2023-12-09 15:57:42.000000000 +0000
+++ coin3-4.0.2+ds/debian/changelog     2024-03-17 21:56:00.000000000 +0000
@@ -1,3 +1,18 @@
+coin3 (4.0.2+ds-1.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debian/patches/64-bit-time-t-compat.patch: compatibility with 64-bit
+    time_t.  Closes LP: #2058160.
+
+ -- Steve Langasek <vor...@debian.org>  Sun, 17 Mar 2024 21:56:00 +0000
+
+coin3 (4.0.2+ds-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename libraries for 64-bit time_t transition.  Closes: #1062092
+
+ -- Steve Langasek <vor...@debian.org>  Wed, 28 Feb 2024 16:47:51 +0000
+
 coin3 (4.0.2+ds-1) unstable; urgency=medium
 
   * Team upload.
diff -Nru coin3-4.0.2+ds/debian/control coin3-4.0.2+ds/debian/control
--- coin3-4.0.2+ds/debian/control       2023-12-09 15:56:48.000000000 +0000
+++ coin3-4.0.2+ds/debian/control       2024-03-17 21:55:39.000000000 +0000
@@ -1,9 +1,10 @@
 Source: coin3
-Maintainer: Debian Science Team 
<debian-science-maintain...@lists.alioth.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Science Team 
<debian-science-maintain...@lists.alioth.debian.org>
 Uploaders: Leopold Palomo-Avellaneda <l...@alaxarxa.net>
 Section: graphics
 Priority: optional
-Build-Depends: debhelper-compat (= 13),
+Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13),
                cmake,
                doxygen,
                libexpat-dev,
@@ -25,7 +26,10 @@
 Vcs-Git: https://salsa.debian.org/science-team/coin3.git
 Homepage: https://github.com/coin3d
 
-Package: libcoin80c
+Package: libcoin80t64
+Provides: ${t64:Provides}
+X-Time64-Compat: libcoin80c
+Breaks: libcoin80c (<< ${source:Version})
 Architecture: any
 Multi-Arch: same
 Section: libs
@@ -37,7 +41,7 @@
           libsimage-dev,
           zlib1g
 Pre-Depends: ${misc:Pre-Depends}
-Replaces: libcoin80v5
+Replaces: libcoin80c, libcoin80v5
 Description: high-level 3D graphics kit implementing the Open Inventor API
  Coin is an OpenGL-based, retain-mode 3D graphics library that
  implements the Open Inventor 2.1 API. It also includes support for
@@ -52,7 +56,7 @@
 Package: libcoin-dev
 Architecture: any
 Section: libdevel
-Depends: libcoin80c (= ${binary:Version}),
+Depends: libcoin80t64 (= ${binary:Version}),
          libgl-dev,
         libopengl-dev,
         libglew-dev,
@@ -93,7 +97,7 @@
 Multi-Arch: foreign
 Section: libs
 Depends: ${misc:Depends}
-Suggests: libcoin80c
+Suggests: libcoin80t64
 Replaces: libcoin80-runtime
 Breaks: libcoin80-runtime
 Description: high-level 3D graphics kit - external data files
diff -Nru coin3-4.0.2+ds/debian/libcoin80c.install 
coin3-4.0.2+ds/debian/libcoin80c.install
--- coin3-4.0.2+ds/debian/libcoin80c.install    2023-12-09 15:56:48.000000000 
+0000
+++ coin3-4.0.2+ds/debian/libcoin80c.install    1970-01-01 00:00:00.000000000 
+0000
@@ -1 +0,0 @@
-usr/lib/*/lib*.so.*
diff -Nru coin3-4.0.2+ds/debian/libcoin80t64.install 
coin3-4.0.2+ds/debian/libcoin80t64.install
--- coin3-4.0.2+ds/debian/libcoin80t64.install  1970-01-01 00:00:00.000000000 
+0000
+++ coin3-4.0.2+ds/debian/libcoin80t64.install  2023-12-09 15:56:48.000000000 
+0000
@@ -0,0 +1 @@
+usr/lib/*/lib*.so.*
diff -Nru coin3-4.0.2+ds/debian/libcoin80t64.lintian-overrides 
coin3-4.0.2+ds/debian/libcoin80t64.lintian-overrides
--- coin3-4.0.2+ds/debian/libcoin80t64.lintian-overrides        1970-01-01 
00:00:00.000000000 +0000
+++ coin3-4.0.2+ds/debian/libcoin80t64.lintian-overrides        2024-02-28 
16:46:37.000000000 +0000
@@ -0,0 +1 @@
+libcoin80t64: package-name-doesnt-match-sonames libcoin80c
diff -Nru coin3-4.0.2+ds/debian/patches/64-bit-time-t-compat.patch 
coin3-4.0.2+ds/debian/patches/64-bit-time-t-compat.patch
--- coin3-4.0.2+ds/debian/patches/64-bit-time-t-compat.patch    1970-01-01 
00:00:00.000000000 +0000
+++ coin3-4.0.2+ds/debian/patches/64-bit-time-t-compat.patch    2024-03-17 
21:55:39.000000000 +0000
@@ -0,0 +1,21 @@
+Description: compatibility with 64-bit time_t
+ tv_usec is (unnecessarily) a 64-bit type when _TIME_BITS=64 is enabled.
+ use 'long long' in this case as it's the only suitable public type.
+Author: Steve Langasek <steve.langa...@canonical.com>
+Forwarded: no
+Last-Update: 2024-03-17
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2058160
+
+Index: coin3-4.0.2+ds/CMakeLists.txt
+===================================================================
+--- coin3-4.0.2+ds.orig/CMakeLists.txt
++++ coin3-4.0.2+ds/CMakeLists.txt
+@@ -814,7 +814,7 @@
+ 
+ check_type_size("((struct timeval*)0)->tv_usec" TIMEVAL_TV_USEC)
+ if(HAVE_TIMEVAL_TV_USEC)
+-  coin_find_int_type_with_size(SIM_TIMEVAL_TV_USEC_T ${TIMEVAL_TV_USEC} 
"suseconds_t" "long")
++  coin_find_int_type_with_size(SIM_TIMEVAL_TV_USEC_T ${TIMEVAL_TV_USEC} 
"suseconds_t" "long" "long long")
+   if(NOT SIM_TIMEVAL_TV_USEC_T)
+     message(FATAL_ERROR "TIMEVAL_TV_USEC: Neither of checked types 
(suseconds_t, long) were of requested size ${TIMEVAL_TV_USEC}")
+   endif()
diff -Nru coin3-4.0.2+ds/debian/patches/series 
coin3-4.0.2+ds/debian/patches/series
--- coin3-4.0.2+ds/debian/patches/series        2023-12-09 15:57:42.000000000 
+0000
+++ coin3-4.0.2+ds/debian/patches/series        2024-03-17 21:55:39.000000000 
+0000
@@ -1,2 +1,3 @@
 0002-Added-c-suffix-to-SO_VERSION.patch
 0007-Bump-cmake_minimum_required.patch
+64-bit-time-t-compat.patch

Attachment: signature.asc
Description: PGP signature

Reply via email to