commit:     075676d66fb8c17de1758e8eb801547e6fa23c75
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 25 12:45:00 2015 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Oct 25 12:45:00 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=075676d6

media-sound/sooperlooper: Version bump and support wxGTK:3.0 (#563432)

Package-Manager: portage-2.2.23

 media-sound/sooperlooper/Manifest                  |   1 +
 .../files/sooperlooper-1.7.3-sigc++-2.5.patch      | 166 +++++++++++++++++++
 .../files/sooperlooper-1.7.3-wx3.0.patch           | 177 +++++++++++++++++++++
 media-sound/sooperlooper/sooperlooper-1.7.3.ebuild |  59 +++++++
 4 files changed, 403 insertions(+)

diff --git a/media-sound/sooperlooper/Manifest 
b/media-sound/sooperlooper/Manifest
index ff07492..d612e4c 100644
--- a/media-sound/sooperlooper/Manifest
+++ b/media-sound/sooperlooper/Manifest
@@ -1,3 +1,4 @@
 DIST sooperlooper-1.6.17.tar.gz 704953 SHA256 
f35b1ffb977499f649cd22ed19441ca55618db4e0d4e0805973f228135b3dbdf SHA512 
e7e8494b1ec00ad54ab1a5e42fe295ffe397e98225c81e1d69dd88f696b2e08502fef16f723536ffcc09d7b537a762f43a139c9c08be28f9ae7e41057fc58db5
 WHIRLPOOL 
d194b2fa1015d253059a31014421e7d443f3620ac68e403c4f27d498a8d90f54b3334b9f60f10af0612a5b99c9523aa2b8ec6f7399738237656dde6187589a43
 DIST sooperlooper-1.6.18.tar.gz 705462 SHA256 
087a52186fefb138ac16deebc1ed4b9ff4945ffb4fe3e2170f60fcf97a3a8c38 SHA512 
cccfc6ced0e2441bdc004b892b67141b476a89c19187fa249a30613f3cd1b77b5e6767262249ad42ee50007ea538ae3eff5dce47a529937d7d32e81ed73a5a31
 WHIRLPOOL 
69f8a1d421a3fe6ad07ae7721fdff760219cbfedf6a4ffdf23217476b56bcbc4bc0f58e00505cfaca05e47c69e13ee17eaa3de9baf01bc2ac3b8dde6a9131db4
 DIST sooperlooper-1.6.5-m4.tar.bz2 1463 SHA256 
ee8e3084c3d3d4db29f3d7b4dde0d260b9dfb72be8c9362c7fd711fb7784e0bb SHA512 
01b4405dcd91e617c8dafb9fcfab99507d0a9637d9b0eec84276c348968e31159b68ce5c8b7f900ab8a830f2b5c91b798146d5272d006a2b866f149e485f228d
 WHIRLPOOL 
8faddc39687193c643265c52ab2930f98094f4d2544e7d1e1005d5acffa00d6577d95484b51919aea4d810320ebef362ce9a9ab98ac3bc41aa0441a9666a4abc
+DIST sooperlooper-1.7.3.tar.gz 732406 SHA256 
7a7dbdedb5dab28fb1f98ba5827d88df4c7327909ab87f6def167517786f4f58 SHA512 
cbc9f6b3e4cafc6f18ddb2e2415d2bac274c8cc578b5dadc6ad878b1bed34e514208bc990c3a7dab0106cbf34ad16be12846851e446d724d77386e70d975e14b
 WHIRLPOOL 
97df9fa8a8a57f4a1cf6929dd68628f72c12e755e9676f69062613456e7c01af0f83a11b01af8e14cd81740e09b26c23943af37f37c164fc61dd2adf4d167e08

diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch 
b/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch
new file mode 100644
index 0000000..d105e82
--- /dev/null
+++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-sigc++-2.5.patch
@@ -0,0 +1,166 @@
+Description: support for sigc++>=2.5.2
+ since sigc++-2.5.2, the sigc++/object.h has been removed
+ (and replaced by sigc++/trackable.h>
+Author: IOhannes m zmölnig
+Last-Update: 2015-10-21
+Forwarded: Jesse Chappell <je...@essej.net>
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- sooperlooper.orig/configure.ac
++++ sooperlooper/configure.ac
+@@ -220,7 +220,15 @@
+     AC_SUBST(NCURSES_LIBS)
+ 
+     dnl sigc++
+-    PKG_CHECK_MODULES(SIGCPP, sigc++-2.0 >= 2.2.10)
++    have_sigcpp=no
++    PKG_CHECK_MODULES(SIGCPP, [sigc++-2.0 >= 2.2.10],[have_sigcpp=yes])
++    if test "x${have_sigcpp}" = "xyes"
++    then
++      presigcpp_CFLAGS=$CFLAGS
++      CFLAGS=$CFLAGS $SIGCPP_CFLAGS
++      AC_CHECK_HEADER([sigc++/object.h], [SIGCPP_CFLAGS="$SIGCPP_CFLAGS 
-DUSE_SIGCPP_OBJECT_H"])
++      CFLAGS=$presigcpp_CFLAGS
++    fi
+ 
+     AC_SUBST(SIGCPP_LIBS)
+     AC_SUBST(SIGCPP_CFLAGS)
+--- sooperlooper.orig/libs/pbd/configure.ac
++++ sooperlooper/libs/pbd/configure.ac
+@@ -193,7 +193,15 @@
+ PKG_CHECK_MODULES(XML, libxml-2.0 >= 2.5)
+ 
+ dnl sigc++
+-PKG_CHECK_MODULES(SIGCPP, sigc++-2.0 >= 2.2.10)
++have_sigcpp=no
++PKG_CHECK_MODULES(SIGCPP, [sigc++-2.0 >= 2.2.10],[have_sigcpp=yes])
++if test "x${have_sigcpp}" = "xyes"
++then
++  presigcpp_CFLAGS=$CFLAGS
++  CFLAGS=$CFLAGS $SIGCPP_CFLAGS
++  AC_CHECK_HEADER([sigc++/object.h], [SIGCPP_CFLAGS="$SIGCPP_CFLAGS 
-DUSE_SIGCPP_OBJECT_H"])
++  CFLAGS=$presigcpp_CFLAGS
++fi
+ 
+ 
+ AM_BUILD_ENVIRONMENT
+--- sooperlooper.orig/src/control_osc.hpp
++++ sooperlooper/src/control_osc.hpp
+@@ -27,7 +27,11 @@
+ #include <list>
+ #include <utility>
+ 
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ #include "event.hpp"
+ #include "event_nonrt.hpp"
+--- sooperlooper.orig/src/gui/app_frame.hpp
++++ sooperlooper/src/gui/app_frame.hpp
+@@ -26,7 +26,11 @@
+ #include <string>
+ #include <vector>
+ 
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ #include <sigc++/signal.h>
+ #include <sigc++/connection.h>
+ 
+--- sooperlooper.orig/src/gui/config_panel.hpp
++++ sooperlooper/src/gui/config_panel.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ class wxListCtrl;
+ class wxSpinCtrl;
+--- sooperlooper.orig/src/gui/keys_panel.hpp
++++ sooperlooper/src/gui/keys_panel.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ class wxListCtrl;
+ 
+--- sooperlooper.orig/src/gui/latency_panel.hpp
++++ sooperlooper/src/gui/latency_panel.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ class wxListCtrl;
+ 
+--- sooperlooper.orig/src/gui/main_panel.hpp
++++ sooperlooper/src/gui/main_panel.hpp
+@@ -26,7 +26,11 @@
+ #include <string>
+ #include <vector>
+ 
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ #include <sigc++/signal.h>
+ #include <sigc++/connection.h>
+ 
+--- sooperlooper.orig/src/gui/midi_bind_panel.hpp
++++ sooperlooper/src/gui/midi_bind_panel.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ #include <list>
+ 
+ #include <midi_bind.hpp>
+--- sooperlooper.orig/src/gui/prefs_dialog.hpp
++++ sooperlooper/src/gui/prefs_dialog.hpp
+@@ -26,7 +26,11 @@
+ 
+ #include <string>
+ #include <vector>
+-#include <sigc++/object.h>
++#ifdef USE_SIGCPP_OBJECT_H
++# include <sigc++/object.h>
++#else
++# include <sigc++/trackable.h>
++#endif
+ 
+ class wxListCtrl;
+ class wxSpinCtrl;

diff --git a/media-sound/sooperlooper/files/sooperlooper-1.7.3-wx3.0.patch 
b/media-sound/sooperlooper/files/sooperlooper-1.7.3-wx3.0.patch
new file mode 100644
index 0000000..fee40e8
--- /dev/null
+++ b/media-sound/sooperlooper/files/sooperlooper-1.7.3-wx3.0.patch
@@ -0,0 +1,177 @@
+Author: Jaromír Mikeš <mira.mi...@seznam.cz>, Olly Betts <o...@survex.com>
+Description: build against wx 3.0.
+Forwarded: yes
+
+Index: sooperlooper/src/gui/main_panel.cpp
+===================================================================
+--- sooperlooper.orig/src/gui/main_panel.cpp
++++ sooperlooper/src/gui/main_panel.cpp
+@@ -448,7 +448,7 @@ MainPanel::init_loopers (int count)
+               while (count < (int)_looper_panels.size()) {
+                       looperpan = _looper_panels.back();
+                       _looper_panels.pop_back();
+-                      _main_sizer->Remove(looperpan);
++                      _main_sizer->Detach(looperpan);
+                       looperpan->Destroy();
+               }
+       }
+@@ -1277,7 +1277,7 @@ void MainPanel::misc_action (bool releas
+               }
+ 
+ 
+-              wxString filename = do_file_selector (wxT("Choose file to save 
loop"), wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"),  
wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT);
++              wxString filename = do_file_selector (wxT("Choose file to save 
loop"), wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"),  
wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT);
+               
+               if ( !filename.empty() )
+               {
+@@ -1296,7 +1296,7 @@ void MainPanel::misc_action (bool releas
+                       index = 0;
+               }
+ 
+-              wxString filename = do_file_selector (wxT("Choose file to 
open"), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR);
++              wxString filename = do_file_selector (wxT("Choose file to 
open"), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR);
+               
+               if ( !filename.empty() )
+               {
+@@ -1408,7 +1408,7 @@ void MainPanel::set_curr_loop (int index
+ 
+ void MainPanel::do_load_session ()
+ {
+-      wxString filename = do_file_selector (wxT("Choose session to load"), 
wxT("*.slsess"), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR);
++      wxString filename = do_file_selector (wxT("Choose session to load"), 
wxT("*.slsess"), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR);
+       
+       if ( !filename.empty() )
+       {
+@@ -1419,7 +1419,7 @@ void MainPanel::do_load_session ()
+ 
+ void MainPanel::do_save_session (bool write_audio)
+ {
+-      wxString filename = do_file_selector (wxT("Choose file to save 
session"), wxT("slsess"), wxT("*.slsess"), 
wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT);
++      wxString filename = do_file_selector (wxT("Choose file to save 
session"), wxT("slsess"), wxT("*.slsess"), 
wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT);
+       
+       if ( !filename.empty() )
+       {
+Index: sooperlooper/src/gui/pix_button.cpp
+===================================================================
+--- sooperlooper.orig/src/gui/pix_button.cpp
++++ sooperlooper/src/gui/pix_button.cpp
+@@ -250,7 +250,7 @@ PixButton::OnMouseEvents (wxMouseEvent &
+               pt.x += bounds.x;
+               pt.y += bounds.y;
+ 
+-              if (bounds.Inside(pt)) {
++              if (bounds.Contains(pt)) {
+                       clicked (get_mouse_button(ev)); // emit
+ 
+                       if (ev.MiddleUp() && ev.ControlDown()) {
+Index: sooperlooper/src/gui/looper_panel.cpp
+===================================================================
+--- sooperlooper.orig/src/gui/looper_panel.cpp
++++ sooperlooper/src/gui/looper_panel.cpp
+@@ -1428,7 +1428,7 @@ LooperPanel::clicked_events (int button,
+       if (cmd == wxT("save"))
+       {
+               wxString filename = _mainpanel->do_file_selector (wxT("Choose 
file to save loop"),
+-                                                                              
              wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"),  
wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT);
++                                                                              
              wxT("wav"), wxT("WAVE files (*.wav)|*.wav;*.WAV;*.Wav"),  
wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT);
+               
+               if ( !filename.empty() )
+               {
+@@ -1442,7 +1442,7 @@ LooperPanel::clicked_events (int button,
+       }
+       else if (cmd == wxT("load"))
+       {
+-              wxString filename = _mainpanel->do_file_selector(wxT("Choose 
file to open"), wxT(""), wxT("Audio files 
(*.wav,*.aif)|*.wav;*.WAV;*.Wav;*.aif;*.aiff;*.AIF;*.AIFF|All files 
(*.*)|*.*"), wxOPEN|wxCHANGE_DIR);
++              wxString filename = _mainpanel->do_file_selector(wxT("Choose 
file to open"), wxT(""), wxT("Audio files 
(*.wav,*.aif)|*.wav;*.WAV;*.Wav;*.aif;*.aiff;*.AIF;*.AIFF|All files 
(*.*)|*.*"), wxFD_OPEN|wxFD_CHANGE_DIR);
+               
+               if ( !filename.empty() )
+               {
+Index: sooperlooper/src/gui/keyboard_target.cpp
+===================================================================
+--- sooperlooper.orig/src/gui/keyboard_target.cpp
++++ sooperlooper/src/gui/keyboard_target.cpp
+@@ -553,10 +553,10 @@ KeyboardTarget::keycode_from_name (const
+                         keycode = WXK_RETURN;
+                     }
+                     else if ( keyname == wxT("PGUP") ) {
+-                        keycode = WXK_PRIOR;
++                        keycode = WXK_PAGEUP;
+                     }
+                     else if ( keyname == wxT("PGDN") ) {
+-                        keycode = WXK_NEXT;
++                        keycode = WXK_PAGEDOWN;
+                     }
+                     else if ( keyname == wxT("LEFT") ) {
+                         keycode = WXK_LEFT;
+@@ -630,10 +630,10 @@ wxString KeyboardTarget::name_from_keyco
+       case WXK_RETURN:
+               text += wxT("return");
+               break;
+-      case WXK_PRIOR:
++      case WXK_PAGEUP:
+               text += wxT("pageup");
+               break;
+-      case WXK_NEXT:
++      case WXK_PAGEDOWN:
+               text += wxT("pagedown");
+               break;
+       case WXK_LEFT:
+Index: sooperlooper/src/gui/check_box.cpp
+===================================================================
+--- sooperlooper.orig/src/gui/check_box.cpp
++++ sooperlooper/src/gui/check_box.cpp
+@@ -237,7 +237,7 @@ CheckBox::OnMouseEvents (wxMouseEvent &e
+       }
+       else if (ev.LeftUp())
+       {
+-              if (bounds.Inside(ev.GetPosition())) {
++              if (bounds.Contains(ev.GetPosition())) {
+                       // toggle value
+                       _value = !_value;
+               
+Index: sooperlooper/src/gui/midi_bind_panel.cpp
+===================================================================
+--- sooperlooper.orig/src/gui/midi_bind_panel.cpp
++++ sooperlooper/src/gui/midi_bind_panel.cpp
+@@ -880,7 +880,7 @@ void MidiBindPanel::on_button (wxCommand
+       }
+       else if (ev.GetId() == ID_LoadButton)
+       {
+-              wxString filename = _parent->do_file_selector(wxT("Choose midi 
binding file to open"), wxT(""), wxT("*.slb"), wxOPEN|wxCHANGE_DIR);
++              wxString filename = _parent->do_file_selector(wxT("Choose midi 
binding file to open"), wxT(""), wxT("*.slb"), wxFD_OPEN|wxFD_CHANGE_DIR);
+               if ( !filename.empty() )
+               {
+                       
_parent->get_loop_control().load_midi_bindings(filename,  
_append_check->GetValue());
+@@ -888,7 +888,7 @@ void MidiBindPanel::on_button (wxCommand
+       }
+       else if (ev.GetId() == ID_SaveButton)
+       {
+-              wxString filename = _parent->do_file_selector(wxT("Choose midi 
binding file to save"), wxT(""), wxT("*.slb"), 
wxSAVE|wxCHANGE_DIR|wxOVERWRITE_PROMPT);
++              wxString filename = _parent->do_file_selector(wxT("Choose midi 
binding file to save"), wxT(""), wxT("*.slb"), 
wxFD_SAVE|wxFD_CHANGE_DIR|wxFD_OVERWRITE_PROMPT);
+ 
+               if ( !filename.empty() )
+               {
+Index: sooperlooper/src/gui/config_panel.cpp
+===================================================================
+--- sooperlooper.orig/src/gui/config_panel.cpp
++++ sooperlooper/src/gui/config_panel.cpp
+@@ -378,7 +378,7 @@ void ConfigPanel::on_button (wxCommandEv
+       else if (ev.GetId() == ID_MidiBrowseButton) {
+               
+               _parent->get_keyboard().set_enabled(false);
+-              wxString filename = _parent->do_file_selector(wxT("Choose midi 
binding file to use"), wxT(""), wxT("*.slb"), wxOPEN|wxCHANGE_DIR);
++              wxString filename = _parent->do_file_selector(wxT("Choose midi 
binding file to use"), wxT(""), wxT("*.slb"), wxFD_OPEN|wxFD_CHANGE_DIR);
+               _parent->get_keyboard().set_enabled(true);
+               
+               if ( !filename.empty() )
+@@ -389,8 +389,8 @@ void ConfigPanel::on_button (wxCommandEv
+       else if (ev.GetId() == ID_SessionBrowseButton) {
+               
+               _parent->get_keyboard().set_enabled(false);
+-              wxString filename = _parent->do_file_selector(wxT("Choose 
session file to use"), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR);
+-              //wxString filename = wxFileSelector(wxT("Choose session file 
to use"), wxT(""), wxT(""), wxT(""), wxT("*.slsess"), wxOPEN|wxCHANGE_DIR);
++              wxString filename = _parent->do_file_selector(wxT("Choose 
session file to use"), wxT(""), wxT("*.slsess"), wxFD_OPEN|wxFD_CHANGE_DIR);
++              //wxString filename = wxFileSelector(wxT("Choose session file 
to use"), wxT(""), wxT(""), wxT(""), wxT("*.slsess"), 
wxFD_OPEN|wxFD_CHANGE_DIR);
+               _parent->get_keyboard().set_enabled(true);
+               
+               if ( !filename.empty() )

diff --git a/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild 
b/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild
new file mode 100644
index 0000000..ff1ac18
--- /dev/null
+++ b/media-sound/sooperlooper/sooperlooper-1.7.3.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+WX_GTK_VER=3.0
+
+inherit autotools eutils wxwidgets toolchain-funcs
+
+DESCRIPTION="Live looping sampler with immediate loop recording"
+HOMEPAGE="http://essej.net/sooperlooper/index.html";
+SRC_URI="http://essej.net/sooperlooper/${P/_p/-}.tar.gz
+       mirror://gentoo/${PN}-1.6.5-m4.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="wxwidgets"
+
+RDEPEND="
+       media-sound/jack-audio-connection-kit
+       >=media-libs/liblo-0.10
+       >=dev-libs/libsigc++-2.2.10:2
+       >=media-libs/libsndfile-1.0.2
+       >=media-libs/libsamplerate-0.0.13
+       dev-libs/libxml2
+       >=media-libs/rubberband-0.0.13
+       sci-libs/fftw:3.0
+       wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER} )
+"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+"
+
+S=${WORKDIR}/${P/_p*}
+
+DOCS=( OSC README )
+
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-sigc++-2.5.patch
+       epatch "${FILESDIR}"/${P}-wx3.0.patch
+
+       cp -rf "${WORKDIR}"/aclocal "${S}" || die "copying aclocal failed"
+
+       AT_M4DIR="${S}"/aclocal eautoreconf
+}
+
+src_compile() {
+       emake AR="$(tc-getAR)"
+}
+
+src_configure() {
+       use wxwidgets && need-wxwidgets unicode
+
+       econf \
+               $(use_with wxwidgets gui) \
+               --disable-optimize \
+               --with-wxconfig-path="${WX_CONFIG}"
+}

Reply via email to