Bug#1070746: libplplotada-dev: breaks tests, must Depend: libplplot-dev

2024-05-08 Thread nicolas . boulenguez

Source: plplot
Severity: normal
Tags: patch
X-Debbugs-Cc: Graham Inggs 

Hello.
The autopkgtests are failing with
  ...gcc... -lplplotada -lplplot ...
  /usr/bin/ld: cannot find -lplplot: No such file or directory
The linker is searching for the /usr/lib/MULTIARCH/libplplot.so symbolic 
link,

but does not find it because libplplot-dev is not installed.
This was hidden before 
https://salsa.debian.org/science-team/plplot/-/commit/e62a3beaf7e3e7e6856dc4ca45f8d20df36a1671

because the test dependencies were not minimal.
So libplplotada-dev must
  Depend: libplplot-dev (= ${binary:Version})
instead of
  Depending: libplplot17 (= ${binary:Version})
  Recommending: libplplot-dev
All the best.



Bug#1067285: whitakers-words in Debian, gnat-13 transition

2024-05-07 Thread Nicolas Boulenguez
Hello.
The package needs to build with gnat-13 in order to be part of next
Debian release.
Are you planning a new upload in the near future?
Else, are you OK with a non maintainer upload fixing this specific bug?



Bug#916475: ghdl: various suggestions for the packaging

2024-05-07 Thread Nicolas Boulenguez
Source: ghdl
Followup-For: Bug #916475
Control: tags 1067446 patch
Control: tags 1067686 patch

Hello.

The attachment fixes several bugs including the release-critical one.
The build succeeds on ppc64el, although running
  neither dh_auto_test nor autopkgtests.
Debdiff only reports expected differences.

Lintian reports nothing new, but there were already two errors.
https://udd.debian.org/lintian/?packages=ghdl

0001-New-upstream-version-4.0.0-dfsg.patch
0002-New-upstream-version-4.1.0-dfsg.patch
are not attached because
* bugs.debian.org refuses heavy attachments,
* you can recreate them with
  # uscan --download-version=4.0.0
  # gbp import-orig ../ghdl_4.0.0+dfsg.orig.tar.xz
  # uscan --download-version=4.1.0
  # gbp import-orig ../ghdl_4.1.0+dfsg.orig.tar.xz
  You should get:
  Checksums-Sha1: 6f89acac3c926c9653e96e58aee6cb344ef26d4e 4862224 
ghdl_4.1.0+dfsg.orig.tar.xz
  Checksums-Sha256: 
d300c4078fa30af33cb614ff5e40f03d19e3b32eca71ca6cd1d6422c7dc40c06 4862224 
ghdl_4.1.0+dfsg.orig.tar.xz
  Files:  4da868cf483d095e014c3d3c5c7e3801 4862224 ghdl_4.1.0+dfsg.orig.tar.xz
* I have not reviewed the licenses of the new files in detail.

0003-Delegate-computation-of-Built-Using-to-dh-builtusing
0004-test-driver-move-error-reporting-to-a-separate-proce
are two commits remaining from #916475.

0006-Set-shared-object-version-to-4
0007-Build-using-GCC-13
0008-Build-using-default-LLVM-version
0010-Adapt-install-path-of-ghdl1-lib-libexec
0011-Refresh-patches-for-upstream-version-4
0012-Build-again-on-s390x-fixed-by-ghdl-4
0013-Disable-the-gcc-backend-on-risv64
0015-Apply-upstream-patch-to-fix-issues-2641-and-2642
are backported from Ubuntu.  I have split some commits, rebased, and
added information in the headers, especially the closed Debian bugs.

0005-Avoid-hardcoding-the-shared-object-version-several-t
0009-Stop-hardcoding-the-gcc-version-in-the-gcc-patches-s
0014-Standards-Version-4
0016-Add-license-paragraph-for-ghw
0017-Update-path-syntax-in-lintian-overrides
0018-Restrict-VHDL-sources-to-ASCII-encoding
0019-changelog-lintian-cleanup
0020-copyright-fix-typos-in-paths-lintian
are new suggestions. Most of them are cosmetic.

Ubuntu also ignores the build and run time tests for the llvm and
mcode backends, but as far as I understand this was only necessary
before debian/patches/fix-issue-264x.diff.


bug916475v08.tar.gz
Description: application/gzip


Bug#872381: dpkg-dev: optimize Makefile snippets for debian/rules

2024-05-07 Thread Nicolas Boulenguez
Package: dpkg-dev
Followup-For: Bug #872381

Hello.
It is good to see the main suggestion merged. Thanks!

You have not applied
  0001-scripts-mk-stop-hard-coding-dpkg_datadir.patch
probably because you prefer the related parts in
  f1175056 (build: Rework subst handling for built or installed artifacts).

Ironically, f1175056 seems to introduce the exact kind of human error
that dynamic generation would prevent.
0001-build-spare-an-unneeded-subst-handling-in-pkg-info.m.patch
>From 36e98fdd10b1896f8fa89733b5e0c1781c0cce4c Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Mon, 6 May 2024 10:52:49 +0200
Subject: [PATCH] build: spare an unneeded subst handling in pkg-info.mk

This commits follows f1175056.
---
 scripts/mk/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

diff --git a/scripts/mk/Makefile.am b/scripts/mk/Makefile.am
index be6076b2c..5f086ef49 100644
--- a/scripts/mk/Makefile.am
+++ b/scripts/mk/Makefile.am
@@ -18,5 +18,4 @@ include $(top_srcdir)/build-aux/subst.am
 install-data-hook:
 	$(subst_make_file) $(DESTDIR)$(pkgdatadir)/default.mk
 	$(subst_make_file) $(DESTDIR)$(pkgdatadir)/buildtools.mk
-	$(subst_make_file) $(DESTDIR)$(pkgdatadir)/pkg-info.mk
 	$(subst_make_file) $(DESTDIR)$(pkgdatadir)/vendor.mk
-- 
2.39.2

>From 7daa3aca068d997c6895757cb58ba91d66bd6842 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Mon, 6 May 2024 11:37:14 +0200
Subject: [PATCH] scripts/mk: stop hard-coding dpkg_datadir

This path differ during tests and after installation.  Instead of
rewriting the file with a hardcoded path, compute it within Make.
---
 build-aux/subst.am   |  8 
 scripts/mk/Makefile.am   | 10 --
 scripts/mk/buildtools.mk |  4 +++-
 scripts/mk/default.mk|  2 +-
 scripts/mk/vendor.mk |  4 +++-
 5 files changed, 7 insertions(+), 21 deletions(-)

diff --git a/build-aux/subst.am b/build-aux/subst.am
index 7785e4af7..9c96e5ce0 100644
--- a/build-aux/subst.am
+++ b/build-aux/subst.am
@@ -45,11 +45,3 @@ SUFFIXES += .pl
 	@test -d `dirname $@` || $(MKDIR_P) `dirname $@`
 	$(AM_V_GEN) $(subst_perl_filter) <$< >$@
 	$(AM_V_at) chmod +x $@
-
-# Makefile support.
-
-subst_make_rules = "\
-	s{dpkg_datadir\s*=\s*[^\s]*}{dpkg_datadir = $(pkgdatadir)}; \
-	"
-
-subst_make_file = $(PERL) -i -p -e $(subst_make_rules)
diff --git a/scripts/mk/Makefile.am b/scripts/mk/Makefile.am
index be6076b2c..6e85e17b9 100644
--- a/scripts/mk/Makefile.am
+++ b/scripts/mk/Makefile.am
@@ -10,13 +10,3 @@ dist_pkgdata_DATA = \
 	pkg-info.mk \
 	vendor.mk \
 	# EOL
-
-SUFFIXES =
-
-include $(top_srcdir)/build-aux/subst.am
-
-install-data-hook:
-	$(subst_make_file) $(DESTDIR)$(pkgdatadir)/default.mk
-	$(subst_make_file) $(DESTDIR)$(pkgdatadir)/buildtools.mk
-	$(subst_make_file) $(DESTDIR)$(pkgdatadir)/pkg-info.mk
-	$(subst_make_file) $(DESTDIR)$(pkgdatadir)/vendor.mk
diff --git a/scripts/mk/buildtools.mk b/scripts/mk/buildtools.mk
index 6ce9642cd..e93319e00 100644
--- a/scripts/mk/buildtools.mk
+++ b/scripts/mk/buildtools.mk
@@ -28,7 +28,9 @@
 ifndef dpkg_buildtools_mk_included
 dpkg_buildtools_mk_included = yes
 
-dpkg_datadir = $(srcdir)/mk
+ifndef dpkg_datadir
+  dpkg_datadir := $(patsubst %/buildtools.mk,%,$(lastword $(MAKEFILE_LIST)))
+endif
 include $(dpkg_datadir)/architecture.mk
 
 # We set the TOOL_FOR_BUILD variables to the specified value, and the TOOL
diff --git a/scripts/mk/default.mk b/scripts/mk/default.mk
index c4e408b01..e1b81 100644
--- a/scripts/mk/default.mk
+++ b/scripts/mk/default.mk
@@ -4,7 +4,7 @@
 ifndef dpkg_default_mk_included
 dpkg_default_mk_included = yes
 
-dpkg_datadir = $(srcdir)/mk
+dpkg_datadir := $(patsubst %/default.mk,%,$(lastword $(MAKEFILE_LIST)))
 include $(dpkg_datadir)/architecture.mk
 include $(dpkg_datadir)/buildapi.mk
 ifeq ($(call dpkg_build_api_ge,1),yes)
diff --git a/scripts/mk/vendor.mk b/scripts/mk/vendor.mk
index 746503a33..3cd1eed3e 100644
--- a/scripts/mk/vendor.mk
+++ b/scripts/mk/vendor.mk
@@ -36,7 +36,9 @@
 ifndef dpkg_vendor_mk_included
 dpkg_vendor_mk_included = yes
 
-dpkg_datadir = $(srcdir)/mk
+ifndef dpkg_datadir
+  dpkg_datadir := $(patsubst %/vendor.mk,%,$(lastword $(MAKEFILE_LIST)))
+endif
 include $(dpkg_datadir)/buildapi.mk
 
 dpkg_lazy_eval ?= $(eval $(1) = $(2)$$($(1)))
-- 
2.39.2



Bug#1067320: topal: FTBFS: debian/rules: debian_packaging.mk: No such file or directory

2024-05-04 Thread Nicolas Boulenguez
Source: topal
Followup-For: Bug #1067320
Control: tag -1 + patch

Hello.
Attachment 002 below fixes this bug.
Would you be OK with a non maintainer upload?

The other attachments are unrelated sugestions.
Would you be OK with a salsa.debian.org/debian/topal git repository?


PATH 1/10  updates the upstream part to version 82.


>From 31c2f14e91e2a01c75eb1309f17ea540ffb80571 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 3 Dec 2022 18:56:23 +0100
Subject: [PATCH 02/10] Switch to dh-ada-library >= 8.2 for packaging.mk

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

diff --git a/debian/control b/debian/control
index be7984d..53206e5 100644
--- a/debian/control
+++ b/debian/control
@@ -4,6 +4,7 @@ Priority: optional
 Maintainer: Phil Brooke 
 Build-Depends:
  debhelper-compat (= 13),
+ dh-ada-library (>= 8.2),
  gnat (>= 11),
  libreadline-dev,
  texlive,
diff --git a/debian/rules b/debian/rules
index cdd07e4..d3e38d5 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,8 +4,7 @@
 
 DEB_BUILD_MAINT_OPTIONS := hardening=+all
 include /usr/share/dpkg/buildflags.mk
-include /usr/share/dpkg/buildopts.mk
-include /usr/share/ada/debian_packaging.mk
+include /usr/share/ada/packaging.mk
 
 # Compile Ada and C with the same compiler.
 CC := gnatgcc
-- 
2.39.2


>From a9e088d51c8f95a9e7cd60bee7e31f9e167834ed Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 3 Dec 2022 18:57:35 +0100
Subject: [PATCH 03/10] Set CC from gnat version without the deprecated gnatgcc
 symbolic link

gcc-$MAJOR is also specific to Debian, but not to Ada.
---
 debian/rules | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debian/rules b/debian/rules
index d3e38d5..b29f0ea 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,7 +7,7 @@ include /usr/share/dpkg/buildflags.mk
 include /usr/share/ada/packaging.mk
 
 # Compile Ada and C with the same compiler.
-CC := gnatgcc
+CC := gcc-$(DEB_GNAT_VERSION)
 
 # Upstream Makefile insists on rebuilding everything everytime.
 # SOURCE_DATE_EPOCH (set by debhelper) and the -m gnatmake option may
-- 
2.39.2


>From 6a3416662d4142d461f6c59bdaca4c3e495f59ff Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 20 Jul 2022 14:56:41 +0200
Subject: [PATCH 04/10] Drop full texlive from build dependencies

It was now redundant with more specific dependencies.
---
 debian/control | 1 -
 1 file changed, 1 deletion(-)

diff --git a/debian/control b/debian/control
index 53206e5..5669b2f 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,6 @@ Build-Depends:
  dh-ada-library (>= 8.2),
  gnat (>= 11),
  libreadline-dev,
- texlive,
  texlive-latex-base,
  texlive-latex-extra,
  texlive-fonts-recommended,
-- 
2.39.2


>From 2946bec7938ae412ac7cf632a2f2982a6b79355d Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 20 Jul 2022 14:57:05 +0200
Subject: [PATCH 05/10] Sort build dependencies

Dpkg supports the extra comma exactly for this purpose.
---
 debian/control | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/control b/debian/control
index 5669b2f..00262aa 100644
--- a/debian/control
+++ b/debian/control
@@ -7,10 +7,10 @@ Build-Depends:
  dh-ada-library (>= 8.2),
  gnat (>= 11),
  libreadline-dev,
+ texlive-fonts-extra,
+ texlive-fonts-recommended,
  texlive-latex-base,
  texlive-latex-extra,
- texlive-fonts-recommended,
- texlive-fonts-extra
 Standards-Version: 4.6.1
 Rules-Requires-Root: no
 Homepage: https://www.zircon.org.uk/topal/
-- 
2.39.2


>From acb27a97b77357e5a17617c778119151161468de Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 3 Dec 2022 19:18:57 +0100
Subject: [PATCH 06/10] Remove some trailing whitespaces

