Bug#1107486: gcc-defaults: multiple problems with the gfortran modversion
Package: gcc-defaults
Version: 1.224
Severity: important
Tags: patch
Justification: breaks architecture cross bootstrap
User: debian-cross@lists.debian.org
Usertags: cross-satisfiability
User: helmutg@debian.org
Usertags: rebootstrap
X-Debbugs-Cc: zeha@debian.org
Hi Matthias,
you recently fixed use of the apt cache in gcc-defaults #1104504.
Unfortunately, the new version poses several problems.
A relatively straight forward one is this message during build:
| dpkg-query: error in show format: may not be empty string
It originates from:
| MOD_VER := $(shell dpkg-query -W --showformat='${Provides}' gfortran-$(PV_GFORT) \
| | sed 's/.*\(gfortran-mod-[0-9]*\).*/\1/')
In this invocation, ${Provides} is evaluated as a makefile variable. As
it happens to be unset, the empty string is substituted. dpkg doesn't
like that and as a result, gfortran does not provide any gfortran-mod-*.
This is easily fixed by escaping the $ as '$${Provides}'. Fair enough.
The next problem is the additional gfortran-VER dependency. It's implied
as a host architecture dependency and it transitively depends on
binutils:HOST. This is in stark conflict with binutils:BUILD as depended
upon by build-essential. As a result, this dependency is always
cross-unsatisfiable.
If we assume that the modversion does not vary across architectures
(which seems like a valid assumption given that it is scraped from
$(srcdir)/gcc/fortran/module.cc), we may change that to
gfortran-VER:native. Do you agree?
Helmut
diff --minimal -Nru gcc-defaults-1.225/debian/changelog gcc-defaults-1.225+nmu1/debian/changelog
--- gcc-defaults-1.225/debian/changelog 2025-05-03 22:55:23.000000000 +0200
+++ gcc-defaults-1.225+nmu1/debian/changelog 2025-06-07 13:15:53.000000000 +0200
@@ -1,3 +1,11 @@
+gcc-defaults (1.225+nmu1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix mod-version computation.
+ * Depend on the native gfortran-N.
+
+ -- Helmut Grohne <helmut@subdivi.de> Sat, 07 Jun 2025 13:15:53 +0200
+
gcc-defaults (1.225) experimental; urgency=medium
* Fix ga68 cross dependencies.
diff --minimal -Nru gcc-defaults-1.225/debian/control gcc-defaults-1.225+nmu1/debian/control
--- gcc-defaults-1.225/debian/control 2025-05-03 16:36:44.000000000 +0200
+++ gcc-defaults-1.225+nmu1/debian/control 2025-06-07 13:15:53.000000000 +0200
@@ -5,7 +5,7 @@
Uploaders: Matthias Klose <doko@debian.org>
Standards-Version: 4.7.2
Build-Depends: m4, debhelper-compat (= 13),
- gcc-15-base (>= 15.1.0-2~), gfortran-15,
+ gcc-15-base (>= 15.1.0-2~), gfortran-15:native,
lsb-release
Vcs-Browser: https://salsa.debian.org/toolchain-team/gcc-defaults
Vcs-Git: https://salsa.debian.org/toolchain-team/gcc-defaults.git
diff --minimal -Nru gcc-defaults-1.225/debian/rules gcc-defaults-1.225+nmu1/debian/rules
--- gcc-defaults-1.225/debian/rules 2025-05-03 16:30:14.000000000 +0200
+++ gcc-defaults-1.225+nmu1/debian/rules 2025-06-07 13:15:53.000000000 +0200
@@ -592,7 +592,7 @@
))
endif
-MOD_VER := $(shell dpkg-query -W --showformat='${Provides}' gfortran-$(PV_GFORT) \
+MOD_VER := $(shell dpkg-query -W --showformat='$${Provides}' gfortran-$(PV_GFORT) \
| sed 's/.*\(gfortran-mod-[0-9]*\).*/\1/')
README:
@@ -745,7 +745,7 @@
ifeq ($(with_native),yes)
sed \
-e "s/@SOURCE@/$(SOURCE)/g" \
- -e "s/@GFORTRAN@/gfortran-$(PV_GFORT)/g" \
+ -e "s/@GFORTRAN@/gfortran-$(PV_GFORT):native/g" \
debian/control.source > debian/control
sed \
-e "s/@multilib_archs@/$(multilib_archs)/g" \
@@ -755,7 +755,7 @@
else
sed \
-e "s/@SOURCE@/$(SOURCE)/g" \
- -e "s/@GFORTRAN@/gfortran-$(PV_GFORT)/g" \
+ -e "s/@GFORTRAN@/gfortran-$(PV_GFORT):native/g" \
debian/control.source \
| grep -v '^Build-Depends-Indep:' \
> debian/control
Reply to: