--- Begin Message ---
Package: ardour
Version: 1:2.8.11-6
Severity: important
Tags: patch
Justification: fails to build from source
Hello!
As can be seen from the buildd logs, Ardour fails to build on non-Linux
ports:
<https://buildd.debian.org/status/package.php?p=ardour&suite=sid>
I have attached a patch which allows it to build on at least kFreeBSD
architectures. I have tested building and running the modified package on
both kfreebsd-amd64 and [linux-]amd64 systems, and have not found any
problems with it.
As noted in the patch, thanks to the FreeBSD porters, without whose work
this would have been a lot more difficult.
Please let me know if you need any more information.
Thanks!
Steven.
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (800, 'unstable'), (700, 'experimental')
Architecture: kfreebsd-amd64 (x86_64)
Kernel: kFreeBSD 8.2-1-amd64
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages ardour depends on:
ii jackd 5 JACK Audio Connection Kit (default
ii libart-2.0-2 2.3.21-1 Library of functions for 2D graphi
ii libatk1.0-0 2.0.1-2 ATK accessibility toolkit
ii libatkmm-1.6-1 2.22.5-1 C++ wrappers for ATK accessibility
ii libaubio2 0.3.2-4.2 a library for audio segmentation
ii libc0.1 2.13-14 Embedded GNU C Library: Shared lib
ii libcairo2 1.10.2-6.1 The Cairo 2D vector graphics libra
ii libcairomm-1.0-1 1.10.0-1 C++ wrappers for Cairo (shared lib
ii libcurl3-gnutls 7.21.7-1 Multi-protocol file transfer libra
ii libfftw3-3 3.2.2-1 library for computing Fast Fourier
ii libfontconfig1 2.8.0-3 generic font configuration library
ii libfreetype6 2.4.6-1 FreeType 2 font engine, shared lib
ii libgcc1 1:4.6.1-4 GCC support library
ii libgdk-pixbuf2.0-0 2.23.5-3 GDK Pixbuf library
ii libglib2.0-0 2.28.6-1 The GLib library of C routines
ii libglibmm-2.4-1c2a 2.28.1-1 C++ wrapper for the GLib toolkit (
ii libgnomecanvas2-0 2.30.3-1 powerful object-oriented display e
ii libgnomecanvasmm-2.6 2.26.0-1 C++ wrappers for libgnomecanvas2 (
ii libgtk2.0-0 2.24.5-4 GTK+ graphical user interface libr
ii libgtkmm-2.4-1c2a 1:2.24.0-1 C++ wrappers for GTK+ (shared libr
ii libjack0 [libjack-0. 1:0.121.0+svn4469-2 JACK Audio Connection Kit (librari
ii liblo7 0.26~repack-7 Lightweight OSC library
ii liblrdf0 0.4.0-5 library to manipulate RDF files de
ii libpango1.0-0 1.28.4-2 Layout and rendering of internatio
ii libpangomm-1.4-1 2.28.2-1 C++ Wrapper for pango (shared libr
ii libraptor1 1.4.21-5 Raptor RDF parser and serializer l
ii libraptor2-0 2.0.4-1 Raptor 2 RDF syntax library
ii librasqal3 0.9.26-1 Rasqal RDF query library
ii librdf0 1.0.13-3 Redland Resource Description Frame
ii libsamplerate0 0.1.7-3 Audio sample rate conversion libra
ii libsigc++-2.0-0c2a 2.2.9-1 type-safe Signal Framework for C++
ii libslv2-9 0.6.6-9 A library for simple use of LV2 pl
ii libsndfile1 1.0.25-2 Library for reading/writing audio
ii libstdc++6 4.6.1-4 GNU Standard C++ Library v3
ii libusb-0.1-4 2:0.1.12-18 userspace USB programming library
ii libvamp-hostsdk3 2.1-1 helper library for Vamp hosts writ
ii libvamp-sdk2 2.1-1 helper library for Vamp plugins wr
ii libxml2 2.7.8.dfsg-4 GNOME XML library
ii libxslt1.1 1.1.26-8 XSLT 1.0 processing library - runt
ii python 2.6.7-2 interactive high-level object-orie
ii python-gtk2 2.24.0-2 Python bindings for the GTK+ widge
ii python-twisted 11.0.0-2 Event-based framework for internet
Versions of packages ardour recommends:
ii iceweasel [www-browser] 6.0~b4-1 Web browser based on Firefox
ii midori [www-browser] 0.4.0-1 fast, lightweight graphical web br
ii w3m [www-browser] 0.5.3-3 WWW browsable pager with excellent
ardour suggests no packages.
-- debconf-show failed
diff --git a/debian/patches/160_kfreebsd.patch b/debian/patches/160_kfreebsd.patch
new file mode 100644
index 0000000..631e085
--- /dev/null
+++ b/debian/patches/160_kfreebsd.patch
@@ -0,0 +1,175 @@
+Remove assumptions about ALSA presence to allow to build on non-Linux ports. Thanks to the FreeBSD porters, on whose work this is based.
+--- a/SConstruct
++++ b/SConstruct
+@@ -1016,7 +1016,7 @@
+
+ conf = Configure(env)
+
+-if conf.CheckCHeader('alsa/asoundlib.h'):
++if conf.CheckCHeader('alsa/asoundlib.h') and os.environ['DEB_HOST_ARCH_OS'] == 'linux':
+ libraries['sysmidi'] = LibraryInfo (LIBS='asound')
+ env['SYSMIDI'] = 'ALSA Sequencer'
+ subst_dict['%MIDITAG%'] = "seq"
+@@ -1034,8 +1034,10 @@
+ subst_dict['%MIDITAG%'] = "ardour"
+ subst_dict['%MIDITYPE%'] = "coremidi"
+ else:
+- print "It appears you don't have the required MIDI libraries installed. For Linux this means you are missing the development package for ALSA libraries."
+- sys.exit (1)
++ libraries['sysmidi'] = LibraryInfo ()
++ env['SYSMIDI'] = 'none'
++ subst_dict['%MIDITAG%'] = "none"
++ subst_dict['%MIDITYPE%'] = "none"
+
+ pname = env['PROGRAM_NAME']
+ subst_dict['%MIDI_DEVICE_NAME%'] = pname.lower()
+@@ -1320,9 +1322,12 @@
+ if conf.CheckCHeader('/System/Library/Frameworks/CoreAudio.framework/Versions/A/Headers/CoreAudio.h'):
+ subst_dict['%JACK_INPUT%'] = "coreaudio:Built-in Audio:in"
+ subst_dict['%JACK_OUTPUT%'] = "coreaudio:Built-in Audio:out"
+-else:
++elif os.environ['DEB_HOST_ARCH_OS'] == 'linux':
+ subst_dict['%JACK_INPUT%'] = "alsa_pcm:playback_"
+ subst_dict['%JACK_OUTPUT%'] = "alsa_pcm:capture_"
++else:
++ subst_dict['%JACK_INPUT%'] = "oss:playback_"
++ subst_dict['%JACK_OUTPUT%'] = "oss:capture_"
+
+ # posix_memalign available
+ if not conf.CheckFunc('posix_memalign'):
+--- a/libs/midi++2/SConscript
++++ b/libs/midi++2/SConscript
+@@ -39,9 +39,11 @@
+ midi2.Append (CCFLAGS="-DWITH_COREMIDI")
+ midi2.Append (LINKFLAGS="-framework CoreMIDI")
+ midi2.Append (LINKFLAGS="-framework CoreFoundation")
+-else:
++elif os.environ['DEB_HOST_ARCH_OS'] == 'linux':
+ sysdep_src = [ 'alsa_sequencer_midiport.cc' ]
+ midi2.Append (CCFLAGS="-DWITH_ALSA")
++else:
++ sysdep_src = [ ]
+
+ midi2.Append(CCFLAGS="-D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE")
+ midi2.Append(CCFLAGS="-DLIBSIGC_DISABLE_DEPRECATED")
+--- a/gtk2_ardour/engine_dialog.cc
++++ b/gtk2_ardour/engine_dialog.cc
+@@ -12,7 +12,7 @@
+ #include <CoreFoundation/CFString.h>
+ #include <sys/param.h>
+ #include <mach-o/dyld.h>
+-#else
++#elif defined(__linux__)
+ #include <alsa/asoundlib.h>
+ #endif
+
+@@ -113,7 +113,9 @@
+ #ifdef __APPLE__
+ strings.push_back (X_("CoreAudio"));
+ #else
++#ifdef __linux__
+ strings.push_back (X_("ALSA"));
++#endif
+ strings.push_back (X_("OSS"));
+ strings.push_back (X_("FFADO"));
+ #endif
+@@ -158,7 +160,7 @@
+ basic_packer.attach (period_size_combo, 1, 2, row, row + 1, FILL|EXPAND, (AttachOptions) 0);
+ row++;
+
+-#ifndef __APPLE__
++#ifdef __linux__
+ label = manage (new Label (_("Number of buffers")));
+ basic_packer.attach (*label, 0, 1, row, row + 1, FILL|EXPAND, (AttachOptions) 0);
+ basic_packer.attach (periods_spinner, 1, 2, row, row + 1, FILL|EXPAND, (AttachOptions) 0);
+@@ -179,7 +181,7 @@
+ row++;
+ /* no audio mode with CoreAudio, its duplex or nuthin' */
+
+-#ifndef __APPLE__
++#ifdef __linux__
+ label = manage (new Label (_("Audio Mode")));
+ basic_packer.attach (*label, 0, 1, row, row + 1, FILL|EXPAND, (AttachOptions) 0);
+ basic_packer.attach (audio_mode_combo, 1, 2, row, row + 1, FILL|EXPAND, (AttachOptions) 0);
+@@ -218,7 +220,7 @@
+ realtime_button.signal_toggled().connect (mem_fun (*this, &EngineControl::realtime_changed));
+ realtime_changed ();
+
+-#ifndef __APPLE__
++#ifdef __linux__
+ label = manage (new Label (_("Realtime Priority")));
+ label->set_alignment (1.0, 0.5);
+ options_packer.attach (*label, 0, 1, row, row + 1, FILL|EXPAND, (AttachOptions) 0);
+@@ -268,7 +270,7 @@
+ options_packer.attach (*label, 0, 1, row, row + 1, FILL|EXPAND, (AttachOptions) 0);
+ ++row;
+
+-#ifndef __APPLE__
++#ifdef __linux
+ label = manage (new Label (_("Dither")));
+ label->set_alignment (1.0, 0.5);
+ options_packer.attach (dither_mode_combo, 1, 2, row, row + 1, FILL|EXPAND, AttachOptions(0));
+@@ -299,7 +301,7 @@
+ device_packer.set_spacings (6);
+ row = 0;
+
+-#ifndef __APPLE__
++#ifdef __linux__
+ label = manage (new Label (_("Input device")));
+ label->set_alignment (1.0, 0.5);
+ device_packer.attach (*label, 0, 1, row, row+1, FILL|EXPAND, (AttachOptions) 0);
+@@ -570,7 +572,7 @@
+ void
+ EngineControl::realtime_changed ()
+ {
+-#ifndef __APPLE__
++#ifdef __linux__
+ priority_spinner.set_sensitive (realtime_button.get_active());
+ #endif
+ }
+@@ -586,8 +588,10 @@
+ #endif
+
+ #ifndef __APPLE__
++#ifdef __linux__
+ } else if (driver == "ALSA") {
+ devices[driver] = enumerate_alsa_devices ();
++#endif
+ } else if (driver == "FFADO") {
+ devices[driver] = enumerate_ffado_devices ();
+ } else if (driver == "OSS") {
+@@ -714,6 +718,7 @@
+ return devs;
+ }
+ #else
++#ifdef __linux__
+ vector<string>
+ EngineControl::enumerate_alsa_devices ()
+ {
+@@ -774,6 +779,7 @@
+
+ return devs;
+ }
++#endif
+
+ vector<string>
+ EngineControl::enumerate_ffado_devices ()
+@@ -816,7 +822,9 @@
+ vector<string>& strings = devices[driver];
+
+ if (strings.empty() && driver != "FFADO" && driver != "Dummy") {
++#ifdef __linux__
+ error << string_compose (_("No devices found for driver \"%1\""), driver) << endmsg;
++#endif
+ return;
+ }
+
+@@ -862,7 +870,7 @@
+ EngineControl::redisplay_latency ()
+ {
+ uint32_t rate = get_rate();
+-#ifdef __APPLE_
++#ifndef __linux__
+ float periods = 2;
+ #else
+ float periods = periods_adjustment.get_value();
diff --git a/debian/patches/series b/debian/patches/series
index 8c0c070..43377df 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,4 @@
111_libardourvampplugins.patch
140_enable-ladish.patch
150_soundtouch.patch
+160_kfreebsd.patch
--- End Message ---