--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: juce FTCBFS: multiple reasons
- From: Helmut Grohne <helmut@subdivi.de>
- Date: Thu, 20 Feb 2020 08:06:38 +0100
- Message-id: <20200220070637.GA28403@alf.mars>
Source: juce
Version: 5.4.7~ds0-1
Tags: patch
User: debian-cross@lists.debian.org
Usertags: ftcbfs
juce fails to cross build from source, for multiple reasons.
1. debian/rules invokes the build architecture pkg-config. An easy
solution is letting dpkg's buildtools.mk supply pkg-config.
2. An upstream Makefile hard codes the build architecture pkg-config.
It should be substitutable such that dh_auto_build can replace it.
3. debian/rules has a bare make invocation that lacks cross tools. Using
dh_auto_build can fix this.
Please consider applying the attached patch to make juce cross
buildable.
Helmut
diff --minimal -Nru juce-5.4.7~ds0/debian/changelog juce-5.4.7~ds0/debian/changelog
--- juce-5.4.7~ds0/debian/changelog 2020-02-18 09:46:05.000000000 +0100
+++ juce-5.4.7~ds0/debian/changelog 2020-02-20 06:50:40.000000000 +0100
@@ -1,3 +1,13 @@
+juce (5.4.7~ds0-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTCBFS: (Closes: #-1)
+ + Let dpkg's buildtools.mk supply pkg-config for debian/rules.
+ + cross.patch: Make pkg-config substitutable.
+ + Let dh_auto_build pass cross tools to make.
+
+ -- Helmut Grohne <helmut@subdivi.de> Thu, 20 Feb 2020 06:50:40 +0100
+
juce (5.4.7~ds0-1) unstable; urgency=medium
* New upstream version 5.4.7~ds0
diff --minimal -Nru juce-5.4.7~ds0/debian/patches/cross.patch juce-5.4.7~ds0/debian/patches/cross.patch
--- juce-5.4.7~ds0/debian/patches/cross.patch 1970-01-01 01:00:00.000000000 +0100
+++ juce-5.4.7~ds0/debian/patches/cross.patch 2020-02-20 06:50:38.000000000 +0100
@@ -0,0 +1,56 @@
+--- juce-5.4.7~ds0.orig/extras/Projucer/Builds/LinuxMakefile/Makefile
++++ juce-5.4.7~ds0/extras/Projucer/Builds/LinuxMakefile/Makefile
+@@ -19,6 +19,10 @@
+ AR=ar
+ endif
+
++ifndef PKG_CONFIG
++ PKG_CONFIG=pkg-config
++endif
++
+ ifndef CONFIG
+ CONFIG=Debug
+ endif
+@@ -35,13 +39,13 @@
+ TARGET_ARCH :=
+ endif
+
+- JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.7 -DJUCE_APP_VERSION_HEX=0x50407 $(shell pkg-config --cflags x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
++ JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.7 -DJUCE_APP_VERSION_HEX=0x50407 $(shell $(PKG_CONFIG) --cflags x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
+ JUCE_CPPFLAGS_APP := -DJucePlugin_Build_VST=0 -DJucePlugin_Build_VST3=0 -DJucePlugin_Build_AU=0 -DJucePlugin_Build_AUv3=0 -DJucePlugin_Build_RTAS=0 -DJucePlugin_Build_AAX=0 -DJucePlugin_Build_Standalone=0 -DJucePlugin_Build_Unity=0
+ JUCE_TARGET_APP := Projucer
+
+ JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS)
+ JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS)
+- JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -lrt -ldl -lpthread $(LDFLAGS)
++ JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -lrt -ldl -lpthread $(LDFLAGS)
+
+ CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR)
+ endif
+@@ -56,13 +60,13 @@
+ TARGET_ARCH :=
+ endif
+
+- JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.7 -DJUCE_APP_VERSION_HEX=0x50407 $(shell pkg-config --cflags x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
++ JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=5.4.7 -DJUCE_APP_VERSION_HEX=0x50407 $(shell $(PKG_CONFIG) --cflags x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
+ JUCE_CPPFLAGS_APP := -DJucePlugin_Build_VST=0 -DJucePlugin_Build_VST3=0 -DJucePlugin_Build_AU=0 -DJucePlugin_Build_AUv3=0 -DJucePlugin_Build_RTAS=0 -DJucePlugin_Build_AAX=0 -DJucePlugin_Build_Standalone=0 -DJucePlugin_Build_Unity=0
+ JUCE_TARGET_APP := Projucer
+
+ JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS)
+ JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS)
+- JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS)
++ JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS)
+
+ CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR)
+ endif
+@@ -136,8 +140,8 @@
+ all : $(JUCE_OUTDIR)/$(JUCE_TARGET_APP)
+
+ $(JUCE_OUTDIR)/$(JUCE_TARGET_APP) : $(OBJECTS_APP) $(RESOURCES)
+- @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; }
+- @pkg-config --print-errors x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0
++ @command -v $(PKG_CONFIG) >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; }
++ @$(PKG_CONFIG) --print-errors x11 xinerama xext freetype2 webkit2gtk-4.0 gtk+-x11-3.0
+ @echo Linking "Projucer - App"
+ -$(V_AT)mkdir -p $(JUCE_BINDIR)
+ -$(V_AT)mkdir -p $(JUCE_LIBDIR)
diff --minimal -Nru juce-5.4.7~ds0/debian/patches/series juce-5.4.7~ds0/debian/patches/series
--- juce-5.4.7~ds0/debian/patches/series 2020-02-18 09:46:05.000000000 +0100
+++ juce-5.4.7~ds0/debian/patches/series 2020-02-20 06:49:32.000000000 +0100
@@ -8,3 +8,4 @@
debian_unittests_globalpaths.patch
debian_vst.patch
debian_link_systemlibs.patch
+cross.patch
diff --minimal -Nru juce-5.4.7~ds0/debian/rules juce-5.4.7~ds0/debian/rules
--- juce-5.4.7~ds0/debian/rules 2020-02-18 09:46:05.000000000 +0100
+++ juce-5.4.7~ds0/debian/rules 2020-02-20 06:50:40.000000000 +0100
@@ -3,6 +3,8 @@
# Copyright © 2015 IOhannes m zmölnig <umlaeute@debian.org>
# Description: Main Debian packaging script for JUCE
+include /usr/share/dpkg/buildtools.mk
+
## export dummy TARGET_ARCH that doesn't do much,
## but disables "-march=native" optimization
export TARGET_ARCH=-Wl,--as-needed
@@ -17,7 +19,7 @@
#DEB_COPYRIGHT_CHECK_IGNORE_REGEX = \
#^((.*\.jpg)|(.*\.JPG)|(.*\.gif)|(.*\.png)|(.*\.ico)|(.*\.icns)|(gradle-wrapper\.jar)|(.*\.mp3)|(.*\.caf)|(.*\.nib)|examples/InAppPurchase/Signing/InAppPurchase\.keystore|examples/(InAppPurchase/BinaryData/(Robot|Ed|Jules|JB|Fabian|Lukasz)[012]\.ogg|AUv3Synth|PlugInSamples/MultiOutSynth)/Source/BinaryData/singing\.ogg|examples/Demo/Resources/cello\.wav|examples/Demo/Resources/icons\.zip|modules/juce_audio_plugin_client/RTAS/juce_RTAS_WinResources\.rsr|examples/ComponentTutorialExample/Introduction to Components - Part 1\.pdf|debian/(changelog|copyright(|_hints|_newhints)))$
-LDFLAGS += $(shell pkg-config --libs libjpeg libpng zlib)
+LDFLAGS += $(shell $(PKG_CONFIG) --libs libjpeg libpng zlib)
# JUCE uses some c++11 features requiring atomic_store_8 and
# atomic_load_8, so we need to link with libatomic on
@@ -44,7 +46,7 @@
LDFLAGS="$(LDFLAGS)" \
CPPFLAGS="$(CPPFLAGS)" \
$(empty)
- make -C debian/extra/lv2-ttl-generator/
+ dh_auto_build --sourcedirectory=debian/extra/lv2-ttl-generator/
help2man -N \
--version-string="Projucer $(DEB_UPSTREAM_VERSION)" \
-n "the JUCE project-management tool" \
--- End Message ---
--- Begin Message ---
Source: juce
Source-Version: 5.4.7~ds0-2
Done: =?utf-8?q?IOhannes_m_zm=C3=B6lnig_=28Debian/GNU=29?= <umlaeute@debian.org>
We believe that the bug you reported is fixed in the latest version of
juce, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 951684@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org> (supplier of updated juce package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Mon, 16 Mar 2020 13:35:45 +0100
Source: juce
Architecture: source
Version: 5.4.7~ds0-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Changed-By: IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>
Closes: 951684
Changes:
juce (5.4.7~ds0-2) unstable; urgency=medium
.
* Refresh patches using 'gbp pq'
* Add patch to not fail fatally without X-server
* Fix FTCBFS:
+ Let dpkg's buildtools.mk supply pkg-config for debian/rules.
+ cross.patch: Make pkg-config substitutable.
+ Let dh_auto_build pass cross tools to make.
Thanks to Helmut Grohne <helmut@subdivi.de> (Closes: #951684)
* Add patch to allow overriding of pkg-config in generated Makefiles
Checksums-Sha1:
98e320ed6f5144765d0fb7173509a7cf378f9412 2616 juce_5.4.7~ds0-2.dsc
6c8994468dca381d6b386561226c549e6e6bca36 62336 juce_5.4.7~ds0-2.debian.tar.xz
Checksums-Sha256:
e44e7be94f91091596020716e53b82a4a82e635a11ab1c973c9c52d06b8780bc 2616 juce_5.4.7~ds0-2.dsc
333b9acd80db47c970381e6a63bcd96d77a26bcb56eba5e900de4c13db599f1d 62336 juce_5.4.7~ds0-2.debian.tar.xz
Files:
1b91a0c01d1ee76600da4e98bfddc78f 2616 devel optional juce_5.4.7~ds0-2.dsc
533d5327e628537d00e5dad4d477bd7a 62336 devel optional juce_5.4.7~ds0-2.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
iQJKBAEBCAA0FiEEdAXnRVdICXNIABVttlAZxH96NvgFAl5vew8WHGZvcnVtQHVt
bGFldXRlLm11ci5hdAAKCRC2UBnEf3o2+BH1EACA2SXO7uHOV+6s52MFaNAgvEwE
MldeqJYMqO2sI0QiI0/Qjs1Os1J5dFzdgMsq7GCH89YQcFrDlAl9DPyUdh+nhUcp
RdOEyDyr4hsQS4Sqyvvimkr4uRYP8S9gw8hwAQyPBOGL7sw1HyQoWnfGVfB311Jf
3GuQxUa5l64Cyg/4nvYxyPaKcTUJGdxWJelfc7J2k/+Z7wdbFOYKqqJsW/24UlPW
P9q4vQGVfv9ic1Mqc736YAN0Q99sfRLYp9almglbYmI2MEq4WKLw8VVUx9hA5NUK
dhYofJgdhkTZQy2WVlDdR5Wpbwqa+01Ko7GNprHxQc9Dvotsb/jhOQdhc680CVr/
/2JdxH4wInILI60BBraist3XpOnXiI76ZtjHdpd+th96oIhzi6SIQV0f4QSUKxCK
cdckIcuYYmH+3nqQfYKpKTnqTNxrKTX9Yv7xP3YdmZjt7Bdv/r+5WYddDDCauzDJ
GtgA3eu+xObH/aNCWiyrWbaYLUAerHuWU/LrPZdygXilPzwXGA5vuBHaSCeMBuum
MswYVcJOvKC8xyP5Tf2TYw/yGfGgK+hZm6QrtAjKp6ugDh+jLL0jb2Xy/cqKJrpq
8Z5krOKEQFU9o+yMYdtEWfQ9FEKEGotcRLwrMlfrJzlsakv+YngxIwzdROAXphXl
8/9w9ZtQgVSkSebI6g==
=Cs37
-----END PGP SIGNATURE-----
--- End Message ---