[Debichem-devel] Bug#1113857: libmstoolkit FTCBFS: builds for the build architecture

Helmut Grohne helmut at subdivi.de
Wed Sep 3 10:44:55 BST 2025


Source: libmstoolkit
Version: 82-7.2
Tags: patch
User: debian-cross at lists.debian.org
Usertags: ftcbfs

libmstoolkit fails to cross build from source, because it does not pass 
cross tools to make. Wrapping the make invocation in dh_auto_build can 
be used to fix that, but it also enables concurrency and thereby turns 
#1105536 fatal unless passing --no-parallel. Then, the upstream Makefile 
uses non-standard variables (CC for the C++ compiler rather than CXX) 
and this goes wrong when dh_auto_build overrides the toolchain. I 
propose patching upstream to use standard variable names. With all of 
these changes to be found in the attached patch, libmstoolkit cross 
builds.

Helmut
-------------- next part --------------
diff -Nru libmstoolkit-82/debian/changelog libmstoolkit-82/debian/changelog
--- libmstoolkit-82/debian/changelog	2024-03-17 20:14:33.000000000 +0100
+++ libmstoolkit-82/debian/changelog	2025-09-03 10:31:20.000000000 +0200
@@ -1,3 +1,12 @@
+libmstoolkit (82-7.3) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: (Closes: #-1)
+    + Let dh_auto_build pass cross tools to make.
+    + cross.patch: Use standard variable names for the toolchain
+
+ -- Helmut Grohne <helmut at subdivi.de>  Wed, 03 Sep 2025 10:31:20 +0200
+
 libmstoolkit (82-7.2) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru libmstoolkit-82/debian/patches/cross.patch libmstoolkit-82/debian/patches/cross.patch
--- libmstoolkit-82/debian/patches/cross.patch	1970-01-01 01:00:00.000000000 +0100
+++ libmstoolkit-82/debian/patches/cross.patch	2025-09-03 10:31:20.000000000 +0200
@@ -0,0 +1,84 @@
+--- libmstoolkit-82.orig/Makefile
++++ libmstoolkit-82/Makefile
+@@ -12,8 +12,8 @@
+ READER = MSReader.o
+ READERLITE = MSReaderLite.o
+ 
+-CC = g++
+-GCC = gcc
++CC = gcc
++CXX = g++
+ NOSQLITE = -D_NOSQLITE
+ 
+ SOVER = 82
+@@ -38,24 +38,24 @@
+ 	
+ 	ar rcs libmstoolkitlite.a $(MZPARSERLITE) $(MSTOOLKIT) $(READERLITE)
+ 	ar rcs libmstoolkit.a $(MZPARSER) $(MSTOOLKIT) $(READER)
+-#	$(CC) $(CFLAGS) MSTDemo.cpp -L. -lmstoolkitlite -o MSTDemo
+-#	$(CC) $(CFLAGS) -I./include MSSingleScan/MSSingleScan.cpp -L. -lmstoolkitlite -o msSingleScan.static
+-#	$(CC) $(CFLAGS) MSConvertFile.cpp -L. -lmstoolkitlite -o MSConvertFile
++#	$(CXX) $(CFLAGS) MSTDemo.cpp -L. -lmstoolkitlite -o MSTDemo
++#	$(CXX) $(CFLAGS) -I./include MSSingleScan/MSSingleScan.cpp -L. -lmstoolkitlite -o msSingleScan.static
++#	$(CXX) $(CFLAGS) MSConvertFile.cpp -L. -lmstoolkitlite -o MSConvertFile
+ 
+ 
+ solib: CFLAGS = $(SO_CFLAGS)
+ solib: clean_objects objects 
+ 	
+-	$(CC) $(CFLAGS) -o libmstoolkitlite.so.$(RELVER) -Wl,-z,relro -Wl,-soname,libmstoolkitlite.so.$(SOVER) $(MZPARSERLITE) $(MSTOOLKIT) $(READERLITE) $(LIBS)
++	$(CXX) $(CFLAGS) -o libmstoolkitlite.so.$(RELVER) -Wl,-z,relro -Wl,-soname,libmstoolkitlite.so.$(SOVER) $(MZPARSERLITE) $(MSTOOLKIT) $(READERLITE) $(LIBS)
+ 	ln -sf libmstoolkitlite.so.$(RELVER) libmstoolkitlite.so.$(SOVER)
+ 	ln -sf libmstoolkitlite.so.$(SOVER) libmstoolkitlite.so
+ 	
+-	$(CC) $(CFLAGS) -o libmstoolkit.so.$(RELVER) -Wl,-z,relro -Wl,-soname,libmstoolkit.so.$(SOVER) $(MZPARSER) $(MSTOOLKIT) $(READER) $(LIBS)
++	$(CXX) $(CFLAGS) -o libmstoolkit.so.$(RELVER) -Wl,-z,relro -Wl,-soname,libmstoolkit.so.$(SOVER) $(MZPARSER) $(MSTOOLKIT) $(READER) $(LIBS)
+ 	ln -sf libmstoolkit.so.$(RELVER) libmstoolkit.so.$(SOVER)
+ 	ln -sf libmstoolkit.so.$(SOVER) libmstoolkit.so
+ 	
+ 	# Be careful not to include in the linker command line below the compilation -shared -fPIC flags!
+-	$(CC) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DGCC -DHAVE_EXPAT_CONFIG_H -I./include -L. MSSingleScan/MSSingleScan.cpp -o msSingleScan $(LIBS) -lmstoolkitlite 
++	$(CXX) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DGCC -DHAVE_EXPAT_CONFIG_H -I./include -L. MSSingleScan/MSSingleScan.cpp -o msSingleScan $(LIBS) -lmstoolkitlite 
+ 
+ 
+ clean_objects: 
+@@ -69,31 +69,31 @@
+ 
+ #mzParser objects
+ mzp.%.o : $(MZPARSER_PATH)/%.cpp
+-	$(CC) $(CFLAGS) $(MZ5) $< -c -o $@
++	$(CXX) $(CFLAGS) $(MZ5) $< -c -o $@
+ 
+ #mzParserLite objects
+ mzp.%_lite.o : $(MZPARSER_PATH)/%.cpp
+-	$(CC) $(CFLAGS) $< -c -o $@
++	$(CXX) $(CFLAGS) $< -c -o $@
+ 
+ 
+ #MSToolkit objects
+ 
+ Spectrum.o : $(MST_PATH)/Spectrum.cpp
+-	$(CC) $(CFLAGS) $(MST_PATH)/Spectrum.cpp -c
++	$(CXX) $(CFLAGS) $(MST_PATH)/Spectrum.cpp -c
+ 
+ MSReader.o : $(MST_PATH)/MSReader.cpp
+-	$(CC) $(CFLAGS) $(MZ5) $(MST_PATH)/MSReader.cpp -c
++	$(CXX) $(CFLAGS) $(MZ5) $(MST_PATH)/MSReader.cpp -c
+ 
+ MSReaderLite.o : $(MST_PATH)/MSReader.cpp
+-	$(CC) $(CFLAGS) $(NOSQLITE) $(MST_PATH)/MSReader.cpp -c -o MSReaderLite.o
++	$(CXX) $(CFLAGS) $(NOSQLITE) $(MST_PATH)/MSReader.cpp -c -o MSReaderLite.o
+ 
+ MSObject.o : $(MST_PATH)/MSObject.cpp
+-	$(CC) $(CFLAGS) $(MST_PATH)/MSObject.cpp -c
++	$(CXX) $(CFLAGS) $(MST_PATH)/MSObject.cpp -c
+ 
+ mzMLWriter.o : $(MST_PATH)/mzMLWriter.cpp
+-	$(CC) $(CFLAGS) $(MST_PATH)/mzMLWriter.cpp -c
++	$(CXX) $(CFLAGS) $(MST_PATH)/mzMLWriter.cpp -c
+ 	
+ pepXMLWriter.o : $(MST_PATH)/pepXMLWriter.cpp
+-	$(CC) $(CFLAGS) $(MST_PATH)/pepXMLWriter.cpp -c
++	$(CXX) $(CFLAGS) $(MST_PATH)/pepXMLWriter.cpp -c
+ 
+ 
diff -Nru libmstoolkit-82/debian/patches/series libmstoolkit-82/debian/patches/series
--- libmstoolkit-82/debian/patches/series	2018-02-26 22:40:08.000000000 +0100
+++ libmstoolkit-82/debian/patches/series	2025-09-03 10:31:20.000000000 +0200
@@ -1,3 +1,3 @@
 makefile.patch
 missing-license-stanzas-added.patch
-
+cross.patch
diff -Nru libmstoolkit-82/debian/rules libmstoolkit-82/debian/rules
--- libmstoolkit-82/debian/rules	2024-03-17 20:14:18.000000000 +0100
+++ libmstoolkit-82/debian/rules	2025-09-03 10:31:20.000000000 +0200
@@ -30,7 +30,8 @@
 	docbook-to-man debian/libmstoolkit.sgml > debian/libmstoolkit.3
 
 override_dh_auto_build: manpage
-	make all
+	# Work around #1105536 via --no-parallel
+	dh_auto_build --no-parallel -- all AR='$(AR)'
 
 override_dh_makeshlibs:
 	mkdir -p $(DEBIAN_DIR)/$(LIB_PACKAGE)/DEBIAN


More information about the Debichem-devel mailing list