[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