[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: