Source: libmstoolkit Version: 82-7.2 Tags: patch User: [email protected] 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
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 <[email protected]> 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

