Revbump. Update to EAPI 4 and apply fix for lash segfault issue (bug #356201 by Rob...
authorTim Harder <radhermit@gentoo.org>
Thu, 27 Oct 2011 04:45:11 +0000 (04:45 +0000)
committerTim Harder <radhermit@gentoo.org>
Thu, 27 Oct 2011 04:45:11 +0000 (04:45 +0000)
Package-Manager: portage-2.2.0_alpha70/cvs/Linux x86_64

media-sound/seq24/ChangeLog
media-sound/seq24/Manifest
media-sound/seq24/files/seq24-0.9.2-lash-fix.patch [new file with mode: 0644]
media-sound/seq24/seq24-0.9.2-r1.ebuild [new file with mode: 0644]

index c11b4d34b2c188d3af670cc33c6b2995d63cb1c2..2bd65e7768406e8a7b63c686a510a2bff1919601 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for media-sound/seq24
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/seq24/ChangeLog,v 1.44 2011/10/25 17:53:52 radhermit Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/seq24/ChangeLog,v 1.45 2011/10/27 04:45:11 radhermit Exp $
+
+*seq24-0.9.2-r1 (27 Oct 2011)
+
+  27 Oct 2011; Tim Harder <radhermit@gentoo.org> +seq24-0.9.2-r1.ebuild,
+  +files/seq24-0.9.2-lash-fix.patch:
+  Revbump. Update to EAPI 4 and apply fix for lash segfault issue (bug #356201
+  by Rob Couto).
 
   25 Oct 2011; Tim Harder <radhermit@gentoo.org> -seq24-0.9.0.ebuild:
   Remove old.
index e5fdf343400b0e2feaa627baa95343b87d004612..06bfa9831e9f6f24902ee243bb0842ed70d98243 100644 (file)
@@ -1,18 +1,20 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA512
 
+AUX seq24-0.9.2-lash-fix.patch 6333 RMD160 5a4c86078b57bda0c915db3d0844e0324239ae27 SHA1 0d906473a989bbe2f382a599ac539d38517ad9b2 SHA256 7bb74e3df46bb93021144a937b45c28aa6d633e30c5fffc156230a58bfa822cc
 DIST seq24-0.9.2.tar.bz2 213059 RMD160 bc2b2712a3a3da900438972a78f3348af9f242f8 SHA1 3fa279136f2de684569bf79cbdd2cbcd463f1450 SHA256 dbcfd18b7744ae739717588dd71a9923e5c08cf8fe1d3e71c897515cab875b0a
+EBUILD seq24-0.9.2-r1.ebuild 1017 RMD160 4a5072833b4d27088cf4c0dba423f303f9996cb7 SHA1 28d9c9d6bcd09d4c8891df18b271b82d1b1b56ae SHA256 c8b392169b24d4b6961a797b56b0082c51443f9159984ce60d1fe76d150efa8e
 EBUILD seq24-0.9.2.ebuild 1000 RMD160 7a8dd41a730d55ebced2a73b9594a4837cda91ea SHA1 3917e3f21a1c828b71120e6b43435471f3d61bcf SHA256 a3e622dc2e9bf5cc360423056af6e38c842d7ca4473769eda3e0ded9dbdcda21
-MISC ChangeLog 5307 RMD160 93567110de8b7327a9f4c2eb763d4df62000bc10 SHA1 bb9d5256ff944d6b21dc4aa2d9002df03d955b9c SHA256 438ad3346d3d6238f82fce1755d67ff49f4f960a0ded90cad0cfc11abef140f4
+MISC ChangeLog 5545 RMD160 32c70adc7c8f0884a51069f6bf33c37139d080f8 SHA1 a5103158b61f2acdfe1e4d9c8c7a113b8293a324 SHA256 d96c5630d31705124b47241cd8924a432be2b057780f0517ea04e978daa7c9e6
 MISC metadata.xml 161 RMD160 2738d17827a71b5ccbadae4c4f909d2b57d147b0 SHA1 90201ddb830142147774cc7b7b5178fbd0a9af0c SHA256 0ba191421eefd954d1efe9f6c3384e8c8d7455d35a7e79457272e1c29211b09e
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
-iQEcBAEBCgAGBQJOpve2AAoJEEqz6FtPBkyjWyYH/21gaXAMNamsrVeK99I2QgXo
-VX5pQdAhkleAAdVxRsqzVEgOKE9Mb8aihxOYUYRMO4MKQ3w0tpZh//4eKXSzbUgX
-Wkhy9vzaO++aOE4ucpNhEsw+99VtHcj/FHedieUnOxPUfkicppBc51TNlxICmag2
-EZ89wKffP2oh4+ppFnkTC+TOPDWwOKfnm5/k7i4xj0ltjg5OEeUmaPQRczN2H96G
-x6im40Jox//ZCFX8dUogHc2Xc2UOS6tq/PzBbG9Sua7djwCC0F8/HkRo7vidL49a
-r6/oqiEJeDuhIgCLY597IGYGgTMJedw6exO78PLsUoO6v2CKrKVFPGzNcNlZcFE=
-=SSIE
+iQEcBAEBCgAGBQJOqOHgAAoJEEqz6FtPBkyj94IIALqoUeiQ7EU2F9Hk1CRkzBMN
+EAmgCKuGFsQD+4t3i/RTjGkDJ+Oz4ql1S4cu3X06a9hOtESbhy5ddz1K3Fea/Zif
+Xjrj/nEo7feE+k6BePJTpuqydsQWDtBtYLRuOyDbb92FkyMXtiyEA1SQsxSQl/cb
+IsJqCq8qWkV1gf//8aUdA4nY8nHdBxBQJZIbhxu5j2kI11JaH1yxPl1rF1gAj67t
+7/BmsQ+Dgnx446rrP1gZAaP9kBqgMKvj3XzVgpZpJsztWcvR29/YOOwSco5EoYLW
+oTjVBnzrFqyf8MbGvEhKHi8aUaqGb5wwa+ZL4R2fJjQSwO1GbQAFD572K4P3ffA=
+=GxdF
 -----END PGP SIGNATURE-----
diff --git a/media-sound/seq24/files/seq24-0.9.2-lash-fix.patch b/media-sound/seq24/files/seq24-0.9.2-lash-fix.patch
new file mode 100644 (file)
index 0000000..8b0efad
--- /dev/null
@@ -0,0 +1,248 @@
+Upstream fix for segfault when built with lash support.
+https://bugs.launchpad.net/seq24/+bug/696371
+
+=== modified file 'src/lash.cpp'
+--- old/src/lash.cpp
++++ new/src/lash.cpp
+@@ -29,17 +29,9 @@
+ lash::lash(int *argc, char ***argv)
+ {
+ #ifdef LASH_SUPPORT
+-   m_lash_args = lash_extract_args(argc, argv);
+-#endif // LASH_SUPPORT
+-}
+-
+-
+-void lash::init(perform* perform)
+-{
+-#ifdef LASH_SUPPORT
+-    m_perform = perform;
+-
+-    m_client = lash_init(m_lash_args, PACKAGE_NAME,
++    m_perform = NULL;
++
++    m_client = lash_init(lash_extract_args(argc, argv), PACKAGE_NAME,
+             LASH_Config_File, LASH_PROTOCOL(2, 0));
+     if (m_client == NULL) {
+@@ -65,9 +57,10 @@
+ void
+-lash::start()
++lash::start(perform* perform)
+ {
+ #ifdef LASH_SUPPORT
++    m_perform = perform;
+     /* Process any LASH events every 250 msec (arbitrarily chosen interval) */
+     Glib::signal_timeout().connect(sigc::mem_fun(*this, &lash::process_events), 250);
+ #endif // LASH_SUPPORT
+
+=== modified file 'src/lash.h'
+--- old/src/lash.h
++++ new/src/lash.h
+@@ -43,7 +43,6 @@
+ #ifdef LASH_SUPPORT
+     perform       *m_perform;
+     lash_client_t *m_client;
+-    lash_args_t *m_lash_args;
+     bool process_events();
+     void handle_event(lash_event_t* conf);
+@@ -54,13 +53,12 @@
+ public:
+     lash(int *argc, char ***argv);
+-    void init(perform* perform);
+     void set_alsa_client_id(int id);
+-    void start();
++    void start(perform* perform);
+ };
+-/* global lash driver, defined in seq24.cpp */
++/* global lash driver, defined in seq24.cpp and used in midibus.cpp*/
+ extern lash *lash_driver;
+
+=== modified file 'src/midibus.cpp'
+--- old/src/midibus.cpp
++++ new/src/midibus.cpp
+@@ -877,11 +877,11 @@
+     /* set up our clients queue */
+     m_queue = snd_seq_alloc_queue( m_alsa_seq );
+-#endif
+ #ifdef LASH_SUPPORT
+       /* notify lash of our client ID so it can restore connections */
+       lash_driver->set_alsa_client_id(snd_seq_client_id(m_alsa_seq));
+ #endif
++#endif
+ }
+
+=== modified file 'src/perform.cpp'
+--- old/src/perform.cpp
++++ new/src/perform.cpp
+@@ -1342,6 +1342,7 @@
+             stats_last_clock_us= (last.tv_sec * 1000000) + (last.tv_nsec / 1000);
+ #else
+         /* get start time position */
++        /* timeGetTime() returns a "DWORD" type (= unsigned long)*/
+         last = timeGetTime();
+         if ( global_stats )
+
+=== modified file 'src/seq24.cpp'
+--- old/src/seq24.cpp
++++ new/src/seq24.cpp
+@@ -108,12 +108,66 @@
+      * GTK+. */
+     Gtk::Main kit(argc, argv);
+-    /* Init the lash driver (strips lash specific command line
+-     * arguments, but does not connect to daemon) */
++    /*prepare global MIDI definitions*/
++    for ( int i=0; i<c_maxBuses; i++ )
++    {
++        for ( int j=0; j<16; j++ )
++            global_user_midi_bus_definitions[i].instrument[j] = -1;
++    }
++
++    for ( int i=0; i<c_max_instruments; i++ )
++    {
++        for ( int j=0; j<128; j++ )
++            global_user_instrument_definitions[i].controllers_active[j] = false;
++    }
++
++
++    /* Init the lash driver (strip lash specific command line
++     * arguments and connect to daemon) */
+ #ifdef LASH_SUPPORT
+     lash_driver = new lash(&argc, &argv);
+ #endif
++    /* the main performance object */
++    /* lash must be initialized here because mastermidibus uses the global
++     * lash_driver variable*/
++    perform p;
++
++    /* read user preferences files */
++    if ( getenv( HOME ) != NULL )
++    {
++        Glib::ustring home( getenv( HOME ));
++        last_used_dir = home;
++        Glib::ustring total_file = home + SLASH + config_filename;
++        
++        if (Glib::file_test(total_file, Glib::FILE_TEST_EXISTS))
++        {
++            printf( "Reading [%s]\n", total_file.c_str());
++
++            optionsfile options( total_file );
++
++            if ( !options.parse( &p ) ){
++                printf( "Error Reading [%s]\n", total_file.c_str());
++            }
++        }
++
++        total_file = home + SLASH + user_filename;
++        if (Glib::file_test(total_file, Glib::FILE_TEST_EXISTS))
++        {
++            printf( "Reading [%s]\n", total_file.c_str());
++
++            userfile user( total_file );
++
++            if ( !user.parse( &p ) ){
++                printf( "Error Reading [%s]\n", total_file.c_str());
++            }
++        }
++
++    }
++    else
++        printf( "Error calling getenv( \"%s\" )\n", HOME );
++
++
+     /* parse parameters */
+     int c;
+@@ -229,65 +283,14 @@
+     } /* end while */
+-    /*prepare global MIDI definitions*/
+-    for ( int i=0; i<c_maxBuses; i++ )
+-    {
+-        for ( int j=0; j<16; j++ )
+-            global_user_midi_bus_definitions[i].instrument[j] = -1;
+-    }
+-
+-    for ( int i=0; i<c_max_instruments; i++ )
+-    {
+-        for ( int j=0; j<128; j++ )
+-            global_user_instrument_definitions[i].controllers_active[j] = false;
+-    }
+-
+-
+-    /* the main performance object */
+-    perform p;
+-
+-    p_font_renderer = new font();
+-
+-
+-    if ( getenv( HOME ) != NULL )
+-    {
+-        Glib::ustring home( getenv( HOME ));
+-        last_used_dir = home;
+-        Glib::ustring total_file = home + SLASH + config_filename;
+-        
+-        if (Glib::file_test(total_file, Glib::FILE_TEST_EXISTS))
+-        {
+-            printf( "Reading [%s]\n", total_file.c_str());
+-
+-            optionsfile options( total_file );
+-
+-            if ( !options.parse( &p ) ){
+-                printf( "Error Reading [%s]\n", total_file.c_str());
+-            }
+-        }
+-
+-        total_file = home + SLASH + user_filename;
+-        if (Glib::file_test(total_file, Glib::FILE_TEST_EXISTS))
+-        {
+-            printf( "Reading [%s]\n", total_file.c_str());
+-
+-            userfile user( total_file );
+-
+-            if ( !user.parse( &p ) ){
+-                printf( "Error Reading [%s]\n", total_file.c_str());
+-            }
+-        }
+-
+-    }
+-    else
+-        printf( "Error calling getenv( \"%s\" )\n", HOME );
+-
+     p.init();
+     p.launch_input_thread();
+     p.launch_output_thread();
+     p.init_jack();
++    p_font_renderer = new font();
++
+     mainwnd seq24_window( &p );
+     if (optind < argc)
+     {
+@@ -299,8 +302,7 @@
+     /* connect to lash daemon and poll events*/
+ #ifdef LASH_SUPPORT
+-    lash_driver->init(&p);
+-    lash_driver->start();
++    lash_driver->start(&p);
+ #endif
+     kit.run(seq24_window);
+
diff --git a/media-sound/seq24/seq24-0.9.2-r1.ebuild b/media-sound/seq24/seq24-0.9.2-r1.ebuild
new file mode 100644 (file)
index 0000000..f611d86
--- /dev/null
@@ -0,0 +1,41 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/seq24/seq24-0.9.2-r1.ebuild,v 1.1 2011/10/27 04:45:11 radhermit Exp $
+
+EAPI=4
+inherit eutils
+
+DESCRIPTION="Seq24 is a loop based MIDI sequencer with focus on live performances."
+HOMEPAGE="https://edge.launchpad.net/seq24/"
+SRC_URI="http://edge.launchpad.net/seq24/trunk/${PV}/+download/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="jack lash"
+
+RDEPEND="media-libs/alsa-lib
+       >=dev-cpp/gtkmm-2.4:2.4
+       >=dev-libs/libsigc++-2.2:2
+       jack? ( >=media-sound/jack-audio-connection-kit-0.90 )
+       lash? ( >=media-sound/lash-0.5 )"
+DEPEND="${RDEPEND}
+       dev-util/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog README RTC SEQ24 )
+
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-lash-fix.patch
+}
+
+src_configure() {
+       econf \
+               $(use_enable jack) \
+               $(use_enable lash)
+}
+
+src_install() {
+       default
+       newicon src/pixmaps/seq24_32.xpm seq24.xpm
+       make_desktop_entry seq24
+}