[Debian-med-packaging] Bug#972807: mapsembler2 FTCBFS: multiple reasons
Helmut Grohne
helmut at subdivi.de
Sat Oct 24 06:23:39 BST 2020
Source: mapsembler2
Version: 2.2.4+dfsg1-2
Tags: patch
User: debian-cross at lists.debian.org
Usertags: ftcbfs
mapsembler2 fails to cross build from source, because it builds for the
build architecture. It does not pass any cross flags to cmake nor any
cross tools to make. In general, these kind of issues can often be
solved using dh_auto_*. In this case, that mostly does the trick except
for one aspect. Some makefiles use CC to store a C++ compiler. During
cross compilation, dh_auto_build passes a C compiler via CC and that
doesn't go well. I recommend changing the variable name to CXX, which is
what everyone uses. Please consider applying the attached patch to make
mapsembler2 cross buildable.
Helmut
-------------- next part --------------
diff --minimal -Nru mapsembler2-2.2.4+dfsg1/debian/changelog mapsembler2-2.2.4+dfsg1/debian/changelog
--- mapsembler2-2.2.4+dfsg1/debian/changelog 2020-10-21 22:58:31.000000000 +0200
+++ mapsembler2-2.2.4+dfsg1/debian/changelog 2020-10-24 07:02:52.000000000 +0200
@@ -1,3 +1,12 @@
+mapsembler2 (2.2.4+dfsg1-2.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTCBFS: (Closes: #-1)
+ + Let dh_auto_* handle cross compilation.
+ + cross.patch: Use CXX for a C++ compiler.
+
+ -- Helmut Grohne <helmut at subdivi.de> Sat, 24 Oct 2020 07:02:52 +0200
+
mapsembler2 (2.2.4+dfsg1-2) unstable; urgency=medium
* Team upload.
diff --minimal -Nru mapsembler2-2.2.4+dfsg1/debian/patches/cross.patch mapsembler2-2.2.4+dfsg1/debian/patches/cross.patch
--- mapsembler2-2.2.4+dfsg1/debian/patches/cross.patch 1970-01-01 01:00:00.000000000 +0100
+++ mapsembler2-2.2.4+dfsg1/debian/patches/cross.patch 2020-10-24 07:02:52.000000000 +0200
@@ -0,0 +1,65 @@
+--- mapsembler2-2.2.4+dfsg1.orig/mapsembler2_extend/makefile
++++ mapsembler2-2.2.4+dfsg1/mapsembler2_extend/makefile
+@@ -1,14 +1,14 @@
+-CC=g++
++CXX=g++
+ EXEC=mapsembler_extend
+
+ #CFLAGS= -O4 -lz
+ #CFLAGS= -g -lz
+ #CFLAGS= -g -lz
+ CFLAGS= -O3 -lz
+-ifeq "$(CC)" "g++"
++ifeq "$(CXX)" "g++"
+ empty:=
+ space:= $(empty) $(empty)
+- GCCVERSIONSTRING := $(shell expr `$(CC) -dumpversion`)
++ GCCVERSIONSTRING := $(shell expr `$(CXX) -dumpversion`)
+ #Create version number without "."
+ GCCVERSION := $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f1 -d.)
+ GCCVERSION += $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f2 -d.)
+@@ -30,7 +30,7 @@
+ else
+ empty:=
+ space:= $(empty) $(empty)
+- CLANGVERSIONSTRING := $(shell expr `$(CC) -dumpversion`)
++ CLANGVERSIONSTRING := $(shell expr `$(CXX) -dumpversion`)
+ #Create version number without "."
+ CLANGVERSION := $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f1 -d.)
+ CLANGVERSION += $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f2 -d.)
+@@ -110,10 +110,10 @@
+
+ mapsembler_extend: $(OBJ) $(OBJ2) mapsembler_extend.cpp
+ #mapsembler: $(OBJ) $(OBJ2) test.cpp
+- $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
++ $(CXX) -o $@ $^ $(CFLAGS) $(LDFLAGS)
+
+ %.o: %.cpp %.h
+- $(CC) -o $@ -c $< $(CFLAGS)
++ $(CXX) -o $@ -c $< $(CFLAGS)
+
+
+ #%.o: %.c %.h
+--- mapsembler2-2.2.4+dfsg1.orig/kissreads_graph/makefile
++++ mapsembler2-2.2.4+dfsg1/kissreads_graph/makefile
+@@ -1,5 +1,5 @@
+-#CC=/opt/local/bin/g++-mp-4.7
+-CC=g++
++#CXX=/opt/local/bin/g++-mp-4.7
++CXX=g++
+ EXEC=kissreads_graph
+ #Loader.cpp
+ CFLAGS= -O3 -L../thirdparty/zlib/build -lz -DMINIA_IS_IN_PARENT_FOLDER
+@@ -52,10 +52,10 @@
+ all: $(EXEC)
+
+ kissreads_graph: $(OBJ) KissReadsGraph.cpp
+- $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
++ $(CXX) -o $@ $^ $(CFLAGS) $(LDFLAGS)
+
+ %.o: %.cpp %.h
+- $(CC) -o $@ -c $< $(CFLAGS)
++ $(CXX) -o $@ -c $< $(CFLAGS)
+
+
+
diff --minimal -Nru mapsembler2-2.2.4+dfsg1/debian/patches/series mapsembler2-2.2.4+dfsg1/debian/patches/series
--- mapsembler2-2.2.4+dfsg1/debian/patches/series 2020-10-21 22:58:31.000000000 +0200
+++ mapsembler2-2.2.4+dfsg1/debian/patches/series 2020-10-24 07:02:52.000000000 +0200
@@ -8,3 +8,4 @@
no_std_hash_redefinition.patch
gcc10.patch
check_memory.patch
+cross.patch
diff --minimal -Nru mapsembler2-2.2.4+dfsg1/debian/rules mapsembler2-2.2.4+dfsg1/debian/rules
--- mapsembler2-2.2.4+dfsg1/debian/rules 2020-10-21 22:58:31.000000000 +0200
+++ mapsembler2-2.2.4+dfsg1/debian/rules 2020-10-24 07:02:52.000000000 +0200
@@ -23,12 +23,11 @@
dh $@
override_dh_auto_build:
- mkdir mapsembler2_extremities/build
- cd mapsembler2_extremities/build && cmake .. && make VERBOSE=true
- cd mapsembler2_extend && make k=29
- cd kissreads_graph && make k=29
- cd kissreads && make k=29
-
+ dh_auto_configure --sourcedirectory=mapsembler2_extremities --builddirectory=mapsembler2_extremities/build
+ dh_auto_build --sourcedirectory=mapsembler2_extremities --builddirectory=mapsembler2_extremities/build
+ dh_auto_build --sourcedirectory=mapsembler2_extend -- k=29
+ dh_auto_build --sourcedirectory=kissreads_graph -- k=29
+ dh_auto_build --sourcedirectory=kissreads -- k=29
override_dh_clean:
rm -rf mapsembler2_extremities/build
More information about the Debian-med-packaging
mailing list