Unfortunately, compiz FTBFS on armel and armhf because
libstartup-notification is not 64-bit time_t-safe.  I have uploaded a
follow-up NMU to fix this.  Please find attached the comprehensive NMU
patch.

On Wed, Feb 28, 2024 at 05:32:03PM +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)

-- 
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 compiz-0.8.18/debian/changelog compiz-0.8.18/debian/changelog
--- compiz-0.8.18/debian/changelog      2023-01-01 21:58:27.000000000 +0000
+++ compiz-0.8.18/debian/changelog      2024-03-16 01:19:57.000000000 +0000
@@ -1,3 +1,18 @@
+compiz (2:0.8.18-5.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debian/patches/64-bit-time-t-compat.patch: fix build with
+    _TIME_BITS=64.
+
+ -- Steve Langasek <vor...@debian.org>  Sat, 16 Mar 2024 01:19:57 +0000
+
+compiz (2:0.8.18-5.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename libraries for 64-bit time_t transition.  Closes: #1061901
+
+ -- Steve Langasek <vor...@debian.org>  Wed, 28 Feb 2024 17:31:21 +0000
+
 compiz (2:0.8.18-5) unstable; urgency=medium
 
   [ Samuel Thibault ]
diff -Nru compiz-0.8.18/debian/control compiz-0.8.18/debian/control
--- compiz-0.8.18/debian/control        2023-01-01 21:58:27.000000000 +0000
+++ compiz-0.8.18/debian/control        2024-02-28 17:31:21.000000000 +0000
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Hypra Team <b...@hypra.fr>
 Uploaders: Samuel Thibault <sthiba...@debian.org>
-Build-Depends: debhelper-compat (= 13),
+Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13),
                intltool,
                libcairo2-dev,
                libglib2.0-dev,
@@ -159,7 +159,10 @@
  This package contains the standard plugins that come with compiz. Compiz
  without these plugins is not very useful.
 
-Package: libdecoration0
+Package: libdecoration0t64
+Provides: ${t64:Provides}
+Replaces: libdecoration0
+Breaks: libdecoration0 (<< ${source:Version})
 Section: libs
 Architecture: any
 Multi-Arch: same
@@ -174,7 +177,7 @@
 Section: libdevel
 Architecture: any
 Multi-Arch: same
-Depends: libdecoration0 (= ${binary:Version}),
+Depends: libdecoration0t64 (= ${binary:Version}),
          ${misc:Depends},
          libx11-dev,
          libxrender-dev
diff -Nru compiz-0.8.18/debian/libdecoration0.install 
compiz-0.8.18/debian/libdecoration0.install
--- compiz-0.8.18/debian/libdecoration0.install 2018-10-27 12:09:18.000000000 
+0000
+++ compiz-0.8.18/debian/libdecoration0.install 1970-01-01 00:00:00.000000000 
+0000
@@ -1 +0,0 @@
-usr/lib/libdecoration*.so.*
diff -Nru compiz-0.8.18/debian/libdecoration0t64.install 
compiz-0.8.18/debian/libdecoration0t64.install
--- compiz-0.8.18/debian/libdecoration0t64.install      1970-01-01 
00:00:00.000000000 +0000
+++ compiz-0.8.18/debian/libdecoration0t64.install      2018-10-27 
12:09:18.000000000 +0000
@@ -0,0 +1 @@
+usr/lib/libdecoration*.so.*
diff -Nru compiz-0.8.18/debian/libdecoration0t64.lintian-overrides 
compiz-0.8.18/debian/libdecoration0t64.lintian-overrides
--- compiz-0.8.18/debian/libdecoration0t64.lintian-overrides    1970-01-01 
00:00:00.000000000 +0000
+++ compiz-0.8.18/debian/libdecoration0t64.lintian-overrides    2024-02-28 
17:29:20.000000000 +0000
@@ -0,0 +1 @@
+libdecoration0t64: package-name-doesnt-match-sonames libdecoration0
diff -Nru compiz-0.8.18/debian/patches/64-bit-time-t-compat.patch 
compiz-0.8.18/debian/patches/64-bit-time-t-compat.patch
--- compiz-0.8.18/debian/patches/64-bit-time-t-compat.patch     1970-01-01 
00:00:00.000000000 +0000
+++ compiz-0.8.18/debian/patches/64-bit-time-t-compat.patch     2024-03-16 
01:19:57.000000000 +0000
@@ -0,0 +1,30 @@
+Description: fix build with _TIME_BITS=64
+ The startup-notification API takes a long * where it ought to have always
+ taken a time_t *.  As a consequence, changing the size of time_t makes
+ callers fail to build.  Work around this by safely casting to a long.
+ This will continue to work on 32-bit systems until 2038, by which time
+ all the 32-bit systems will be dead or no longer running GUIs or at least
+ not using libstartup-notification0.
+Author: Steve Langasek <steve.langa...@canonical.com>
+Forwarded: no
+Last-Update: 2024-03-15
+
+Index: compiz-0.8.18/src/screen.c
+===================================================================
+--- compiz-0.8.18.orig/src/screen.c
++++ compiz-0.8.18/src/screen.c
+@@ -748,9 +748,12 @@
+ 
+     for (s = screen->startupSequences; s; s = s->next)
+     {
++      /* workaround for broken startup-notification api that uses
++         a long where it should have used time_t */
++      long seconds, useconds;
+       sn_startup_sequence_get_last_active_time (s->sequence,
+-                                                &active.tv_sec,
+-                                                &active.tv_usec);
++                                                &seconds,
++                                                &useconds);
+ 
+       elapsed = ((((double) now.tv_sec - active.tv_sec) * 1000000.0 +
+                   (now.tv_usec - active.tv_usec))) / 1000.0;
diff -Nru compiz-0.8.18/debian/patches/series 
compiz-0.8.18/debian/patches/series
--- compiz-0.8.18/debian/patches/series 2022-02-08 21:39:26.000000000 +0000
+++ compiz-0.8.18/debian/patches/series 2024-03-16 01:18:26.000000000 +0000
@@ -1,3 +1,4 @@
 default_options.patch
 fade
 rsvg-header
+64-bit-time-t-compat.patch
diff -Nru compiz-0.8.18/debian/rules compiz-0.8.18/debian/rules
--- compiz-0.8.18/debian/rules  2021-09-26 11:10:56.000000000 +0000
+++ compiz-0.8.18/debian/rules  2024-02-28 17:31:20.000000000 +0000
@@ -31,8 +31,8 @@
        dh_install
        ! mkdir debian/compiz-dev/usr/lib/$(DEB_HOST_MULTIARCH) || \
        mv debian/compiz-dev/usr/lib/pkgconfig 
debian/compiz-dev/usr/lib/$(DEB_HOST_MULTIARCH)/
-       ! mkdir debian/libdecoration0/usr/lib/$(DEB_HOST_MULTIARCH) || \
-       mv debian/libdecoration0/usr/lib/libdecoration* 
debian/libdecoration0/usr/lib/$(DEB_HOST_MULTIARCH)/
+       ! mkdir debian/libdecoration0t64/usr/lib/$(DEB_HOST_MULTIARCH) || \
+       mv debian/libdecoration0t64/usr/lib/libdecoration* 
debian/libdecoration0t64/usr/lib/$(DEB_HOST_MULTIARCH)/
        ! mkdir debian/libdecoration0-dev/usr/lib/$(DEB_HOST_MULTIARCH) || \
        ( mv debian/libdecoration0-dev/usr/lib/pkgconfig 
debian/libdecoration0-dev/usr/lib/$(DEB_HOST_MULTIARCH)/ && \
          mv debian/libdecoration0-dev/usr/lib/libdecoration* 
debian/libdecoration0-dev/usr/lib/$(DEB_HOST_MULTIARCH)/ )
@@ -46,7 +46,7 @@
        rm -f debian/compiz-plugins/usr/share/compiz/core.xml
 
 override_dh_makeshlibs:
-       dh_makeshlibs -plibdecoration0 -V'libdecoration0 (>= 2:0.8.14-0~)'
+       dh_makeshlibs -plibdecoration0t64 -V'libdecoration0t64 (>= 2:0.8.14-0~)'
 
 override_dh_gencontrol:
        dh_gencontrol -- -Vcoreabiversion=$(CORE_ABIVERSION)

Attachment: signature.asc
Description: PGP signature

Reply via email to