[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1021841: setbfree FTCBFS -- multiple reasons



Package: setbfree
Version: 0.8.11-2
Severity: normal
Tags: patch
X-Debbugs-Cc: debian-cross@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 <nilesh@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


Reply to: