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
_______________________________________________
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers

Reply via email to