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

Bug#1057659: geany-plugins FTCBFS: runs host code



Source: geany-plugins
Version: 2.0-4
Tags: patch
User: debian-cross@lists.debian.org
Usertags: ftcbfs
X-Debbugs-Cc: debian-cross@lists.debian.org

Hi,

geany-plugins fails to cross build from source. I think this actually is
a relatively, exciting bug so I'm Ccing d-cross@l.d.o.

Ultimately, debian/rules compiles and runs a dumpabiver thing to get the
value of a C macro. That running part cannot work at all. Hence, I am
proposing to use AC_COMPUTE_INT from autoconf to determine the relevant
values. In a native build, it'll do much the same thing as before
(running stuff to print the value) albeit wrapped up in autoconf. In a
cross build, it'll automatically degrade to bisecting the value. This
takes a little longer, but it makes things just work. I'm attaching a
patch for your convenience.

Helmut
diff --minimal -Nru geany-plugins-2.0/debian/autoreconf geany-plugins-2.0/debian/autoreconf
--- geany-plugins-2.0/debian/autoreconf	1970-01-01 01:00:00.000000000 +0100
+++ geany-plugins-2.0/debian/autoreconf	2023-12-05 19:30:01.000000000 +0100
@@ -0,0 +1,2 @@
+.
+debian/dumpabiver
diff --minimal -Nru geany-plugins-2.0/debian/changelog geany-plugins-2.0/debian/changelog
--- geany-plugins-2.0/debian/changelog	2023-11-18 10:29:26.000000000 +0100
+++ geany-plugins-2.0/debian/changelog	2023-12-05 19:30:01.000000000 +0100
@@ -1,3 +1,10 @@
+geany-plugins (2.0-4.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: Use AC_COMPUTE_INT to determine ABI version. (Closes: #-1)
+
+ -- Helmut Grohne <helmut@subdivi.de>  Tue, 05 Dec 2023 19:30:01 +0100
+
 geany-plugins (2.0-4) unstable; urgency=medium
 
   * Acknowledge NMUs (2.0-2.1 and 2.0-2.2)
diff --minimal -Nru geany-plugins-2.0/debian/clean geany-plugins-2.0/debian/clean
--- geany-plugins-2.0/debian/clean	2023-11-18 10:29:26.000000000 +0100
+++ geany-plugins-2.0/debian/clean	2023-12-05 19:30:01.000000000 +0100
@@ -1,2 +1,5 @@
-debian/dumpabiver
-debian/abiversion.sh
+debian/dumpabiver/aclocal.m4
+debian/dumpabiver/autom4te.cache
+debian/dumpabiver/config.cache
+debian/dumpabiver/config.log
+debian/dumpabiver/configure
diff --minimal -Nru geany-plugins-2.0/debian/dumpabiver/configure.ac geany-plugins-2.0/debian/dumpabiver/configure.ac
--- geany-plugins-2.0/debian/dumpabiver/configure.ac	1970-01-01 01:00:00.000000000 +0100
+++ geany-plugins-2.0/debian/dumpabiver/configure.ac	2023-12-05 19:30:01.000000000 +0100
@@ -0,0 +1,17 @@
+AC_INIT([abidumper],[0.0])
+AC_PROG_CC
+PKG_CHECK_MODULES([GEANY],[geany])
+CFLAGS="$CFLAGS $GEANY_CFLAGS"
+AC_COMPUTE_INT([GEANY_ABI_VERSION],[GEANY_ABI_VERSION],[
+#include <geany/geany.h>
+#include <geany/plugindata.h>
+])
+AC_COMPUTE_INT([GEANY_API_VERSION],[GEANY_API_VERSION],[
+#include <geany/geany.h>
+#include <geany/plugindata.h>
+])
+cat >config.cache <<EOF
+GEANY_ABI_VERSION=$GEANY_ABI_VERSION
+GEANY_API_VERSION=$GEANY_API_VERSION
+EOF
+
diff --minimal -Nru geany-plugins-2.0/debian/dumpabiver.c geany-plugins-2.0/debian/dumpabiver.c
--- geany-plugins-2.0/debian/dumpabiver.c	2023-11-18 10:29:26.000000000 +0100
+++ geany-plugins-2.0/debian/dumpabiver.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-#include <geany/geany.h>
-#include <geany/plugindata.h>
-
-int main()
-{
-    printf("GEANY_ABI=geany-abi-%d\nGEANY_API=geany-api-%d\n",
-           GEANY_ABI_VERSION, GEANY_API_VERSION);
-    return 0;
-}
diff --minimal -Nru geany-plugins-2.0/debian/rules geany-plugins-2.0/debian/rules
--- geany-plugins-2.0/debian/rules	2023-11-18 10:29:26.000000000 +0100
+++ geany-plugins-2.0/debian/rules	2023-12-05 19:30:01.000000000 +0100
@@ -1,10 +1,12 @@
 #!/usr/bin/make -f
 
 include /usr/share/dpkg/buildflags.mk
+-include /usr/share/dpkg/buildtools.mk
+PKG_CONFIG ?= pkg-config
 
 export LDFLAGS += -Wl,--as-needed -Wl,-z,defs
 
-GEANY_VERSION = $(shell pkg-config --modversion geany)
+GEANY_VERSION = $(shell $(PKG_CONFIG) --modversion geany)
 
 override_dh_autoreconf:
 	rm -rf build/cache
@@ -74,18 +76,15 @@
 	dh_installchangelogs
 
 # add geany:Version substvar to debian/*.substvars
-debian/dumpabiver: debian/dumpabiver.c
-	$(CC) -o $@ $< $(shell pkg-config --cflags geany)
-
-debian/abiversion.sh: debian/dumpabiver
-	$< > $@
+debian/dumpabiver/config.cache: debian/dumpabiver/configure.ac
+	dh_auto_configure --sourcedirectory=debian/dumpabiver
 
-override_dh_gencontrol: debian/abiversion.sh
-	. debian/abiversion.sh && \
+override_dh_gencontrol: debian/dumpabiver/config.cache
+	. debian/dumpabiver/config.cache && \
 	dh_gencontrol -- \
 		"-Vgeany:Version=$(GEANY_VERSION)" \
-		"-Vgeany:API=$${GEANY_ABI}" \
-		"-Vgeany:ABI=$${GEANY_ABI}"
+		"-Vgeany:API=geany-api-$${GEANY_ABI_VERSION}" \
+		"-Vgeany:ABI=geany-abi-$${GEANY_ABI_VERSION}"
 
 # Don't make shlibs (false positive on pretty-printer.so
 override_dh_makeshlibs:

Reply to: