Package: setbfree Version: 0.8.11-2 Severity: normal Tags: patch X-Debbugs-Cc: debian-cr...@lists.debian.org
Hi, setbfree Fails to cross build because: - It hard-codes pkg-config everywhere and that defaults to the build architecture while cross-building. This can be resolved by using PKG_CONFIG and setting it to this value only if it is previously un-set. And PKG_CONFIG can be set to the pkg-config prefixed with the architecure-triplet while cross building. - It uses strip extensively. While for debian systems, simply removing the strip call from all makefiles could be OK, since dh_strip will simply take care of it. But, it'd be hard to make things upstream-able if desired at some point. So I sent STRIP to the <arch-triplet-prefix>-strip for cross builds. A patch can be found attached with this mail. Thanks! -- System Information: Debian Release: bookworm/sid APT prefers testing APT policy: (990, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 5.18.0-3-amd64 (SMP w/8 CPU threads; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
>From 131fbc61c9baf052d0693b7f7d63d69fcd970d14 Mon Sep 17 00:00:00 2001 From: Nilesh Patra <nil...@debian.org> Date: Sat, 15 Oct 2022 22:19:54 +0530 Subject: [PATCH] Get package cross-building --- debian/patches/cross.patch | 252 +++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + debian/rules | 9 +- 3 files changed, 261 insertions(+), 1 deletion(-) create mode 100644 debian/patches/cross.patch diff --git a/debian/patches/cross.patch b/debian/patches/cross.patch new file mode 100644 index 0000000..1dd9be8 --- /dev/null +++ b/debian/patches/cross.patch @@ -0,0 +1,252 @@ +--- a/b_chorato/Makefile ++++ b/b_chorato/Makefile +@@ -3,7 +3,7 @@ + + LOADLIBES = -lm + override CFLAGS+= -I../src +-override CFLAGS+=`pkg-config --cflags lv2` -fvisibility=hidden ++override CFLAGS+=`$(PKG_CONFIG) --cflags lv2` -fvisibility=hidden + + targets= + +--- a/b_overdrive/Makefile ++++ b/b_overdrive/Makefile +@@ -12,16 +12,16 @@ + targets+=lv2 + endif + +-ifeq ($(shell pkg-config --exists liblo && echo yes), yes) +- override CFLAGS+=-DHAVE_LIBLO `pkg-config --cflags liblo` +- LOADLIBES+=`pkg-config --libs liblo` ++ifeq ($(shell $(PKG_CONFIG) --exists liblo && echo yes), yes) ++ override CFLAGS+=-DHAVE_LIBLO `$(PKG_CONFIG) --cflags liblo` ++ LOADLIBES+=`$(PKG_CONFIG) --libs liblo` + endif + +-ifeq ($(shell pkg-config --exists jack && echo yes)$(OVERDRIVEJACK), yesyes) ++ifeq ($(shell $(PKG_CONFIG) --exists jack && echo yes)$(OVERDRIVEJACK), yesyes) + targets+=jboverdrive + binaries+=jboverdrive +- override CFLAGS+=-DHAVE_JACK `pkg-config --cflags jack` +- LOADLIBES+=`pkg-config --libs jack` ++ override CFLAGS+=-DHAVE_JACK `$(PKG_CONFIG) --cflags jack` ++ LOADLIBES+=`$(PKG_CONFIG) --libs jack` + endif + + OVMSRC=\ +--- a/b_reverb/Makefile ++++ b/b_reverb/Makefile +@@ -3,7 +3,7 @@ + include ../git2lv2.mk + + LOADLIBES = -lm +-override CFLAGS+=`pkg-config --cflags lv2` -fvisibility=hidden ++override CFLAGS+=`$(PKG_CONFIG) --cflags lv2` -fvisibility=hidden + + targets=reverb.o + +--- a/b_synth/Makefile ++++ b/b_synth/Makefile +@@ -4,7 +4,7 @@ + + LOADLIBES = -lm + override CFLAGS+= -I../src -I../b_overdrive -I../b_reverb -I../b_whirl +-override CFLAGS+=`pkg-config --cflags lv2` -DLV2SYNTH -fvisibility=hidden ++override CFLAGS+=`$(PKG_CONFIG) --cflags lv2` -DLV2SYNTH -fvisibility=hidden + targets= + + LV2NAME=b_synth +--- a/b_whirl/Makefile ++++ b/b_whirl/Makefile +@@ -7,7 +7,7 @@ + endif + + LOADLIBES = -lm +-override CFLAGS+=`pkg-config --cflags lv2` -fvisibility=hidden ++override CFLAGS+=`$(PKG_CONFIG) --cflags lv2` -fvisibility=hidden + + targets=whirl.o eqcomp.o + +@@ -25,7 +25,7 @@ + $(warning This plugin GUI needs https://github.com/x42/robtk) + $(info set the RW environment variale to the location of the robtk headers) + else +- HAVE_RTK = $(shell pkg-config --exists pango cairo $(PKG_GL_LIBS) && echo yes) ++ HAVE_RTK = $(shell $(PKG_CONFIG) --exists pango cairo $(PKG_GL_LIBS) && echo yes) + endif + + ifeq ($(HAVE_RTK), yes) +@@ -79,7 +79,7 @@ + -shared $(LV2LDFLAGS) $(LDFLAGS) + + JACKCFLAGS=$(CFLAGS) $(GLUICFLAGS) $(LIC_CFLAGS) -Wno-unused-function +-JACKCFLAGS+=`pkg-config --cflags jack lv2 pango pangocairo $(PKG_GL_LIBS)` ++JACKCFLAGS+=`$(PKG_CONFIG) --cflags jack lv2 pango pangocairo $(PKG_GL_LIBS)` + JACKLIBS=-lm $(GLUILIBS) $(LIC_LOADLIBES) + + $(eval x42_whirl_JACKSRC = lv2.c whirl.c) +--- a/common.mak ++++ b/common.mak +@@ -29,17 +29,18 @@ + override CFLAGS += -DVERSION="\"$(VERSION)\"" + + STRIP ?= strip ++PKG_CONFIG ?= pkg-config + + CXXFLAGS ?= $(OPTIMIZATIONS) -Wall + GLUICFLAGS=-I. -I.. -Wno-unused-function + STRIPFLAGS=-s + + # check for LV2 +-LV2AVAIL=$(shell pkg-config --exists lv2 && echo yes) ++LV2AVAIL=$(shell $(PKG_CONFIG) --exists lv2 && echo yes) + + LV2UIREQ= + # check for LV2 idle thread +-ifeq ($(shell pkg-config --atleast-version=1.6.0 lv2 || echo no), no) ++ifeq ($(shell $(PKG_CONFIG) --atleast-version=1.6.0 lv2 || echo no), no) + override CFLAGS+=-DOLD_SUIL + else + GLUICFLAGS+=-DHAVE_IDLE_IFACE +@@ -48,7 +49,7 @@ + endif + + # check for lv2_atom_forge_object new in 1.8.1 deprecates lv2_atom_forge_blank +-ifeq ($(shell pkg-config --atleast-version=1.8.1 lv2 && echo yes), yes) ++ifeq ($(shell $(PKG_CONFIG) --atleast-version=1.8.1 lv2 && echo yes), yes) + override CFLAGS += -DHAVE_LV2_1_8 + endif + +@@ -92,8 +93,8 @@ + EXTENDED_RE=-r + endif + +-GLUICFLAGS+=`pkg-config --cflags cairo pango $(PKG_GL_LIBS)` +-GLUILIBS+=`pkg-config $(PKG_UI_FLAGS) --libs cairo pango pangocairo $(PKG_GL_LIBS)` ++GLUICFLAGS+=`$(PKG_CONFIG) --cflags cairo pango $(PKG_GL_LIBS)` ++GLUILIBS+=`$(PKG_CONFIG) $(PKG_UI_FLAGS) --libs cairo pango pangocairo $(PKG_GL_LIBS)` + + ifneq ($(XWIN),) + GLUILIBS+=-lpthread -lusp10 +@@ -129,7 +130,7 @@ + endif + + ifeq ($(MOD),) +- HAVE_UI=$(shell pkg-config --exists $(PKG_GL_LIBS) ftgl && echo $(FONT_FOUND)) ++ HAVE_UI=$(shell $(PKG_CONFIG) --exists $(PKG_GL_LIBS) ftgl && echo $(FONT_FOUND)) + else + HAVE_UI=no + endif +@@ -148,31 +149,31 @@ + ifeq ($(IS_OSX), yes) + UIDEPS+=../pugl/pugl_osx.m + UILIBS=../pugl/pugl_osx.m -framework Cocoa -framework OpenGL +- UILIBS+=`pkg-config --variable=libdir ftgl`/libftgl.a `pkg-config --variable=libdir ftgl`/libfreetype.a +- UILIBS+=`pkg-config --libs zlib` ++ UILIBS+=`$(PKG_CONFIG) --variable=libdir ftgl`/libftgl.a `$(PKG_CONFIG) --variable=libdir ftgl`/libfreetype.a ++ UILIBS+=`$(PKG_CONFIG) --libs zlib` + UILIBS+=-lm $(OSXCOMPAT) + else + ifeq ($(IS_WIN), yes) + UIDEPS+=../pugl/pugl_win.cpp + UILIBS=../pugl/pugl_win.cpp +- UILIBS+=`pkg-config --variable=libdir ftgl`/libftgl.a `pkg-config --variable=libdir ftgl`/libfreetype.a +- UILIBS+=`pkg-config --libs zlib` ++ UILIBS+=`$(PKG_CONFIG) --variable=libdir ftgl`/libftgl.a `$(PKG_CONFIG) --variable=libdir ftgl`/libfreetype.a ++ UILIBS+=`$(PKG_CONFIG) --libs zlib` + UILIBS+=-lws2_32 -lwinmm -lopengl32 -lglu32 -lgdi32 -lcomdlg32 -lpthread + else + UIDEPS+=../pugl/pugl_x11.c +- override CFLAGS+=`pkg-config --cflags gl glu` ++ override CFLAGS+=`$(PKG_CONFIG) --cflags gl glu` + UILIBS=../pugl/pugl_x11.c -lX11 + ifeq ($(STATICBUILD), yes) +- UILIBS+=`pkg-config --libs gl glu` +- UILIBS+=`pkg-config --variable=libdir ftgl`/libftgl.a `pkg-config --variable=libdir ftgl`/libfreetype.a +- UILIBS+=`pkg-config --libs zlib` ++ UILIBS+=`$(PKG_CONFIG) --libs gl glu` ++ UILIBS+=`$(PKG_CONFIG) --variable=libdir ftgl`/libftgl.a `$(PKG_CONFIG) --variable=libdir ftgl`/libfreetype.a ++ UILIBS+=`$(PKG_CONFIG) --libs zlib` + else +- UILIBS+=`pkg-config --libs gl glu ftgl` ++ UILIBS+=`$(PKG_CONFIG) --libs gl glu ftgl` + endif + UICFLAGS+=-DFONTFILE=\"$(FONTFILE)\" + endif + endif +- UICFLAGS+=`pkg-config --cflags freetype2` `pkg-config --cflags ftgl` -DHAVE_FTGL -DUINQHACK=Sbf ++ UICFLAGS+=`$(PKG_CONFIG) --cflags freetype2` `$(PKG_CONFIG) --cflags ftgl` -DHAVE_FTGL -DUINQHACK=Sbf + endif + + #NOTE: midi.c and cfgParser.c needs to be re-compiled w/o HAVE_ASEQ +--- a/src/Makefile ++++ b/src/Makefile +@@ -44,31 +44,31 @@ + ../b_overdrive/overdrive.h + + +-ifeq ($(shell pkg-config --exists jack || echo no), no) ++ifeq ($(shell $(PKG_CONFIG) --exists jack || echo no), no) + $(error "JACK is required - install libjack-dev or libjack-jackd2-dev") + endif + +-ifeq ($(shell pkg-config --exists alsa && echo yes)$(ENABLE_ALSA), yesyes) +- override CFLAGS+=-DHAVE_ASEQ `pkg-config --cflags alsa` +- LOADLIBES+=`pkg-config --libs alsa` ++ifeq ($(shell $(PKG_CONFIG) --exists alsa && echo yes)$(ENABLE_ALSA), yesyes) ++ override CFLAGS+=-DHAVE_ASEQ `$(PKG_CONFIG) --cflags alsa` ++ LOADLIBES+=`$(PKG_CONFIG) --libs alsa` + endif + + +-override CFLAGS+=`pkg-config --cflags jack` ++override CFLAGS+=`$(PKG_CONFIG) --cflags jack` + + ifeq ($(USEWEAKJACK),1) + override CFLAGS+=-DUSE_WEAK_JACK -I$(RW) + LOADLIBES+=-ldl + WEAKJACK=$(RW)weakjack/weak_libjack.c + else +- LOADLIBES+=`pkg-config --libs jack` ++ LOADLIBES+=`$(PKG_CONFIG) --libs jack` + endif + +-ifeq ($(shell pkg-config --exists sndfile \ ++ifeq ($(shell $(PKG_CONFIG) --exists sndfile \ + && test -f /usr/include/zita-convolver.h -o -f /usr/local/include/zita-convolver.h \ + && echo yes), $(ENABLE_CONVOLUTION)) +- override CFLAGS+= -DHAVE_ZITACONVOLVE `pkg-config --cflags sndfile` +- LOADLIBES+=-lzita-convolver `pkg-config --libs sndfile` ++ override CFLAGS+= -DHAVE_ZITACONVOLVE `$(PKG_CONFIG) --cflags sndfile` ++ LOADLIBES+=-lzita-convolver `$(PKG_CONFIG) --libs sndfile` + OBJS+=../b_conv/convolution.o + HEADERS+=../b_conv/convolution.h + BXCC=$(CXX) +--- a/ui/Makefile ++++ b/ui/Makefile +@@ -3,7 +3,7 @@ + WINDRES=$(XWIN)-windres + + override CFLAGS+= -I../src -I../b_overdrive -I../b_reverb -I../b_whirl -I../b_synth/ +-override CFLAGS+=`pkg-config --cflags lv2` -DLV2SYNTH -DREQUIRE_UI ++override CFLAGS+=`$(PKG_CONFIG) --cflags lv2` -DLV2SYNTH -DREQUIRE_UI + + JACKEXTRA= + OSXJACKWRAP= +@@ -32,12 +32,12 @@ + UICFLAGS+=-DUSE_WEAK_JACK + JACKEXTRA+=$(RW)weakjack/weak_libjack.c + else +- UILIBS+=`pkg-config --libs jack` ++ UILIBS+=`$(PKG_CONFIG) --libs jack` + endif + +-ifeq ($(shell pkg-config --exists liblo && echo yes), yes) +- UICFLAGS+=`pkg-config $(PKG_UI_FLAGS) --cflags liblo` -DHAVE_LIBLO +- UILIBS+=`pkg-config $(PKG_UI_FLAGS) --libs liblo` ++ifeq ($(shell $(PKG_CONFIG) --exists liblo && echo yes), yes) ++ UICFLAGS+=`$(PKG_CONFIG) $(PKG_UI_FLAGS) --cflags liblo` -DHAVE_LIBLO ++ UILIBS+=`$(PKG_CONFIG) $(PKG_UI_FLAGS) --libs liblo` + endif + + targets= diff --git a/debian/patches/series b/debian/patches/series index ad747cc..0d6b421 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ Use_DejaVu_font.patch FTBFS.patch Fix_spelling_error.patch +cross.patch diff --git a/debian/rules b/debian/rules index ca71cf0..33ddb22 100755 --- a/debian/rules +++ b/debian/rules @@ -2,6 +2,12 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow +ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) +STRIP := strip +else +STRIP := $(DEB_HOST_GNU_TYPE)-strip +export PKG_CONFIG = $(DEB_HOST_GNU_TYPE)-pkg-config +endif %: dh $@ @@ -9,7 +15,8 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow override_dh_auto_build: dh_auto_build -- \ PREFIX=/usr \ - OPTIMIZATIONS=-O3 + OPTIMIZATIONS=-O3 \ + STRIP=$(STRIP) override_dh_auto_install: dh_auto_install -- \ -- 2.35.1