Bug#1062847: protobuf: Use dh-sequence-elpa in Build-Depends-Indep

2024-03-19 Thread Simon McVittie
Control: block 1036884 by -1
Control: block -1 by 1062840

On Sat, 03 Feb 2024 at 15:14:57 -0500, Jeremy Bícha wrote:
> dh-elpa is only used to build an Architecture: all package. Therefore,
> it is more correct to use Build-Depends-Indep instead of specifying
> specific architectures.
> 
> We can Build-Depend on dh-sequence-elpa (dh-elpa Provides it) to
> automatically run --with elpa.

protobuf is currently part of various dependency chains blocking packages'
transition to 64-bit time_t, like this one:

..., gtk+3.0, ..., mesa, llvm-toolchain-17, grpc, protobuf, dh-elpa, emacs-nox, 
git, #1066794

I've confirmed that Jeremy's patches from #1062840 and #1062847 make it
buildable on at least armel and armhf. The changes proposed there look
harmless (indeed, beneficial) to me: they are cutting off
Architecture: all packages that can be built on any architecture, and in
practice get built on amd64.

The Emacs and PHP ecosystems are relatively large and it seems
advantageous to take them out of the critical path, particularly when
it's this easy.

Please consider applying those changes in a maintainer upload, or in
a NMU by someone with more knowledge of this package. (Sorry, I am not
intending to NMU this myself, since I have no experience with protobuf
or knowledge of how to smoke-test it.)

For your convenience, I attach the patches I used (which have longer
commit messages than the ones Jeremy provided, and include the bug number).

smcv
>From 2b3e4e1fe7d63abda065e77eed2d0f7a6626a25a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jeremy=20B=C3=ADcha?= 
Date: Sat, 3 Feb 2024 14:44:34 -0500
Subject: [PATCH 1/2] Move pkg-php-tools to Build-Depends-Indep

It is used to build php-google-protobuf, which is Architecture: all.

Closes: #1062840
---
 debian/control | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/control b/debian/control
index d23dddf..5ba0021 100644
--- a/debian/control
+++ b/debian/control
@@ -23,8 +23,6 @@ Build-Depends: dpkg-dev (>= 1.22.5),
 # Ruby
  , rake-compiler 
  , gem2deb 
-# PHP
- , pkg-php-tools (>= 1.7~)
 Build-Depends-Indep:
 # Java
ant
@@ -33,6 +31,8 @@ Build-Depends-Indep:
  , maven-repo-helper
  , libguava-java
  , libgoogle-gson-java
+# PHP
+ , pkg-php-tools (>= 1.7~)
 Standards-Version: 4.6.1
 Rules-Requires-Root: no
 Homepage: https://github.com/google/protobuf/
-- 
2.43.0

>From 0f475e747531308f75c72a10a6bd30487226d56e Mon Sep 17 00:00:00 2001
From: Jeremy Bicha 
Date: Sat, 3 Feb 2024 15:10:23 -0500
Subject: [PATCH 2/2] Use dh-sequence-elpa in Build-Depends-Indep

dh-elpa is only used to build an Architecture: all package. Therefore,
it is more correct to use Build-Depends-Indep instead of specifying
specific architectures.

We can Build-Depend on dh-sequence-elpa (dh-elpa Provides it) to
automatically run --with elpa.

Finally, dh-autoreconf has been run by default since debhelper compat 10.

Closes: #1062847
---
 debian/control | 4 ++--
 debian/rules   | 6 +-
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/debian/control b/debian/control
index 5ba0021..b9c0291 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,6 @@ Maintainer: Laszlo Boszormenyi (GCS) 
 Build-Depends: dpkg-dev (>= 1.22.5),
 # Debian build system
debhelper-compat (= 13)
- , dh-elpa [amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64el s390x hppa ppc64 riscv64 sh4 sparc64 x32]
 # C/C++
  , zlib1g-dev
  , libgmock-dev 
@@ -24,8 +23,9 @@ Build-Depends: dpkg-dev (>= 1.22.5),
  , rake-compiler 
  , gem2deb 
 Build-Depends-Indep:
+   dh-sequence-elpa
 # Java
-   ant
+ , ant
  , default-jdk
  , javahelper
  , maven-repo-helper
diff --git a/debian/rules b/debian/rules
index ee54fe3..c3d897a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -19,11 +19,7 @@ SONAME=32
 API_VERSION=$(SONAME)-0
 
 %:
-ifneq (,$(filter $(DEB_HOST_ARCH), amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64el s390x hppa ppc64 riscv64 sh4 sparc64 x32))
-	dh $@ --with autoreconf,elpa
-else
-	dh $@ --with autoreconf -Nelpa-protobuf-mode
-endif
+	dh $@
 
 ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
 override_dh_auto_configure:
-- 
2.43.0



Bug#1062847: protobuf: Use dh-sequence-elpa in Build-Depends-Indep

2024-02-03 Thread Jeremy Bícha
Source: protobuf
Version: 3.21.12-8
Tags: patch

dh-elpa is only used to build an Architecture: all package. Therefore,
it is more correct to use Build-Depends-Indep instead of specifying
specific architectures.

We can Build-Depend on dh-sequence-elpa (dh-elpa Provides it) to
automatically run --with elpa.

Finally, dh-autoreconf has been run by default since debhelper compat 10.

I am attaching a patch to implement these changes. It assumes that the
patch from https://bugs.debian.org/1062840 has been applied first.

Thank you,
Jeremy Bícha
From: Jeremy Bicha 
Date: Sat, 3 Feb 2024 15:10:23 -0500
Subject: [PATCH] Use dh-sequence-elpa in Build-Depends-Indep

---
 debian/control | 4 ++--
 debian/rules   | 6 +-
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/debian/control b/debian/control
index d536081..86b7da4 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,6 @@ Maintainer: Laszlo Boszormenyi (GCS) 
 Build-Depends:
 # Debian build system
debhelper-compat (= 13)
- , dh-elpa [amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64el s390x hppa ppc64 riscv64 sh4 sparc64 x32]
 # C/C++
  , zlib1g-dev
  , libgmock-dev 
@@ -24,8 +23,9 @@ Build-Depends:
  , rake-compiler 
  , gem2deb 
 Build-Depends-Indep:
+   dh-sequence-elpa
 # Java
-   ant
+ , ant
  , default-jdk
  , javahelper
  , maven-repo-helper
diff --git a/debian/rules b/debian/rules
index ee54fe3..c3d897a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -19,11 +19,7 @@ SONAME=32
 API_VERSION=$(SONAME)-0
 
 %:
-ifneq (,$(filter $(DEB_HOST_ARCH), amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64el s390x hppa ppc64 riscv64 sh4 sparc64 x32))
-	dh $@ --with autoreconf,elpa
-else
-	dh $@ --with autoreconf -Nelpa-protobuf-mode
-endif
+	dh $@
 
 ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
 override_dh_auto_configure:
-- 
2.43.0