---
 debian/changelog | 1 -
 debian/rules | 1 -
 2 files changed, 2 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 03c854b..ba63f7a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -290,4 +290,3 @@ topal (0.6.4-1) unstable; urgency=low
   * Initial Release (closes: #143319).
 
  -- Phil Brooke   Sun, 21 Apr 2002 14:29:05 +
-
diff --git a/debian/rules b/debian/rules
index b29f0ea..c8539a8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -37,4 +37,3 @@ override_dh_auto_install:
 .PHONY: override_dh_installchangelogs
 override_dh_installchangelogs:
dh_installchangelogs Changelog.html
-
-- 
2.39.2


>From 6934d431d7d4efde5a7a2e2095e879d6488a083d Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sun, 27 Aug 2023 14:03:48 +0200
Subject: [PATCH 07/10] Bump Standards-Version

---
 debian/control | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debian/control b/debian/control
index 00262aa..abc38ee 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,7 @@ Build-Depends:
  texlive-fonts-recommended,
  texlive-latex-base,
  texlive-latex-extra,
-Standards-Version: 4.6.1
+Standards-Version: 4.7.0
 Rules-Requires-Root: no
 Ho

Bug#1069984: alire: Build-depends on NBS package libgnatcoll21-dev

2024-05-04 Thread Nicolas Boulenguez
Source: alire
Followup-For: Bug #1069984

Hello.

This bug is already fixed in 1.2.1-1.1.
The ideal way to close a bug is usually in debian/changelog, but this
bug was open after its fix has been uploaded to experimental,
so you should probably close it as described at
https://www.debian.org/Bugs/Developer#closing
with a mail to 1069984-d...@bugs.debian.org starting with
Version: 1.2.1-1.1

The 'debian/ 1.2.1-2' tag is only informative, it triggers no actual
upload.
However, its current contents are incorrect.
debian/changelog contains the same version twice.
Please fix this, then I will sponsor an upload and you will tag the
uploaded state as 'debian/1.2.1-2+really'.



Bug#1065309: transition: gnat (12 -> 13 + time_t64)

2024-05-04 Thread Nicolas Boulenguez
Package: release.debian.org
Followup-For: Bug #1065309

Hello.

For some reason, some rebuilds succeeded without a +b1 version.
Their reverse dependencies is dep-waiting on the +b1 version.
Please cancel three dep-wait restrictions.

gb libgnatcoll-db_23.0.0-6   . armel powerpc . -o
gb libgnatcoll-bindings_24.0.0-2 . armhf . -o



Bug#1067285: whitakers-words: FTBFS: make[2]: *** [Makefile:40: commands] Error 4

2024-05-03 Thread Nicolas Boulenguez
Source: whitakers-words
Followup-For: Bug #1067285

Hello.
This failure is caused by new compiler warnings, either because of the
switch to gnat-13 or because of changes in Debian options.
Anyway, I suggest to add the following two lines in debian/rules,
somewhere before the inclusion of /usr/share/*.mk.

# Disable the -gnatwe upstream flags during Debian builds.
DEB_ADAFLAGS_MAINT_APPEND := -gnatwn



Bug#1065309: transition: gnat (12 -> 13 + time_t64)

2024-04-30 Thread Nicolas Boulenguez
Package: release.debian.org
Followup-For: Bug #1065309

Hello.

The time_t64 transition has triggered #1067453 in the Ada compiler,
which is now fixed by gcc-13/13.2.0-24.

The patch modifies the sources of the Ada standard library, so most
Ada packages need a rebuild in order to update their dependencies
(gnat-13  Provides: gnat-13-HASH
 each Ada library Provides: libFOO-dev-HASH
 and each consumer Depends: gnat-13-HASH, libFOO-HASH).

Please schedule the following rebuilds.

nmu adacgi_1.6-34 . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1067070.'
dw  adacgi_1.6-34 . ANY . -m 'gnat-13 (>= 13.2.0-24)'
nmu adasockets_1.14-1 . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.'
dw  adasockets_1.14-1 . ANY . -m 'gnat-13 (>= 13.2.0-24)'
nmu ahven_2.8.9   . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1067224, #1069469.'
dw  ahven_2.8.9   . ANY . -m 'gnat-13 (>= 13.2.0-24)'
nmu libaunit_24.0.0-2 . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1067071.'
dw  libaunit_24.0.0-2 . ANY . -m 'gnat-13 (>= 13.2.0-24)'
nmu libgmpada_1.6-2   . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.'
dw  libgmpada_1.6-2   . ANY . -m 'gnat-13 (>= 13.2.0-24)'
nmu libncursesada_6.3.20211021-11 . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1067073.'
dw  libncursesada_6.3.20211021-11 . ANY . -m 'gnat-13 (>= 13.2.0-24)'
nmu libtexttools_2.1.0-28 . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1069476.'
dw  libtexttools_2.1.0-28 . ANY . -m 'gnat-13 (>= 13.2.0-24)'
nmu libxmlada_24.0.0-2. ANY . -m 'Rebuild with #1067453 fixed in 
gnat'
dw  libxmlada_24.0.0-2. ANY . -m 'gnat-13 (>= 13.2.0-24)'
nmu libxmlezout_1.06.2-14 . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1067220.'
dw  libxmlezout_1.06.2-14 . ANY . -m 'gnat-13 (>= 13.2.0-24)'

nmu liblog4ada_1.3.1.b6dafb49-13  . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1067074.'
dw  liblog4ada_1.3.1.b6dafb49-13  . ANY . -m 'libxmezout-dev (>= 1.06.2-14+b1)'

nmu anet_0.5.0-3  . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1067353.'
dw  anet_0.5.0-3  . ANY . -m 'libahven-dev (>= 2.8.9+b1)'
nmu dbusada_0.6.2-6   . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1069421.'
dw  dbusada_0.6-2-6   . ANY . -m 'libahven-dev (>= 2.8.9+b1)'
nmu libalog_0.6.2-5   . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1069454.'
dw  libalog_0.6.2-5   . ANY . -m 'libahven-dev (>= 2.8.9+b1)'
nmu pcscada_0.7.7-6   . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1069468.'
dw  pcscada_0.7.7-6   . ANY . -m 'libahven-dev (>= 2.8.9+b1)'

nmu libtemplates-parser_24.0.0-2  . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.'
dw  libtemplates-parser_24.0.0-2  . ANY . -m 'libxmlada-unicode-dev (>= 
24.0.0-2+b1)'
nmu gprbuild_2024.1.20231009-4. ANY . -m 'Rebuild with #1067453 fixed in 
gnat.  Closes: #1069467.'
dw  gprbuild_2024.1.20231009-4. ANY . -m 'libxmlada-unicode-dev (>= 
24.0.0-2+b1)'

nmu libgnatcoll_24.1.20230921-4   . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.'
dw  libgnatcoll_24.1.20230921-4   . ANY . -m 'libgnatprj-dev (>= 
2024.1.20231009-4+b1)'

nmu libgnatcoll-bindings_24.0.0-2 . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.'
dw  libgnatcoll-bindings_24.0.0-2 . ANY . -m 'libgnatcoll-dev (>= 
24.1.20230921-4+b1)'

nmu libgnatcoll-db_23.0.0-6   . ANY . -m 'Rebuild with #1067453 fixed in 
gnat.'
dw  libgnatcoll-db_23.0.0-6   . ANY . -m 'libgnatcoll-iconv-dev (>= 
24.0.0-2+b1)'

The   alire libflorist libgtkada plplot   packages are also affected
but require a normal upload for other reasons anyway.

Thanks.



Bug#1067453: gnat: Ada.Calendar.Clock crashes on time_t64 architectures

2024-04-25 Thread Nicolas Boulenguez
Source: gcc-13
Followup-For: Bug #1067453

The gettimeofday import issue seems specific to the time_t 64
transition in Debian.

When building C on armhf, a #define replaces gettimeofday with
__gettimeofday64 so the linker finds the 64 bits version in the libc.

When linking Ada code, the linker searches for the gettimeofday symbol
and links with the 32 bits version, as demonstrated by the reproducer
script below.  Here is the output.

./c_part
 timeval size: 128
 tv_sec   offset: 0   size: 64   value: 662A7756
 tv_usec   offset: 8   size: 64   value: 1C54
 56 77 2A 66 00 00 00 00 54 1C 00 00 00 00 00 00
./ada_part
 timeval size: 128
  tv_sec offset: 0   size: 64   value:16#27A9662A7756#
  tv_usec offset: 8   size: 64 value:-16#80B1C0708345E00#
 56 77 2A 66 A9 27 00 00 00 A2 CB F7 F8 E3 F4 F7

Changing the External_Name from "gettimeofday" to "__gettimeofday64"
fixes the mismatch (except for the lower microseconds of course).

./c_part
 81 76 2A 66 00 00 00 00 0F E2 0C 00 00 00 00 00
./ada_part
 81 76 2A 66 00 00 00 00 CB EC 0C 00 00 00 00 00

So we have two possible work-arounds.

 * build a C source with a __gnat_gettimeofday wrapper.
   This option, implemented by my last commit, patches
 gcc/ada/Makefile.rtl
 gcc/ada/cal.c
 gcc/ada/gcc-interface/Makefile.in
 gcc/ada/libgnat-s-osprim__posix.adb
   and interfers with the previous commit.

 * simply patch gcc/ada/libgnat/s-osprim__posix.adb with
-  pragma Import (C, gettimeofday, "gettimeofday");
+  pragma Import (C, gettimeofday, "__gettimeofday64");
  This seems better, but must only be applied on targets affected by
  the t64 transition.

I do not know which one is the best, but at least the second one
explains why the first one did work.

Just in case, here is the reproducer script:

--
#!/bin/sh
set -efuv

cat > hexdump.h < hexdump.c <
#include "hexdump.h"
void hexdump(char* p, int length)
{
  while (length--)
  {
printf(" %02hhX", *p++);
  }
  printf("\n");
}
EOF

cat > c_part.c <
#include 
#include 
#include 
#include "hexdump.h"
int main(int argc, const char* argv[]) {
  struct timeval tv;
  if (argc == 1)
  {
printf(" gettimeofday returned %i\n", gettimeofday(, NULL));
printf(" timeval size: %lli\n", (long long int)( CHAR_BIT * sizeof(tv)));
printf(" tv_sec");
printf("   offset: %lli", (long long int)((char*)(&(tv.tv_sec)) - 
(char*)()));
printf("   size: %lli",   (long long int)(CHAR_BIT * sizeof(tv.tv_sec)));
printf("   value: %llX",  (long long int)tv.tv_sec);
printf("\n");
printf(" tv_usec");
printf("   offset: %lli", (long long int)((char*)(&(tv.tv_usec)) - 
(char*)()));
printf("   size: %lli",   (long long int)(CHAR_BIT * sizeof(tv.tv_usec)));
printf("   value: %llX",  (long long int)tv.tv_usec);
printf("\n");
hexdump((char*)(), sizeof(tv));
  }
  else
  {
printf("   time_t_bits  : constant := %lli;\n",
   (long long int)(CHAR_BIT * sizeof(tv.tv_sec)));
printf("   suseconds_t_bits : constant := %lli;\n",
   (long long int)( CHAR_BIT * sizeof(tv.tv_usec)));
  }
  return EXIT_SUCCESS;
}
EOF

cat > ada_part.adb < C;
   type suseconds_t is range -2**(suseconds_t_bits - 1) ..
  2**(suseconds_t_bits - 1) - 1
 with Convention => C;
   type timeval is record
  tv_sec  : time_t;
  tv_usec : suseconds_t;
   end record with Convention => C;
   function gettimeofday (tv : access timeval; tz : Address) return int
 with Import, Convention => C,
  External_Name => "gettimeofday"; --  Here
   Tv : aliased timeval;
   function Offset (A, B : Address) return String is
 (Long_Long_Integer'Image (Long_Long_Integer'Value (A'Img)
 - Long_Long_Integer'Value (B'Img)));
   I : constant int := gettimeofday(Tv'Access, Null_Address);
   procedure hexdump(p : Address; count : Integer)
 with Import, Convention => C, External_Name => "hexdump";
begin
  Put_Line (" gettimeofday returned" & I'Img);
  Put_Line (" timeval size:" & Integer'Image (Tv'Size));
  Put ("  tv_sec offset:" & Offset (Tv.tv_sec'Address, Tv'Address)
   & "   size:" & Integer'Image (Tv.tv_sec'Size)
   & "   value:");
  Put (Long_Long_Integer (Tv.tv_sec), Width => 0, Base => 16);
  New_Line;
  Put ("  tv_usec offset:" & Offset (Tv.tv_usec'Address, Tv'Address)
   & "   size:" & Integer'Image (Tv.tv_usec'Size)
   & " value:");
  Put (Long_Long_Integer (Tv.tv_usec), Width => 0, Base => 16);
  New_Line;
  hexdump (Tv'Address, Tv'Size / 8);
end Ada_Part;
EOF

gcc -c -Wall -Wextra hexdump.c -o hexdump.o
gcc -Wall -Wextra c_part.c hexdump.o -o c_part
gnatmake -gnat2022 -gnatwa -gnatya ada_part.adb -largs hexdump.o

./c_part
./ada_part



Bug#872381: dpkg-dev: optimize Makefile snippets for debian/rules

2024-04-10 Thread Nicolas Boulenguez
The attached version
fixes the spacing issue in tests with a more readable trick,
splits the changes inside tests into small chunks,
replaces - with _ in Make variable names,
avoids non portable -r -E sed options.

Without -r, sed in {buildflags,pkg-info}.mk should cause no
regression.  It has been present in pkg-info.mk since 2011.
>From 5b3d75fb604dae497406f19073d03ea094da8d07 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 10 Apr 2024 00:41:42 +0200
Subject: [PATCH 01/10] scripts/t/mk/buildflags.mk: fix test of _MAINT_APPEND
 when TEST_ is empty

When TEST_CPPFLAGS is empty, the right hand side of the comparison
starts with a space character.
---
 scripts/t/mk/buildflags.mk | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/t/mk/buildflags.mk b/scripts/t/mk/buildflags.mk
index 94d85a7e0..7cf798f73 100644
--- a/scripts/t/mk/buildflags.mk
+++ b/scripts/t/mk/buildflags.mk
@@ -1,5 +1,8 @@
 DEB_CPPFLAGS_MAINT_APPEND = -DTEST_MK=test-host
+TEST_CPPFLAGS+= -DTEST_MK=test-host
+
 DEB_CPPFLAGS_FOR_BUILD_MAINT_APPEND = -DTEST_MK=test-build
+TEST_CPPFLAGS_FOR_BUILD+= -DTEST_MK=test-build
 
 include $(srcdir)/mk/buildflags.mk
 
@@ -8,8 +11,8 @@ test:
 	test "$(ASFLAGS_FOR_BUILD)" = "$(TEST_ASFLAGS_FOR_BUILD)"
 	test "$(CFLAGS)" = "$(TEST_CFLAGS)"
 	test "$(CFLAGS_FOR_BUILD)" = "$(TEST_CFLAGS_FOR_BUILD)"
-	test "$(CPPFLAGS)" = "$(TEST_CPPFLAGS) -DTEST_MK=test-host"
-	test "$(CPPFLAGS_FOR_BUILD)" = "$(TEST_CPPFLAGS_FOR_BUILD)-DTEST_MK=test-build"
+	test "$(CPPFLAGS)" = "$(TEST_CPPFLAGS)"
+	test "$(CPPFLAGS_FOR_BUILD)" = "$(TEST_CXXFLAGS_FOR_BUILD)"
 	test "$(CXXFLAGS)" = "$(TEST_CXXFLAGS)"
 	test "$(CXXFLAGS_FOR_BUILD)" = "$(TEST_CXXFLAGS_FOR_BUILD)"
 	test "$(DFLAGS)" = "$(TEST_DFLAGS)"
-- 
2.39.2

>From 53aeebafeb2af84369df3b7d81ff1cbcc1e13a9d Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 10 Apr 2024 00:09:43 +0200
Subject: [PATCH 02/10] scripts/t/mk: use loops instead of repetitions

---
 scripts/t/mk/architecture.mk | 54 +---
 scripts/t/mk/buildflags.mk   | 39 --
 scripts/t/mk/buildtools.mk   | 54 +++-
 3 files changed, 61 insertions(+), 86 deletions(-)

diff --git a/scripts/t/mk/architecture.mk b/scripts/t/mk/architecture.mk
index 2ac0222ca..b146f34b7 100644
--- a/scripts/t/mk/architecture.mk
+++ b/scripts/t/mk/architecture.mk
@@ -1,36 +1,22 @@
 include $(srcdir)/mk/architecture.mk
 
-test:
-	test "$(DEB_BUILD_ARCH)" = "$(TEST_DEB_BUILD_ARCH)"
-	test "$(DEB_BUILD_ARCH_ABI)" = "$(TEST_DEB_BUILD_ARCH_ABI)"
-	test "$(DEB_BUILD_ARCH_BITS)" = "$(TEST_DEB_BUILD_ARCH_BITS)"
-	test "$(DEB_BUILD_ARCH_CPU)" = "$(TEST_DEB_BUILD_ARCH_CPU)"
-	test "$(DEB_BUILD_ARCH_ENDIAN)" = "$(TEST_DEB_BUILD_ARCH_ENDIAN)"
-	test "$(DEB_BUILD_ARCH_LIBC)" = "$(TEST_DEB_BUILD_ARCH_LIBC)"
-	test "$(DEB_BUILD_ARCH_OS)" = "$(TEST_DEB_BUILD_ARCH_OS)"
-	test "$(DEB_BUILD_GNU_CPU)" = "$(TEST_DEB_BUILD_GNU_CPU)"
-	test "$(DEB_BUILD_GNU_SYSTEM)" = "$(TEST_DEB_BUILD_GNU_SYSTEM)"
-	test "$(DEB_BUILD_GNU_TYPE)" = "$(TEST_DEB_BUILD_GNU_TYPE)"
-	test "$(DEB_BUILD_MULTIARCH)" = "$(TEST_DEB_BUILD_MULTIARCH)"
-	test "$(DEB_HOST_ARCH)" = "$(TEST_DEB_HOST_ARCH)"
-	test "$(DEB_HOST_ARCH_ABI)" = "$(TEST_DEB_HOST_ARCH_ABI)"
-	test "$(DEB_HOST_ARCH_BITS)" = "$(TEST_DEB_HOST_ARCH_BITS)"
-	test "$(DEB_HOST_ARCH_CPU)" = "$(TEST_DEB_HOST_ARCH_CPU)"
-	test "$(DEB_HOST_ARCH_ENDIAN)" = "$(TEST_DEB_HOST_ARCH_ENDIAN)"
-	test "$(DEB_HOST_ARCH_LIBC)" = "$(TEST_DEB_HOST_ARCH_LIBC)"
-	test "$(DEB_HOST_ARCH_OS)" = "$(TEST_DEB_HOST_ARCH_OS)"
-	test "$(DEB_HOST_GNU_CPU)" = "$(TEST_DEB_HOST_GNU_CPU)"
-	test "$(DEB_HOST_GNU_SYSTEM)" = "$(TEST_DEB_HOST_GNU_SYSTEM)"
-	test "$(DEB_HOST_GNU_TYPE)" = "$(TEST_DEB_HOST_GNU_TYPE)"
-	test "$(DEB_HOST_MULTIARCH)" = "$(TEST_DEB_HOST_MULTIARCH)"
-	test "$(DEB_TARGET_ARCH)" = "$(TEST_DEB_TARGET_ARCH)"
-	test "$(DEB_TARGET_ARCH_ABI)" = "$(TEST_DEB_TARGET_ARCH_ABI)"
-	test "$(DEB_TARGET_ARCH_BITS)" = "$(TEST_DEB_TARGET_ARCH_BITS)"
-	test "$(DEB_TARGET_ARCH_CPU)" = "$(TEST_DEB_TARGET_ARCH_CPU)"
-	test "$(DEB_TARGET_ARCH_ENDIAN)" = "$(TEST_DEB_TARGET_ARCH_ENDIAN)"
-	test "$(DEB_TARGET_ARCH_LIBC)" = "$(TEST_DEB_TARGET_ARCH_LIBC)&q

Bug#1067453: gnat: Ada.Calendar.Clock crashes on time_t64 architectures

2024-04-06 Thread Nicolas Boulenguez
Source: gcc-13
Followup-For: Bug #1067453

Sorry for the poor summary. Here is what I have built and tested.
 * native build on ppc46el (not amd64)
 * gcc-source 13.2.0-19 from Debian
 * libgnat-timet64.diff unapplied
   (pr114065-proposed.diff should be unapplied for -20 and later)
 * commits 1/8 to 8/8 from bug114065attempt3.tar.gz applied
   (Debian only needs 1-3, 4-8 should only affect style).
 * ada-lib-info-source-date-epoch.diff adapted as described in #1067453
   (disabling it for a while is also an option)
 * debian/rules binary-arch

cat > demo.adb <

Bug#1067453: gnat: Ada.Calendar.Clock crashes on time_t64 architectures

2024-04-05 Thread Nicolas Boulenguez
Source: gcc-13
Followup-For: Bug #1067453

Hello.

In case anyone tries to build attempt3 at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114065
in Debian, please:
 * disable debian/patches/libgnat-time64.diff in debian/rules.patch
 * adapt the current ada-lib-info-source-date-epoch.diff

--- a/debian/patches/ada-lib-info-source-date-epoch.diff
+++ b/debian/patches/ada-lib-info-source-date-epoch.diff
@@ -62,24 +62,26 @@ Author: Nicolas Boulenguez 
 end File_Stamp;
  
 function File_Stamp (Name : Path_Name_Type) return Time_Stamp_Type is
-@@ -3261,4 +3276,28 @@ begin
+@@ -3261,4 +3276,30 @@ begin
Osint.Initialize;
 end Initialization;
  
 +   Set_Source_Date_Epoch : declare
++  --  See comments in OS_Time_To_GNAT_Time.
++  use type CRTL.int64;
++  function To_Ada is new Ada.Unchecked_Conversion (CRTL.int64, OS_Time);
 +  Env_Var : String_Access := Getenv ("SOURCE_DATE_EPOCH");
-+  Epoch   : time_t range 0 .. time_t'Last := 0;
-+  Digit   : time_t range 0 .. 9;
++  Epoch   : CRTL.int64 range 0 .. CRTL.int64'Last := 0;
++  Digit   : CRTL.int64 range 0 .. 9;
 +   begin
 +  if 0 < Env_Var.all'Length then
 + --  Calling System.Val_LLI breaks the bootstrap sequence.
-+ --  First convert to time_t because OS_Time is private.
 + for C of Env_Var.all loop
 +if C not in '0' .. '9' then
 +   goto Finally;
 +end if;
-+Digit := time_t (Character'Pos (C) - Character'Pos ('0'));
-+if (time_t'Last - Digit) / 10 < Epoch then
++Digit := CRTL.int64 (Character'Pos (C) - Character'Pos ('0'));
++if (CRTL.int64'Last - Digit) / 10 < Epoch then
 +   goto Finally;
 +end if;
 +Epoch := Epoch * 10 + Digit;



Bug#1067242: dh-builtusing: Broken "Built-Using" field with architecture-specific invocations

2024-03-29 Thread Nicolas Boulenguez
> > On armel, the control files correctly contain no Built-Using field.

> I have not noticed the issues on armel, just armhf (with 0.0.5 or 0.0.6)
> and arm64 (with 0.0.6).

I have tried again on an armhf porterbox, all works as expected.

> > Could you please describe your build environment?

> I use sbuild with unshare chroot mode...

Thanks for the explanations.  If I understand correctly, sbuild needs
root permissions at least to create the chroot, so I cannot run it on
a porterbox.

Can you please try
# dh_builtusing -v
# cat debian/*.substvars
This should work in a clean source tree,  without spending time building.
(arm64 or armhf, the symptoms differ but the cause seems the same)

The expected output on armhf is:
In package u-boot-sunxi, substvar dh-builtusing:arm-trusted-firmware += 
disabled-by-restriction
In package u-boot-sunxi, substvar dh-builtusing:crust-firmware += 
disabled-by-restriction
In package u-boot-rockchip, substvar dh-builtusing:arm-trusted-firmware 
+= disabled-by-restriction
dh-builtusing:arm-trusted-firmware=disabled-by-restriction (= 0)
dh-builtusing:arm-trusted-firmware=disabled-by-restriction (= 0)
dh-builtusing:crust-firmware=disabled-by-restriction (= 0)



Bug#1067242: dh-builtusing: Broken "Built-Using" field with architecture-specific invocations

2024-03-24 Thread nicolas . boulenguez

Hello.
I failed to reproduce the issue on a porterbox.

On arm64:
# dpkg-source -x u-boot_2024.01+dfsg-3.dsc
# cd u-boot_2024.01+dfsg
# patch -p1 < ../b8d394100d6f858c0e80786f7087f96c11d698c3.diff
# DEB_BUILD_PROFILES='pkg.uboot.notools 
pkg.uboot.platform.a64-olinuxino' fake\

root debian/rules binary-arch
dpkg-gencontrol writes no warning
debian/u-boot-{rockchip,sunxi}/DEBIAN/control contain the expected 
Built-Using\

 fields

On armel, the control files correctly contain no Built-Using field.

Could you please describe your build environment?

Bug#1051098: suggestion: dh-builtusing may simplify the packaging

2024-03-21 Thread Nicolas Boulenguez
Hello.

> About to upload a version reverting this change to fix build failure on
> armhf.
> 
> Removing the patch flag, as the patch does not quite work correctly.
> 
> Also filed a bug on dh-builtusing about this:
> 
>   https://bugs.debian.org/1067242
> 
> I look forward to an improved dh-builtusing and patch for u-boot! :)

Thanks for reporting.

Dh-builtusing/0.0.6 adds a regression test reporting this bug, and
fixes it.

Variables disabled by a restriction now receive a dummy but valid
value, so that dpkg-gencontrol can parse the expansion (then ignore
the dummy value).

For u-boot, no patch is necessary.  Just revert the reversal :-)



Bug#1067453: gnat: Ada.Calendar.Clock crashes on time_t64 architectures

2024-03-21 Thread Nicolas Boulenguez
Package: gnat-13
Version: 13.2.0-19
Severity: normal
X-Debbugs-Cc: lbre...@debian.org
Control: affects -1 pcscada libalog dbusada anet ahven libgmpada libgtkada 
libgnatcoll-db libncursesada libaunit adacgi liblog4ada libtexttools 
libtemplates-parser libxmlezout libgnatcoll-bindings libgnatcoll gprbuild

Hello.

Most Ada packages randomly FTBFS on 32 bit architectures with
gprbuild: raised CONSTRAINT_ERROR : a-calend.adb:371 overflow check failed

The problem originates in the gcc-13 switch to time_t64.
gcc/ada/libgnat/s-os_prim__posix.adb is affected by two apparently
distinct issues.

* s-os_prim.adb allocates 3Long_Integer=3void*=3*32 bits for the
  timeval C struct, while 2*64bits = 2Long_Long_Integer are now needed.

  This issue affects other files, but is easy to find and fix.

* The switch breaks the call from Ada to the C gettimeofday function.

  Can anyone explain this, and ideally provide a real fix instead of
  the ugly work-around below?

cat > mycal.c <
int mygettimeofday(struct timeval *restrict tv,
   struct timezone *restrict tz) {
  return gettimeofday(tv, tz);
}
EOF

cat > foo.adb <

Bug#1065309: transition: gnat 12 -> 13 + time_t64

2024-03-14 Thread nicolas . boulenguez

Hello.

Version 2 seems OK.

Thanks.

Bug#1065309: transition: gnat (12 -> 13 + time_t64)

2024-03-13 Thread nicolas . boulenguez

Hello.

A bug affects the Ada tests during the build of the gcc-12 source 
package.


https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1066052

Such error messages happen on each (uncoordinated) change in the sources 
of an Ada library.  Some sources for the standard library built by GCC 
are generated from C headers, so, as Matthias wrote in the bug report, 
this is without doubt caused by the t64 transition (especially taking 
into account that Ada.Calendar defines types for time representation).


All/most Ada packages will probably soon FTBFS with a similar message.

All/most Ada libraries need small manual changes and a passage through 
NEW in order to fix this (Ada -dev packages built with gcc-12 and 
earlier carry a version, in addition to the SO version carried by 
library packages).


I agree with Matthias that we should instead start the gcc-13 transition 
in unstable. All packages are ready in experimental, with all library 
packages already renamed through NEW. But unfortunately also with 
intrusive unrelated changes, for example new upstream versions and a new 
Ada workflow removing the version from -dev package names.


This will fix the issue quickly (only a new changelog entry for each 
package), but I would like a formal approval by the release managers 
before starting the gnat-13 transition.


As described above in #1065309, all precautions have been taken in 
experimental, and all is needed is a rebuild in unstable with a new 
changelog entry. The FTBFSs in experimental reported by the salsa CI 
pipeline can be ignored, they are caused by the difficulty to resolve 
build dependencies in a context mixing unstable and experimental.


For the record, some unrelated changes in the gnat-12 sources were 
already causing similar bugs (#1061631,  [1]#1061633,  [2]#1064745 [3]), 
that will also be fixed by the gnat-13 transition.  These bugs are less 
important because they affect a few Ada packages, not GCC.




Links:
--
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1061631
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1061633
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1064745

Bug#872381: dpkg-dev: optimize Makefile snippets for debian/rules

2024-03-10 Thread Nicolas Boulenguez
Package: dpkg-dev
Followup-For: Bug #872381

Hello.

Please consider this new patch queue instead of the old or untested
ones.  With this one applied on 279c6ccb, the package builds and
passes all tests.

* scripts/mk: only use ASCII characters
  Cosmetic independent suggestion.

* scripts/mk: protect files against double inclusion
  The variables are renamed as you have recommended.
  The test is fixed (ifdef fails on a defined but empty variable).

* scripts/mk: stop hard-coding dpkg_datadir
  Already discussed.

* scripts/mk/buildopts.mk: search once for parallel= in DEB_BUILD_OPTIONS

> > [...DEB_BUILD_OPTION_PARALLEL empty instead of undefined
> > when parallel= is missing...]
> [kind of an API change].

I have changed my patch and updated the comment.
However..
The policy only describes 'parallel=N' when N is a positive integer.
I think we should assume that the option is either missing or valid.
For me, 'parallel=' is as incorrect as 'parallel=foo'.

> I think it might perhaps make more sense to fallback to setting it
> to 1 if it's missing, but I need to ponder about possible
> consequences/fallout, etc.

I doubt any sensible default exist.
* 1 is safe/produces readable logs and $max_available_processors is fast.
* the policy/debhelper/... have found no one-size-fits-all solution.

* scripts/buildflags.mk: add missing GCJFLAGS
  Fixes a bug.

* scripts/buildflags.mk: generate the _FOR_BUILD variant of each variable
* scripts/buildflags.mk: sort the flag list
  These changes hopefully prevent new missing flags in the future (the
  output of dpkg-buildflags is sorted).

* scripts/*.mk: reduce the number of subprocesses
* scripts/t: use loops instead of repetitions, check exports and overrides
  * all four combinations of existing/new scripts/mk/*.mk pass the
existing/new tests in scripts/t/mk/*.mk.
  * comparing the time taken by tests gives a rough idea of the speed
gain
architecture.mk 30 times faster (probably no gain under dpkg-buildpackage)
buildflags.mk   20 times faster
pkg-info.mk  4 times faster
buildtools.mk20% faster

Guillem Jover
> I've left this one out for now. I'm not entirely satisfied with the
> sed usage here. If we keep using sed, then I think it needs to be
> set via a SED variable, substituted from the value found at

In which context do you expect GNU Make but a non recent sed?
Should I rewrite the regular expressions without -r/-E?

> configure time. But then, I've been pondering whether we can have
> better export formats, that might make the sed usage not
> necessary. I started with a make-eval export mode for buildflags,
> but perhaps it would be better a more generic formatting mode where
> the caller can specify how the output should look like, akin
> «dpkg-query --showformat». Will ponder about this.

A generic format would be more maintainable in the long term.
Something like that would be convenient for the makefiles.

dpkg-architecture --print-format='${Dollar}(eval export ${key} ?= ${value})'
dpkg-buildflags --print-format='${Dollar}(eval ${key}:=${value})'
dpkg-parsechangelog --print-format='${Dollar}(eval DEB_SOURCE:=${Source}) 
${Dollar}(eval export SOURCE_DATE_EPOCH?=${Timestamp}) ..'
dpkg-vendor --print-format'${Dollar}(eval DEB_VENDOR:=${Vendor}) ${Dollar}(eval 
DEB_PARENT_VENDOR:=${Parent})'

* scripts/buildtools.mk: style suggestions
  This arguably improves the readability, and fixes a minor issue
  ($(findstring nostrip,...) unwantedly matches arduinostrip).

* scripts/t/mk/buildflags.mk: fix test of _MAINT_APPEND when TEST_ is empty
  This fixes a minor issue. During a test with
  DEB_BUILD_OPTIONS=noopt, TEST_CXXFLAGS was empty and caused the test
  of DEB_CXXFLAGS_MAINT_APPEND to fail because the correct result is
  not a concatenation, Make strips a space.  This issue can also be
  seen with 1.22.5.
>From 37f1089c450fca16d06d586cf390a05642af25f0 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Mon, 4 Mar 2024 13:23:56 +0100
Subject: [PATCH 01/11] scripts/mk: only use ASCII characters

The policy recommends english, so french parenthesis must be replaced.
More generally, prudence recommends ASCII in Make scripts.
---
 scripts/mk/buildtools.mk | 2 +-
 scripts/mk/vendor.mk | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/mk/buildtools.mk b/scripts/mk/buildtools.mk
index 933fdcfaa..7c6732210 100644
--- a/scripts/mk/buildtools.mk
+++ b/scripts/mk/buildtools.mk
@@ -20,7 +20,7 @@
 #   QMAKE: Qt build system generator (since dpkg 1.20.0).
 #
 # All the above variables have a counterpart variable for the build tool,
-# as in CC → CC_FOR_BUILD.
+# as in CC -> CC_FOR_BUILD.
 #
 # The variables are not exported by default. This can be changed by
 # defining DPKG_EXPORT_BUILDTOOLS.
diff --git a/scripts/mk/vendor.mk b/scripts/mk/vendor.mk
index f3241a57b..8bdaa235a 100644
--- a/scripts/mk/vendor.mk
+++ b/scripts/mk/vendor

Bug#916475: ghdl: various suggestions to simplify the packaging

2024-03-04 Thread Nicolas Boulenguez
Source: ghdl
Followup-For: Bug #916475

Hello.
0001 is unchanged.
0002 is stripped from unwanted spaces<->tabulations changes.
>From 93ac475b1389fb875094c14a4977f64d8c1f74fd Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sun, 1 Oct 2023 01:14:25 +0200
Subject: [PATCH 1/2] Delegate computation of Built-Using to dh-builtusing

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

diff --git a/debian/control b/debian/control
index 585ee55e..545c44b4 100644
--- a/debian/control
+++ b/debian/control
@@ -5,6 +5,7 @@ Maintainer: Debian Electronics Team 
 Build-Depends: debhelper-compat (= 13),
dh-ada-library (>= 8.1),
+   dh-sequence-builtusing,
gnat-12, gcc-12, g++-12,
gcc-12-source ,
libisl-dev (>= 0.14) ,
@@ -80,7 +81,7 @@ Description: VHDL compiler/simulator (mcode backend)
 Package: ghdl-gcc
 Architecture: any
 Build-Profiles: 
-Built-Using: ${Built-Using-GCC}
+Built-Using: ${dh-builtusing:gcc-S-source}
 Depends: ghdl-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends},
 	gcc, zlib1g-dev
 Description: VHDL compiler/simulator (GCC backend)
@@ -122,7 +123,7 @@ Description: VHDL compiler/simulator (tools)
 
 Package: libghdl-3-0-0
 Architecture: any
-Built-Using: ${Built-Using-GCC}
+Built-Using: ${dh-builtusing:gcc-S-source} 
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Multi-Arch: same
 Description: VHDL compiler/simulator (shared library)
@@ -135,7 +136,7 @@ Description: VHDL compiler/simulator (shared library)
 
 Package: libghdl-dev
 Architecture: any
-Built-Using: ${Built-Using-GCC}
+Built-Using: ${dh-builtusing:gcc-S-source} 
 Depends: libghdl-3-0-0 (= ${binary:Version}), ${misc:Depends}
 Multi-Arch: same
 Description: VHDL compiler/simulator (library development files)
diff --git a/debian/rules b/debian/rules
index 5821f85d..138b8581 100755
--- a/debian/rules
+++ b/debian/rules
@@ -95,15 +95,6 @@ override_dh_strip:
 	dh_strip -N libghdl-3-0-0
 	dh_strip -p libghdl-3-0-0 --dbgsym-migration='libghdl-2-0-0'
 
-override_dh_gencontrol:
-ifneq ($(filter gcc,$(BACKENDS)),)
-	dh_gencontrol -- -VBuilt-Using-GCC="$(shell dpkg-query -f '$${Source} (= $${Version})' -W gcc-$(DEB_GNAT_VERSION)-source)"
-else
-	dh_gencontrol
-endif
-
-
-
 configure-llvm-stamp configure-mcode-stamp: configure-%-stamp:
 	$(announce)
 	mkdir -p $(BUILDDIR)/$*
-- 
2.39.2

>From 9fd880fea151ef73266938f65f423003f9d8f36b Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 5 Oct 2023 14:39:35 +0200
Subject: [PATCH 2/2] test driver: move error reporting to a separate procedure

---
 debian/tests/ghdl-tests | 16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/debian/tests/ghdl-tests b/debian/tests/ghdl-tests
index 871d594b..9ef0a66d 100755
--- a/debian/tests/ghdl-tests
+++ b/debian/tests/ghdl-tests
@@ -6,15 +6,19 @@ set -C -e -f -u
 # Debian yet.
 TESTS="sanity gna vests synth vpi vhpi"
 
-test $# = 2
+error() {
+echo >&2 "$0: $1"
+exit 1
+}
+
+test $# = 2 || error "bad argument count: $#"
 
 case "$2" in
 gcc|llvm|mcode)
 	BACKEND=$2
 	;;
 *)
-	echo >&2 "Invalid backend specification"
-	exit 1
+	error "invalid backend specification: $2"
 esac
 
 case "$1" in
@@ -27,8 +31,7 @@ case "$1" in
 	GHDL=/usr/bin/ghdl-$BACKEND
 	;;
 *)
-	echo >&2 "Invalid test environment specification"
-	exit 1
+	error "invalid test environment specification: $1"
 esac
 
 # Copy testsuite into $RUNDIR to execute there, so that no cleanup is necessary
@@ -50,6 +53,5 @@ if ./testsuite.sh $TESTS -- --keep-going; then
 elif test $BACKEND = llvm; then
 echo "Tests for backend llvm failed (but ignored for now)."
 else
-echo >&2 "Tests for backend $BACKEND failed."
-exit 1
+error "tests for backend $BACKEND failed."
 fi
-- 
2.39.2



Bug#872381: dpkg-dev: optimize Makefile snippets for debian/rules

2024-03-04 Thread Nicolas Boulenguez
Package: dpkg-dev
Followup-For: Bug #872381

This new version, based on c881a5a8,
* splits protection from double inclusion and dpkg_datadir generation
  into separate commits
* fixes an error in DEB_BUILD_OPTION_PARALLEL
* removes a few dubious optimizations (like checking if dpkg_datadir
  is already computed in default.mk).
* removes non-ASCII characters from comments
>From e29be20064687eee52fa9b6c1ee1cb722867d590 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Mon, 29 Jul 2019 14:38:32 +0200
Subject: [PATCH 01/10] scripts/mk: protect scripts from double inclusion

Two such double inclusions already happen when default.mk is parsed.
---
 scripts/mk/architecture.mk | 5 +
 scripts/mk/buildapi.mk | 5 +
 scripts/mk/buildflags.mk   | 6 ++
 scripts/mk/buildopts.mk| 5 +
 scripts/mk/buildtools.mk   | 5 +
 scripts/mk/default.mk  | 5 +
 scripts/mk/pkg-info.mk | 5 +
 scripts/mk/vendor.mk   | 5 +
 8 files changed, 41 insertions(+)

diff --git a/scripts/mk/architecture.mk b/scripts/mk/architecture.mk
index c11cada16..2ffcee287 100644
--- a/scripts/mk/architecture.mk
+++ b/scripts/mk/architecture.mk
@@ -2,6 +2,9 @@
 # DEB_BUILD_* variables that dpkg-architecture can return. Existing values
 # of those variables are preserved as per policy.
 
+ifndef dpkg_architecture.mk_included
+dpkg_architecture.mk_included :=
+
 dpkg_lazy_eval ?= $$(or $$(value DPKG_CACHE_$(1)),$$(eval DPKG_CACHE_$(1) := $$(shell $(2)))$$(value DPKG_CACHE_$(1)))
 
 dpkg_architecture_setvar = export $(1) ?= $(call dpkg_lazy_eval,$(1),dpkg-architecture -q$(1))
@@ -9,3 +12,5 @@ dpkg_architecture_setvar = export $(1) ?= $(call dpkg_lazy_eval,$(1),dpkg-archit
 $(foreach machine,BUILD HOST TARGET,\
   $(foreach var,ARCH ARCH_ABI ARCH_LIBC ARCH_OS ARCH_CPU ARCH_BITS ARCH_ENDIAN GNU_CPU GNU_SYSTEM GNU_TYPE MULTIARCH,\
 $(eval $(call dpkg_architecture_setvar,DEB_$(machine)_$(var)
+
+endif
diff --git a/scripts/mk/buildapi.mk b/scripts/mk/buildapi.mk
index 668e325c8..ba6b43543 100644
--- a/scripts/mk/buildapi.mk
+++ b/scripts/mk/buildapi.mk
@@ -1,5 +1,8 @@
 # This Makefile fragment (since dpkg 1.22.0) handles the build API.
 
+ifndef dpkg_buildapi.mk_included
+dpkg_buildapi.mk_included :=
+
 # Default API level when not set.
 DPKG_BUILD_API ?= $(shell dpkg-buildapi)
 
@@ -7,3 +10,5 @@ DPKG_BUILD_API ?= $(shell dpkg-buildapi)
 # complexity given no integer operators, given that we currently have to
 # fetch the build API level anyway.
 dpkg_build_api_ge = $(shell test "$(DPKG_BUILD_API)" -ge "$(1)" && echo yes)
+
+endif
diff --git a/scripts/mk/buildflags.mk b/scripts/mk/buildflags.mk
index 4b8a3d8c4..02baa53f2 100644
--- a/scripts/mk/buildflags.mk
+++ b/scripts/mk/buildflags.mk
@@ -28,6 +28,10 @@
 # You can also export them in the environment by setting
 # DPKG_EXPORT_BUILDFLAGS to a non-empty value.
 #
+
+ifndef dpkg_buildflags.mk_included
+dpkg_buildflags.mk_included :=
+
 # This list is kept in sync with the default set of flags returned
 # by dpkg-buildflags.
 
@@ -77,3 +81,5 @@ $(foreach flag,$(DPKG_BUILDFLAGS_LIST),\
 ifdef DPKG_EXPORT_BUILDFLAGS
   export $(DPKG_BUILDFLAGS_LIST)
 endif
+
+endif
diff --git a/scripts/mk/buildopts.mk b/scripts/mk/buildopts.mk
index c9519..6787da76f 100644
--- a/scripts/mk/buildopts.mk
+++ b/scripts/mk/buildopts.mk
@@ -5,6 +5,11 @@
 #
 #   DEB_BUILD_OPTION_PARALLEL: the argument for the parallel=N option.
 
+ifndef dpkg_buildopts.mk_included
+dpkg_buildopts.mk_included :=
+
 ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
   DEB_BUILD_OPTION_PARALLEL = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
 endif
+
+endif
diff --git a/scripts/mk/buildtools.mk b/scripts/mk/buildtools.mk
index 933fdcfaa..08914c463 100644
--- a/scripts/mk/buildtools.mk
+++ b/scripts/mk/buildtools.mk
@@ -25,6 +25,9 @@
 # The variables are not exported by default. This can be changed by
 # defining DPKG_EXPORT_BUILDTOOLS.
 
+ifndef dpkg_buildtools.mk_included
+dpkg_buildtools.mk_included :=
+
 dpkg_datadir = $(srcdir)/mk
 include $(dpkg_datadir)/architecture.mk
 
@@ -74,3 +77,5 @@ $(eval $(call dpkg_buildtool_setvar,AR,ar))
 $(eval $(call dpkg_buildtool_setvar,RANLIB,ranlib))
 $(eval $(call dpkg_buildtool_setvar,PKG_CONFIG,pkgconf))
 $(eval $(call dpkg_buildtool_setvar,QMAKE,qmake))
+
+endif
diff --git a/scripts/mk/default.mk b/scripts/mk/default.mk
index 0b2fd4aca..b791f98a5 100644
--- a/scripts/mk/default.mk
+++ b/scripts/mk/default.mk
@@ -1,6 +1,9 @@
 # This Makefile fragment (since dpkg 1.16.1) includes all the Makefile
 # fragments that define variables that can be useful within debian/rules.
 
+ifndef dpkg_default.mk_included
+dpkg_default.mk_included :=
+
 dpkg_datadir = $(srcdir)/mk
 include $(dpkg_datadir)/architecture.mk
 include $(dpkg_datadir)/buildapi.mk
@@ -11,3 +14,5 @@ include $(dpkg_datadir)/buildflags.mk
 include $(dpkg_datadir)/buildopts.mk
 include $(dpkg_datadir)/pkg-info.mk
 include $(dpkg_datadir

Bug#1064840: dh-ada-library: Tests will fail after glibc DEP17 migration

2024-03-04 Thread Nicolas Boulenguez
Source: dh-ada-library
Followup-For: Bug #1064840
Control: tags -1 + pending

Hello.
A fix is committed [1] and will be part of the pending t64/gnat-13
transition.
[1] 
https://salsa.debian.org/debian/dh_ada_library/-/commit/d40951e34b40f8e9c63e961546a8a4093746857d
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1065309



Bug#1065309: transition: gnat 12 -> 13 + time_t64

2024-03-03 Thread Nicolas Boulenguez
Package: release.debian.org
X-Debbugs-Cc: debian-...@lists.debian.org

Hello.
In addition to the information in https://bugs.debian.org/1065309,
here is the usual summary preparing a gnat transition.

--

This bug requests a green light for a transition of Ada packages from
gnat-12 to gnat-13 in unstable.

The gcc-V source package builds the Ada compiler (gnat-V) and
companion library (libgnat-V).
The default Ada compiler is selected by the gnat package.
In unstable and testing, gnat Depends: gnat-12.
In experimental, gnat Depends: gnat-13.

This transition breaks the ABI of Ada libraries.  Each Ada library has
been uploaded to experimental with a new Shared Object version in the
library package name (and hence, a passage through NEW).

This is unrelated with gnat-13, but this transition also introduces a
new naming scheme for Ada -dev packages in Debian.  They stop carrying
a version identifying the API, and instead provide a versioned virtual
package instead.  The effect is the same, an API break in an Ada
library (this includes libgnat-V) requires a transition, but the NEW
queue will not be involved anymore.

Ben file:

title = "gnat-13";
is_affected = .depends ~ "libgnat-8/libgnat-9/libgnat-10/libgnat-11/libgnat-12" 
| .depends ~ "libgnat-13";
is_good = .depends ~ "libgnat-13";
is_bad = .depends ~ "libgnat-8/libgnat-9/libgnat-10/libgnat-11/libgnat-12";

These packages provide a library and are ready in experimental.
 adacgi
 adasockets
 ahven
 anet
 dbusada
 gprbuild
 libalog
 libaunit
 libflorist
 libgmpada
 libgnatcoll  The transition closes #1061631.
 libgnatcoll-db   The transition closes #1064745.
 libgnatcoll-bindings
 libgtkada
 liblog4ada
 libncursesada
 libtemplates-parser  The transition closes #1061633.
 libtexttools
 libxmlada
 libxmlezout
 pcscada
 plplot   The reupload must merge 5.15.0+dfsg2-7+deb13u2/unstable
  and 5.15.0+dfsg2-8/experimental. The changes are small
  and unrelated with Ada.

These packages, although not Ada libraries, are part of the transition.
They are ready in experimental and need a rebuild in unstable.
 alire
 dh-ada-library
 gnat

These packages produce no library. They need a bin-NMU.
nmu music123_16.6-6  . ANY . -m 'Rebuild with gnat-13'
dw  music123_16.6-6  . ANY . -m 'gnat (>= 13.1)'
nmu phcpack_2.4.89+dfsg-1. ANY . -m 'Rebuild with gnat-13'
dw  phcpack_2.4.89+dfsg-1. ANY . -m 'gnat (>= 13.1)'
nmu topal_81-2   . ANY . -m 'Rebuild with gnat-13'
dw  topal_81-2   . ANY . -m 'gnat (>= 13.1)'
nmu whitakers-words_0.2020.10.27-1.3 . ANY . -m 'Rebuild with gnat-13'
dw  whitakers-words_0.2020.10.27-1.3 . ANY . -m 'gnat (>= 13.1)'

ada-reference-manual only requires gnat at build time.
It should not be affected.

ghdl build-depends on an explicit gnat version for reasons unrelated
with the normal Ada policy.
It should not be affected.

These packages have been removed from testing for a while because of
unrelated RC bugs.
 adabrowse
 adacontrol
 asis
 gnat-gps
 libaws



Bug#1043828: astroid: Fails to build source after successful build

2024-03-03 Thread Nicolas Boulenguez
Source: astroid
Followup-For: Bug #1043828
Control: tags -1 + patch

Hello.
A trivial patch is available as a salsa merge request at
https://salsa.debian.org/python-team/packages/astroid/-/merge_requests/5



Bug#947078: git-buildpackage: Need to make gbp clone pseudo protocols confgirable

2024-03-01 Thread Nicolas Boulenguez
Package: git-buildpackage
Followup-For: Bug #947078

Hello.
For me, this bug can be closed.
Does anyone object?



Bug#1051098: suggestion: dh-builtusing may simplify the packaging

2024-03-01 Thread Nicolas Boulenguez
Source: u-boot
Followup-For: Bug #1051098

Hello.
Here is an updated version rebased on a609e1d2:

>From 27ec150b506234e1a3e24688ed400627133ab5e2 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 2 Sep 2023 23:24:10 +0200
Subject: Delegate the Built-Using field to the dh-builtusing debhelper tool


diff --git a/debian/control b/debian/control
index 7a6bbc31cc..c6aec92cf6 100644
--- a/debian/control
+++ b/debian/control
@@ -7,6 +7,7 @@ Build-Depends:
  bc,
  bison,
  debhelper-compat (= 13),
+ dh-sequence-builtusing,
  flex,
  libpython3-dev:native [linux-any],
  libssl-dev,
@@ -186,7 +187,8 @@ Description: A boot loader for omap systems
 Package: u-boot-sunxi
 Architecture: armhf arm64
 Multi-Arch: same
-Built-Using: ${u-boot-sunxi:Built-Using}
+Built-Using: ${dh-builtusing:arm-trusted-firmware} [arm64],
+ ${dh-builtusing:crust-firmware} [arm64],
 Depends: ${misc:Depends}
 Recommends: u-boot-tools [arm64]
 Suggests: arm-trusted-firmware [arm64]
@@ -240,7 +242,7 @@ Description: A boot loader for marvell systems
 Package: u-boot-rockchip
 Architecture: armhf arm64
 Multi-Arch: same
-Built-Using: ${u-boot-rockchip:Built-Using}
+Built-Using: ${dh-builtusing:arm-trusted-firmware} [arm64]
 Depends: ${misc:Depends}
 Recommends: python3, u-boot-tools [arm64]
 Suggests: arm-trusted-firmware [arm64]
@@ -294,7 +296,7 @@ Package: u-boot-sifive
 Architecture: riscv64
 Multi-Arch: same
 Depends: ${misc:Depends}
-Built-Using: ${u-boot-sifive:Built-Using}
+Built-Using: ${dh-builtusing:opensbi}
 Description: A boot loader for SiFive systems
  Das U-Boot is a cross-platform bootloader for embedded systems,
  used as the default boot loader by several board vendors.  It is
@@ -312,7 +314,7 @@ Package: u-boot-starfive
 Architecture: riscv64
 Multi-Arch: same
 Depends: ${misc:Depends}
-Built-Using: ${u-boot-starfive:Built-Using}
+Built-Using: ${dh-builtusing:opensbi}
 Description: A boot loader for Starfive systems
  Das U-Boot is a cross-platform bootloader for embedded systems,
  used as the default boot loader by several board vendors.  It is
diff --git a/debian/rules b/debian/rules
index fc7c8e54d4..9cc8ee3e52 100755
--- a/debian/rules
+++ b/debian/rules
@@ -159,6 +159,6 @@ override_dh_clean:
find . -type d -name __pycache__ -delete
 
 override_dh_gencontrol:
-   dh_gencontrol -- $(dpkg-gencontrol_args) $(foreach package,\
+   dh_gencontrol -- $(foreach package,\
  u-boot-qemu $(subarchs),\
  '-V$(package):platforms=$(subst $() 
,$${Newline},$($(package)_platforms))')
diff --git a/debian/targets.mk b/debian/targets.mk
index 12eb78b9b8..f7e10d2ea0 100644
--- a/debian/targets.mk
+++ b/debian/targets.mk
@@ -51,9 +51,6 @@ ifeq (${DEB_HOST_ARCH},arm64)
 
 # u-boot-rockchip
 
-  dpkg-gencontrol_args += "-Vu-boot-rockchip:Built-Using=$(shell dpkg-query 
-Wf \
-'$${source:Package} (= $${source:Version})' arm-trusted-firmware)"
-
   # Vagrant Cascadian 
   u-boot-rockchip_platforms += firefly-rk3399
   firefly-rk3399_assigns := BL31=/usr/lib/arm-trusted-firmware/rk3399/bl31.elf
@@ -145,9 +142,6 @@ ifeq (${DEB_HOST_ARCH},arm64)
   u-boot-sunxi_assigns = \
 SCP=$(or $(wildcard /usr/lib/crust-firmware/$(platform).bin),/dev/null)
 
-  dpkg-gencontrol_args += "-Vu-boot-sunxi:Built-Using=$(shell dpkg-query -Wf \
-'$${source:Package} (= $${source:Version})' arm-trusted-firmware)"
-
   u-boot-sunxi_platforms += a64-olinuxino
   a64-olinuxino_assigns := 
BL31=/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin
   a64-olinuxino_targets := arch/arm/dts/sun50i-a64-olinuxino.dtb \
@@ -386,9 +380,6 @@ else ifeq (${DEB_HOST_ARCH},armhf)
 
 # u-boot-rockchip
 
-  # Silent a debhelper warning about an unused substvar.
-  dpkg-gencontrol_args += -Vu-boot-rockchip:Built-Using=
-
   # Vagrant Cascadian , 2GB and 4GB variants
   u-boot-rockchip_platforms += firefly-rk3288
   firefly-rk3288_targets := idbloader.img spl/u-boot-spl.bin u-boot.bin \
@@ -423,9 +414,6 @@ else ifeq (${DEB_HOST_ARCH},armhf)
 
 # u-boot-sunxi
 
-  # Silent a debhelper warning about an unused substvar.
-  dpkg-gencontrol_args += -Vu-boot-sunxi:Built-Using=
-
   # Christian Kastner 
   u-boot-sunxi_platforms += A10-OLinuXino-Lime
   A10-OLinuXino-Lime_targets := u-boot-sunxi-with-spl.bin uboot.elf
@@ -544,9 +532,6 @@ else ifeq (${DEB_HOST_ARCH},riscv64)
 
 # u-boot-sifive
 
-  dpkg-gencontrol_args += "-Vu-boot-sifive:Built-Using=$(shell dpkg-query -Wf \
-'$${source:Package} (= $${source:Version})' opensbi)"
-
   # Hector Oron 
   u-boot-sifive_platforms += sifive_unleashed
   sifive_unleashed_targets := u-boot.bin uboot.elf spl/u-boot-spl.bin 
u-boot.itb
@@ -559,9 +544,6 @@ else ifeq (${DEB_HOST_ARCH},riscv64)
 
 # u-boot-starfive
 
-  dpkg-gencontrol_args += "-Vu-boot-starfive:Built-Using=$(shell dpkg-query 
-Wf \
-'$${source:Package} (= $${source:Version})' opensbi)"
-
   # Anatoliy Gunya 
   u-boot-starfive_platforms += starfive_visionfive2
   starfive_visionfive2_

Bug#990824: debian/rules: Filter packages and platforms without build profiles

2024-03-01 Thread Nicolas Boulenguez
Source: u-boot
Followup-For: Bug #990824

Hello.
This version is (trivially) rebased on a609e1d2.


>From 39ea68aadb043a3f38143bb41ad929cbeb11b5c9 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 8 Jul 2021 17:11:19 +0200
Subject: debian/rules: Filter packages and platforms without build profiles

This idea has been discussed since #979296, but the initial
implementation was incompatible with dpkg-buildpackage.

All three variants should now work:

debian/rules package_filter=u-boot/%rockchip/%sunxi 
platform_filter=%-rk3399/a64-olinuxino%
dpkg-buildpackage '--rules-file=debian/rules package_filter=...'
sbuild '--debbuildopt=--rules-file=debian/rules package_filter=...'

diff --git a/debian/rules b/debian/rules
index fc7c8e54d4..f1ac900bb9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -34,22 +34,20 @@ notools := $(filter pkg.uboot.notools,$(DEB_BUILD_PROFILES))
 
 subarchs := $(shell dh_listpackages --arch --no-package=u-boot-tools)
 
-# Each .deb P in subarch contains $(P_platforms).
-# These profiles remove values from $(P_platforms) for debugging.
-
-# DEB_BUILD_PROFILES='pkg.uboot.subarch.P1 pkg.uboot.subarch.P2'
-# removes all platforms but in packages u-boot-P1 u-boot-P2.
-only_subarchs := $(patsubst pkg.uboot.subarch.%,u-boot-%,\
-   $(filter pkg.uboot.subarch.%,$(DEB_BUILD_PROFILES)))
+# For debugging purposes, some filters may restrict the actually built
+# platforms.  The expected contents are Make patterns (with at most
+# one % wildcard), separated by / (because spaces are difficult to
+# escape from dpkg-buildpackage --rules-file).
+#   package_filter=u-boot/%amlogic/%mvebu
+#   platform_filter=khadas-vim%
+
+only_subarchs := $(subst /, ,$(package_filter))
 ifneq (,$(only_subarchs))
   $(foreach pkg,$(filter-out $(only_subarchs),$(subarchs)),$(eval \
 $(pkg)_platforms :=))
 endif
 
-# DEB_BUILD_PROFILES='pkg.uboot.platform.P1 pkg.uboot.platform.P2'
-# removes all platforms but P1 P2.
-only_platforms := $(patsubst pkg.uboot.platform.%,%,\
-$(filter pkg.uboot.platform.%,$(DEB_BUILD_PROFILES)))
+only_platforms := $(subst /, ,$(platform_filter))
 ifneq (,$(only_platforms))
   $(foreach pkg,$(subarchs),$(eval \
 $(pkg)_platforms := $(filter $(only_platforms),$($(pkg)_platforms



Bug#1010751: clone: handle -b optional branch specification in VCS-Git

2024-03-01 Thread Nicolas Boulenguez
Package: git-buildpackage
Followup-For: Bug #1010751

Ping?



Bug#1065211: ITP: ada-bar-codes -- Bar or QR code formatter for the Ada programming language

2024-03-01 Thread Nicolas Boulenguez
Package: wnpp
Severity: wishlist
Owner: Nicolas Boulenguez 
X-Debbugs-Cc: debian-de...@lists.debian.org

* Package name: ada-bar-codes
  Version : 002.20240219
  Upstream Contact: Gautier de Montmollin 
* URL : https://sourceforge.net/projects/ada-bar-codes/
* License : Expat-MIT
  Programming Lang: Ada
  Description : Bar or QR code formatter for the Ada programming language

This Ada library generates various bar or QR codes, on different
output formats such as PDF, SVG or bitmaps.

The package is ready, I intend to upload it to NEW after the gnat-13
transition.



Bug#1064620: firmware-nonfree: suggestions for the packaging, gencontrol.py and debian/rules

2024-02-24 Thread Nicolas Boulenguez
Source: firmware-nonfree
Version: 20230210-5
Severity: wishlist
Tags: patch

Hello.

The source package builds with the attached changes (2 to 10), and
debdiff finds no difference in the resulting debs for
firmware-{linux,linux-nonfree,qcom-media} (testing do_extra in gencontrol.py)
firmware-realtek (testing an example of do_main in gencontrol.py)

Commit 2 to 9 are cosmetic.

Commit 10 simplifies the build system in my opinion, and may improve
the handling of spaces in file names (1#1035505).

This is a complex package and I miss context, so I may of course split
10 in separate commits or revert parts of it depending on your answer.
>From 798e5b247db70dc24ce6736a4eba7b5ae17ca41d Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 23 Feb 2024 17:10:17 +0100
Subject: [PATCH 02/10] d/README.Debian: typo

---
 debian/README.source | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debian/README.source b/debian/README.source
index 15c11bf..43e897a 100644
--- a/debian/README.source
+++ b/debian/README.source
@@ -85,7 +85,7 @@ Optional per-file metadata:
 
 [_base] desc: One-line description for this file, used in
 package description
-[_base] version: Verson number for this file, used in package
+[_base] version: Version number for this file, used in package
description
 
 To re-generate debian/control (and other files) based on these
-- 
2.39.2

>From c525da983a782b3d58e7ba4f793930e197fc05d7 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 23 Feb 2024 17:11:31 +0100
Subject: [PATCH 03/10] d/clean: instead of complexity in d/rules

---
 debian/clean | 2 ++
 debian/rules | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 debian/clean

diff --git a/debian/clean b/debian/clean
new file mode 100644
index 000..b0bff90
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,2 @@
+debian/build/
+debian/lib/python/__pycache__/
diff --git a/debian/rules b/debian/rules
index 5867d9f..ccd41a7 100755
--- a/debian/rules
+++ b/debian/rules
@@ -15,7 +15,6 @@ build-indep build-arch build: debian/control
 
 clean: debian/control
 	dh_testdir
-	rm -rf debian/build debian/lib/python/__pycache__
 	dh_clean
 
 binary-indep: build-indep
-- 
2.39.2

>From d193cb90f02e2c669c1ad2fb91759f4d9c3591e8 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 23 Feb 2024 17:28:04 +0100
Subject: [PATCH 04/10] d/rules: use dpkg pkg-info.mk snippet instead of
 reinventing it

---
 debian/rules | 15 +++
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/debian/rules b/debian/rules
index ccd41a7..d9a2d38 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,10 +1,9 @@
 #!/usr/bin/make -f
 SHELL := sh -e
-SOURCE := $(shell dpkg-parsechangelog -SSource)
-VERSION := $(shell dpkg-parsechangelog -SVersion)
-VERSION_UPSTREAM := $(shell echo "$(VERSION)" | sed -e 's,-[^-]*$$,,')
-VERSION_BINNMU := $(shell echo "$(VERSION)" | sed -rne 's,.*\+b([0-9]+)$$,\1,p')
-VERSION_SOURCE := $(patsubst %+b$(VERSION_BINNMU),%,$(VERSION))
+
+include /usr/share/dpkg/pkg-info.mk
+VERSION_BINNMU := $(shell echo "$(DEB_VERSION)" | sed -rne 's,.*\+b([0-9]+)$$,\1,p')
+VERSION_SOURCE := $(patsubst %+b$(VERSION_BINNMU),%,$(DEB_VERSION))
 
 include debian/rules.defs
 
@@ -35,7 +34,7 @@ CONTROL_FILES += debian/bin/gencontrol.py debian/config/defines $(wildcard debia
 # in the checksum.
 debian/build/version-info: debian/changelog
 	mkdir -p $(@D)
-	printf >$@ 'Source: %s\nVersion: %s\n' $(SOURCE) $(VERSION_SOURCE)
+	printf >$@ 'Source: %s\nVersion: %s\n' $(DEB_SOURCE) $(VERSION_SOURCE)
 
 debian/control debian/rules.gen: $(GENCONTROL) $(CONTROL_FILES)
 ifeq ($(wildcard debian/control.md5sum),)
@@ -59,8 +58,8 @@ debian/control-real: $(GENCONTROL) $(CONTROL_FILES)
 	@echo
 	exit 1
 
-DIR_ORIG = ../orig/$(SOURCE)-$(VERSION_UPSTREAM)
-TAR_ORIG_NAME = $(SOURCE)_$(VERSION_UPSTREAM).orig.tar.xz
+DIR_ORIG = ../orig/$(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)
+TAR_ORIG_NAME = $(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig.tar.xz
 TAR_ORIG = $(firstword $(wildcard ../$(TAR_ORIG_NAME)) $(wildcard ../orig/$(TAR_ORIG_NAME)))
 
 orig: $(DIR_ORIG)
-- 
2.39.2

>From 1327a9f8e15b602e7f3df768758f478b548dbd50 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 23 Feb 2024 17:28:38 +0100
Subject: [PATCH 05/10] d/rules: expand GENCONTROL instead of duplicating its
 contents

---
 debian/rules | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/rules b/debian/rules
index d9a2d38..f455e5e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -26,9 +26,9 @@ binary-arch: build-arch
 binary:	binary-indep binary-arch
 
 CONTROL_FILES = debian/build/version-info $(wildcard debian/templates/*.in)
-CONTROL_FILES += debian/bin/gencontrol.py debian/config/defines $(wildcard debian/config/*/defines) debian/modinfo.json
+CONTROL_FILES += $(GENCONTROL) debian/config/defines $(wildcard debian/config/*/defines) d

Bug#1064618: firmware-realtek: please install rtlwifi/rtl8188fufw.bin

2024-02-24 Thread Nicolas Boulenguez
Package: firmware-realtek
Severity: wishlist
Tags: patch

Hello.
It seems that rtlwifi/rtl8188fufw.bin is now part of the Linux
firmwares repository.
The attachment attempts to spare you some time, and builds on Debian,
but is not tested on actual hardware yet.
>From 3a37cc18ee2709e807ff1f330bdc05a8db63efa0 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 23 Feb 2024 17:12:57 +0100
Subject: [PATCH 01/10] realtek: Add RTL8188fufw firmware

---
 debian/config/realtek/defines | 5 +
 debian/copyright  | 2 +-
 debian/modinfo.json   | 1 +
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/debian/config/realtek/defines b/debian/config/realtek/defines
index a68029b..9f600bd 100644
--- a/debian/config/realtek/defines
+++ b/debian/config/realtek/defines
@@ -70,6 +70,7 @@ files:
  rtl_nic/rtl8411-2.fw
  rtlwifi/rtl8188efw.bin
  rtlwifi/rtl8188eufw.bin
+ rtlwifi/rtl8188fufw.bin
  rtlwifi/rtl8192cfw.bin
  rtlwifi/rtl8192cfwU_B.bin
  rtlwifi/rtl8192cfwU.bin
@@ -340,6 +341,10 @@ desc: Realtek RTL8188EE firmware
 desc: Realtek RTL8188EU firmware
 version: 28.0
 
+[rtlwifi/rtl8188fufw.bin_base]
+desc: Realtek RTL8188FU firmware
+version: 4.3.23.6_20964.20170110
+
 [rtlwifi/rtl8192cfw.bin_base]
 desc: Realtek RTL8192CE/RTL8188CE firmware
 
diff --git a/debian/copyright b/debian/copyright
index 809b65d..0f1f247 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -4265,7 +4265,7 @@ License: binary-redist-Realtek-permissive
  notice is accompanying it.
 
 Files: RTL8192E/* rtlwifi/* rtw88/*
-Copyright: 2009-2010, Realtek Semiconductor Corporation
+Copyright: 2009-2017, Realtek Semiconductor Corporation
 License: binary-redist-Realtek-restrictive
  All rights reserved.
  .
diff --git a/debian/modinfo.json b/debian/modinfo.json
index ffee46a..333bc30 100644
--- a/debian/modinfo.json
+++ b/debian/modinfo.json
@@ -7000,6 +7000,7 @@
   "rtlwifi/rtl8192cufw_B.bin",
   "rtlwifi/rtl8192cufw_A.bin",
   "rtlwifi/rtl8188eufw.bin",
+  "rtlwifi/rtl8188fufw.bin",
   "rtlwifi/rtl8723aufw_B_NoBT.bin",
   "rtlwifi/rtl8723aufw_B.bin",
   "rtlwifi/rtl8723aufw_A.bin"
-- 
2.39.2



Bug#1054124: dh-ada-library: dh_ada_library output causes /usr/share/ada/packaging.mk:81: *** missing separator error

2024-01-25 Thread Nicolas Boulenguez
Hello.

> debhelper  13.11.4
> dh-ada-library 8.6
> gnat-1010.2.1-6

> $ dh_ada_library --export-versions
> DEB_GNAT_VERSION:=GNATMAKE 10.2.1 20210110

I failed to reproduce your issue with
 debhelper  13.11.10
 dh-ada-library 8.6
 gnat-1010.5.0-2
That is, the output is
 DEB_GNAT_VERSION:=10

Can you reproduce the issue?
Which version of the 'gnat' package is involved, if any?

Also, in which source tree/commit are you executing dh_ada_library?
One could imagine a problem while parsing debian/control.



Bug#872381: dpkg-dev: optimize Makefile snippets for debian/rules

2024-01-10 Thread Nicolas Boulenguez
Package: dpkg-dev
Followup-For: Bug #872381

Hello.
The attached commits rebase the suggestions, take your answers into
account and slightly improved some style issues.
There may remain typos, nothing is tested this time.
>From d56d5af7fa1a01a581d0cc1901572ca9c407f538 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Mon, 29 Jul 2019 14:38:32 +0200
Subject: [PATCH 1/8] scripts/mk: stop hard-coding dpkg_datadir, protect from
 double inclusion

The Makefile snippets include each other from their common directory,
but the path differ during tests and after installation.  Instead of
rewriting the file with a hardcoded path, compute it within Make.

Use the same variables to avoid 'include' when possible, as it
involves system calls.

When setting dpkg_datadir, prefer 'ifndef' and ':=' to '?=', so that
the value is computed at most once.
---
 build-aux/subst.am |  6 --
 scripts/mk/Makefile.am | 21 -
 scripts/mk/architecture.mk |  5 +
 scripts/mk/buildapi.mk |  5 +
 scripts/mk/buildflags.mk   |  6 ++
 scripts/mk/buildopts.mk|  5 +
 scripts/mk/buildtools.mk   | 11 ++-
 scripts/mk/default.mk  | 10 +-
 scripts/mk/pkg-info.mk |  5 +
 scripts/mk/vendor.mk   | 11 ++-
 10 files changed, 55 insertions(+), 30 deletions(-)

diff --git a/build-aux/subst.am b/build-aux/subst.am
index 5515930d0..167a71257 100644
--- a/build-aux/subst.am
+++ b/build-aux/subst.am
@@ -39,9 +39,3 @@ SUFFIXES += .pl
 	@test -d `dirname $@` || $(MKDIR_P) `dirname $@`
 	$(do_perl_subst) <$< >$@
 	$(AM_V_at) chmod +x $@
-
-# Makefile support.
-
-do_make_subst = $(AM_V_GEN) $(SED) \
-	-e "s:dpkg_datadir[[:space:]]*=[[:space:]]*[^[:space:]]*:dpkg_datadir = $(pkgdatadir):" \
-	# EOL
diff --git a/scripts/mk/Makefile.am b/scripts/mk/Makefile.am
index 257ba5252..6e85e17b9 100644
--- a/scripts/mk/Makefile.am
+++ b/scripts/mk/Makefile.am
@@ -10,24 +10,3 @@ dist_pkgdata_DATA = \
 	pkg-info.mk \
 	vendor.mk \
 	# EOL
-
-SUFFIXES =
-
-include $(top_srcdir)/build-aux/subst.am
-
-# Ideally we'd use '$(SED) -i', but unfortunately that's not portable.
-install-data-hook:
-	$(do_make_subst) <$(DESTDIR)$(pkgdatadir)/default.mk \
-	 >$(DESTDIR)$(pkgdatadir)/default.mk.new
-	mv $(DESTDIR)$(pkgdatadir)/default.mk.new \
-	   $(DESTDIR)$(pkgdatadir)/default.mk
-
-	$(do_make_subst) <$(DESTDIR)$(pkgdatadir)/buildtools.mk \
-	 >$(DESTDIR)$(pkgdatadir)/buildtools.mk.new
-	mv $(DESTDIR)$(pkgdatadir)/buildtools.mk.new \
-	   $(DESTDIR)$(pkgdatadir)/buildtools.mk
-
-	$(do_make_subst) <$(DESTDIR)$(pkgdatadir)/vendor.mk \
-			 >$(DESTDIR)$(pkgdatadir)/vendor.mk.new
-	mv $(DESTDIR)$(pkgdatadir)/vendor.mk.new \
-	   $(DESTDIR)$(pkgdatadir)/vendor.mk
diff --git a/scripts/mk/architecture.mk b/scripts/mk/architecture.mk
index c11cada16..2ffcee287 100644
--- a/scripts/mk/architecture.mk
+++ b/scripts/mk/architecture.mk
@@ -2,6 +2,9 @@
 # DEB_BUILD_* variables that dpkg-architecture can return. Existing values
 # of those variables are preserved as per policy.
 
+ifndef dpkg_architecture.mk_included
+dpkg_architecture.mk_included :=
+
 dpkg_lazy_eval ?= $$(or $$(value DPKG_CACHE_$(1)),$$(eval DPKG_CACHE_$(1) := $$(shell $(2)))$$(value DPKG_CACHE_$(1)))
 
 dpkg_architecture_setvar = export $(1) ?= $(call dpkg_lazy_eval,$(1),dpkg-architecture -q$(1))
@@ -9,3 +12,5 @@ dpkg_architecture_setvar = export $(1) ?= $(call dpkg_lazy_eval,$(1),dpkg-archit
 $(foreach machine,BUILD HOST TARGET,\
   $(foreach var,ARCH ARCH_ABI ARCH_LIBC ARCH_OS ARCH_CPU ARCH_BITS ARCH_ENDIAN GNU_CPU GNU_SYSTEM GNU_TYPE MULTIARCH,\
 $(eval $(call dpkg_architecture_setvar,DEB_$(machine)_$(var)
+
+endif
diff --git a/scripts/mk/buildapi.mk b/scripts/mk/buildapi.mk
index 668e325c8..ba6b43543 100644
--- a/scripts/mk/buildapi.mk
+++ b/scripts/mk/buildapi.mk
@@ -1,5 +1,8 @@
 # This Makefile fragment (since dpkg 1.22.0) handles the build API.
 
+ifndef dpkg_buildapi.mk_included
+dpkg_buildapi.mk_included :=
+
 # Default API level when not set.
 DPKG_BUILD_API ?= $(shell dpkg-buildapi)
 
@@ -7,3 +10,5 @@ DPKG_BUILD_API ?= $(shell dpkg-buildapi)
 # complexity given no integer operators, given that we currently have to
 # fetch the build API level anyway.
 dpkg_build_api_ge = $(shell test "$(DPKG_BUILD_API)" -ge "$(1)" && echo yes)
+
+endif
diff --git a/scripts/mk/buildflags.mk b/scripts/mk/buildflags.mk
index 4b8a3d8c4..02baa53f2 100644
--- a/scripts/mk/buildflags.mk
+++ b/scripts/mk/buildflags.mk
@@ -28,6 +28,10 @@
 # You can also export them in the environment by setting
 # DPKG_EXPORT_BUILDFLAGS to a non-empty value.
 #
+
+ifndef dpkg_buildflags.mk_included
+dpkg_buildflags.mk_included :=
+
 # This list is kept in sync with the default set of flags returned
 # by dpkg-buildflags.
 
@@ -77,3 +81,5 @@ $(foreach flag,$(DPKG_BUILDFLAGS_LIST),\
 ifdef DPKG_EXPORT_BUILDFLAGS
   export $(DPKG_BUILDFLAGS_LIST)
 endif
+
+

Bug#1059208: dh-ada-library: should strip the unreproducible path from the installed project

2023-12-21 Thread Nicolas Boulenguez
Package: dh-ada-library
Severity: wishlist

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1030715 shows an
example.
Such unreproducibilities will affect most packages using the
gprinstall tool, so a common solution seems better and the right place
for that is dh-ada-library.



Bug#916475: ghdl: various suggestions to simplify the packaging

2023-12-19 Thread Nicolas Boulenguez
Source: ghdl
Followup-For: Bug #916475

Hello.

The remaining suggestions are rebased and attached.

> Dh-builtusing

If you agree in principle with attachment #1 but do not want to apply
it for now, please keep a reminder (this bug, a pull request or
whatever fits your workflow).

> This is kind of obscure, think of the (lack of an) error message. If we
> skip this we'll get an "undefined $2" error due to set -u, which I find is
> more helpful than a quiet exit rv>0.

Attachment #2 should answer your concern.

> I've finally pushed your patches through to salsa after build testing and
> verifying the resulting binary packages packages are equivalent using
> debdiff. Differences are seem to come down to to dependency versions
> changing:

This seems OK to me, or unrelated for the dependency on libzstd1.
>From ea21a75e408397b0ed6e926ad4c34179f5d13e3b Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sun, 1 Oct 2023 01:14:25 +0200
Subject: [PATCH 1/2] Delegate computation of Built-Using to dh-builtusing

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

diff --git a/debian/control b/debian/control
index 585ee55e..545c44b4 100644
--- a/debian/control
+++ b/debian/control
@@ -5,6 +5,7 @@ Maintainer: Debian Electronics Team 
 Build-Depends: debhelper-compat (= 13),
dh-ada-library (>= 8.1),
+   dh-sequence-builtusing,
gnat-12, gcc-12, g++-12,
gcc-12-source ,
libisl-dev (>= 0.14) ,
@@ -80,7 +81,7 @@ Description: VHDL compiler/simulator (mcode backend)
 Package: ghdl-gcc
 Architecture: any
 Build-Profiles: 
-Built-Using: ${Built-Using-GCC}
+Built-Using: ${dh-builtusing:gcc-S-source}
 Depends: ghdl-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends},
 	gcc, zlib1g-dev
 Description: VHDL compiler/simulator (GCC backend)
@@ -122,7 +123,7 @@ Description: VHDL compiler/simulator (tools)
 
 Package: libghdl-3-0-0
 Architecture: any
-Built-Using: ${Built-Using-GCC}
+Built-Using: ${dh-builtusing:gcc-S-source} 
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Multi-Arch: same
 Description: VHDL compiler/simulator (shared library)
@@ -135,7 +136,7 @@ Description: VHDL compiler/simulator (shared library)
 
 Package: libghdl-dev
 Architecture: any
-Built-Using: ${Built-Using-GCC}
+Built-Using: ${dh-builtusing:gcc-S-source} 
 Depends: libghdl-3-0-0 (= ${binary:Version}), ${misc:Depends}
 Multi-Arch: same
 Description: VHDL compiler/simulator (library development files)
diff --git a/debian/rules b/debian/rules
index 5821f85d..138b8581 100755
--- a/debian/rules
+++ b/debian/rules
@@ -95,15 +95,6 @@ override_dh_strip:
 	dh_strip -N libghdl-3-0-0
 	dh_strip -p libghdl-3-0-0 --dbgsym-migration='libghdl-2-0-0'
 
-override_dh_gencontrol:
-ifneq ($(filter gcc,$(BACKENDS)),)
-	dh_gencontrol -- -VBuilt-Using-GCC="$(shell dpkg-query -f '$${Source} (= $${Version})' -W gcc-$(DEB_GNAT_VERSION)-source)"
-else
-	dh_gencontrol
-endif
-
-
-
 configure-llvm-stamp configure-mcode-stamp: configure-%-stamp:
 	$(announce)
 	mkdir -p $(BUILDDIR)/$*
-- 
2.39.2

>From 07b885622c11d970f3e3c5102578c9265b5491d4 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 5 Oct 2023 14:39:35 +0200
Subject: [PATCH 2/2] test driver: move error reporting to a separate procedure

---
 debian/tests/ghdl-tests | 32 +---
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/debian/tests/ghdl-tests b/debian/tests/ghdl-tests
index 871d594b..eae5e43c 100755
--- a/debian/tests/ghdl-tests
+++ b/debian/tests/ghdl-tests
@@ -6,29 +6,32 @@ set -C -e -f -u
 # Debian yet.
 TESTS="sanity gna vests synth vpi vhpi"
 
-test $# = 2
+error() {
+echo >&2 "$0: $1"
+exit 1
+}
+
+test $# = 2 || error "bad argument count: $#"
 
 case "$2" in
 gcc|llvm|mcode)
-	BACKEND=$2
-	;;
+BACKEND=$2
+;;
 *)
-	echo >&2 "Invalid backend specification"
-	exit 1
+error "invalid backend specification: $2"
 esac
 
 case "$1" in
 buildtest)
-	RUNDIR=testrundir/$BACKEND
-	GHDL="$PWD/$RUNDIR/usr/bin/ghdl-$BACKEND"
-	;;
+RUNDIR=testrundir/$BACKEND
+GHDL="$PWD/$RUNDIR/usr/bin/ghdl-$BACKEND"
+;;
 autopkgtest)
-	RUNDIR="$AUTOPKGTEST_TMP"
-	GHDL=/usr/bin/ghdl-$BACKEND
-	;;
+RUNDIR="$AUTOPKGTEST_TMP"
+GHDL=/usr/bin/ghdl-$BACKEND
+;;
 *)
-	echo >&2 "Invalid test environment specification"
-	exit 1
+error "invalid test environment specification: $1"
 esac
 
 # Copy testsuite into $RUNDIR to execute there, so that no cleanup is necessary
@@ -50,6 +53,5 @@ if ./testsuite.sh $TESTS -- --keep-going; then
 elif test $BACKEND = llvm; then
 echo "Tests for backend llvm failed (but ignored for now)."
 else
-echo >&2 "Tests for backend $BACKEND failed."
-exit 1
+error "tests for backend $BACKEND failed."
 fi
-- 
2.39.2



Bug#1054125: dh-builtusing: Please backport dh-builtusing to bookworm

2023-11-18 Thread Nicolas Boulenguez
Have you seen this?
https://lists.debian.org/debian-devel/2023/08/

> I've been toying with the idea of setting up a Debian-wide system to nag
> maintainers about out-of-date, inconsistent or plain broken packaging git
> repos. This logic to diff the dsc against one built from unstable could be
> part of that effort.

Some will probably argue that you are trying to influence their
priorities, that non-git .dsc formats are obsolete, and so on.

Moreover, even if you guess the git tag and whether patches are
applied, there is probably no deterministic way to tell if .gitignore
matches the workflow of upstream, Debian or both.

For the avoidance of doubt, I would appreciate such alerts, a Debian
policy about tags and patches, and that .gitignore is only allowed for
self defense...

> Even with git what may be missing is a hook in dpkg-buildpackage to abort
> the (source) build when the worktree is unclean,

I often build with manual changes in debian/ that I want tested before
committed.

> > [...] script cleaning after the build,
> > then reporting any difference between the source and the .dsc.
> > The output is almost always either
> >  * trivial to work-around in Debian
> >(echo '*.o' > debian/clean)
> >(fixing upstream may be another story)
> >  * short enough to be easily ignored
> >(./configure),
> >  * or a real issue.

> [..] could you elaborate or show an example?

The script I am using is too lazy for public exposure.
Here are the parts unrelated with pbuilder.

# After a successful build, clean and compare the source directory
# with the contents extracted by dpkg-source.
# The diff must match debian/clean.diff if it exists, else be empty.
# Example:
# Only in ../dsc: Makefile.in
# Only in ../dsc: config.h
# Only in ../dsc: configure
# If lots of files are removed, repackaging with Files-Excluded is
# probably a better option, see uscan(1).

#!/bin/sh
set -Ceux

source=$(dpkg-parsechangelog -SSource)
version=$(dpkg-parsechangelog -SVersion)
dsc_dir=../dsc

debian/rules clean
dpkg-source -x ../$source_$version.dsc $dsc_dir
if ! (diff -qr $dsc_dir . || true) | diff -N debian/clean.diff -; then
  # Display a full diagnostic while $dsc_dir is available.
  diff -ru $dsc_dir . || true
  # When -ru is empty, -N above already reported the obsolete clean.diff.
fi
rm -fr $dsc_dir



Bug#1055235: nmu: libgnatcoll_24.1.20230921-2

2023-11-02 Thread Nicolas Boulenguez
Package: release.debian.org
Severity: normal
User: release.debian@packages.debian.org
Usertags: binnmu
X-Debbugs-Cc: libgnatc...@packages.debian.org
Control: affects -1 + src:libgnatcoll

Hello.

This follows the NMU requested at
  https://bugs.debian.org/1055063
  nmu: gprbuild_2024.1.20231009-2 in experimental
The NMU did fix the hash sum in the libgnatprj-dev-HASH virtual
packages provided by libgnatprj-dev.

Now, the exact same issue affects a reverse dependency:
  src:libgnatcoll libgnatcoll-dev libgnatcoll-dev-HASH.
Please also fix this one with a similar NMU.

There should be no more surprise. The only remaining affected package
is libgnatcoll-bindings, and it requires a full upload anyways (in
order to increase the shared object versions).

nmu libgnatcoll_24.1.20230921-2 . amd64 . experimental . -m "nmu: 
libgnatcoll_24.1.20230921-2 in experimental"



Bug#1055063: nmu: gprbuild_2024.1.20231009-2 in experimental

2023-10-30 Thread Nicolas Boulenguez
Package: release.debian.org
Severity: normal
User: release.debian@packages.debian.org
Usertags: binnmu
X-Debbugs-Cc: gprbu...@packages.debian.org
Control: affects -1 + src:gprbuild

Hello.

The gprbuild source package builds the libgnatprj-dev binary package.
Libgnatprj-dev Depends: on
  gnat-13-HASH, provided by gnat-13
  libxmlada-unicode-dev-HASH, provided by libxmlada-unicode-dev,
  and so on for each Ada library.

The .deb I have uploaded for amd64 contains invalid hash sums, hence
cannot be installed (most probably because I was mixing
unstable/experimental).

The .deb for other architectures, built by buildds, seems OK.

Please rebuild gprbuild against libxmlada-*-dev/23.0.0-6 (already
available in experimental for amd64).  The rebuild should fix the
hashes in the Depends field.

Thanks.

nmu gprbuild_2024.1.20231009-2 . amd64 . experimental . -m "Rebuild against 
libxmlada-*-dev/23.0.0-6, fixing libgnatprj-dev dependencies"



Bug#947078: git-buildpackage: Need to make gbp clone pseudo protocols confgirable

2023-10-25 Thread Nicolas Boulenguez
Package: git-buildpackage
Followup-For: Bug #947078

Hello.

Does the solution suggested in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=947078
solve your problem?

If so, may we close this bug?

Thanks.



Bug#1036069: gnat: 'gprconfig --show-targets' fails with constraint_error

2023-10-24 Thread Nicolas Boulenguez
Source: gprbuild
Followup-For: Bug #1036069
Control: reassign -1 gprconfig 23.0.0-3
Control: tags -1 + pending

Hello.
Thanks for reporting.
The issue should be fixed by the next upload of gprconfig-kb.



Bug#1036069: gnat: gprconfig -show-targets' fails with constraint_error

2023-10-24 Thread nicolas . boulenguez

Source: gprbuild
Followup-For: Bug #1036069
Control: reassign -1 gprconfig 23.0.0-3
Control: tags -1 + pending

Hello.
Thanks for reporting.
The issue should be fixed by the next  upload of gprconfig-kb.

Bug#643663: gnat-12: Legal program rejected (record component with no supplied value) and invalid access to atomic variable

2023-10-20 Thread Nicolas Boulenguez
Package: gnat-12
Followup-For: Bug #643663
Control: reassign 643663 gnat-13 13.2.0-5
Control: retitle 643663 gnat: invalid access to atomic variable

Hello.

With gnat-13, the following sources compile without error.
On the other hand, the invalid access to the atomic variable may not
be fixed.

Do you think we can close this bug?
Upstream seems to think so
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50558)


package Pkg is
   type Byte is mod 2**8;
   type Reserved_24 is mod 2**24;

   type Data_Record is
  record
 Data : Byte;
 Reserved : Reserved_24;
  end record;

   for Data_Record use
  record
 Data at 0 range 0 .. 7;
 Reserved at 0 range 8 .. 31;
  end record;

   for Data_Record'Size use 32;
   for Data_Record'Alignment use 4;

   Data_Register : Data_Record;
   pragma Atomic (Data_Register);
end Pkg;

with Pkg;
procedure Test is
begin
   Pkg.Data_Register := (
  Data => 255,
  others => <>
  -- expected error: no value supplied for component "Reserved"
   );
end Test;



Bug#916475: [Pkg-electronics-devel] Bug#916475: ghdl: various suggestions to simplify the packaging

2023-10-19 Thread Nicolas Boulenguez
> This breaks the build for me since I build the source package on bookworm
> (via gbp). I might hold off on this one until dh-builtusing is backported.

Passing -nc to dpkg-buildpackage may fix this, see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1054125

Else, there is no problem with postponing the change.
Dh-builtusing is convenient but not necessary.

> > Subject: [PATCH 12/14] Various minor improvements in the test driver
> > test $1 = 2

> This is kind of obscure, think of the (lack of an) error message. If we
> skip this we'll get an "undefined $2" error due to set -u, which I find is
> more helpful than a quiet exit rv>0.

Please use the attached commit instead.
>From 610cb15f44cf9c9d1f582a816f1deefe63ac26a1 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 5 Oct 2023 14:39:35 +0200
Subject: [PATCH 1/3] Various minor improvements in the test driver

Enable more alerts by the shell.

Check the argument count.

Replace test cascades with 'case' constructs.

There is no need to create RUNDIR because the script is called after a
'make install'.

There is no need to check that the RUNDIR variable is not empty, it is
set in all branches of the previous construct.
---
 debian/tests/ghdl-tests | 48 -
 1 file changed, 23 insertions(+), 25 deletions(-)

diff --git a/debian/tests/ghdl-tests b/debian/tests/ghdl-tests
index 5868e16c..9ef0a66d 100755
--- a/debian/tests/ghdl-tests
+++ b/debian/tests/ghdl-tests
@@ -1,39 +1,38 @@
 #!/bin/sh
 
-set -e
+set -C -e -f -u
 
 # The pyunit tests are not run here. These parts are not activated in
 # Debian yet.
 TESTS="sanity gna vests synth vpi vhpi"
 
+error() {
+echo >&2 "$0: $1"
+exit 1
+}
 
-if [ "$2" = mcode ]; then
-	BACKEND=mcode
-elif [ "$2" = llvm ]; then
-	BACKEND=llvm
-elif [ "$2" = gcc ]; then
-	BACKEND=gcc
-else
-	echo >&2 "Invalid backend specification"
-	exit 1
-fi
+test $# = 2 || error "bad argument count: $#"
 
-if [ "$1" = buildtest ]; then
+case "$2" in
+gcc|llvm|mcode)
+	BACKEND=$2
+	;;
+*)
+	error "invalid backend specification: $2"
+esac
+
+case "$1" in
+buildtest)
 	RUNDIR=testrundir/$BACKEND
-	mkdir -p "$RUNDIR"
 	GHDL="$PWD/$RUNDIR/usr/bin/ghdl-$BACKEND"
-elif [ "$1" = autopkgtest ]; then
+	;;
+autopkgtest)
 	RUNDIR="$AUTOPKGTEST_TMP"
 	GHDL=/usr/bin/ghdl-$BACKEND
-else
-	echo >&2 "Invalid test environment specification"
-	exit 1
-fi
-
-if [ -z "$RUNDIR" ]; then
-	echo >&2 "RUNDIR is empty string"
-	exit 1
-fi
+	;;
+*)
+	error "invalid test environment specification: $1"
+esac
 
 # Copy testsuite into $RUNDIR to execute there, so that no cleanup is necessary
 # (entire $RUNDIR will be deleted later). Also copy src/grt as at least one test
@@ -54,6 +53,5 @@ if ./testsuite.sh $TESTS -- --keep-going; then
 elif test $BACKEND = llvm; then
 echo "Tests for backend llvm failed (but ignored for now)."
 else
-echo >&2 "Tests for backend $BACKEND failed."
-exit 1
+error "tests for backend $BACKEND failed."
 fi
-- 
2.39.2



Bug#1054125: dh-builtusing: Please backport dh-builtusing to bookworm

2023-10-19 Thread Nicolas Boulenguez
Hello.

> would it be possible to get dh-builtusing backported for bookworm? We
> want to use dh-builtusing in ghdl (as you know ;), but I run my
> package builds on bookworm, inside an sbuild chroot, but gbp breaks
> when building the source package it's going to hand to the chroot.

Please first consider a simple solution that I have been using for
years.

Dpkg-buildpackage --build=source (run by $tool) cleans the source tree
before preparing the .dsc (that $tool then copies into the chroot).

The motivation for the cleaning was probably to prevent objects
embedded into the .dsc, but
* dpkg-buildpackage now (source format 3.0) aborts when it detects a
  file present in the source tree but missing or different in the
  .orig tarball
* chroot users rarely build objects locally
* git users (keeping away from .gitignore) rarely forget objects in
  the source tree.

The clean step may even be harmful.
 * It requires build dependencies outside the chroot
   (your issue with dh-builtusing).
 * Even if these are installed, the versions and behaviour may differ.
   (probable cause of your issue with dh-ada-library)
 * The upstream clean process may execute surprising commands like
 find . -name '*~' -delete
 git reset --hard
   or make applied debian/patches hard to revert.
 * Various packages require incompatible Build-Dependencies.
 * ...

You can disable the clean with
# dpkg-buildpackage -nc
# pdebuild --debbuildopts -nc
or a similar gbp-buildpackage option.


In case you want to keep a basic check of the clean target, the right
place is a pbuilder script cleaning inside the chroot after the build,
then reporting any difference between the source and the .dsc.
The output is almost always either
 * trivial to work-around in Debian
   (echo '*.o' > debian/clean)
   (fixing upstream may be another story)
 * short enough to be easily ignored
   (./configure),
 * or a real issue.



Bug#916475: [Pkg-electronics-devel] Bug#916475: ghdl: various suggestions to simplify the packaging

2023-10-11 Thread Nicolas Boulenguez
Source: ghdl
Followup-For: Bug #916475

Hello.

> honestly the whole link script looks like a hack to me, I prefer the
> way it was before.

I agree that an executable debian/libghdl-dev.links is a last resort,
but a reader discovering the package does not need to

* guess that usr/lib/*/libghdl.so is a symbolic link from its name
  (this is only evident if you have already packaged a library)

* search where (debian/tmp/)?usr/lib/*/libghdl.so comes from (not
  evident at all, even assuming familiarity with the dh sequence).

The debian/libghdl-dev.links I am suggesting is complex, but handles a
single task (ln -s) and does not require the reader to remember each
detail of the far more complex debian/rules to understand what
happens.

Of course, the decision is yours eventually, and I may rebase the
other commits if you choose to keep the sequence as it is.

If so, I suggest to replace
 usr/lib/*/libghdl.so
in debian/libghdl-dev.install with
 usr/lib/${DEB_HOST_MULTIARCH}/libghdl.so
>From 734fee62a113b8c36c929f8ee739243d67d64a34 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 14 Dec 2022 13:48:00 +0100
Subject: [PATCH 01/14] Install the usr/bin/ghdl wrapper with dh_install
 directly

---
 debian/{ghdl.wrapper => bin/ghdl} | 0
 debian/ghdl-common.install| 3 ++-
 debian/rules  | 1 -
 3 files changed, 2 insertions(+), 2 deletions(-)
 rename debian/{ghdl.wrapper => bin/ghdl} (100%)
 mode change 100644 => 100755

diff --git a/debian/ghdl.wrapper b/debian/bin/ghdl
old mode 100644
new mode 100755
similarity index 100%
rename from debian/ghdl.wrapper
rename to debian/bin/ghdl
diff --git a/debian/ghdl-common.install b/debian/ghdl-common.install
index 1d4197f0..5ff3ad65 100644
--- a/debian/ghdl-common.install
+++ b/debian/ghdl-common.install
@@ -1,4 +1,5 @@
-usr/bin/ghdl
+debian/bin/ghdl usr/bin/
+
 usr/lib/ghdl/src
 usr/lib/ghdl/include/ghdl/vpi_user.h
 usr/lib/ghdl/include/ghdl/vhpi_user.h
diff --git a/debian/rules b/debian/rules
index dcece304..217fd601 100755
--- a/debian/rules
+++ b/debian/rules
@@ -91,7 +91,6 @@ override_dh_auto_install: $(foreach backend,$(BACKENDS),$(STAMPSDIR)/install-$(b
 	@echo 
 	@echo Common install final steps
 	@echo 
-	install -pD debian/ghdl.wrapper $(CURDIR)/debian/tmp/usr/bin/ghdl
 	cd debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) && ln -s libghdl-*.so libghdl.so
 	$(RM) debian/tmp/usr/lib/ghdl/src/ieee2008/LICENSE
 
-- 
2.39.2

>From af3bf32c7959c411658b9a0adc94024d16bb1bed Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Mon, 2 Oct 2023 13:43:54 +0200
Subject: [PATCH 02/14] Install sources into usr/lib/ghdl with dh_install
 directly

---
 debian/ghdl-common.install | 8 +++-
 debian/not-installed   | 3 +++
 debian/rules   | 7 ---
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/debian/ghdl-common.install b/debian/ghdl-common.install
index 5ff3ad65..36ec5acf 100644
--- a/debian/ghdl-common.install
+++ b/debian/ghdl-common.install
@@ -1,5 +1,11 @@
 debian/bin/ghdl usr/bin/
 
-usr/lib/ghdl/src
+# The wildcard matches backend(s).
+usr/lib/ghdl/*/vhdl/src/ieee/   usr/lib/ghdl/src/
+usr/lib/ghdl/*/vhdl/src/ieee2008/*.vhdl usr/lib/ghdl/src/ieee2008/
+usr/lib/ghdl/*/vhdl/src/std/usr/lib/ghdl/src/
+usr/lib/ghdl/*/vhdl/src/synopsys/   usr/lib/ghdl/src/
+usr/lib/ghdl/*/vhdl/src/upf/usr/lib/ghdl/src/
+
 usr/lib/ghdl/include/ghdl/vpi_user.h
 usr/lib/ghdl/include/ghdl/vhpi_user.h
diff --git a/debian/not-installed b/debian/not-installed
index 97006213..1f68b482 100644
--- a/debian/not-installed
+++ b/debian/not-installed
@@ -3,10 +3,13 @@
 # file from its original location directly to debian/PACKAGE/usr/bin.
 usr/bin/ghdl-gcc
 
+# The wildcard matches backend(s).
 usr/lib/ghdl/*/vhdl/ansi_color.sh
+usr/lib/ghdl/*/vhdl/src/ieee2008/LICENSE
 usr/lib/ghdl/*/vhdl/vendors
 usr/lib/ghdl/*/libghw.so
 usr/lib/ghdl/*/libghdl.link
+
 usr/lib/ghdl/include/ghdl/libghw.h
 
 usr/lib/ghdl/gcc/libexec
diff --git a/debian/rules b/debian/rules
index 217fd601..346ea20f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -92,7 +92,6 @@ override_dh_auto_install: $(foreach backend,$(BACKENDS),$(STAMPSDIR)/install-$(b
 	@echo Common install final steps
 	@echo 
 	cd debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) && ln -s libghdl-*.so libghdl.so
-	$(RM) debian/tmp/usr/lib/ghdl/src/ieee2008/LICENSE
 
 override_dh_dwz:
 	# dwz currently has problems with some debug sections created by the
@@ -151,8 +150,6 @@ $(STAMPSDIR)/install-mcode: $(STAMPSDIR)/build-mcode
 	@echo Moving parts to required locations
 	@echo 
 	mkdir -p debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)
-	$(RM) -r debian/tmp

Bug#916475: ghdl: various suggestions to simplify the packaging

2023-10-11 Thread Nicolas Boulenguez
Source: ghdl
Followup-For: Bug #916475

Hello.
A rebased and extended list of suggestions is attached.
Debdiff reports no change in the binary packages.
>From 734fee62a113b8c36c929f8ee739243d67d64a34 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 14 Dec 2022 13:48:00 +0100
Subject: [PATCH 01/14] Install the usr/bin/ghdl wrapper with dh_install
 directly

---
 debian/{ghdl.wrapper => bin/ghdl} | 0
 debian/ghdl-common.install| 3 ++-
 debian/rules  | 1 -
 3 files changed, 2 insertions(+), 2 deletions(-)
 rename debian/{ghdl.wrapper => bin/ghdl} (100%)
 mode change 100644 => 100755

diff --git a/debian/ghdl.wrapper b/debian/bin/ghdl
old mode 100644
new mode 100755
similarity index 100%
rename from debian/ghdl.wrapper
rename to debian/bin/ghdl
diff --git a/debian/ghdl-common.install b/debian/ghdl-common.install
index 1d4197f0..5ff3ad65 100644
--- a/debian/ghdl-common.install
+++ b/debian/ghdl-common.install
@@ -1,4 +1,5 @@
-usr/bin/ghdl
+debian/bin/ghdl usr/bin/
+
 usr/lib/ghdl/src
 usr/lib/ghdl/include/ghdl/vpi_user.h
 usr/lib/ghdl/include/ghdl/vhpi_user.h
diff --git a/debian/rules b/debian/rules
index dcece304..217fd601 100755
--- a/debian/rules
+++ b/debian/rules
@@ -91,7 +91,6 @@ override_dh_auto_install: $(foreach backend,$(BACKENDS),$(STAMPSDIR)/install-$(b
 	@echo 
 	@echo Common install final steps
 	@echo 
-	install -pD debian/ghdl.wrapper $(CURDIR)/debian/tmp/usr/bin/ghdl
 	cd debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) && ln -s libghdl-*.so libghdl.so
 	$(RM) debian/tmp/usr/lib/ghdl/src/ieee2008/LICENSE
 
-- 
2.39.2

>From af3bf32c7959c411658b9a0adc94024d16bb1bed Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Mon, 2 Oct 2023 13:43:54 +0200
Subject: [PATCH 02/14] Install sources into usr/lib/ghdl with dh_install
 directly

---
 debian/ghdl-common.install | 8 +++-
 debian/not-installed   | 3 +++
 debian/rules   | 7 ---
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/debian/ghdl-common.install b/debian/ghdl-common.install
index 5ff3ad65..36ec5acf 100644
--- a/debian/ghdl-common.install
+++ b/debian/ghdl-common.install
@@ -1,5 +1,11 @@
 debian/bin/ghdl usr/bin/
 
-usr/lib/ghdl/src
+# The wildcard matches backend(s).
+usr/lib/ghdl/*/vhdl/src/ieee/   usr/lib/ghdl/src/
+usr/lib/ghdl/*/vhdl/src/ieee2008/*.vhdl usr/lib/ghdl/src/ieee2008/
+usr/lib/ghdl/*/vhdl/src/std/usr/lib/ghdl/src/
+usr/lib/ghdl/*/vhdl/src/synopsys/   usr/lib/ghdl/src/
+usr/lib/ghdl/*/vhdl/src/upf/usr/lib/ghdl/src/
+
 usr/lib/ghdl/include/ghdl/vpi_user.h
 usr/lib/ghdl/include/ghdl/vhpi_user.h
diff --git a/debian/not-installed b/debian/not-installed
index 97006213..1f68b482 100644
--- a/debian/not-installed
+++ b/debian/not-installed
@@ -3,10 +3,13 @@
 # file from its original location directly to debian/PACKAGE/usr/bin.
 usr/bin/ghdl-gcc
 
+# The wildcard matches backend(s).
 usr/lib/ghdl/*/vhdl/ansi_color.sh
+usr/lib/ghdl/*/vhdl/src/ieee2008/LICENSE
 usr/lib/ghdl/*/vhdl/vendors
 usr/lib/ghdl/*/libghw.so
 usr/lib/ghdl/*/libghdl.link
+
 usr/lib/ghdl/include/ghdl/libghw.h
 
 usr/lib/ghdl/gcc/libexec
diff --git a/debian/rules b/debian/rules
index 217fd601..346ea20f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -92,7 +92,6 @@ override_dh_auto_install: $(foreach backend,$(BACKENDS),$(STAMPSDIR)/install-$(b
 	@echo Common install final steps
 	@echo 
 	cd debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) && ln -s libghdl-*.so libghdl.so
-	$(RM) debian/tmp/usr/lib/ghdl/src/ieee2008/LICENSE
 
 override_dh_dwz:
 	# dwz currently has problems with some debug sections created by the
@@ -151,8 +150,6 @@ $(STAMPSDIR)/install-mcode: $(STAMPSDIR)/build-mcode
 	@echo Moving parts to required locations
 	@echo 
 	mkdir -p debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)
-	$(RM) -r debian/tmp/usr/lib/ghdl/src
-	mv debian/tmp/usr/lib/ghdl/mcode/vhdl/src debian/tmp/usr/lib/ghdl
 	ln -s ../../src debian/tmp/usr/lib/ghdl/mcode/vhdl/src
 	mv debian/tmp/usr/lib/ghdl/mcode/libghdl-*.so debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/
 	mv debian/tmp/usr/lib/ghdl/mcode/libghdl.a debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/
@@ -207,8 +204,6 @@ $(STAMPSDIR)/install-llvm: $(STAMPSDIR)/build-llvm
 	@echo Moving parts to required locations
 	@echo 
 	mkdir -p debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)
-	$(RM) -r debian/tmp/usr/lib/ghdl/src
-	mv debian/tmp/usr/lib/ghdl/llvm/vhdl/src debian/tmp/usr/lib/ghdl
 	ln -s ../../src debian/tmp/usr/lib/ghdl/llvm/vhdl/src
 	mv debian/tmp/usr/lib/ghdl/llvm/libghdl-*.so debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/
 	mv debian/tmp/usr/lib/ghdl/llvm/libghdl.a debian/t

Bug#1052427: dh-builtusing: remove constraint on number of packages to match a wildcard

2023-09-22 Thread Nicolas Boulenguez
Package: dh-builtusing
Followup-For: Bug #1052427

Hello.

The motivation for
  Built-Using: ${dh-builtusing:gcc-S-source}
is that the maintainer wants everyone else to be able to replace
  Build-Depends: gcc-13-source
with
  Build-Depends: gcc-14-source
and rebuild the package.

The purpose of dh-builtusing is to generate the version of each
package, but I fear that computing (part of) the package list may
easily lead to false positives. For example a source may start
building several rust libraries with distinct new build dependencies.

Also, the benefice is low because a change (not restricted to
versions) in the list of Build-Depends is rare and probably already
involves decisions by the maintainer anyway.

Also, should
  Built-Using: ${dh-builtusing:librust-WILDCARD-dev} [amd64] 
be forbidden?
The only logic expansion is
  Built-Using: librust-a-dev [amd64] , librust-b-dev [amd64] 
This can be implemented, but would be inconsistent and probably fragile.

Same question for ${dh-builtusing:librust-WILDCARD-dev:amd64}.



Bug#1051098: suggestion: dh-builtusing may simplify the packaging

2023-09-02 Thread Nicolas Boulenguez
Source: u-boot
Severity: wishlist
Tags: patch

Hello.

You may be interested in the dh-builtusing debhelper tool, which
generates the Built-Using field instead of explicit shell subcommands.

--- a/debian/control
+++ b/debian/control
@@ -7,6 +7,7 @@ Build-Depends:
  bc,
  bison,
  debhelper-compat (= 13),
+ dh-sequence-builtusing,
  flex,
  libpython3-dev:native [linux-any],
  libssl-dev,
@@ -167,7 +168,8 @@ Description: A boot loader for omap systems
 Package: u-boot-sunxi
 Architecture: armhf arm64
 Multi-Arch: same
-Built-Using: ${u-boot-sunxi:Built-Using}
+Built-Using: ${dh-builtusing:arm-trusted-firmware} [arm64],
+ ${dh-builtusing:crust-firmware} [arm64],
 Depends: ${misc:Depends}
 Recommends: u-boot-tools [arm64]
 Suggests: arm-trusted-firmware [arm64]
@@ -221,7 +223,7 @@ Description: A boot loader for marvell systems
 Package: u-boot-rockchip
 Architecture: armhf arm64
 Multi-Arch: same
-Built-Using: ${u-boot-rockchip:Built-Using}
+Built-Using: ${dh-builtusing:arm-trusted-firmware} [arm64]
 Depends: ${misc:Depends}
 Recommends: python3, u-boot-tools [arm64]
 Suggests: arm-trusted-firmware [arm64]
@@ -275,7 +277,7 @@ Package: u-boot-sifive
 Architecture: riscv64
 Multi-Arch: same
 Depends: ${misc:Depends}
-Built-Using: ${u-boot-sifive:Built-Using}
+Built-Using: ${dh-builtusing:opensbi}
 Description: A boot loader for SiFive systems
  Das U-Boot is a cross-platform bootloader for embedded systems,
  used as the default boot loader by several board vendors.  It is
--- a/debian/rules
+++ b/debian/rules
@@ -155,6 +155,6 @@ override_dh_clean:
find . -type d -name __pycache__ -delete
 
 override_dh_gencontrol:
-   dh_gencontrol -- $(dpkg-gencontrol_args) $(foreach package,\
+   dh_gencontrol -- $(foreach package,\
  u-boot-qemu $(subarchs),\
  '-V$(package):platforms=$(subst $() 
,$${Newline},$($(package)_platforms))')
--- a/debian/targets.mk
+++ b/debian/targets.mk
@@ -45,9 +45,6 @@ ifeq (${DEB_HOST_ARCH},arm64)
 
 # u-boot-rockchip
 
-  dpkg-gencontrol_args += "-Vu-boot-rockchip:Built-Using=$(shell dpkg-query 
-Wf \
-'$${source:Package} (= $${source:Version})' arm-trusted-firmware)"
-
   # Vagrant Cascadian 
   u-boot-rockchip_platforms += firefly-rk3399
   firefly-rk3399_assigns := BL31=/usr/lib/arm-trusted-firmware/rk3399/bl31.elf
@@ -139,9 +136,6 @@ ifeq (${DEB_HOST_ARCH},arm64)
   u-boot-sunxi_assigns = \
 SCP=$(or $(wildcard /usr/lib/crust-firmware/$(platform).bin),/dev/null)
 
-  dpkg-gencontrol_args += "-Vu-boot-sunxi:Built-Using=$(shell dpkg-query -Wf \
-'$${source:Package} (= $${source:Version})' arm-trusted-firmware)"
-
   u-boot-sunxi_platforms += a64-olinuxino
   a64-olinuxino_assigns := 
BL31=/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin
   a64-olinuxino_targets := arch/arm/dts/sun50i-a64-olinuxino.dtb \
@@ -376,9 +370,6 @@ else ifeq (${DEB_HOST_ARCH},armhf)
 
 # u-boot-rockchip
 
-  # Silent a debhelper warning about an unused substvar.
-  dpkg-gencontrol_args += -Vu-boot-rockchip:Built-Using=
-
   # Vagrant Cascadian , 2GB and 4GB variants
   u-boot-rockchip_platforms += firefly-rk3288
   firefly-rk3288_targets := idbloader.img spl/u-boot-spl.bin u-boot.bin \
@@ -413,9 +404,6 @@ else ifeq (${DEB_HOST_ARCH},armhf)
 
 # u-boot-sunxi
 
-  # Silent a debhelper warning about an unused substvar.
-  dpkg-gencontrol_args += -Vu-boot-sunxi:Built-Using=
-
   # Christian Kastner 
   u-boot-sunxi_platforms += A10-OLinuXino-Lime
   A10-OLinuXino-Lime_targets := u-boot-sunxi-with-spl.bin uboot.elf
@@ -541,9 +529,6 @@ else ifeq (${DEB_HOST_ARCH},riscv64)
 
 # u-boot-sifive
 
-  dpkg-gencontrol_args += "-Vu-boot-sifive:Built-Using=$(shell dpkg-query -Wf \
-'$${source:Package} (= $${source:Version})' opensbi)"
-
   # Hector Oron 
   u-boot-sifive_platforms += sifive_unleashed
   sifive_unleashed_targets := u-boot.bin uboot.elf spl/u-boot-spl.bin 
u-boot.itb



Bug#1050379: ITP: qmidictl -- graphical application sending MIDI data over the network

2023-08-23 Thread Nicolas Boulenguez
Package: wnpp
Severity: wishlist
Owner: Nicolas Boulenguez 
X-Debbugs-Cc: debian-de...@lists.debian.org, benoit.delc...@gmail.com

* Package name: qmidictl
  Version : 0.9.10
  Upstream Contact: rncbc at rncbc dot org
* URL : https://www.rncbc.org
* License : GPL-2+, LGPL-2.1, FSFAP
  Programming Lang: C++, Qt
  Description : graphical application sending MIDI data over the network

Originally inspired by multimidicast, the qmidictl application
displays a window with controls imitating a MIDI control surface.  It
emits the MIDI instructions over the network using UDP/IP multicast.

Programs like qmidinet on Linux or ipMIDI on Windows are then able to
receive, translate and forward the MIDI flow.

A friend intends to use it on its Pinephone.
There is no similar package in Debian yet.



Bug#1049991: arm-trusted-firmware: suggestions to improve the maintability of debian/rules

2023-08-17 Thread Nicolas Boulenguez
Source: arm-trusted-firmware
Severity: wishlist
Tags: patch

Hello.

The attached patch arguably improves debian/rules.

The ediff mode of emacs provides a more useful overview of the changes
than plain diff or gitk.
According to the test described at the end of the commit log, the new
version executes the same shell commands than before.

As usual… thanks for maintaining this package.
I hope this will simplify your work.
>From 92481e8b58dcf28727164c0764265e78d82656b0 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 17 Aug 2023 23:01:48 +0200
Subject: debian/rules: improve readability and logs

Group all references to a given board.

Use global variables for default values and target-specific variables
for overrides.

Run each command separately so that Make checks the exit status and
the log is more useful in case of failure.

Avoid Make obscure features like `define`, `eval`, `call` and
constructed variable names.

Display (indent with tab) a comment at the start of each subplatform,
but hide comments intended for readers of debian/rules.

Replace a Make `foreach` loop with the implicit iteration of the
`install` command on its argument.

Remove a reference to the unset `board` variable (introduced by
commit 97c362ab).

The diff between the output of
`DEB_HOST_ARCH=arm64 debian/rules -n override_dh_auto_build | sed 's/ *; 
*/\n/g' | sort`
before and after this commit seems correct.

diff --git a/debian/rules b/debian/rules
index 710178171..f1e435f73 100755
--- a/debian/rules
+++ b/debian/rules
@@ -14,62 +14,67 @@ else
 VERBOSE=1
 endif
 
-platforms := g12a gxbb sun50i_a64 sun50i_h6 rcar rk3328 rk3399 rpi3 rpi4 
imx8mn imx8mm
+subplatforms := g12a gxbb sun50i_a64 rpi3 rpi4
+
 # Disable building of imx8mq, as it is not well supported upstream.
-#platforms_nodebug := imx8mq
+# subplatforms += imx8mq
+imx8mq: buildtype := release
+imx8mq: debug := 0
 
 # By default, iMX8MN uses UART2 console. However, other boards supported
 # upstream (e.g. Variscite VAR-SOM-MX8M-NANO board) uses UART4.
 # Add two subplatforms for imx8mn platform:
 #   * imx8mn: default configuration
 #   * imx8mn_uart4: console set to UART4
-imx8mn_subplatforms := imx8mn imx8mn_uart4
-imx8mn_uart4_assigns := IMX_BOOT_UART_BASE=0x30a6
+subplatforms += imx8mn imx8mn_uart4
+imx8mn_uart4: platform := imx8mn
+imx8mn_uart4: assigns := IMX_BOOT_UART_BASE=0x30a6
 
 # By default, iMX8MM uses UART2 console. However, other boards
 # use other UARTs
-imx8mm_subplatforms := imx8mm imx8mm_uart1 imx8mm_uart3 imx8mm_uart4
-imx8mm_uart1_assigns := IMX_BOOT_UART_BASE=0x3086
-imx8mm_uart3_assigns := IMX_BOOT_UART_BASE=0x3088
-imx8mm_uart4_assigns := IMX_BOOT_UART_BASE=0x30A6
+subplatforms += imx8mm imx8mm_uart1 imx8mm_uart3 imx8mm_uart4
+imx8mm_uart1 imx8mm_uart3 imx8mm_uart4: platform := imx8mm
+imx8mm_uart1: assigns := IMX_BOOT_UART_BASE=0x3086
+imx8mm_uart3: assigns := IMX_BOOT_UART_BASE=0x3088
+imx8mm_uart4: assigns := IMX_BOOT_UART_BASE=0x30A6
 
 # TF-A's regulator setup breaks Ethernet on some H6 boards,
 # so make it optional by having two subplatforms:
 #   * sun50i_h6: default configuration
 #   * sun50i_h6_no_pmic: skip regulator setup
-sun50i_h6_subplatforms := sun50i_h6 sun50i_h6_no_pmic
-sun50i_h6_no_pmic_assigns := SUNXI_SETUP_REGULATORS=0
-
-rk3328_targets := bl31/bl31.elf
-rk3399_targets := bl31/bl31.elf
+subplatforms += sun50i_h6 sun50i_h6_no_pmic
+sun50i_h6_no_pmic: platform := sun50i_h6
+sun50i_h6_no_pmic: assigns := SUNXI_SETUP_REGULATORS=0
 
-rcar_subplatforms := rcar_uclb_h3 rcar_uclb_m3w rcar_uclb_m3n
-rcar_uclb_h3_assigns := LSI=H3 RCAR_DRAM_SPLIT=1 RCAR_GEN3_ULCB=1 
PMIC_LEVEL_MODE=0 RCAR_DRAM_LPDDR4_MEMCONF=0 SPD=opteed RCAR_LOSSY_ENABLE=1
-rcar_uclb_m3n_assigns := LSI=M3N RCAR_GEN3_ULCB=1 PMIC_LEVEL_MODE=0 
RCAR_DRAM_LPDDR4_MEMCONF=0 SPD=opteed RCAR_LOSSY_ENABLE=1
-rcar_uclb_m3w_assigns := LSI=M3 RCAR_DRAM_SPLIT=2 RCAR_GEN3_ULCB=1 
PMIC_LEVEL_MODE=0 RCAR_DRAM_LPDDR4_MEMCONF=0 SPD=opteed RCAR_LOSSY_ENABLE=1
+subplatforms += rk3328 rk3399
+rk3328 rk3399: targets := bl31/bl31.elf
 
-rcar_targets := bl31.srec bl2.srec
-rcar_make_target := rcar
+subplatforms += rcar_uclb_h3 rcar_uclb_m3w rcar_uclb_m3n
+rcar_uclb_h3: assigns := LSI=H3 RCAR_DRAM_SPLIT=1 RCAR_GEN3_ULCB=1 
PMIC_LEVEL_MODE=0 RCAR_DRAM_LPDDR4_MEMCONF=0 SPD=opteed RCAR_LOSSY_ENABLE=1
+rcar_uclb_m3n: assigns := LSI=M3N RCAR_GEN3_ULCB=1 PMIC_LEVEL_MODE=0 
RCAR_DRAM_LPDDR4_MEMCONF=0 SPD=opteed RCAR_LOSSY_ENABLE=1
+rcar_uclb_m3w: assigns := LSI=M3 RCAR_DRAM_SPLIT=2 RCAR_GEN3_ULCB=1 
PMIC_LEVEL_MODE=0 RCAR_DRAM_LPDDR4_MEMCONF=0 SPD=opteed RCAR_LOSSY_ENABLE=1
+rcar_uclb_h3 rcar_uclb_m3n rcar_uclb_m3w: platform := rcar
+rcar_uclb_h3 rcar_uclb_m3n rcar_uclb_m3w: targets := bl31.srec bl2.srec
+rcar_uclb_h3 rcar_uclb_m3n rcar_uclb_m3w: make_target := rcar
 
-# Always set CROSS_COMPILE, which also works for native builds.
-define build_platform
-   $(eval platform := $(1))
-   $(eval debug := $(2))
-   $(eval buildtype := 

Bug#1041883: python3-astroid: please package version 2.15.6

2023-07-26 Thread Nicolas Boulenguez
Package: python3-astroid
Followup-For: Bug #1041883

Thanks for updating the package.

In which form should I submit the remaining suggestions?
As separate merge request?

At least the extension of upstream copyright years is correct, or am I
missing something?



Bug#1041883: python3-astroid: please package version 2.15.6

2023-07-25 Thread Nicolas Boulenguez
> > Latest pylint fixes a few issues and requires astroid/2.15.4.
> yep. i know

Of course *you* know because you maintain both packages.  But a bug
report is public, and someone else reading this report may appreciate
a bit of context.

> please do not submit patches to packages via email like this, either
> open an MR

Then, I will login to salsa, learn how to create a fork and open a
merge request.

> or just nothing at all, i can update a package

I am quite confident in you capacity to "update a package".
Actually, I expect you to review the suggestions, and adapt or refuse
them because you know the package better.
Please take this as if it were sent by lintian-brush :-)
My hope was to spare you some time, and show interest in the packages
you are maintaining.



Bug#1041882: dh_installchangelogs: probable typo in search for upstream changelog

2023-07-24 Thread Nicolas Boulenguez
Package: debhelper
Version: 13.11.4
Severity: minor
Tags: patch

Hello.

I suspect a missing dollar character in dh_installchangelog.
Sorry for the noise if this is some deliberate Perl black magic.

--- a/dh_installchangelogs
+++ b/dh_installchangelogs
@@ -148,7 +148,7 @@
foreach my $suffix ('', qw(.txt .md .rst)) {
foreach my $name (qw{changelog changes history}) {
my @matches=grep {
-   lc basename($_) eq "$name$suffix" && -f $_ && 
-s _ && ! excludefile($_)
+   lc basename($_) eq "$name$suffix" && -f $_ && 
-s $_ && ! excludefile($_)
} @files;
if (@matches) {
return shift(@matches);



Bug#1035194: nanovna-saver: please add autopkgtests (to add coverage for python3-numpy)

2023-07-06 Thread Nicolas Boulenguez
Source: nanovna-saver
Followup-For: Bug #1035194

Hello.

Nanovna-saver requires a specific hardware to do anything useful.
Also, testing a graphical tool is far from trivial.

Post-build tests check some purely algorithmic parts, but do not make
much sense as integration tests.

Unless someone comes with a specific suggestion, this bug should
probably be closed.



Bug#689062: dpkg-dev: Need to add support for Built-Using to dpkg-shlibdeps or new similar tool

2023-06-22 Thread Nicolas Boulenguez
Package: dpkg-dev
Followup-For: Bug #689062

Hello.

I took the absence of answer to my messages here and the ITP as an
agreement that an external tool, if somewhat redundant, is preferable
to a change in the dpkg-gencontrol public interface, where any change
has wide repercussions.

So here is the prototype:
https://manpages.debian.org/unstable/dh-builtusing/dh_builtusing.1.en.html

Do the submitter and maintainers agree to close this bug?



Bug#1036069: gnat: 'gprconfig --show-targets' fails with constraint_error

2023-06-19 Thread Nicolas Boulenguez
Package: gnat
Followup-For: Bug #1036069
Control: reassign -1 gprbuild 2023.0.0-3



Bug#689062: ITP: dh-builtusing -- debhelper tool generating the Built-Using field for Debian packages

2023-05-19 Thread Nicolas Boulenguez
Hello.

I have written a tool inspired by this bug report.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1035888
A full description is available at
https://salsa.debian.org/debian/dh-builtusing/-/blob/master/dh_builtusing.pod

This is a proof of concept, any suggestion or critic is welcome
(especially before anyone starts depending on it :-).

A separate debhelper tool avoids extending the dpkg interface. It
should be easier to maintain and document.
The price is some redundancy.  The tool parses debian/control twice,
via Dh_Lib and Dpkg perl modules.



Bug#1036003: unblock: adacgi/1.6-32 and 20 Ada libraries

2023-05-12 Thread Nicolas Boulenguez
angelog	2023-05-10 21:26:50.0 +0200
@@ -1,3 +1,9 @@
+adacgi (1.6-32) unstable; urgency=medium
+
+  * Break/Replace libadacgi*-dev since oldstable. Closes: #1034975.
+
+ -- Nicolas Boulenguez   Wed, 10 May 2023 21:26:50 +0200
+
 adacgi (1.6-31) unstable; urgency=medium
 
   * Reupload to unstable for the gnat-12 transition.
diff -Nru adacgi-1.6/debian/control adacgi-1.6/debian/control
--- adacgi-1.6/debian/control	2022-12-26 23:54:23.0 +0100
+++ adacgi-1.6/debian/control	2023-05-10 21:26:50.0 +0200
@@ -17,6 +17,8 @@
 Homepage: http://www.dwheeler.com/adacgi
 
 Package: libadacgi6-dev
+Breaks: libadacgi2-dev, libadacgi3-dev, libadacgi4-dev, libadacgi5-dev
+Replaces: libadacgi2-dev, libadacgi3-dev, libadacgi4-dev, libadacgi5-dev
 Architecture: any
 Depends: ${misc:Depends}, ${ada:Depends}
 Description: Ada CGI interface: development
diff -Nru adacgi-1.6/debian/copyright adacgi-1.6/debian/copyright
--- adacgi-1.6/debian/copyright	2022-04-24 00:03:41.0 +0200
+++ adacgi-1.6/debian/copyright	2023-05-10 21:26:50.0 +0200
@@ -8,7 +8,7 @@
 
 Files: debian/*
 Copyright: 1999-2001 Samuel Tardieu 
-   2016-2022 Nicolas Boulenguez 
+   2016-2023 Nicolas Boulenguez 
2002-2019 Phil Brooke 
 License: GPL-2+
 
diff -Nru adasockets-1.12/debian/changelog adasockets-1.12/debian/changelog
--- adasockets-1.12/debian/changelog	2022-12-27 00:14:28.0 +0100
+++ adasockets-1.12/debian/changelog	2023-05-10 22:09:30.0 +0200
@@ -1,3 +1,9 @@
+adasockets (1.12-8) unstable; urgency=medium
+
+  * Break/Replace libadasockets*-dev since oldstable. Closes: #1034896.
+
+ -- Nicolas Boulenguez   Wed, 10 May 2023 22:09:30 +0200
+
 adasockets (1.12-7) unstable; urgency=medium
 
   * Reupload to unstable for the gnat-12 transition.
diff -Nru adasockets-1.12/debian/control adasockets-1.12/debian/control
--- adasockets-1.12/debian/control	2022-12-27 00:14:28.0 +0100
+++ adasockets-1.12/debian/control	2023-05-10 22:08:44.0 +0200
@@ -18,6 +18,8 @@
 Vcs-Git: https://salsa.debian.org/debian/adasockets.git
 
 Package: libadasockets12-dev
+Breaks: libadasockets8-dev, libadasockets9-dev, libadasockets10-dev, libadasockets11-dev
+Replaces: libadasockets8-dev, libadasockets9-dev, libadasockets10-dev, libadasockets11-dev
 Architecture: any
 Depends:
  ${ada:Depends},
diff -Nru adasockets-1.12/debian/copyright adasockets-1.12/debian/copyright
--- adasockets-1.12/debian/copyright	2022-12-27 00:14:28.0 +0100
+++ adasockets-1.12/debian/copyright	2023-05-10 22:08:47.0 +0200
@@ -21,7 +21,7 @@
 Files: debian/*
 Copyright: 1998-2002 Samuel Tardieu 
2020-2020 Phil Brooke 
-   2016-2022 Nicolas Boulenguez 
+   2016-2023 Nicolas Boulenguez 
 License: GPL-2+-with-generic-exception
 
 Files: support/texinfo.tex
diff -Nru ahven-2.8/debian/changelog ahven-2.8/debian/changelog
--- ahven-2.8/debian/changelog	2022-12-27 00:42:54.0 +0100
+++ ahven-2.8/debian/changelog	2023-05-11 10:43:00.0 +0200
@@ -1,3 +1,9 @@
+ahven (2.8-7) unstable; urgency=medium
+
+  * Break/Replace libahven*-dev since oldstable. Closes: #1035011.
+
+ -- Nicolas Boulenguez   Thu, 11 May 2023 10:43:00 +0200
+
 ahven (2.8-6) unstable; urgency=medium
 
   * Reupload to unstable for the gnat-12 transition.
diff -Nru ahven-2.8/debian/control ahven-2.8/debian/control
--- ahven-2.8/debian/control	2022-12-27 00:42:54.0 +0100
+++ ahven-2.8/debian/control	2023-05-11 10:43:00.0 +0200
@@ -24,6 +24,8 @@
 Vcs-Git: https://git.codelabs.ch/git/debian/ahven.git
 
 Package: libahven11-dev
+Breaks: libahven7-dev, libahven8-dev, libahven9-dev, libahven10-dev
+Replaces: libahven7-dev, libahven8-dev, libahven9-dev, libahven10-dev
 Section: libdevel
 Architecture: any
 Depends: ${misc:Depends}, ${ada:Depends}
diff -Nru ahven-2.8/debian/copyright ahven-2.8/debian/copyright
--- ahven-2.8/debian/copyright	2022-12-27 00:42:54.0 +0100
+++ ahven-2.8/debian/copyright	2023-05-11 10:43:00.0 +0200
@@ -29,7 +29,7 @@
 
 Files: debian/*
 Copyright: 2008-2018 Reto Buerki 
-   2017-2022 Nicolas Boulenguez 
+   2017-2023 Nicolas Boulenguez 
 License: GPL-3+
  This program is free software: you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free Software
diff -Nru anet-0.4.3/debian/changelog anet-0.4.3/debian/changelog
--- anet-0.4.3/debian/changelog	2022-12-27 02:23:40.0 +0100
+++ anet-0.4.3/debian/changelog	2023-05-11 11:26:53.0 +0200
@@ -1,3 +1,9 @@
+anet (0.4.3-3) unstable; urgency=medium
+
+  * Break/Replace libanet*-dev since oldstable. Closes: #1035013 .
+
+ -- Nicolas Boulenguez   Thu, 11 May 2023 11:26:53 +0200
+
 anet (0.4.3-2) unstable; urgency=medium
 
   * Reupload to unstable for the gnat-12 transition.
diff -Nru anet-0.4.3/debian/control anet-0.4.3/debian/control
--- anet-0.4.3/debian/control	2022-12-27 02:23:40.0 +0100
+++ anet-0.4.3/debian/con

Bug#1035888: ITP: dh-builtusing -- debhelper tool generating the Built-Using field for Debian packages

2023-05-10 Thread Nicolas Boulenguez
Package: wnpp
Severity: wishlist
Owner: Nicolas Boulenguez 
X-Debbugs-Cc: debian-de...@lists.debian.org, 689...@bugs.debian.org, 
990...@bugs.debian.org

* Package name: dh-builtusing
  Upstream: native Debian package, I am the author
  Version : 0.0.1
* URL : https://salsa.debian.org/debian/dh-builtusing
* License : GPL-3+
  Programming Lang: Perl
  Description : debhelper tool generating the Built-Using field for Debian 
packages

This tool may help maintainers of Debian packages by generating parts
of the Built-Using dependencies at build time.
.
It searches the Built-Using and Static-Built-Using fields in a source
control file for substitutions of variables names like
dh-builtusing:x, looks for x in build-dependencies, then defines the
variable with the source package and version for x.
.
In other words, it replaces the call to dpgk-query that each package
or debhelper tool has to duplicate for the Built-Using field.


The dh_builtusing.pod manual page contains a full description.
The log for #689062 contains the original discussion.



Bug#1032687: pylint: conffiles not removed: /etc/emacs/site-start.d/50pylint.el

2023-04-21 Thread Nicolas Boulenguez
Package: pylint
Followup-For: Bug #1032687
Control: tag -1 + patch

Hello.
The attached commits provide a patch for this issue,
and a few unrelated suggestions for the packaging that do not seem to
deserve separate bugs reports.
Thanks for maintaining pylint in Debian.
>From 8d8394bd063552fb8a1b0751ad53c10f18d00754 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 21 Apr 2023 16:20:45 +0200
Subject: [PATCH 1/5] Install docs via debhelper configuration files instead of
 debian/rules

Separate pylint-doc.{docs,examples} files may help transitions like acafec41.
---
 debian/changelog   | 11 +++
 debian/pylint-doc.docs |  2 ++
 debian/pylint-doc.examples |  1 +
 debian/rules   |  7 ---
 4 files changed, 14 insertions(+), 7 deletions(-)
 create mode 100644 debian/pylint-doc.docs
 create mode 100644 debian/pylint-doc.examples

diff --git a/debian/changelog b/debian/changelog
index e5be6fb..cfa783a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+pylint (2.16.2-3) UNRELEASED; urgency=medium
+
+  [ Nicolas Boulenguez ]
+  * debian/rules
+- Move docs to pylint-doc.{docs,examples}.
+  Stop duplicating README.rst into each package.  This seems consistent
+  now that pylint-doc installs to /usr/share/doc/pylint/.
+  Separate files may help transitions like acafec41.
+
+ -- Sandro Tosi   Fri, 21 Apr 2023 01:04:13 +0200
+
 pylint (2.16.2-2) unstable; urgency=medium
 
   * debian/rules
diff --git a/debian/pylint-doc.docs b/debian/pylint-doc.docs
new file mode 100644
index 000..ae1887d
--- /dev/null
+++ b/debian/pylint-doc.docs
@@ -0,0 +1,2 @@
+doc/_build/html
+README.rst
diff --git a/debian/pylint-doc.examples b/debian/pylint-doc.examples
new file mode 100644
index 000..e39721e
--- /dev/null
+++ b/debian/pylint-doc.examples
@@ -0,0 +1 @@
+examples/*
diff --git a/debian/rules b/debian/rules
index 1158a03..a7ef26d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -27,12 +27,5 @@ override_dh_auto_build:
 override_dh_compress:
 	dh_compress -i -X.py -X.ini -X.xml -Xtest
 
-override_dh_installexamples:
-	dh_installexamples -ppylint-doc examples/*
-
-override_dh_installdocs:
-	dh_installdocs -A README.rst
-	dh_installdocs -ppylint-doc doc/_build/html
-
 override_dh_missing:
 	dh_missing --fail-missing
-- 
2.39.2

>From 4a43edfccbf49d240030672298010bfccf280068 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 21 Apr 2023 16:23:59 +0200
Subject: [PATCH 2/5] Remove dh_missing override

With debhelper 13, it repeats the default.
---
 debian/changelog | 1 +
 debian/rules | 3 ---
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index cfa783a..99988e2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,7 @@ pylint (2.16.2-3) UNRELEASED; urgency=medium
   Stop duplicating README.rst into each package.  This seems consistent
   now that pylint-doc installs to /usr/share/doc/pylint/.
   Separate files may help transitions like acafec41.
+- Remove dh_missing override. With debhelper 13, it repeats the default.
 
  -- Sandro Tosi   Fri, 21 Apr 2023 01:04:13 +0200
 
diff --git a/debian/rules b/debian/rules
index a7ef26d..8a4948c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -26,6 +26,3 @@ override_dh_auto_build:
 
 override_dh_compress:
 	dh_compress -i -X.py -X.ini -X.xml -Xtest
-
-override_dh_missing:
-	dh_missing --fail-missing
-- 
2.39.2

>From 3183fcd08f7a7d85bc1af0b9327724c911770ca4 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 21 Apr 2023 17:03:14 +0200
Subject: [PATCH 3/5] Remove emacs script on upgrade. Closes: #1032687

---
 debian/changelog| 2 ++
 debian/pylint.conffiles | 1 +
 2 files changed, 3 insertions(+)
 create mode 100644 debian/pylint.conffiles

diff --git a/debian/changelog b/debian/changelog
index 99988e2..fad9b7a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,8 @@ pylint (2.16.2-3) UNRELEASED; urgency=medium
   now that pylint-doc installs to /usr/share/doc/pylint/.
   Separate files may help transitions like acafec41.
 - Remove dh_missing override. With debhelper 13, it repeats the default.
+  * debian/pylint.conffiles
+- let dpkg remove-on-upgrade the emacs script. Closes: #1032687.
 
  -- Sandro Tosi   Fri, 21 Apr 2023 01:04:13 +0200
 
diff --git a/debian/pylint.conffiles b/debian/pylint.conffiles
new file mode 100644
index 000..df6221f
--- /dev/null
+++ b/debian/pylint.conffiles
@@ -0,0 +1 @@
+remove-on-upgrade /etc/emacs/site-start.d/50pylint.el
-- 
2.39.2

>From 680cf732dddee421548a9cf2740543521f197c6a Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 21 Apr 2023 17:23:58 +0200
Subject: [PATCH 4/5] Look for DEB_BUILD_OPTIONS=nodoc in debian/rules

---
 debian/changelog | 1 +
 debian/rules | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index fad9b7a..990a77d 100644
--- a/debian/changelog

Bug#1033205: ITP: nanovna-saver -- data importer for NanoVNA radio networks tester devices

2023-03-19 Thread Nicolas Boulenguez
Package: wnpp
Severity: wishlist
Owner: Nicolas Boulenguez 
X-Debbugs-Cc: debian-de...@lists.debian.org

* Package name: nanovna-saver
  Version : 0.6.0
  Upstream Contact: Holger Mueller 
* URL : https://github.com/NanoVNA-Saver/nanovna-saver
* License : GPL-3+
  Programming Lang: Python
  Description : data importer for NanoVNA radio networks tester devices
   The NanoVNA device is a vector network analyzer and antenna analyzer,
   useful to test or instrument various kinds of radio networks.
   .
   NanoVNA-saver imports Touchstone files from the NanoVNA, sweeps
   frequency spans in segments to gain more than 101 data points, and
   generally displays and analyzes the resulting data.

It is an GUI tool without reverse dependencies.
All requirements are already packaged in main.
A friend owns the device and uses the software.
There seem to be no equivalent in Debian yet.
I intend to maintain the package. I need no sponsor.



Bug#1031571: oath-toolkit: please depend on faketime instead of datefudge

2023-02-18 Thread Nicolas Boulenguez
Source: oath-toolkit
Version: 2.6.7-3
Severity: wishlist
Tags: patch upstream

Hello.

Datefudge is broken on 32-bit architectures (release-critical bug
#1028587).  The author recommends to use alternative tools in message
24 of the bug log.  Only two consumers are remaining, gnutls28 and
oath-toolkit.

The attached diff replaces datefudge with faketime in gnutls28.   
The change only affects tests.

The severity is 'wishlist' for oath-toolkit, but the attached patch
(and a similar one for gnutls28) would allow to remove the datefudge
package and 1 RC bug from bookworm.
>From 621fef1bb538d0f4dab5f23f2ba25d0ef093c850 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 18 Feb 2023 18:08:58 +0100
Subject: [PATCH] Replace datefudge with faketime

---
 debian/control|  2 +-
 .../replace-datefudge-with-faketime.diff  | 47 +++
 debian/patches/series |  1 +
 3 files changed, 49 insertions(+), 1 deletion(-)
 create mode 100644 debian/patches/replace-datefudge-with-faketime.diff

diff --git a/debian/control b/debian/control
index 2c64292..5f7d31f 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@ Section: devel
 Priority: optional
 Maintainer: OATH Toolkit Team 
 Uploaders: Simon Josefsson 
-Build-Depends: datefudge ,
+Build-Depends: faketime ,
debhelper-compat (= 13),
 	   pkg-config,
gengetopt,
diff --git a/debian/patches/replace-datefudge-with-faketime.diff b/debian/patches/replace-datefudge-with-faketime.diff
new file mode 100644
index 000..39780c1
--- /dev/null
+++ b/debian/patches/replace-datefudge-with-faketime.diff
@@ -0,0 +1,47 @@
+Description: replace datefudge with faketime
+ Datefudge is broken on 32-bit architectures.  The author recommends
+ to use alternative tools in message 24 of #1028587.
+ .
+ There only remains two users of datefudge, which has an RC bug.
+Author: Nicolas Boulenguez 
+
+--- a/liboath/tests/tst_usersfile.sh
 b/liboath/tests/tst_usersfile.sh
+@@ -22,15 +22,15 @@
+ TZ=UTC
+ export TZ
+ 
+-TSTAMP=`datefudge "2006-09-23" date -u +%s`
++TSTAMP=`faketime "2006-09-23" date -u +%s`
+ if test "$TSTAMP" != "1158969600"; then
+-echo "Could not fake timestamps with datefudge."
++echo "Could not fake timestamps with faketime."
+ exit 77
+ fi
+ 
+ cp $srcdir/users.oath tmp.oath
+ 
+-datefudge 2006-12-07 ./tst_usersfile$EXEEXT
++faketime 2006-12-07 ./tst_usersfile$EXEEXT
+ rc=$?
+ sed 's/2006-12-07T00:00:0.L/2006-12-07T00:00:00L/g' < tmp.oath > tmp2.oath
+ diff -ur $srcdir/expect.oath tmp2.oath || rc=1
+--- a/pam_oath/tests/run-root-tests.sh
 b/pam_oath/tests/run-root-tests.sh
+@@ -52,13 +52,13 @@
+ exit 77
+ fi
+ 
+-TSTAMP=`datefudge "2006-09-23" date -u +%s`
++TSTAMP=`faketime "2006-09-23" date -u +%s`
+ if test "$TSTAMP" != "1158962400"; then
+-echo "Cannot fake timestamp, install datefudge to check better. ($TSTAMP)"
++echo "Cannot fake timestamp, install faketime to check better. ($TSTAMP)"
+ ./test-pam_oath-root user3
+ rc=$?
+ else
+-datefudge 2006-12-07 ./test-pam_oath-root user3
++faketime 2006-12-07 ./test-pam_oath-root user3
+ rc=$?
+ fi
+ 
diff --git a/debian/patches/series b/debian/patches/series
index ecac8e7..1a1bb7d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 handle-xmlsec-1.2.35.diff
+replace-datefudge-with-faketime.diff
-- 
2.39.1



Bug#1031553: gnutls28: please depend on faketime instead of datefudge

2023-02-18 Thread Nicolas Boulenguez
Source: gnutls28
Version: 3.7.9-1
Severity: wishlist
Tags: patch upstream

Hello.

Datefudge is broken on 32-bit architectures (release-critical bug
#1028587).  The author recommends to use alternative tools in message
24 of the bug log.  Only two consumers are remaining, gnutls28 and
oath-toolkit.

The attached diff replaces datefudge with faketime in gnutls28.
The change only affects tests.
A test fails after a local build, but the timestamps seem correct.

The severity is 'wishlist' for gnutls28, but the attached patch (and a
similar one for oath-toolkit) would allow to remove the datefudge
package and 1 RC bug from bookworm.
>From c19e8f2261f9b29a37503d13728ae100c8a50168 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 18 Feb 2023 15:28:29 +0100
Subject: [PATCH] Replace datefudge with faketime

---
 debian/control|2 +-
 .../replace-datefudge-with-faketime.diff  | 1642 +
 debian/patches/series |1 +
 debian/tests/control  |2 +-
 4 files changed, 1645 insertions(+), 2 deletions(-)
 create mode 100644 debian/patches/replace-datefudge-with-faketime.diff

diff --git a/debian/control b/debian/control
index 5985ac3..37e60ef 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,7 @@ Build-Depends:
  bison,
  ca-certificates ,
  chrpath,
- datefudge ,
+ faketime ,
  debhelper-compat (= 13),
  freebsd-net-tools [kfreebsd-i386 kfreebsd-amd64] ,
  gperf,
diff --git a/debian/patches/replace-datefudge-with-faketime.diff b/debian/patches/replace-datefudge-with-faketime.diff
new file mode 100644
index 000..7c0a54e
--- /dev/null
+++ b/debian/patches/replace-datefudge-with-faketime.diff
@@ -0,0 +1,1642 @@
+Description: replace datefudge with faketime
+ Datefudge is broken on 32-bit architectures.  The author recommends
+ to use alternative tools in message 24 of #1028587.
+ .
+ There only remains two users of datefudge, which has an RC bug.
+ .
+ The equivalent of datefudge -s/--static 'FREE FORM DATE'
+ isfaketime -f '-MM-DD HH:MM:SS'.
+ .
+ SKIP_DATEFUDGE_CHECK looks like a work-around for datefudge on 32-bit
+ architectures, not required by faketime.
+ .
+ Ideally, 'tests/datefudge-check.c' should be renamed, but plain diff
+ format does not (fully) deal with file renamings.
+ The shell subprograms
+ tests/scripts/common.sh:check_for_datefudge
+ tests/scripts/common.sh:skip_if_no_datefudge
+ could also be renamed, but this would produce a lot of meaningless
+ noise in this diff.
+ It should be easy to
+ # mv tests/datefudge-check.c tests/faketime-check.c
+ # grep -lr datefudge tests | xargs sed -i 's/datefudge/faketime/g'
+ after the main suggestion has been tested and accepted.
+Author: Nicolas Boulenguez 
+
+--- a/CONTRIBUTING.md
 b/CONTRIBUTING.md
+@@ -44,7 +44,7 @@
+ 
+ Certificates for testing purposes are available at [cert-common.h](tests/cert-common.h).
+ Note that we do not regenerate test certificates when they expire, but
+-we rather fix the test's time using datefudge or gnutls_global_set_time_function().
++we rather fix the test's time using faketime or gnutls_global_set_time_function().
+ For example, see [x509cert-tl.c](tests/x509cert-tl.c).
+ 
+ 
+--- a/README.md
 b/README.md
+@@ -85,7 +85,7 @@
+ 
+ * [Valgrind](https://valgrind.org/) (optional)
+ * [Libasan](https://gcc.gnu.org//) (optional)
+-* [datefudge](https://packages.debian.org/datefudge) (optional)
++* [faketime](https://github.com/wolfcw/libfaketime) (optional)
+ * [nodejs](https://nodejs.org/) (needed for certain test cases)
+ * [softhsm](https://www.opendnssec.org/softhsm/) (for testing smart card support)
+ * [dieharder](https://www.phy.duke.edu/~rgb/General/dieharder.php) (for testing PRNG)
+@@ -95,7 +95,7 @@
+ 
+ Debian/Ubuntu:
+ ```
+-apt-get install -y valgrind nodejs softhsm2 datefudge lcov libssl-dev libcmocka-dev expect libev-dev
++apt-get install -y valgrind nodejs softhsm2 faketime lcov libssl-dev libcmocka-dev expect libev-dev
+ apt-get install -y dieharder openssl abigail-tools socat net-tools ppp util-linux
+ ```
+ 
+@@ -107,7 +107,7 @@
+ 
+ Fedora/RHEL:
+ ```
+-yum install -y valgrind libasan libasan-static libubsan nodejs softhsm datefudge lcov openssl-devel expect libev-devel
++yum install -y valgrind libasan libasan-static libubsan nodejs softhsm faketime lcov openssl-devel expect libev-devel
+ yum install -y dieharder mbedtls-utils openssl libabigail libcmocka-devel socat util-linux
+ ```
+ 
+--- a/tests/cert-reencoding.sh
 b/tests/cert-reencoding.sh
+@@ -239,18 +239,18 @@
+ 
+ echo "=== Bringing TLS server up ==="
+ 
+-TESTDATE="2018-03-01"
++TESTDATE="2018-03-01 00:00:00"
+ 
+ # Start OpenSSL TLS server
+ #
+ launch_bare_server \
+-	  datefudge "${TESTDATE}" \
++	  faketime "${TESTDATE}" \
+ 	  "${OPENSSL}" s_server -cert ${SERVER_CERT_FILE} -key ${SERVER_KEY_FILE} \
+ 	  -CAfile ${CA_FILE}

Bug#1026392: transition: gnat-12 status update

2023-01-02 Thread Nicolas Boulenguez
Package: release.debian.org
Followup-For: Bug #1026392

libgmpada
  I have disabled the post-build tests on i386.  Not proud of this
  work-around, but #1026828 does not deserve an RC severity.

whitakers-words
  is fixed by an NMU and should migrate to testing within days.



Bug#1027469: FTBFS fixed by 0.2020.10.27-1.3

2023-01-02 Thread Nicolas Boulenguez
Version: 0.2020.10.27-1.3

Hello.
I have uploaded an NMU without delay, because
* this blocks the gnat-12 transition
* he has already reviewed these changes in the VCS while we were
  preparing the next upload.



Bug#1026828: downgrade the severity

2022-12-31 Thread Nicolas Boulenguez
Control: severity 1026828 normal
Control: tags 1026828 - ftbfs
Control: retitle 1026828 random print error for floats on i386

Version 1.5-3 transforms the error into a warning (with more debugging
info).
The original bug does not deserve a 'serious' severity.



Bug#1026392: transition: gnat-12

2022-12-31 Thread Nicolas Boulenguez
Package: release.debian.org
Followup-For: Bug #1026392
X-Debbugs-Cc: Calum McConnell , Andreas Bombe 


Hello.

Here are the remaining blockers as far as I understand
https://release.debian.org/transitions/html/gnat-12.html.

libxmlada (orange line):
I fail to understand the problem.

libgmpada (red on i386):
I have uploaded a patch transforming the error into a warning.
The original bug remains but does not break the build anymore.
I have downgraded the severity of #1026828 accordingly.
Case closed.

whitakers-words (red line)
is removed from testing and should not block the transition.
The version in unstable depends on gnat-10 (none in experimental).
What do you recommend?
- avoid risking an interference with other packages
- source-only bin-NMU by you (nmu line in the initial mail)
- normal upload to unstable
- ?

ghdl (red line):
is removed from testing and should not block the transition.
The version in unstable depends on gnat-10 (lots of RC bugs).
The version in experimental depends on gcc-12 (a few RC bugs).
What do you recommend?
- avoid risking an interferenc with other packages
- reupload from experimental to unstable
- ?



Bug#990533: f2fs-tools: suggestions for the packaging

2022-12-27 Thread Nicolas Boulenguez
Source: f2fs-tools
Followup-For: Bug #990533

Hello.
Some suggestions have been applied from other sources.
The attached commits are rebased on 6b860197.
>From 529b36f439ab5445897c2399b260c0885fb79b74 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 1 Jul 2021 11:09:38 +0200
Subject: [PATCH 1/6] debian: remove get-orig-source target from debian/rules

Uscan is preferred when possible.
---
 debian/rules | 7 ---
 1 file changed, 7 deletions(-)

diff --git a/debian/rules b/debian/rules
index c106ea6..8e3aee4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -19,13 +19,6 @@ execute_before_dh_install:
 	find -name "*.la" -delete
 	rm debian/tmp/sbin/sg_write_buffer
 
-get-orig-source:
-	wget http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/f2fs-tools-$(DEB_VERSION_UPSTREAM).tar.gz
-	gunzip < f2fs-tools-$(DEB_VERSION_UPSTREAM).tar.gz | \
-		xz > f2fs-tools-$(DEB_VERSION_UPSTREAM).tar.xz
-	rm f2fs-tools-$(DEB_VERSION_UPSTREAM).tar.gz
-	mv f2fs-tools-$(DEB_VERSION_UPSTREAM).tar.xz f2fs-tools_$(DEB_VERSION_UPSTREAM).orig.tar.xz
-
 # dh_dwz when run on f2fs-tools-udeb ends up installing the
 # /usr/lib/debug/.dwz files into the udeb.  I think that's a bug,
 # but for now, override it by just saying... just don't.
-- 
2.30.2

>From e0958c92b6d4964f6e438d4062b552ec03816a3f Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 1 Jul 2021 11:12:22 +0200
Subject: [PATCH 2/6] debian: remove redundant libdir option from
 dh_auto_configure override

---
 debian/rules | 1 -
 1 file changed, 1 deletion(-)

diff --git a/debian/rules b/debian/rules
index 8e3aee4..f514ced 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,7 +12,6 @@ include /usr/share/dpkg/default.mk
 
 override_dh_auto_configure:
 	dh_auto_configure -- --sbindir=/sbin --disable-shared \
-		--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
 		--with-root-libdir=/lib/$(DEB_HOST_MULTIARCH)
 
 execute_before_dh_install:
-- 
2.30.2

>From fc6730a6e26d284088808906322ca04af4c2a47d Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 1 Jul 2021 11:14:00 +0200
Subject: [PATCH 3/6] debian: stop exporting build flags from debian/rules

Dh_auto_* tools already export the build flags, whether debian/rules
knowns about them or not.

In this case, debian/rules does not need to interfer.

The test_printenv target seems to have been introduced in order to
check the removed export.
---
 debian/rules | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/debian/rules b/debian/rules
index f514ced..8216eb8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,8 +4,7 @@
 
 export DEB_BUILD_MAINT_OPTIONS ?= hardening=+all
 
-DPKG_EXPORT_BUILDFLAGS = 1
-include /usr/share/dpkg/default.mk
+include /usr/share/dpkg/architecture.mk
 
 %:
 	dh $@
@@ -23,6 +22,3 @@ execute_before_dh_install:
 # but for now, override it by just saying... just don't.
 override_dh_dwz:
 	dh_dwz -N f2fs-tools-udeb
-
-test_printenv:
-	printenv | sort
-- 
2.30.2

>From ae0819ea18e4b7c15e0c7c267d0c9d1ada1b6ef8 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 5 Nov 2021 14:19:03 +0100
Subject: [PATCH 4/6] debian: prevent installation of sg_write_buffer from
 debian/not-installed

This declarative style is more readable than removal commands.
---
 debian/f2fs-tools-udeb.install | 3 ++-
 debian/f2fs-tools.install  | 4 +++-
 debian/not-installed   | 5 +
 debian/rules   | 4 
 4 files changed, 10 insertions(+), 6 deletions(-)
 create mode 100644 debian/not-installed

diff --git a/debian/f2fs-tools-udeb.install b/debian/f2fs-tools-udeb.install
index d48cf30..5779210 100644
--- a/debian/f2fs-tools-udeb.install
+++ b/debian/f2fs-tools-udeb.install
@@ -1 +1,2 @@
-/sbin
+# All but sbin/sg_write_buffer
+sbin/*f2fs*
diff --git a/debian/f2fs-tools.install b/debian/f2fs-tools.install
index c5dbdb2..1b7999a 100644
--- a/debian/f2fs-tools.install
+++ b/debian/f2fs-tools.install
@@ -1,2 +1,4 @@
-sbin/*
+# All but sbin/sg_write_buffer
+sbin/*f2fs*
+
 usr/share/man/man8/*.8
diff --git a/debian/not-installed b/debian/not-installed
new file mode 100644
index 000..5cb77ca
--- /dev/null
+++ b/debian/not-installed
@@ -0,0 +1,5 @@
+# Policy recommends not to install libtool .la files
+usr/lib/*/libf2fs*.la
+
+# See f2fs-tools.install and f2fs-tools-udeb.install
+sbin/sg_write_buffer
diff --git a/debian/rules b/debian/rules
index 8216eb8..c13326d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -13,10 +13,6 @@ override_dh_auto_configure:
 	dh_auto_configure -- --sbindir=/sbin --disable-shared \
 		--with-root-libdir=/lib/$(DEB_HOST_MULTIARCH)
 
-execute_before_dh_install:
-	find -name "*.la" -delete
-	rm debian/tmp/sbin/sg_write_buffer
-
 # dh_dwz when run on f2fs-tools-udeb ends up installing the
 # /usr/lib/debug/.dwz files into the udeb.  I think that's a bug,
 # but for now, override it by just saying... just don't.
-- 
2.30.2

>From e6f63491644644f877a950a907ac7d892d9254

Bug#960898: libtool: suggestions for the Debian packaging

2022-12-25 Thread Nicolas Boulenguez
Hello.

It seems that you have applied some suggestions in 2.4.7-5.
Thanks.

By the way, this version is not visible in the version control system
on salsa.

A new list of commits is attached.  I have rebased the remaining
changes on 2.4.7-5, removed some intrusive ones, add new ones, and
split some large commits in order to make the review easyer.
>From 2dcce4c7f3d507202f902d9b188ddbd718975781 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 15 May 2020 20:45:30 +0200
Subject: [PATCH 01/33] Simplify watch file

---
 debian/watch | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/debian/watch b/debian/watch
index a7c8ff5..ca1768f 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,2 +1,5 @@
 version=4
-https://ftp.gnu.org/gnu/libtool/libtool-(.*)\.tar\.gz debian uupdate pgpsigurlmangle=s/$/.sig/
+
+opts=\
+  pgpsigurlmangle=s/$/.sig/ \
+https://ftp.gnu.org/gnu/@PACKAGE@/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@
-- 
2.30.2

>From 04bdcb065cfb3785408a56dd7707f3a382420eed Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri, 15 May 2020 20:33:33 +0200
Subject: [PATCH 02/33] Update copyright years

---
 debian/copyright | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/debian/copyright b/debian/copyright
index 4b38672..9da191f 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -4,15 +4,15 @@ Upstream-Contact: https://www.gnu.org/software/libtool
 Source: https://ftp.gnu.org/pub/gnu/libtool
 
 Files: *
-Copyright:1996-2015 Free Software Foundation, Inc.
+Copyright:1996-2022 Free Software Foundation, Inc.
 License: GPL-2+
 
 Files: doc/*
-Copyright: 1996-2015 Free Software Foundation, Inc.
+Copyright: 1996-2022 Free Software Foundation, Inc.
 License: GFDL-NIV-1.3+
 
 Files: debian/*
-Copyright: 2018- Alastair McKinstry 
+Copyright: 2018-2022 Alastair McKinstry 
2007  Piotr Roszatycki 
2005-2016 Kurt Roeckx 
2003-2005 Scott James Remnant 
-- 
2.30.2

>From e01c5382aadd19e341d923064877b9a77f9c4f9b Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 16 May 2020 00:48:00 +0200
Subject: [PATCH 03/33] Update phrasing in DFSG-NIV license long description

---
 debian/copyright | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/debian/copyright b/debian/copyright
index 9da191f..f53be93 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -40,11 +40,11 @@ License: GPL-2+
 
 License: GFDL-NIV-1.3+
  Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3 or
- any later version published by the Free Software Foundation; with no
- Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
- Texts.  A copy of the license is included in the section entitled
- "GNU Free Documentation License".
+ under the terms of the GNU Free Documentation License, Version 1.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts.  A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
  .
  On Debian GNU/Linux systems, the complete text of the GNU Free
  Documentation License can be found in
-- 
2.30.2

>From 1712856755f9e4c3ca2dd1d39ec3e7909b206adc Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 16 May 2020 00:16:46 +0200
Subject: [PATCH 04/33] Update syntax of a lintian override

---
 debian/libltdl-dev.lintian-overrides | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debian/libltdl-dev.lintian-overrides b/debian/libltdl-dev.lintian-overrides
index 39a640a..b1020fe 100644
--- a/debian/libltdl-dev.lintian-overrides
+++ b/debian/libltdl-dev.lintian-overrides
@@ -2,4 +2,4 @@
 libltdl-dev binary: extra-license-file
 
 # the whole libltdl source is included, including README
-package-contains-documentation-outside-usr-share-doc usr/share/libtool/README
+package-contains-documentation-outside-usr-share-doc [usr/share/libtool/README]
-- 
2.30.2

>From 42c12bc6d8cefd5820d85be0ea45b725d86d1372 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sat, 16 May 2020 20:07:14 +0200
Subject: [PATCH 05/33] Fix doc-base, -doc now installs to /u/s/libtool

---
 debian/libtool-doc.doc-base | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/libtool-doc.doc-base b/debian/libtool-doc.doc-base
index 894b507..610ae27 100644
--- a/debian/libtool-doc.doc-base
+++ b/debian/libtool-doc.doc-base
@@ -5,5 +5,5 @@ Abstract: Portable shared library support for source code packages
 Section: Programming
 
 Format: HTML
-Index: /usr/share/doc/libtool-doc/libtool.html
-Files: /usr/share/doc/libtool-doc/*.html
+Index: /usr/share/doc/libtool/libtool.html
+Files: /usr/share/doc/libtool/libtool.html
-- 
2.30.2

>From 8ee465c5465a2dc336f82b85f548a19afc54 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Fri

Bug#1026392: transition: gnat-12

2022-12-23 Thread Nicolas Boulenguez
Package: release.debian.org
Followup-For: Bug #1026392

Libgnatcoll-db/23.0.0-2 in experimental builds on mipsel.

Libgmpada has failed on two different i386 buildds but succeeded on
the i386 porterbox. Bug #1026828 will prevent migration to testing.

As far as I know, we can start the reupload to unstable as soon as the
release team allows it.



Bug#1026392: transition: gnat-12

2022-12-23 Thread Nicolas Boulenguez
> libgnatcoll-db succesfully built on mipsel in the meantime.

Yes, I have uploaded a fixed version.

> > - are removed from testing because of #1020018,
> > - are updated in experimental, but now
> >   fail to build on a supported architecture.
> > I intend to
> > - fill RC bugs against them in order to prevent their migration from
> >   unstable to to testing.
> Against libgmpada and libnatcoll-db or are there also others?

This only applies to libgmpada and bug #1026828.

> > - reupload them from experimental to unstable with the other packages
> >   as part of the transition
> >   (so that the versions depending on gnat-11 disappear from unstable)
> >   (and so that RC-buggy but mostly usable versions are available)
> > - try to fix the issues after the transition is completed

> Given the upcoming freeze, I'd suggest fixing those as soon as possible.

I fear I don’t know what to do for libgmpada.  The build fails
reproductibly on buildds but succeeds on the i386 porterbox.



Bug#916475: ghdl: various suggestions to simplify the packaging

2022-12-21 Thread Nicolas Boulenguez
Source: ghdl
Followup-For: Bug #916475

Hello.

I see that you have committed most suggestions in this bug report.
Great!

Four were ignored, probably because you are busy with the build
failures.

Just in case, a rebased version is attached.

I have not tried a full rebuild, because it is also possible that you
prefer the existing code.
>From 9b98af64ac20f6e58674034bf07d8b6a589a3c33 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 14 Dec 2022 13:48:00 +0100
Subject: [PATCH 1/4] Simplify installation of the ghdl wrapper

---
 debian/ghdl-common.install| 7 ++-
 debian/installed-names/README | 2 ++
 debian/{ghdl.wrapper => installed-names/ghdl} | 0
 debian/rules  | 1 -
 4 files changed, 8 insertions(+), 2 deletions(-)
 create mode 100644 debian/installed-names/README
 rename debian/{ghdl.wrapper => installed-names/ghdl} (100%)
 mode change 100644 => 100755

diff --git a/debian/ghdl-common.install b/debian/ghdl-common.install
index d76d810e..7ac15337 100644
--- a/debian/ghdl-common.install
+++ b/debian/ghdl-common.install
@@ -1,3 +1,8 @@
-usr/bin/ghdl
+# This Debian-specific script lives under debian/, but cannot be named
+# debian/ghdl because this path is used by dh_install tools.
+# dh_install cannot rename it during the installation phase, so it
+# lives in debian/installed-names.
+debian/installed-names/ghdl usr/bin
+
 usr/lib/ghdl/src
 usr/lib/ghdl/include
diff --git a/debian/installed-names/README b/debian/installed-names/README
new file mode 100644
index ..2b391142
--- /dev/null
+++ b/debian/installed-names/README
@@ -0,0 +1,2 @@
+A comment in debian/ghdl-common.install explains why this directory
+exists.
diff --git a/debian/ghdl.wrapper b/debian/installed-names/ghdl
old mode 100644
new mode 100755
similarity index 100%
rename from debian/ghdl.wrapper
rename to debian/installed-names/ghdl
diff --git a/debian/rules b/debian/rules
index 9644cf9a..b1c90406 100755
--- a/debian/rules
+++ b/debian/rules
@@ -159,7 +159,6 @@ override_dh_auto_build:
 	fi
 
 override_dh_auto_install:
-	install -pD debian/ghdl.wrapper $(CURDIR)/debian/tmp/usr/bin/ghdl
 	@echo
 	@echo 
 	@echo Installing with mcode backend
-- 
2.30.2

>From 246eb3cb650ba8de44d05d6483356e960c3ae674 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 14 Dec 2022 14:02:42 +0100
Subject: [PATCH 2/4] Replace some hand-written commands with dh_install or
 link debhelper files

This should be a no-op, but reduce the overall complexity.

Shell/Make tests are replaced with package names in the debhelper
configuration file name.

Symbolic links are explicitly marked as such instead of created in the
already complex debian/rules, then installed as normal files by
debian/*.install.
---
 debian/ghdl-common.install |  6 +-
 debian/ghdl-gcc.install|  1 -
 debian/ghdl-gcc.links  |  3 +++
 debian/ghdl-llvm.install   |  1 -
 debian/ghdl-llvm.links |  3 +++
 debian/ghdl-mcode.install  |  1 -
 debian/ghdl-mcode.links|  3 +++
 debian/rules   | 19 ++-
 8 files changed, 16 insertions(+), 21 deletions(-)

diff --git a/debian/ghdl-common.install b/debian/ghdl-common.install
index 7ac15337..5b739b1b 100644
--- a/debian/ghdl-common.install
+++ b/debian/ghdl-common.install
@@ -4,5 +4,9 @@
 # lives in debian/installed-names.
 debian/installed-names/ghdl usr/bin
 
-usr/lib/ghdl/src
+# Depending on DEB_BUILD_PROFILES, between one and three copies are
+# installed under debian/tmp. A redundant shell wildcard should be
+# sufficient as long as the contents match.
+usr/lib/ghdl/*/vhdl/src/usr/lib/ghdl
+
 usr/lib/ghdl/include
diff --git a/debian/ghdl-gcc.install b/debian/ghdl-gcc.install
index b721e0cd..a7c5c6f0 100644
--- a/debian/ghdl-gcc.install
+++ b/debian/ghdl-gcc.install
@@ -7,6 +7,5 @@ usr/lib/ghdl/gcc/vhdl/*.a
 usr/lib/ghdl/gcc/vhdl/grt.*
 usr/lib/ghdl/gcc/vhdl/grt-*.*
 
-usr/lib/ghdl/gcc/vhdl/src
 usr/lib/ghdl/gcc/vhdl/std
 usr/lib/ghdl/gcc/vhdl/ieee
diff --git a/debian/ghdl-gcc.links b/debian/ghdl-gcc.links
index 6ba63a7b..70f476c2 100644
--- a/debian/ghdl-gcc.links
+++ b/debian/ghdl-gcc.links
@@ -1 +1,4 @@
+# The actual files are provided by the ghdl-common package.
+usr/lib/ghdl/srcusr/lib/ghdl/gcc/vhdl/src
+
 usr/share/man/man1/ghdl.1.gz usr/share/man/man1/ghdl-gcc.1.gz
diff --git a/debian/ghdl-llvm.install b/debian/ghdl-llvm.install
index b9abd68e..d2236f97 100644
--- a/debian/ghdl-llvm.install
+++ b/debian/ghdl-llvm.install
@@ -6,6 +6,5 @@ usr/lib/ghdl/llvm/vhdl/*.a
 usr/lib/ghdl/llvm/vhdl/grt.*
 usr/lib/ghdl/llvm/vhdl/grt-*.*
 
-usr/lib/ghdl/llvm/vhdl/src
 usr/lib/ghdl/llvm/vhdl/std
 usr/lib/ghdl/llvm/vhdl/ieee
diff --git a/debian/ghdl-llvm.links b/debian/ghdl-llvm.links
index 52b5924a..e4471ded 100644
--- a/debian/ghdl-llvm.links
+++ b/debian/ghdl-llvm.links
@@ -1 +1,4 @@
+# T

Bug#1026828: libgmpada: FTBFS on i386: raised ADA.ASSERTIONS.ASSERTION_ERROR : demo.adb:119

2022-12-21 Thread Nicolas Boulenguez
Source: libgmpada
Version: 1.5-1
Severity: serious
Tags: ftbfs
Justification: fails to build on a supported architecture

A post-build test fails on i386 buildds:
https://buildd.debian.org/status/fetch.php?pkg=libgmpada=i386=1.5-1=1671621582=0
https://buildd.debian.org/status/fetch.php?pkg=libgmpada=i386=1.5-1=1661971646=0
but succeeds on an i386 porterbox.



Bug#1026392: transition: gnat-12

2022-12-19 Thread Nicolas Boulenguez
Package: release.debian.org
Severity: normal
User: release.debian@packages.debian.org
Usertags: transition

Hello.

The gcc-V source package builds the Ada compiler (gnat-V) and
companion library (libgnat-V).
The default Ada compiler is selected by the gnat package.
In unstable and testing, gnat Depends: gnat-11.
In experimental, gnat Depends: gnat-12.

Most Ada packages are currently removed from testing because of
#1020018 (in libxmlada, a quite common indirect build-dependency via
gprbuild) (fixed by this transition).

Ada libraries have specific requirements.
* They must Build-Depend: gnat (>= V) gnat (<< V+1).
* Each -dev package name carries a version, similar to the shared
  object version for lib packages.  Most changes in the source require
  a renaming of the -dev package, and a source upload of all reverse
  dependencies.
  In order to reduce the number of such transitions, many unrelated
  changes, like new upstream releases, are introduced with a libgnat
  transition and tested in experimental.
* Each -dev package depends on both gnat and gnat-V.

GCC builds no libgnat-V-dev package. The sources for the Ada standard
library are distributed with the compiler in the gnat-V package.  So
it is convenient to track the transition with the libgnat-V package
instead (even when the ABI is unchanged).

Ben file:

title = "gnat-12";
is_affected = .depends ~ "libgnat-8" | .depends ~ "libgnat-9" | .depends ~ 
"libgnat-10" | .depends ~ "libgnat-11" | .depends ~ "libgnat-12";
is_good = .depends ~ "libgnat-12";
is_bad = .depends ~ "libgnat-8" | .depends ~ "libgnat-9" | .depends ~ 
"libgnat-10" | .depends ~ "libgnat-11";

libgmpada
  
https://buildd.debian.org/status/fetch.php?pkg=libgmpada=i386=1.5-1=1661971646=0
libgnatcoll-db
  
https://buildd.debian.org/status/fetch.php?pkg=libgnatcoll-db=mipsel=23%7E20220814-1=1661841082=0
- are removed from testing because of #1020018,
- are updated in experimental, but now
  fail to build on a supported architecture.
I intend to
- fill RC bugs against them in order to prevent their migration from
  unstable to to testing.
- reupload them from experimental to unstable with the other packages
  as part of the transition
  (so that the versions depending on gnat-11 disappear from unstable)
  (and so that RC-buggy but mostly usable versions are available)
- try to fix the issues after the transition is completed
Is this the right way to proceed?

adacgi
adasockets
ahven
anet
dbusada
gprbuild
gprbuild
libalog
libaunit
libflorist
libgnatcoll
libgnatcoll-bindings
libgtkada
liblog4ada
libncursesada
libtemplates-parser
libtexttools
libxmlada
libxmlada
libxmlezout
pcscada
  ready in experimental, removed from unstable

plplot
  ready in experimental

dh-ada-library
gprconfig-kb
  ready in experimental
  (not Ada libraries, but connected and part of the transition)

ghdl
music123
  are ready in experimental
  (not Ada libraries, but part of the transition because of dh-ada-library/8)

These source packages produce no library and should only need a
bin-NMU in due time:
nmu   topal_81-2 . ANY . -m 'Rebuild with gnat-12'
nmu whitakers-words_0.2020.10.27-1.2 . ANY . -m 'Rebuild with gnat-12'
nmu phcpack_2.4.86+dfsg-2. ANY . -m 'Rebuild with gnat-12'

ada-reference-manual
  only requires gnat at build time and should not be affected.

adabrowse adacontrol asis gnat-gps libaws
  are removed from testing because of unrelated RC bugs
  and should not block anything.



Bug#1025733: merge 1020018 1025733

2022-12-17 Thread Nicolas Boulenguez
forcemerge 1020018 1025733
thanks

This is a duplicate.
1020018 is closed by libxmlada/23.0.0-1 in experimental.



Bug#1010751: clone: handle -b optional branch specification in VCS-Git

2022-08-18 Thread Nicolas Boulenguez
Package: git-buildpackage
Followup-For: Bug #1010751

Hello.
The attached commit implements your suggestions.
>From 3f8debeeeffbf57e77234848317b38d12b2d3363 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sun, 8 May 2022 16:51:26 +0200
Subject: [PATCH] clone: handle -b optional branch specification in VCS-Git

---
 gbp/scripts/clone.py   | 35 ---
 tests/29_test_gbp_clone.py | 18 --
 2 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/gbp/scripts/clone.py b/gbp/scripts/clone.py
index 7e02f0e2..4825c572 100755
--- a/gbp/scripts/clone.py
+++ b/gbp/scripts/clone.py
@@ -47,10 +47,15 @@ def apt_showsrc(pkg):
 
 
 def vcs_git_url(pkg):
+"""
+(url,  None)   most of the time
+(url,  branch) when the VCS-Git contains -b
+(None, None)   when the VCS-Git field is missing
+"""
 repos = {}
 
 out = apt_showsrc(pkg)
-vcs_re = re.compile(r'(x-)?vcs-git:\s*(?P[^ ]+)$', re.I)
+vcs_re = re.compile(r'(?:x-)?vcs-git:\s*([^ ]+)(?:\s+-b\s+([^ ]+))?$', re.I)
 version_re = re.compile(r'Version:\s*(?P.*)$', re.I)
 end_re = re.compile(r'\s*$')
 
@@ -58,7 +63,7 @@ def vcs_git_url(pkg):
 for line in out.split('\n'):
 m = vcs_re.match(line)
 if m:
-repo = m.group('repo')
+repo = m.groups()
 continue
 m = version_re.match(line)
 if m:
@@ -72,7 +77,7 @@ def vcs_git_url(pkg):
 
 if not repos:
 gbp.log.err("Can't find any vcs-git URL for '%s'" % pkg)
-return None
+return None, None
 
 s = sorted(repos, key=cmp_to_key(DpkgCompareVersions()))
 return repos[s[-1]]
@@ -80,27 +85,31 @@ def vcs_git_url(pkg):
 
 def repo_to_url(repo):
 """
+(url,  None)   most of the time
+(url,  branch) when VCS-Git is required and contains a -b option
+(None, None)   when VCS-Git is required but missing.
+
 >>> repo_to_url("https://foo.example.com;)
-'https://foo.example.com'
+('https://foo.example.com', None)
 >>> repo_to_url("salsa:agx/git-buildpackage")
-'https://salsa.debian.org/agx/git-buildpackage.git'
+('https://salsa.debian.org/agx/git-buildpackage.git', None)
 >>> repo_to_url("github:agx/git-buildpackage")
-'https://github.com/agx/git-buildpackage.git'
+('https://github.com/agx/git-buildpackage.git', None)
 """
 parts = repo.split(":", 1)
 if len(parts) != 2:
-return repo
+return repo, None
 else:
 proto, path = parts
 
 if proto == 'salsa':
-return 'https://salsa.debian.org/%s.git' % path
+return 'https://salsa.debian.org/%s.git' % path, None
 if proto == 'github':
-return 'https://github.com/%s.git' % path
+return 'https://github.com/%s.git' % path, None
 elif proto in ['vcsgit', 'vcs-git']:
 return vcs_git_url(path)
 else:
-return repo
+return repo, None
 
 
 def add_upstream_vcs(repo):
@@ -189,7 +198,7 @@ def main(argv):
 return 1
 else:
 remote_repo = args[1]
-source = repo_to_url(remote_repo) if options.aliases else remote_repo
+source, vcs_git_branch = repo_to_url(remote_repo) if options.aliases else remote_repo, None
 if not source:
 return 1
 
@@ -212,6 +221,10 @@ def main(argv):
 postclone = options.postclone
 (options, args) = parse_args(argv)
 
+if vcs_git_branch and vcs_git_branch != options.debian_branch:
+gbp.log.warn(f'VCS-Git: -b {vcs_git_branch} overrides --debian-branch={options.debian_branch}')
+options.debian_branch = vcs_git_branch
+
 # Track all branches:
 if options.all:
 remotes = repo.get_remote_branches()
diff --git a/tests/29_test_gbp_clone.py b/tests/29_test_gbp_clone.py
index f1ac3925..b1930612 100644
--- a/tests/29_test_gbp_clone.py
+++ b/tests/29_test_gbp_clone.py
@@ -15,7 +15,7 @@ Vcs-Git: git://honk.sigxcpu.org/git/git-buildpackage.git
 
 Version: 0.8.14
 Standards-Version: 3.9.8
-Vcs-Git: https://git.sigxcpu.org/cgit/git-buildpackage/ -b foo
+Vcs-Git: https://git.sigxcpu.org/cgit/git-buildpackage/ unexpected_info
 
 Version: 0.8.12.2
 Standards-Version: 3.9.8
@@ -31,4 +31,18 @@ Vcs-Git: git://honk.sigxcpu.org/git/git-buildpackage.git
 @patch('gbp.scripts.clone.apt_showsrc', return_value=show_src)
 def test_vcs_git_url(self, patch):
 self.assertEqual(vcs_git_url('git-buildpackage'),
- 'https://git.sigxcpu.org/cgit/git-buildpackage/')
+ ('https://git.sigxcpu.org/cgit/git-buildpackage/', None))
+
+@skip_without_cmd('dpkg')
+@patch('gbp.scripts.clone.apt_showsrc', return_value="""
+Version: 0.7.6-4
+Vcs-Git: https://git.codelabs.ch/git/pcscada.git -b debian
+""")
+def 

Bug#1012509: gprconfig-kb: gnatgcc breaks the build of libgnatcoll-bindings

2022-06-08 Thread Nicolas Boulenguez
Package: gprconfig-kb
Version: 22.0.0-4
Severity: normal
Control: affects -1 libgnatcoll-bindings libncursesada libtexttools

22.0.0-4 compiles C sources with gnatgcc instead of gcc.

After this change, gprbuild does not always set -fPIC anymore on the
command line compiling C sources for a shared library.

This breaks the linking step later.
/usr/bin/ld: python3/obj/relocatable/python_support.o: warning: relocation 
against `_Py_FalseStruct' in read-only section `.text'
/usr/bin/ld: python3/obj/relocatable/python_support.o: relocation R_X86_64_PC32 
against symbol `PyExc_TypeError' can not be used when making a shared object; 
recompile with -fPIC



Bug#1008152: gprbuild: FTBFS during binary-indep build

2022-05-31 Thread Nicolas Boulenguez
Source: gprbuild
Followup-For: Bug #1008152

Hello.

A new occurrence has affected 2022.0.0-5 on buildds:
https://buildd.debian.org/status/fetch.php?pkg=gprbuild=all=2022.0.0-5=1653957840=0
Extension error (sphinx.environment.collectors.toctree):
Handler >
  for event 'env-get-updated'
  threw an exception (exception: pickle data was truncated)

The changes between gprbuild/2022.0.0-4 and -5 certainly don’t affect
-indep builds, and a local build succeeds, so the 'unreproducible' tag
remains.



Bug#1011991: RM: libgnatcoll-python -- ROM; NPOASR; temporary package not needed anymore

2022-05-28 Thread Nicolas Boulenguez
Package: ftp.debian.org
Severity: normal
Control: unblock 936624 by 936869

Hello.

Please remove these packages from unstable:
libgnatcoll-python:src
libgnatcoll-python19
libgnatcoll-python19-dev

I am the maintainer of libgnatcoll-bindings and libgnatcoll-python.

The normal situation is that
the libgnatcoll-bindings source package produces
  libgnatcoll-${COMPONENT}{SOVERSION} and
  libgnatcoll-${COMPONENT}{ALIVERSION}-dev
for various COMPONENTs including python.

A few years ago, the python component was ready for both python2&3,
but its only reverse dependency gnat-gps was requiring python2.

As a temporary measure, the separate libgnatcoll-python source package
was introduced.  This allowed the other components to be updated in
testing, while the python(2) component and gnat-gps were RC-buggy in
unstable (#936869 and #936624 respectively).

Nowadays
* gnat-gps has been RC-buggy for a while.
  It depends on libgnatcoll-python18 that no one is building anymore.
* If/when we manage to rebuild gnat-gps, latest upstream version is
  ready for python3. Hence the unblock command above.

There is no need for a separate package anymore, so
libgnatcoll-bindings builds the python(3) component again.
libgnatcoll-python3.1
libgnatcoll-python3.1-dev
These fully replace the removed packages.

Thanks.



Bug#1010468: transition: gnat-11

2022-05-28 Thread Nicolas Boulenguez
Package: release.debian.org
Followup-For: Bug #1010468

Hello.
As far as I understand, the gnat-11 transition is complete and this
bug can be closed.



Bug#998059: reproducibility workaround for sphinx objects.inv

2022-05-26 Thread Nicolas Boulenguez
A subclass of such issues affects punctuation.
For example, a straight apostrophe ' sometimes becomes an apostrophe ’
in the libxmlada package.
There are several links in the smartquotes section of
https://www.sphinx-doc.org/en/master/usage/configuration.html

Easy work-around:
  smartquotes=False in conf.py

Proper fix, when possible:
  use the right character in the .md sources in the first place.



Bug#1011150: git-buildpackage: suggestions improving the packaging

2022-05-25 Thread Nicolas Boulenguez
First, thanks for welcoming suggestions and taking the time to explain
your concerns.
I have rebased the remaining suggestions, split them in smaller
commits, and adapted some.

1 is a matter of taste.

2 should be consensual, but may need a rebase if 1 is not

> > Subject: [PATCH 5/8] debhelper: generate some lists in configuration files
> i've skipped this one. I'm fine with using more globs but rather not use
> a script as it might defeat dh_listmissing.

3 should be consensual

4
I think that the solution I have selected prevents such problems.
However, I fully agree with your concern so I have made the intention
explicit in comments near the code.
If my reasoning does not convince you, let’s forget my suggestion and
keep a hand-written list.

> > Subject: [PATCH 7/8] Makefile: spare unneeded recursive Make invokations
> I skipped that one just because I think being a bit more explicit is
> o.k. here.

5 fixes a bug

6 is more explicit in my opinion because debian/rules explicitly
contains the word 'export', but you decide.
>From f5bafea563ed3e1a7bc8b8b19b02007b13cf487e Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 26 May 2022 00:47:22 +0200
Subject: [PATCH 1/6] Move some cleaning from debian/rules to debian/clean

---
 debian/clean | 2 ++
 debian/rules | 2 --
 2 files changed, 2 insertions(+), 2 deletions(-)
 create mode 100644 debian/clean

diff --git a/debian/clean b/debian/clean
new file mode 100644
index ..0ac9e25f
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,2 @@
+build/
+gbp/version.py
diff --git a/debian/rules b/debian/rules
index 0802452d..ad61ba7a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -13,6 +13,4 @@ execute_after_dh_fixperms:
 	chmod a+x debian/git-buildpackage/usr/lib/python3/dist-packages/gbp/scripts/supercommand.py
 
 execute_after_dh_auto_clean:
-	rm -rf build/
 	make -C docs/ clean
-	-rm gbp/version.py
-- 
2.30.2

>From 73dfa8e10bfc46a987906648285083787968e912 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 26 May 2022 00:49:25 +0200
Subject: [PATCH 2/6] debian/clean: add forgotten files

---
 debian/clean | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/debian/clean b/debian/clean
index 0ac9e25f..026cf3bf 100644
--- a/debian/clean
+++ b/debian/clean
@@ -1,2 +1,5 @@
 build/
+coverage.xml
+gbp.egg-info/
 gbp/version.py
+nosetests.xml
-- 
2.30.2

>From cc6df249062c7604df8f175ecb524bcffe97a2db Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 26 May 2022 01:44:07 +0200
Subject: [PATCH 3/6] debian/rules: clean __pycache__ directories generated
 during the build

---
 debian/rules | 1 +
 1 file changed, 1 insertion(+)

diff --git a/debian/rules b/debian/rules
index ad61ba7a..a20be4bb 100755
--- a/debian/rules
+++ b/debian/rules
@@ -14,3 +14,4 @@ execute_after_dh_fixperms:
 
 execute_after_dh_auto_clean:
 	make -C docs/ clean
+	find gbp -name __init__.py -printf '%h/__pycache__/\n' | xargs rm -fr
-- 
2.30.2

>From 2b3e0c9c61b63c59db02c9bf917286a6bcac63a4 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Tue, 17 May 2022 15:27:41 +0200
Subject: [PATCH 4/6] debhelper: generate some lists in configuration files

---
 debian/git-buildpackage-rpm.install | 17 ---
 debian/git-buildpackage.install | 47 -
 debian/not-installed| 15 -
 3 files changed, 32 insertions(+), 47 deletions(-)
 mode change 100644 => 100755 debian/git-buildpackage-rpm.install
 mode change 100644 => 100755 debian/git-buildpackage.install
 mode change 100644 => 100755 debian/not-installed

diff --git a/debian/git-buildpackage-rpm.install b/debian/git-buildpackage-rpm.install
old mode 100644
new mode 100755
index f79d4f17..0d1c755d
--- a/debian/git-buildpackage-rpm.install
+++ b/debian/git-buildpackage-rpm.install
@@ -1,6 +1,13 @@
+#!/bin/sh
+set -C -e -f -u
+
+# This script is normally executed after dh_auto_install and could
+# just parse debian/tmp.  It parses gbp/ instead so that:
+# * it can be checked at any time by simply executing it.
+# * it does not interfer with dh_listmissing.
+find gbp -path '*rpm*.py' -printf \
+ 'usr/lib/python3.*/dist-packages/%p usr/lib/python3/dist-packages/%h\n'
+
+cat <>From e5eadf75333b17a7aba226ebafdfdca28a5e34a1 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 26 May 2022 01:53:54 +0200
Subject: [PATCH 5/6] debian/rules: really export GBP_NETWORK_TESTS to tests

$(MAKE) GBP_NETWORK_TESTS=1
was setting a Make variable in the sub-Make, but not exporting it for
test/*.py subprocesses.
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index db5ad88e..6134edab 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@ TEST_LOCALE?=C.UTF-8
 all: syntax-check test
 
 all+net:
-	$(MAKE) GBP_NETWORK_TESTS=1 all
+	GBP_NETWORK_TESTS=1 $(MAKE) all
 
 test:
 	export HOME=/nonexisting;   \
-- 
2.30.2

>From 1b41bebd6543cd7a46596fc79

Bug#1011556: dh-octave: provide dh-sequence-octave virtual package, dh_auto_install to debian/tmp

2022-05-24 Thread Nicolas Boulenguez
Package: dh-octave
Severity: wishlist
Tags: patch

Hello.
The attached suggestions may simplify the use of dh-octave, especially
for source packages building several binary packages.
>From 8f56b92d51e122a8c50e12c0c14da0c37bba6acb Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Tue, 24 May 2022 21:13:45 +0200
Subject: [PATCH 1/4] d/control: let dh-octave provide dh-sequence-octave

Debhelper recognizes this special formal packages in Build-Depends and
adds --with=octave to the dh parameters.

This is quite convenient when the dependency is restricted to
architecture-independent builds or by profiles.  In such scenarios,
several non-trivial conditionals can be avoided in debian/rules.
---
 debian/control | 1 +
 1 file changed, 1 insertion(+)

diff --git a/debian/control b/debian/control
index 8cc3d4a..280752f 100644
--- a/debian/control
+++ b/debian/control
@@ -16,6 +16,7 @@ Vcs-Git: https://salsa.debian.org/pkg-octave-team/dh-octave.git
 Rules-Requires-Root: no
 
 Package: dh-octave
+Provides: dh-sequence-octave
 Architecture: all
 Depends: octave-dev,
  debhelper-compat (= 13),
-- 
2.30.2

>From e67ffe5ff0858c3722e8c100bd71b1ffed975b09 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Tue, 24 May 2022 22:13:54 +0200
Subject: [PATCH 2/4] =?UTF-8?q?install-pkg.m:=20implement=20non-octave=20p?=
 =?UTF-8?q?arts=20with=20perl=E2=80=99s=20Dh=5FLib?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The effect should be equivalent, with a slight improvement when
debhelper verbose option is enabled.
---
 buildsystem.pm | 22 +-
 install-pkg.m  | 23 +--
 2 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/buildsystem.pm b/buildsystem.pm
index 974b275..ffd3dab 100644
--- a/buildsystem.pm
+++ b/buildsystem.pm
@@ -10,13 +10,33 @@ sub DESCRIPTION {
 
 sub install {
 my $this = shift;
+my $destdir = "debian/" . sourcepackage();
+my $arch = dpkg_architecture_value("DEB_HOST_MULTIARCH");
+my $mpath = "$destdir/usr/share/octave/packages";
+my $bpath = "$destdir/usr/lib/$arch/octave/packages";
+
 $this->doit_in_sourcedir ("octave",
   "--no-gui",
   "--no-history",
   "--silent",
   "--no-init-file",
   "--no-window-system",
-  "/usr/share/dh-octave/install-pkg.m")
+  "/usr/share/dh-octave/install-pkg.m",
+  $mpath, $bpath);
+
+doit ("rmdir", "--ignore-fail-on-non-empty", "-p", "$mpath", "$bpath");
+
+# Remove unnecessary documentation files
+doit ("rm", "-fr", "$mpath/*/doc");
+doit ("rm", "-f", "$mpath/*/packinfo/COPYING");
+
+# Fix permission of installed *.oct and *.mex files, as per FHS 3.0
+# sections 4.6 and 4.7 (see Bug#954149)
+doit ("chmod", "-x", "$bpath/*/*/*.oct");
+doit ("chmod", "-x", "$bpath/*/*/*.mex");
+
+# Remove left over files *-tst
+doit ("rm", "-f", "$bpath/*/*/*-tst");
 }
 
 sub clean {
diff --git a/install-pkg.m b/install-pkg.m
index 0a343ad..d586c13 100644
--- a/install-pkg.m
+++ b/install-pkg.m
@@ -24,12 +24,7 @@ if (exist ("./PKG_ADD") == 2)
 movefile ("PKG_ADD", "PKG_ADD.bak");
 endif
 
-package = sysout ("grep ^Source: debian/control | cut -f2 -d\\ ");
-debpkg = [pwd(), "/debian/", package];
-mpath = [debpkg, "/usr/share/octave/packages"];
-arch = sysout ("dpkg-architecture -qDEB_HOST_MULTIARCH");
-bpath = [debpkg, "/usr/lib/", arch, "/octave/packages"];
-pkg ("prefix", mpath, bpath);
+pkg ("prefix", argv(){1}, argv(){2});
 
 pkg ("local_list", fullfile (pwd (), "local-list"));
 pkg ("global_list", fullfile (pwd (), "global-list"));
@@ -41,19 +36,3 @@ if (exist ("PKG_ADD.bak") == 2)
 endif
 
 pkg -verbose -nodeps install .
-
-system (sprintf ("rmdir --ignore-fail-on-non-empty -p %s %s",
- mpath, bpath));
-
-### Remove unnecessary documentation files
-pkgdir = "debian/*/usr/share/octave/packages/*";
-system (sprintf ("rm -rf %s/doc", pkgdir));
-system (sprintf ("rm -f %s/packinfo/COPYING", pkgdir));
-
-### Fix permission of installed *.oct and *.mex files, as per FHS 3.0
-### sections 4.6 and 4.7 (see Bug#954149)
-system ("chmod -x debian/*/usr/lib/*/octave/packages/*/*/*.oct");
-system ("chmod -x debian/*/usr/lib/*/octave/packages/*/*/

Bug#1011323: Acknowledgement (lablgtk2: Please remove the obsolete gtkgl/glarea component)

2022-05-22 Thread Nicolas Boulenguez
Here is the patch.
>From cd9a07159f574cab3c21497fd47528adc7526235 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 19 May 2022 12:24:00 +0200
Subject: Remove the gtkgl/glarea component

No package depends on liblablgtk2-gl-ocaml, and it is the last package
depending on libgtkgl2, which should be removed from Debian (#967808).

diff --git a/debian/META.lablgtk2-gl b/debian/META.lablgtk2-gl
deleted file mode 100644
index 0fab3c5..000
--- a/debian/META.lablgtk2-gl
+++ /dev/null
@@ -1,9 +0,0 @@
-version="2.18.5"
-directory="+lablgtk2"
-requires = "lablgtk2"
-
-package "gtkgl" (
-  requires = "lablgtk2 lablgl"
-  archive(byte) = "lablgtkgl.cma"
-  archive(native) = "lablgtkgl.cmxa"
-)
diff --git a/debian/control b/debian/control
index fd8f51b..e7fd344 100644
--- a/debian/control
+++ b/debian/control
@@ -9,10 +9,8 @@ Build-Depends:
  debhelper-compat (= 13),
  dh-ocaml,
  ocaml,
- liblablgl-ocaml-dev,
  libncurses5-dev,
  libgtk2.0-dev,
- libgtkgl2.0-dev,
  librsvg2-dev,
  libgtkspell-dev,
  ocaml-findlib
@@ -35,19 +33,6 @@ Description: runtime libraries for OCaml bindings for GTK+ version 2
  This package include only the dynamic libraries needed for running dynamic
  bytecode executables.
 
-Package: liblablgtk2-gl-ocaml
-Architecture: any
-Depends:
- ${ocaml:Depends},
- ${shlibs:Depends},
- ${misc:Depends}
-Provides: ${ocaml:Provides}
-Description: runtime libraries for OCaml bindings to GtkGL
- lablgtk2 contains bindings for GTK+ 2.x and Objective Caml.
- .
- This package include only the dynamic libraries needed for running dynamic
- bytecode executables using GtkGL functionalities.
-
 Package: liblablgtk2-gnome-ocaml
 Architecture: any
 Depends:
@@ -63,7 +48,7 @@ Description: runtime libraries for OCaml bindings to GNOME
 
 Package: liblablgtk2-ocaml-dev
 Architecture: any
-Suggests: liblablgtk2-gl-ocaml-dev, liblablgtk2-gnome-ocaml-dev
+Suggests: liblablgtk2-gnome-ocaml-dev
 Depends:
  libgtk2.0-dev,
  libgtkspell-dev,
@@ -77,22 +62,6 @@ Description: OCaml bindings to Gtk+ version 2
  .
  This package contains the development files of lablgtk.
 
-Package: liblablgtk2-gl-ocaml-dev
-Architecture: any
-Suggests: liblablgtk2-gnome-ocaml-dev
-Depends:
- libgtkgl2.0-dev,
- ${ocaml:Depends},
- ${shlibs:Depends},
- ${misc:Depends}
-Provides: ${ocaml:Provides}
-Recommends: liblablgtk2-ocaml-doc
-Description: OCaml bindings to GtkGL
- lablgtk2 contains bindings for GTK+ 2.x and OCaml.
- .
- This package contains the development files of lablgtk for libraries using
- GtkGL.
-
 Package: liblablgtk2-gnome-ocaml-dev
 Architecture: any
 Depends:
@@ -114,7 +83,6 @@ Architecture: all
 Depends: ${misc:Depends}
 Enhances:
  liblablgtk2-ocaml-dev,
- liblablgtk2-gl-ocaml-dev,
  liblablgtk2-gnome-ocaml-dev,
 Description: OCaml bindings to Gtk+ version 2 (documentation)
  LablGTK2 contains bindings for GTK+ 2.x and OCaml.
diff --git a/debian/liblablgtk2-gl-ocaml-dev.docs b/debian/liblablgtk2-gl-ocaml-dev.docs
deleted file mode 100644
index e845566..000
--- a/debian/liblablgtk2-gl-ocaml-dev.docs
+++ /dev/null
@@ -1 +0,0 @@
-README
diff --git a/debian/liblablgtk2-gl-ocaml-dev.install.in b/debian/liblablgtk2-gl-ocaml-dev.install.in
deleted file mode 100644
index 030aa50..000
--- a/debian/liblablgtk2-gl-ocaml-dev.install.in
+++ /dev/null
@@ -1,4 +0,0 @@
-@OCamlStdlibDir@/lablgtk2/glGtk.*
-@OCamlStdlibDir@/lablgtk2/liblablgtkgl2*
-OPT: @OCamlStdlibDir@/lablgtk2/lablgtkgl.a
-OPT: @OCamlStdlibDir@/lablgtk2/lablgtkgl.cmxa
diff --git a/debian/liblablgtk2-gl-ocaml.docs b/debian/liblablgtk2-gl-ocaml.docs
deleted file mode 100644
index e845566..000
--- a/debian/liblablgtk2-gl-ocaml.docs
+++ /dev/null
@@ -1 +0,0 @@
-README
diff --git a/debian/liblablgtk2-gl-ocaml.install.in b/debian/liblablgtk2-gl-ocaml.install.in
deleted file mode 100644
index 0ae766f..000
--- a/debian/liblablgtk2-gl-ocaml.install.in
+++ /dev/null
@@ -1,4 +0,0 @@
-debian/META.lablgtk2-gl@OCamlStdlibDir@/METAS
-@OCamlStdlibDir@/lablgtk2/dlllablgtkgl2.so @OCamlDllDir@
-@OCamlStdlibDir@/lablgtk2/lablgtkgl.cma
-DYN: @OCamlStdlibDir@/lablgtk2/lablgtkgl.cmxs
diff --git a/debian/liblablgtk2-ocaml-dev.install.in b/debian/liblablgtk2-ocaml-dev.install.in
index e000ad6..8de1759 100644
--- a/debian/liblablgtk2-ocaml-dev.install.in
+++ b/debian/liblablgtk2-ocaml-dev.install.in
@@ -43,7 +43,6 @@ usr/bin/lablgtk2
 @OCamlStdlibDir@/lablgtk2/gtkEdit.*
 @OCamlStdlibDir@/lablgtk2/gtkEnums.*
 @OCamlStdlibDir@/lablgtk2/gtkFile.*
-@OCamlStdlibDir@/lablgtk2/gtkgl_tags.h
 @OCamlStdlibDir@/lablgtk2/gtkInit.*
 @OCamlStdlibDir@/lablgtk2/gtkList.*
 @OCamlStdlibDir@/lablgtk2/gtkMain.*
diff --git a/debian/liblablgtk2-ocaml-doc.ocamldoc.in b/debian/liblablgtk2-ocaml-doc.ocamldoc.in
index 2b9e078..587ddae 100644
--- a/debian/liblablgtk2-ocaml-doc.ocamldoc.in
+++ b/debian/liblablgtk2-ocaml-doc.ocamldoc.in
@@ -1,4 +1,3 @@
 -I src
--I @OCamlStdlibDir@/lablgl
 -I @OCamlStdlibDir@/t

Bug#1011324: qr-tools: trivial suggestions simplifying the Debian packaging

2022-05-19 Thread Nicolas Boulenguez
Source: qr-tools
Severity: wishlist
Tags: patch

Hello.
The attached commits arguably improve the Debian packaging,
without changing the binary packages as far as I know.
Please apply the ones you find relevant.
Thanks.
>From 4d854152b72c73a2b51444e2f03e733cce7a35bd Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 19 May 2022 16:10:56 +0200
Subject: [PATCH 1/5] Replace get-orig-source with Files-Excluded

The Debian policy recommends to replace the get-orig-source target in
debian/rules with a debian/watch file when possible.  The
Files-Excluded field in debian/copyright now allows uscan to fully
replace a hand-written target.
---
 debian/copyright |  1 +
 debian/rules | 16 
 2 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/debian/copyright b/debian/copyright
index a43fbe6..4439bbf 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,6 +1,7 @@
 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: qr-tools
 Source: https://launchpad.net/qr-tools
+Files-Excluded: *.old *.qm
 
 Files: *
 Copyright: 2011 David Green 
diff --git a/debian/rules b/debian/rules
index a00d717..ad434a4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -17,19 +17,3 @@ execute_after_dh_auto_clean:
 	echo $(DEB_VERSION_UPSTREAM)
 	rm -rf $(CURDIR)/build
 	find -name "*.qm" | xargs rm -f
-
-PACKAGE = qr-tools
-
-BZR_REVISION := $(shell echo $(DEB_VERSION_UPSTREAM) | awk -F"~" '{ print $$2 }' | sed 's/bzr//' )
-TARBALL = $(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar
-.PHONY: get-orig-source
-get-orig-source:
-	echo $(DEB_VERSION_UPSTREAM)
-	bzr export $(CURDIR)/$(TARBALL) -r $(BZR_REVISION) "lp:qr-tools"
-	tar xf $(CURDIR)/$(TARBALL)
-	find $(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig -name "*.qm" | xargs rm -f
-	find $(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig -name "*.old" | xargs rm -f
-	tar cf  $(CURDIR)/$(TARBALL) $(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig
-	xz -9 $(CURDIR)/$(TARBALL)
-	rm -rf $(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig
-	echo "  "$(TARBALL).xz" created; move it to the right destination to build the package"
-- 
2.30.2

>From c1788d799f7495070354198d8fcc9a0e29ab80cc Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 19 May 2022 16:13:54 +0200
Subject: [PATCH 2/5] debian/rules: replace override_dh_clean with debian/clean

A separate debian/clean file seems consistent with qtqr.dirs.
---
 debian/clean | 2 ++
 debian/rules | 6 --
 2 files changed, 2 insertions(+), 6 deletions(-)
 create mode 100644 debian/clean

diff --git a/debian/clean b/debian/clean
new file mode 100644
index 000..7045335
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,2 @@
+build/
+*.qm
diff --git a/debian/rules b/debian/rules
index ad434a4..2925b96 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,7 +1,6 @@
 #!/usr/bin/make -f
 
 export QT_SELECT := 5
-include /usr/share/dpkg/pkg-info.mk
 
 %:
 	dh $@ --buildsystem=pybuild
@@ -12,8 +11,3 @@ execute_after_dh_auto_build:
 execute_after_dh_auto_install:
 	install -m 644 $(CURDIR)/qtqr.py $(CURDIR)/debian/qtqr/usr/bin/qtqr
 	install -m 644 $(CURDIR)/icon.png $(CURDIR)/debian/qtqr/usr/share/pixmaps/qtqr.png
-
-execute_after_dh_auto_clean:
-	echo $(DEB_VERSION_UPSTREAM)
-	rm -rf $(CURDIR)/build
-	find -name "*.qm" | xargs rm -f
-- 
2.30.2

>From 918bbe8a0b42207d57c7b70201344c7a2ee87f6a Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 19 May 2022 16:20:19 +0200
Subject: [PATCH 3/5] Update copyright years for the packaging

---
 debian/copyright | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/debian/copyright b/debian/copyright
index 4439bbf..c724391 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -8,8 +8,9 @@ Copyright: 2011 David Green 
 License: GPL-3+
 
 Files: debian/*
-Copyright: 2012 Koichi Akabe 
-   2017 Boyuan Yang <073p...@gmail.com>
+Copyright: 2022  Georges Khaznadar 
+   2012-2014 Koichi Akabe 
+   2017-2021 Boyuan Yang <073p...@gmail.com>
2019 Gianfranco Costamagna 
 License: GPL-3+
 
-- 
2.30.2

>From edb05c34672c8f9127f3365095599f41c13af5c8 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Thu, 19 May 2022 16:21:24 +0200
Subject: [PATCH 4/5] debian/rules: prefer Make loops over shell loops

so that each executed command is visible in logs.
---
 debian/rules | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/debian/rules b/debian/rules
index 2925b96..e906aad 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,8 +5,11 @@ export QT_SELECT := 5
 %:
 	dh $@ --buildsystem=pybuild
 
-execute_after_dh_auto_build:
-	(for i in $(CURDIR)/qtqr_*.ts; do lrelease -nounfinished $$i -qm $$(echo $$i | sed -e 's/ts$$/qm/g'); done)
+ts = $(wildcard qtqr_*.ts)
+qm = $(ts:ts=qm)
+execute_after_dh_auto_build: $(qm)
+$(qm): %.qm: %.ts
+	lrelease -nounfinished $< -qm $@
 
 execute_aft

Bug#1011323: lablgtk2: Please remove the obsolete gtkgl/glarea component

2022-05-19 Thread Nicolas Boulenguez
Source: lablgtk2
Severity: minor
Tags: patch
X-Debbugs-Cc: 967...@bugs.debian.org

Hello.
No package depends on liblablgtk2-gl-ocaml, and it is the last package
depending on libgtkgl2, which should be removed from Debian (#967808).
Please consider removing it.



Bug#1011150: git-buildpackage: suggestions improving the packaging

2022-05-17 Thread Nicolas Boulenguez
Package: git-buildpackage
Version: 0.9.22
Severity: wishlist
Tags: patch

Hello.
The attached commits may slightly help the maintainance of the Debian
packaging.
Please apply the ones you agree with.
Thanks.
>From e3ffa388e72450a6fbb37800a69d1094aafdc55d Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Tue, 17 May 2022 14:54:08 +0200
Subject: [PATCH 1/8] debhelper: make package prefix explicit in configuration
 files

This slightly improves readability.
---
 debian/{doc-base => git-buildpackage.doc-base} | 0
 debian/{docs => git-buildpackage.docs} | 0
 debian/{examples => git-buildpackage.examples} | 0
 debian/{links => git-buildpackage.links}   | 0
 4 files changed, 0 insertions(+), 0 deletions(-)
 rename debian/{doc-base => git-buildpackage.doc-base} (100%)
 rename debian/{docs => git-buildpackage.docs} (100%)
 rename debian/{examples => git-buildpackage.examples} (100%)
 rename debian/{links => git-buildpackage.links} (100%)

diff --git a/debian/doc-base b/debian/git-buildpackage.doc-base
similarity index 100%
rename from debian/doc-base
rename to debian/git-buildpackage.doc-base
diff --git a/debian/docs b/debian/git-buildpackage.docs
similarity index 100%
rename from debian/docs
rename to debian/git-buildpackage.docs
diff --git a/debian/examples b/debian/git-buildpackage.examples
similarity index 100%
rename from debian/examples
rename to debian/git-buildpackage.examples
diff --git a/debian/links b/debian/git-buildpackage.links
similarity index 100%
rename from debian/links
rename to debian/git-buildpackage.links
-- 
2.30.2

>From 31c177f2ad1177ae9872975c7dc15fb5c697314c Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Tue, 17 May 2022 15:02:13 +0200
Subject: [PATCH 2/8] debian/rules: simplify installation of zsh and pk4

There seems to be no reason to change their names and permissions
between the source tree and the eventual installation path.
---
 debian/git-buildpackage.install  | 2 ++
 debian/{pk4 => pk4/gbp}  | 0
 debian/rules | 9 -
 debian/{git-buildpackage.zsh-completion => zsh/_gbp} | 0
 4 files changed, 2 insertions(+), 9 deletions(-)
 rename debian/{pk4 => pk4/gbp} (100%)
 mode change 100644 => 100755
 rename debian/{git-buildpackage.zsh-completion => zsh/_gbp} (100%)

diff --git a/debian/git-buildpackage.install b/debian/git-buildpackage.install
index 8e898c17..956ac8c3 100644
--- a/debian/git-buildpackage.install
+++ b/debian/git-buildpackage.install
@@ -1,3 +1,5 @@
+debian/zsh/_gbp   usr/share/zsh/vendor-completions
+debian/pk4/gbpusr/share/pk4/hooks-available/unpack
 usr/bin/gbp
 usr/bin/git-pbuilder
 usr/lib/python3.*/dist-packages/gbp-* usr/lib/python3/dist-packages/
diff --git a/debian/pk4 b/debian/pk4/gbp
old mode 100644
new mode 100755
similarity index 100%
rename from debian/pk4
rename to debian/pk4/gbp
diff --git a/debian/rules b/debian/rules
index 24dedb6c..c49d2c2e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -9,9 +9,6 @@ EXAMPLE_SCRIPTS=\
 
 DEB_COMPRESS_EXCLUDE=$(EXAMPLE_SCRIPTS)
 
-ZSH_COMPDIR = /usr/share/zsh/vendor-completions/
-PK4_DIR = /usr/share/pk4/hooks-available/unpack/
-
 PYCHECKER_ARGS=-boptparse --no-override --no-shadowbuiltin
 
 %:
@@ -31,12 +28,6 @@ override_dh_auto_build:
 override_dh_auto_install:
 	dh_auto_install
 	dh_bash-completion
-	mkdir -p debian/git-buildpackage/$(ZSH_COMPDIR)
-	install -m644 debian/git-buildpackage.zsh-completion \
-		debian/git-buildpackage/$(ZSH_COMPDIR)/_gbp
-	mkdir -p debian/git-buildpackage/$(PK4_DIR)
-	install -m755 debian/pk4 \
-		debian/git-buildpackage/$(PK4_DIR)/gbp
 	chmod a+x debian/tmp/usr/lib/python3.*/dist-packages/gbp/scripts/supercommand.py
 
 override_dh_auto_clean:
diff --git a/debian/git-buildpackage.zsh-completion b/debian/zsh/_gbp
similarity index 100%
rename from debian/git-buildpackage.zsh-completion
rename to debian/zsh/_gbp
-- 
2.30.2

>From a37e989709635d46e4ca17a4e2c6bfdea0614463 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Tue, 17 May 2022 15:13:06 +0200
Subject: [PATCH 3/8] rules: simplify thanks to debhelper compat 13

When dh-sequence-foo is listed in build-depends, debhelper
automatically inserts dh_foo in the commands.

override_dh_auto_test is not invoked anymore if DEB_BUILD_OPTIONS
contains nocheck.

execute_after_dh_* is available and more readable than override_dh_*.

Move chmod to execute_after_dh_fixperms for clarity.

Examples are not compressed anymore.
---
 debian/control |  1 +
 debian/rules   | 22 ++
 2 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/debian/control b/debian/control
index ab89dc58..0997139e 100644
--- a/debian/control
+++ b/debian/control
@@ -6,6 +6,7 @@ Build-Depends:
  bash-completion (>= 1:2.1-4.2~),
  debhelper-compat (= 13),
  dh-python,
+ dh-sequence-bash-completion,
  dh-sequence-python3,
  docbook2x,

Bug#992241: dh-ada-library ftbfs with mismatching gcc/gnat versions

2022-05-15 Thread Nicolas Boulenguez
Source: dh-ada-library
Followup-For: Bug #992241
Control: reassign -1 gprconfig-kb
Control: tag -1 + pending

After a discussion with by Ludovic…
For now, gprbuild is only commonly used to compile
* either pure Ada projects
* or projects mixing Ada and C.

In order to support only these two scenarios, the gnatgcc symbolic
link seems sufficient, and may be inserted it into gprconfig-kb (a
support package for gprbuild).

Commit 26b5aa878ed7d5f7e0b2af1fd62c8ece3f05a428 implements this, but
will only be uploaded after the current gnat-11 transition.



Bug#1010750: [git-buildpackage/master] scripts: add -v shortcut for --verbose where it has been forgotten

2022-05-10 Thread Nicolas Boulenguez
tag 1010750 pending
thanks

Date:   Sun May 8 16:48:29 2022 +0200
Author: Nicolas Boulenguez 
Commit ID: e17d814394e58307c9c67cbb3e59d95083d02be8
Commit URL: 
https://git.sigxcpu.org/cgit/git-buildpackage//commit/?id=e17d814394e58307c9c67cbb3e59d95083d02be8
Patch URL: 
https://git.sigxcpu.org/cgit/git-buildpackage//patch/?id=e17d814394e58307c9c67cbb3e59d95083d02be8

scripts: add -v shortcut for --verbose where it has been forgotten

Closes: #1010750

  



Bug#947078: git-buildpackage: Need to make gbp clone pseudo protocols confgirable

2022-05-09 Thread Nicolas Boulenguez
Package: git-buildpackage
Followup-For: Bug #947078

Hello.
It is better to fix this for all tools using git, for example by
setting a rewriting rule in ~/.config/git/config.
[url "g...@salsa.debian.org:debian/"]
insteadOf = https://salsa.debian.org/debian/



Bug#1010750: scripts: add -v shortcut for --verbose where it has been forgotten

2022-05-09 Thread Nicolas Boulenguez
Package: git-buildpackage
Version: 0.9.22
Severity: minor
Tags: patch

Hello.
All is in the title :-)
>From 2285339165dc490eee23d2849c5f6bcbb3c23d89 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sun, 8 May 2022 16:48:29 +0200
Subject: [PATCH 1/3] scripts: add -v shortcut for --verbose where it has been
 forgotten

---
 gbp/scripts/export_orig.py | 2 +-
 gbp/scripts/push.py| 2 +-
 gbp/scripts/tag.py | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gbp/scripts/export_orig.py b/gbp/scripts/export_orig.py
index 7ceb4237..ed4c64fb 100755
--- a/gbp/scripts/export_orig.py
+++ b/gbp/scripts/export_orig.py
@@ -289,7 +289,7 @@ def build_parser(name):
 for group in [tag_group, orig_group, branch_group]:
 parser.add_option_group(group)
 
-parser.add_option("--verbose", action="store_true", dest="verbose", default=False,
+parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
   help="verbose command execution")
 parser.add_config_file_option(option_name="color", dest="color", type='tristate')
 parser.add_config_file_option(option_name="color-scheme",
diff --git a/gbp/scripts/push.py b/gbp/scripts/push.py
index 63a06a20..494d7eb2 100755
--- a/gbp/scripts/push.py
+++ b/gbp/scripts/push.py
@@ -53,7 +53,7 @@ def build_parser(name):
 parser.add_config_file_option(option_name="color", dest="color", type='tristate')
 parser.add_config_file_option(option_name="color-scheme",
   dest="color_scheme")
-parser.add_option("--verbose", action="store_true", dest="verbose",
+parser.add_option("-v", "--verbose", action="store_true", dest="verbose",
   default=False, help="verbose command execution")
 return parser
 
diff --git a/gbp/scripts/tag.py b/gbp/scripts/tag.py
index 1e91fcdf..c324c468 100755
--- a/gbp/scripts/tag.py
+++ b/gbp/scripts/tag.py
@@ -103,7 +103,7 @@ def build_parser(name):
 parser.add_config_file_option(option_name="color", dest="color", type='tristate')
 parser.add_config_file_option(option_name="color-scheme",
   dest="color_scheme")
-parser.add_option("--verbose", action="store_true", dest="verbose",
+parser.add_option("-v", "--verbose", action="store_true", dest="verbose",
   default=False, help="verbose command execution")
 return parser
 
-- 
2.30.2



Bug#1010751: clone: handle -b optional branch specification in VCS-Git

2022-05-09 Thread Nicolas Boulenguez
Package: git-buildpackage
Version: 0.9.22
Severity: wishlist
Tags: patch

Hello.

https://www.debian.org/doc/debian-policy/ch-controlfields.html#version-control-system-vcs-fields
allows the VCS-Git to specify a branch and a relative path inside a
given repository.

# gbp clone vcs-git:pcscada
gbp:error: Can't find any vcs-git URL for 'pcscada'

The attached patch fixes the branch selection.
It does not allow a relative path.
>From 4550aaeedec99f7f48c456b6eae9d759ccf7de42 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sun, 8 May 2022 16:50:29 +0200
Subject: [PATCH 2/3] clone: add second allowed form for vcs-git protocol to
 manual page

---
 docs/manpages/gbp-clone.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs/manpages/gbp-clone.xml b/docs/manpages/gbp-clone.xml
index 849d990a..aa385cd5 100644
--- a/docs/manpages/gbp-clone.xml
+++ b/docs/manpages/gbp-clone.xml
@@ -197,6 +197,7 @@
   Clone from the Git-Vcs URL of a package:
 
 
+ vcs-git:libvirt
  vcsgit:libvirt
 
   Clone a repository from salsa (Debian's code hosting):
-- 
2.30.2

>From ed04b5242adf466b2f141090840d5f4ed4cf62d4 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Sun, 8 May 2022 16:51:26 +0200
Subject: [PATCH 3/3] clone: handle -b optional branch specification in VCS-Git

---
 gbp/scripts/clone.py | 20 +++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/gbp/scripts/clone.py b/gbp/scripts/clone.py
index d538cdfe..f799fc6d 100755
--- a/gbp/scripts/clone.py
+++ b/gbp/scripts/clone.py
@@ -46,10 +46,15 @@ def apt_showsrc(pkg):
 
 
 def vcs_git_url(pkg):
+"""
+Content of the latest available VCS-Git field, as a str.
+None  when the field is missing.
+(url, branch) when the value specifies a branch with -b.
+"""
 repos = {}
 
 out = apt_showsrc(pkg)
-vcs_re = re.compile(r'(x-)?vcs-git:\s*(?P[^ ]+)$', re.I)
+vcs_re = re.compile(r'(x-)?vcs-git:\s*(?P[^ ]+)(\s*-b\s*(?P[^ ]+))?$', re.I)
 version_re = re.compile(r'Version:\s*(?P.*)$', re.I)
 end_re = re.compile(r'\s*$')
 
@@ -58,6 +63,8 @@ def vcs_git_url(pkg):
 m = vcs_re.match(line)
 if m:
 repo = m.group('repo')
+if m.group('branch'):
+repo = (repo, m.group('branch'))
 continue
 m = version_re.match(line)
 if m:
@@ -85,6 +92,9 @@ def repo_to_url(repo):
 'https://salsa.debian.org/agx/git-buildpackage.git'
 >>> repo_to_url("github:agx/git-buildpackage")
 'https://github.com/agx/git-buildpackage.git'
+
+None  when VCS-Git is required but missing.
+(url, branch) when VCS-Git specifies a branch with -b.
 """
 parts = repo.split(":", 1)
 if len(parts) != 2:
@@ -167,6 +177,10 @@ def main(argv):
 source = repo_to_url(args[1])
 if not source:
 return 1
+elif isinstance(source, tuple):
+source, vcs_git_branch = source
+else:
+vcs_git_branch = None
 
 clone_to, auto_name = (os.path.curdir, True) if len(args) < 3 else (args[2], False)
 try:
@@ -187,6 +201,10 @@ def main(argv):
 postclone = options.postclone
 (options, args) = parse_args(argv)
 
+if vcs_git_branch not in (None, options.debian_branch):
+gbp.log.warn(f'VCS-Git: -b {vcs_git_branch} overrides --debian-branch={options.debian_branch}')
+options.debian_branch = vcs_git_branch
+
 # Track all branches:
 if options.all:
 remotes = repo.get_remote_branches()
-- 
2.30.2



Bug#1010468: transition: gnat-11

2022-05-02 Thread Nicolas Boulenguez
Package: release.debian.org
Severity: normal
User: release.debian@packages.debian.org
Usertags: transition

Hello.

The gcc-V source package builds the Ada compiler (gnat-V) and
companion library (libgnat-V).
The default Ada compiler is selected by the gnat package.
In unstable and testing, gnat Depends: gnat-10.
In experimental, gnat Depends: gnat-11.

Ada libraries have specific requirements.
* They must Build-Depend: gnat-V (in addition to gnat).
* Each -dev package name carries a version, similar to the shared
  object version for lib packages.  Most changes in the source require
  a renaming of the -dev package, and a source upload of all reverse
  dependencies.
  In order to reduce the number of such transitions, many unrelated
  changes, like new upstream releases, are introduced with a libgnat
  transition and tested in experimental.
* Each -dev package depends on both gnat and gnat-V.

GCC builds no libgnat-V-dev package. The sources for the Ada standard
library are distributed with the compiler in the gnat-V package.  So
it is convenient to track the transition with the libgnat-V package
instead (even when the ABI is unchanged).

Ben file:

title = "gnat-11";
is_affected = .depends ~ "libgnat-8" | .depends ~ "libgnat-9" | .depends ~ 
"libgnat-10" | .depends ~ "libgnat-11";
is_good = .depends ~ "libgnat-11";
is_bad = .depends ~ "libgnat-8" | .depends ~ "libgnat-9" | .depends ~ 
"libgnat-10";

During last transition, Sebastian Ramacher has requested that the -dev
packages replace
  Depends: gnat, gnat-V
with
  Depends: gnat (>= V), gnat (<< V+1)
in order to help the migration from unstable to testing.
(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975589#24)
Only a few key packages have been updated and tested in experimental,
but it seems safe to update the remaining packages during the reupload
to unstable.

dh-ada-library libxmlada gprbuild
  are ready in experimental (including a correct gnat dependency)

gprconfig-kb
  is tightly connected with gprbuild and must migrate with the other
  packages despite not depending on libgnat.
  It is ready in experimental too.

adasockets plplot
  are almost ready in experimental,
  but must manually change the -dev dependency when reuploaded to unstable
gnat, gnat-V  ->  gnat (>= V), gnat (<< V+1)

adacgi ahven anet dbusada gprbuild libalog libaunit libflorist
libgmpada libgnatcoll libgnatcoll-bindings libgnatcoll-db libgtkada
liblog4ada libncursesada libtemplates-parser libtexttools libxmlada
libxmlezout pcscada
  are almost ready in experimental, but must
  Build-Depend: dh-ada-library (>= 7.5)
  when reuploaded to unstable so that the gnat dependency is correctly
  generated during the rebuild.

These source packages produce no library and should only need a
bin-NMU in due time:
nmumusic123_16.6-2   . ANY . -m 'Rebuild with gnat-11'
nmu   topal_81-1 . ANY . -m 'Rebuild with gnat-11 for 
unstable'
nmu whitakers-words_0.2020.10.27-1.1 . ANY . -m 'Rebuild with gnat-11'

adabrowse adacontrol asis gnat-gps libaws
  are RC-buggy and have been removed from testing.
  They should not prevent the transition.
  Once the dust has settled, we will see if and when they can be
  reintroduced into Debian.

libgnatcoll-python
  was a temporary package only intended for python2 support in the
  unstable distribution.
  It should be removed after this transition.

ghdl
  should not be affected.
  It requires an explicit gnat-V, independently of the default gnat.

ada-reference-manual
  should not be affected.
  It needs gnat at build time only.



Bug#1010229: cosmetic: version restrictions are limited to = for Provides but also Built-Using

2022-04-26 Thread Nicolas Boulenguez
Source: debian-policy
Version: 4.6.1
Severity: minor
Tags: patch

Hello.

The fourth paragraph of section 7.1 says:

  The relations allowed are <<... for ... , respectively.
  The exception is the Provides field, for which only = is allowed.
  [footnote]

  [footnote]: The relations < and > were previously allowed...

I see three problems in this paragraph:
* The second sentence lies, as Built-Using introduces another
  exception.
* An explicit list of exceptions in the section header is hard to keep
  accurate, and not useful, at least inside the policy.
* The footnote actually concerns the previous sentence.

I suggest to remove the second sentence, and instead be explicit in
the description of the Provides field.

--- a/policy/ch-relationships.rst
+++ b/policy/ch-relationships.rst
@@ -25,8 +25,7 @@
 
 The relations allowed are ``<<``, ``<=``, ``=``, ``>=`` and ``>>`` for
 strictly earlier, earlier or equal, exactly equal, later or equal and
-strictly later, respectively. The exception is the Provides field, for
-which only ``=`` is allowed.  [#]_
+strictly later, respectively.  [#]_
 
 Whitespace may appear at any point in the version specification subject
 to the rules in :ref:`s-controlsyntax`, and must appear
@@ -447,7 +446,9 @@ they can say:
 and the ``bar-plus`` package will now also satisfy the dependency for
 the ``foo`` package.
 
-A ``Provides`` field may contain version numbers, and such a version number
+A ``Provides`` field may contain version numbers,
+but only with the "exactly equal" ("=") relation.
+Such a version number
 will be considered when considering a dependency on or conflict with the
 virtual package name.  For example, given the following packages:
 



Bug#1009638: u-boot: slightly simplify the display of a Debian-specific revision

2022-04-13 Thread Nicolas Boulenguez
Source: u-boot
Severity: wishlist
Tags: patch

Hello.
The following suggestion removes a Debian-specific patch.


>From 1f2cf0d0fd82ce494d960e28585f657814d1 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez 
Date: Wed, 13 Apr 2022 13:46:54 +0200
Subject: [PATCH] Simplify the parts displaying a Debian-specific revision
 during boot

Use the LOCALVERSION dedicated Kconfig string instead of maintaining a
Debian-specific patch on the upstream Makefile.
The result at boot time should be similar.
---
 .../patches/add-debian-revision-to-u-boot-version  | 14 --
 debian/patches/series  |  2 --
 debian/rules   |  5 -
 3 files changed, 4 insertions(+), 17 deletions(-)
 delete mode 100644 debian/patches/add-debian-revision-to-u-boot-version

diff --git a/debian/patches/add-debian-revision-to-u-boot-version 
b/debian/patches/add-debian-revision-to-u-boot-version
deleted file mode 100644
index e6dcdfce23..00
--- a/debian/patches/add-debian-revision-to-u-boot-version
+++ /dev/null
@@ -1,14 +0,0 @@
-Add the debian revision to the U-boot version, which is displayed at
-boot and can be helpful to determine which specific version is used.
-
 a/Makefile
-+++ b/Makefile
-@@ -447,7 +447,7 @@
- 
- # Read UBOOTRELEASE from include/config/uboot.release (if it exists)
- UBOOTRELEASE = $(shell cat include/config/uboot.release 2> /dev/null)
--UBOOTVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if 
$(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
-+UBOOTVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if 
$(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)$(DEBIAN_REVISION)
- 
- export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION
- export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR
diff --git a/debian/patches/series b/debian/patches/series
index d9683fee22..c85336b306 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,5 +1,3 @@
-add-debian-revision-to-u-boot-version
-
 tools-generic-builds.patch
 
 mx53loco
diff --git a/debian/rules b/debian/rules
index fed6b6b092..680209f295 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,7 +4,6 @@ include /usr/share/dpkg/architecture.mk
 include /usr/share/dpkg/pkg-info.mk
 
 DEBIAN_REVISION ?= $(shell echo $(DEB_VERSION) | sed -e 's,.*+dfsg,+dfsg,')
-common_make_args += DEBIAN_REVISION='$(DEBIAN_REVISION)'
 
 include debian/targets.mk
 
@@ -85,6 +84,10 @@ define build_template
  CROSS_COMPILE=$(or $($(platform)_CROSS_COMPILE),$(CROSS_COMPILE)) \
  $($(package)_assigns) $($(platform)_assigns) \
  $(platform)_defconfig
+
+   sed -i '/^CONFIG_LOCALVERSION="/s/"/$(DEBIAN_REVISION)"/' \
+ debian/build/$(platform)/.config
+
dh_auto_build -- $(common_make_args) \
  O=debian/build/$(platform) \
  CROSS_COMPILE=$(or $($(platform)_CROSS_COMPILE),$(CROSS_COMPILE)) \
-- 
2.30.2



Bug#1008152: gprbuild: FTBFS during binary-indep build

2022-04-11 Thread Nicolas Boulenguez
Source: gprbuild
Followup-For: Bug #1008152
Control: severity -1 normal



Bug#997728: libgnatcoll-db: FTBFS: raised CONSTRAINT_ERROR : uintp.adb:2002 overflow check failed

2022-04-11 Thread Nicolas Boulenguez
Source: libgnatcoll-db
Followup-For: Bug #997728
Control: severity -1 normal
Control: reassign -1 gnat-10
Control: tags -1 - bookworm ftbfs sid
Control: merge -1 954681

Hello.

This is most probably caused by the SOURCE_DATE_EPOCH patch applied by
Debian when building GNAT from GCC sources.
It has been fixed in most cases (especially, on buildds), but
apparently not for all SOURCE_DATE_EPOCH values (see #954681),



Bug#1008982: adacontrol: depends on unavailable asis

2022-04-05 Thread Nicolas Boulenguez
Source: adacontrol
Severity: serious
Tags: upstream ftbfs
Justification: Policy 2.2.1

ASIS will soon be removed from Debian.
Adacontrol depends on ASIS and should also be removed.



Bug#1008981: libaws: depends on unavailable asis

2022-04-05 Thread Nicolas Boulenguez
Source: libaws
Severity: serious
Tags: upstream ftbfs
Justification: Policy 2.2.1

ASIS will soon be removed from Debian.
AWS depends on ASIS and should also be removed.

Next AWS version will depend on langkit instead,
but langkit is not packaged yet.



  1   2   3   4   5   6   7   8   9   >