* [PR PATCH] New package: seq24-0.9.3
@ 2022-05-03 15:21 DavideMaggio
2022-05-03 17:59 ` [PR REVIEW] " biopsin
` (9 more replies)
0 siblings, 10 replies; 11+ messages in thread
From: DavideMaggio @ 2022-05-03 15:21 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1238 bytes --]
There is a new pull request by DavideMaggio against master on the void-packages repository
https://github.com/DavideMaggio/void-packages master
https://github.com/void-linux/void-packages/pull/36975
New package: seq24-0.9.3
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-musl)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- armv7l-musl
- armv7l
- x86_64
- i686
A patch file from https://github.com/void-linux/void-packages/pull/36975.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-36975.patch --]
[-- Type: text/x-diff, Size: 9371 bytes --]
From d3116fd59de218a3033eac8d99f340c0e417732e Mon Sep 17 00:00:00 2001
From: mag <mag-one@autistici.org>
Date: Tue, 3 May 2022 17:08:01 +0200
Subject: [PATCH] New package: seq24-0.9.3
---
.../seq24/patches/seq24-voidlinux-mutex.patch | 331 ++++++++++++++++++
srcpkgs/seq24/template | 18 +
2 files changed, 349 insertions(+)
create mode 100644 srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
create mode 100644 srcpkgs/seq24/template
diff --git a/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
new file mode 100644
index 000000000000..4e8585a94491
--- /dev/null
+++ b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
@@ -0,0 +1,331 @@
+Description: Use standard mutex and condition variable classes
+ Use std::recursive_mutex and std::condition_variable instead of custom classes
+ based on pthread.
+ .
+ Fixes FTBFS with recent GCC versions which defines the "mutex" class which
+ conflicts with seq24's version of "mutex".
+Author: James Cowgill <jcowgill@debian.org>
+Bug: https://bugs.launchpad.net/seq24/+bug/1647614
+Bug-Debian: https://bugs.debian.org/822394
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/Module.am
++++ b/src/Module.am
+@@ -31,8 +31,6 @@ bin_PROGRAMS = %D%/seq24
+ %D%/midibus_portmidi.h \
+ %D%/midifile.cpp \
+ %D%/midifile.h \
+- %D%/mutex.cpp \
+- %D%/mutex.h \
+ %D%/options.cpp \
+ %D%/options.h \
+ %D%/optionsfile.cpp \
+--- a/src/midibus.h
++++ b/src/midibus.h
+@@ -35,11 +35,11 @@ class midibus;
+ # include <alsa/seq_midi_event.h>
+ #endif
+
++#include <mutex>
+ #include <string>
+
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -90,7 +90,7 @@ class midibus
+
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -208,7 +208,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/midibus_portmidi.h
++++ b/src/midibus_portmidi.h
+@@ -25,12 +25,12 @@ class mastermidibus;
+
+ #ifdef __WIN32__
+
++#include <mutex>
+ #include <string>
+
+ #include "portmidi.h"
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -65,7 +65,7 @@ class midibus
+ long m_lasttick;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -164,7 +164,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/mutex.cpp
++++ /dev/null
+@@ -1,62 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#include "mutex.h"
+-
+-const pthread_mutex_t mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+-const pthread_cond_t condition_var::cond = PTHREAD_COND_INITIALIZER;
+-
+-mutex::mutex( )
+-{
+- m_mutex_lock = recmutex;
+-}
+-
+-void
+-mutex::lock( )
+-{
+- pthread_mutex_lock( &m_mutex_lock );
+-}
+-
+-
+-void
+-mutex::unlock( )
+-{
+- pthread_mutex_unlock( &m_mutex_lock );
+-}
+-
+-condition_var::condition_var( )
+-{
+- m_cond = cond;
+-}
+-
+-
+-void
+-condition_var::signal( )
+-{
+- pthread_cond_signal( &m_cond );
+-}
+-
+-void
+-condition_var::wait( )
+-{
+- pthread_cond_wait( &m_cond, &m_mutex_lock );
+-}
+-
+-
+--- a/src/mutex.h
++++ /dev/null
+@@ -1,63 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#pragma once
+-
+-#include "globals.h"
+-
+-#include <pthread.h>
+-
+-class mutex {
+-
+-private:
+-
+- static const pthread_mutex_t recmutex;
+-
+-protected:
+-
+- /* mutex lock */
+- pthread_mutex_t m_mutex_lock;
+-
+-public:
+-
+- mutex();
+-
+- void lock();
+- void unlock();
+-
+-};
+-
+-class condition_var : public mutex {
+-
+-private:
+-
+- static const pthread_cond_t cond;
+-
+- pthread_cond_t m_cond;
+-
+-public:
+-
+- condition_var();
+-
+- void wait();
+- void signal();
+-
+-};
+-
+--- a/src/perform.cpp
++++ b/src/perform.cpp
+@@ -426,7 +426,7 @@ perform::~perform()
+ m_outputing = false;
+ m_running = false;
+
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+
+ if (m_out_thread_launched )
+ pthread_join( m_out_thread, NULL );
+@@ -1005,7 +1005,7 @@ void perform::stop()
+
+ void perform::inner_start(bool a_state)
+ {
+- m_condition_var.lock();
++ std::lock_guard<std::mutex> lock(m_mutex);
+
+ if (!is_running()) {
+
+@@ -1015,10 +1015,8 @@ void perform::inner_start(bool a_state)
+ off_sequences();
+
+ set_running(true);
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+ }
+-
+- m_condition_var.unlock();
+ }
+
+
+@@ -1262,18 +1260,18 @@ void perform::output_func()
+
+ //printf ("waiting for signal\n");
+
+- m_condition_var.lock();
++ std::unique_lock<std::mutex> lock(m_mutex);
+
+ while (!m_running) {
+
+- m_condition_var.wait();
++ m_condition_var.wait(lock);
+
+ /* if stopping, then kill thread */
+ if (!m_outputing)
+ break;
+ }
+
+- m_condition_var.unlock();
++ lock.unlock();
+
+ //printf( "signaled [%d]\n", m_playback_mode );
+
+--- a/src/perform.h
++++ b/src/perform.h
+@@ -32,6 +32,9 @@ class perform;
+ #endif
+ #include <pthread.h>
+
++#include <condition_variable>
++#include <mutex>
++
+
+ /* if we have jack, include the jack headers */
+ #ifdef JACK_SUPPORT
+@@ -152,7 +155,8 @@ class perform
+ int m_control_status;
+ int m_screen_set;
+
+- condition_var m_condition_var;
++ std::condition_variable m_condition_var;
++ std::mutex m_mutex;
+
+ // do not access these directly, use set/lookup below
+ std::map<unsigned int,long> key_events;
+--- a/src/perfroll.h
++++ b/src/perfroll.h
+@@ -39,8 +39,6 @@
+
+ #include "globals.h"
+ #include "perform.h"
+-#include "mutex.h"
+-
+
+ using namespace Gtk;
+
+--- a/src/sequence.h
++++ b/src/sequence.h
+@@ -26,11 +26,11 @@ class sequence;
+ #include <string>
+ #include <list>
+ #include <stack>
++#include <mutex>
+
+ #include "event.h"
+ #include "midibus.h"
+ #include "globals.h"
+-#include "mutex.h"
+
+ enum draw_type
+ {
+@@ -153,7 +153,7 @@ class sequence
+ long m_rec_vol;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* used to idenfity which events are ours in the out queue */
+ //unsigned char m_tag;
diff --git a/srcpkgs/seq24/template b/srcpkgs/seq24/template
new file mode 100644
index 000000000000..924248d52030
--- /dev/null
+++ b/srcpkgs/seq24/template
@@ -0,0 +1,18 @@
+# Template file for 'seq24'
+pkgname=seq24
+version=0.9.3
+revision=1
+build_style=gnu-configure
+configure_args="--disable-lash"
+hostmakedepends="pkg-config alsa-lib-devel automake"
+makedepends="gtkmm2-devel alsa-lib-devel jack-devel"
+short_desc="Pattern based midi sequencer with strong live performance functions"
+maintainer="mag <mag-one@autistici.org>"
+license="GPL-2.0-or-later"
+homepage="http://filter24.org/seq24/"
+distfiles=https://launchpad.net/seq24/trunk/${version}/+download/${pkgname}-${version}.tar.bz2
+checksum="e22ad4438b9b350fb8d4d37c3664905e760fa9d8213e55379861ba6d6183b789"
+
+pre_configure() {
+ aclocal; automake
+}
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR REVIEW] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
@ 2022-05-03 17:59 ` biopsin
2022-05-03 19:23 ` [PR PATCH] [Updated] " DavideMaggio
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: biopsin @ 2022-05-03 17:59 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 176 bytes --]
New review comment by biopsin on void-packages repository
https://github.com/void-linux/void-packages/pull/36975#discussion_r864043725
Comment:
Quotation mark missing on url
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
2022-05-03 17:59 ` [PR REVIEW] " biopsin
@ 2022-05-03 19:23 ` DavideMaggio
2022-05-14 8:54 ` DavideMaggio
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: DavideMaggio @ 2022-05-03 19:23 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1243 bytes --]
There is an updated pull request by DavideMaggio against master on the void-packages repository
https://github.com/DavideMaggio/void-packages master
https://github.com/void-linux/void-packages/pull/36975
New package: seq24-0.9.3
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-musl)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- armv7l-musl
- armv7l
- x86_64
- i686
A patch file from https://github.com/void-linux/void-packages/pull/36975.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-36975.patch --]
[-- Type: text/x-diff, Size: 9373 bytes --]
From fb04c146d68498037414f2815eadfc0dd999e2ce Mon Sep 17 00:00:00 2001
From: mag <mag-one@autistici.org>
Date: Tue, 3 May 2022 17:08:01 +0200
Subject: [PATCH] New package: seq24-0.9.3
---
.../seq24/patches/seq24-voidlinux-mutex.patch | 331 ++++++++++++++++++
srcpkgs/seq24/template | 18 +
2 files changed, 349 insertions(+)
create mode 100644 srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
create mode 100644 srcpkgs/seq24/template
diff --git a/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
new file mode 100644
index 000000000000..4e8585a94491
--- /dev/null
+++ b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
@@ -0,0 +1,331 @@
+Description: Use standard mutex and condition variable classes
+ Use std::recursive_mutex and std::condition_variable instead of custom classes
+ based on pthread.
+ .
+ Fixes FTBFS with recent GCC versions which defines the "mutex" class which
+ conflicts with seq24's version of "mutex".
+Author: James Cowgill <jcowgill@debian.org>
+Bug: https://bugs.launchpad.net/seq24/+bug/1647614
+Bug-Debian: https://bugs.debian.org/822394
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/Module.am
++++ b/src/Module.am
+@@ -31,8 +31,6 @@ bin_PROGRAMS = %D%/seq24
+ %D%/midibus_portmidi.h \
+ %D%/midifile.cpp \
+ %D%/midifile.h \
+- %D%/mutex.cpp \
+- %D%/mutex.h \
+ %D%/options.cpp \
+ %D%/options.h \
+ %D%/optionsfile.cpp \
+--- a/src/midibus.h
++++ b/src/midibus.h
+@@ -35,11 +35,11 @@ class midibus;
+ # include <alsa/seq_midi_event.h>
+ #endif
+
++#include <mutex>
+ #include <string>
+
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -90,7 +90,7 @@ class midibus
+
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -208,7 +208,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/midibus_portmidi.h
++++ b/src/midibus_portmidi.h
+@@ -25,12 +25,12 @@ class mastermidibus;
+
+ #ifdef __WIN32__
+
++#include <mutex>
+ #include <string>
+
+ #include "portmidi.h"
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -65,7 +65,7 @@ class midibus
+ long m_lasttick;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -164,7 +164,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/mutex.cpp
++++ /dev/null
+@@ -1,62 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#include "mutex.h"
+-
+-const pthread_mutex_t mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+-const pthread_cond_t condition_var::cond = PTHREAD_COND_INITIALIZER;
+-
+-mutex::mutex( )
+-{
+- m_mutex_lock = recmutex;
+-}
+-
+-void
+-mutex::lock( )
+-{
+- pthread_mutex_lock( &m_mutex_lock );
+-}
+-
+-
+-void
+-mutex::unlock( )
+-{
+- pthread_mutex_unlock( &m_mutex_lock );
+-}
+-
+-condition_var::condition_var( )
+-{
+- m_cond = cond;
+-}
+-
+-
+-void
+-condition_var::signal( )
+-{
+- pthread_cond_signal( &m_cond );
+-}
+-
+-void
+-condition_var::wait( )
+-{
+- pthread_cond_wait( &m_cond, &m_mutex_lock );
+-}
+-
+-
+--- a/src/mutex.h
++++ /dev/null
+@@ -1,63 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#pragma once
+-
+-#include "globals.h"
+-
+-#include <pthread.h>
+-
+-class mutex {
+-
+-private:
+-
+- static const pthread_mutex_t recmutex;
+-
+-protected:
+-
+- /* mutex lock */
+- pthread_mutex_t m_mutex_lock;
+-
+-public:
+-
+- mutex();
+-
+- void lock();
+- void unlock();
+-
+-};
+-
+-class condition_var : public mutex {
+-
+-private:
+-
+- static const pthread_cond_t cond;
+-
+- pthread_cond_t m_cond;
+-
+-public:
+-
+- condition_var();
+-
+- void wait();
+- void signal();
+-
+-};
+-
+--- a/src/perform.cpp
++++ b/src/perform.cpp
+@@ -426,7 +426,7 @@ perform::~perform()
+ m_outputing = false;
+ m_running = false;
+
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+
+ if (m_out_thread_launched )
+ pthread_join( m_out_thread, NULL );
+@@ -1005,7 +1005,7 @@ void perform::stop()
+
+ void perform::inner_start(bool a_state)
+ {
+- m_condition_var.lock();
++ std::lock_guard<std::mutex> lock(m_mutex);
+
+ if (!is_running()) {
+
+@@ -1015,10 +1015,8 @@ void perform::inner_start(bool a_state)
+ off_sequences();
+
+ set_running(true);
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+ }
+-
+- m_condition_var.unlock();
+ }
+
+
+@@ -1262,18 +1260,18 @@ void perform::output_func()
+
+ //printf ("waiting for signal\n");
+
+- m_condition_var.lock();
++ std::unique_lock<std::mutex> lock(m_mutex);
+
+ while (!m_running) {
+
+- m_condition_var.wait();
++ m_condition_var.wait(lock);
+
+ /* if stopping, then kill thread */
+ if (!m_outputing)
+ break;
+ }
+
+- m_condition_var.unlock();
++ lock.unlock();
+
+ //printf( "signaled [%d]\n", m_playback_mode );
+
+--- a/src/perform.h
++++ b/src/perform.h
+@@ -32,6 +32,9 @@ class perform;
+ #endif
+ #include <pthread.h>
+
++#include <condition_variable>
++#include <mutex>
++
+
+ /* if we have jack, include the jack headers */
+ #ifdef JACK_SUPPORT
+@@ -152,7 +155,8 @@ class perform
+ int m_control_status;
+ int m_screen_set;
+
+- condition_var m_condition_var;
++ std::condition_variable m_condition_var;
++ std::mutex m_mutex;
+
+ // do not access these directly, use set/lookup below
+ std::map<unsigned int,long> key_events;
+--- a/src/perfroll.h
++++ b/src/perfroll.h
+@@ -39,8 +39,6 @@
+
+ #include "globals.h"
+ #include "perform.h"
+-#include "mutex.h"
+-
+
+ using namespace Gtk;
+
+--- a/src/sequence.h
++++ b/src/sequence.h
+@@ -26,11 +26,11 @@ class sequence;
+ #include <string>
+ #include <list>
+ #include <stack>
++#include <mutex>
+
+ #include "event.h"
+ #include "midibus.h"
+ #include "globals.h"
+-#include "mutex.h"
+
+ enum draw_type
+ {
+@@ -153,7 +153,7 @@ class sequence
+ long m_rec_vol;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* used to idenfity which events are ours in the out queue */
+ //unsigned char m_tag;
diff --git a/srcpkgs/seq24/template b/srcpkgs/seq24/template
new file mode 100644
index 000000000000..1f9ca182412f
--- /dev/null
+++ b/srcpkgs/seq24/template
@@ -0,0 +1,18 @@
+# Template file for 'seq24'
+pkgname=seq24
+version=0.9.3
+revision=1
+build_style=gnu-configure
+configure_args="--disable-lash"
+hostmakedepends="pkg-config alsa-lib-devel automake"
+makedepends="gtkmm2-devel alsa-lib-devel jack-devel"
+short_desc="Pattern based midi sequencer with strong live performance functions"
+maintainer="mag <mag-one@autistici.org>"
+license="GPL-2.0-or-later"
+homepage="http://filter24.org/seq24/"
+distfiles="https://launchpad.net/seq24/trunk/${version}/+download/${pkgname}-${version}.tar.bz2"
+checksum="e22ad4438b9b350fb8d4d37c3664905e760fa9d8213e55379861ba6d6183b789"
+
+pre_configure() {
+ aclocal; automake
+}
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
2022-05-03 17:59 ` [PR REVIEW] " biopsin
2022-05-03 19:23 ` [PR PATCH] [Updated] " DavideMaggio
@ 2022-05-14 8:54 ` DavideMaggio
2022-05-22 7:48 ` DavideMaggio
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: DavideMaggio @ 2022-05-14 8:54 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1243 bytes --]
There is an updated pull request by DavideMaggio against master on the void-packages repository
https://github.com/DavideMaggio/void-packages master
https://github.com/void-linux/void-packages/pull/36975
New package: seq24-0.9.3
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-musl)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- armv7l-musl
- armv7l
- x86_64
- i686
A patch file from https://github.com/void-linux/void-packages/pull/36975.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-36975.patch --]
[-- Type: text/x-diff, Size: 9373 bytes --]
From fb04c146d68498037414f2815eadfc0dd999e2ce Mon Sep 17 00:00:00 2001
From: mag <mag-one@autistici.org>
Date: Tue, 3 May 2022 17:08:01 +0200
Subject: [PATCH] New package: seq24-0.9.3
---
.../seq24/patches/seq24-voidlinux-mutex.patch | 331 ++++++++++++++++++
srcpkgs/seq24/template | 18 +
2 files changed, 349 insertions(+)
create mode 100644 srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
create mode 100644 srcpkgs/seq24/template
diff --git a/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
new file mode 100644
index 000000000000..4e8585a94491
--- /dev/null
+++ b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
@@ -0,0 +1,331 @@
+Description: Use standard mutex and condition variable classes
+ Use std::recursive_mutex and std::condition_variable instead of custom classes
+ based on pthread.
+ .
+ Fixes FTBFS with recent GCC versions which defines the "mutex" class which
+ conflicts with seq24's version of "mutex".
+Author: James Cowgill <jcowgill@debian.org>
+Bug: https://bugs.launchpad.net/seq24/+bug/1647614
+Bug-Debian: https://bugs.debian.org/822394
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/Module.am
++++ b/src/Module.am
+@@ -31,8 +31,6 @@ bin_PROGRAMS = %D%/seq24
+ %D%/midibus_portmidi.h \
+ %D%/midifile.cpp \
+ %D%/midifile.h \
+- %D%/mutex.cpp \
+- %D%/mutex.h \
+ %D%/options.cpp \
+ %D%/options.h \
+ %D%/optionsfile.cpp \
+--- a/src/midibus.h
++++ b/src/midibus.h
+@@ -35,11 +35,11 @@ class midibus;
+ # include <alsa/seq_midi_event.h>
+ #endif
+
++#include <mutex>
+ #include <string>
+
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -90,7 +90,7 @@ class midibus
+
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -208,7 +208,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/midibus_portmidi.h
++++ b/src/midibus_portmidi.h
+@@ -25,12 +25,12 @@ class mastermidibus;
+
+ #ifdef __WIN32__
+
++#include <mutex>
+ #include <string>
+
+ #include "portmidi.h"
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -65,7 +65,7 @@ class midibus
+ long m_lasttick;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -164,7 +164,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/mutex.cpp
++++ /dev/null
+@@ -1,62 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#include "mutex.h"
+-
+-const pthread_mutex_t mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+-const pthread_cond_t condition_var::cond = PTHREAD_COND_INITIALIZER;
+-
+-mutex::mutex( )
+-{
+- m_mutex_lock = recmutex;
+-}
+-
+-void
+-mutex::lock( )
+-{
+- pthread_mutex_lock( &m_mutex_lock );
+-}
+-
+-
+-void
+-mutex::unlock( )
+-{
+- pthread_mutex_unlock( &m_mutex_lock );
+-}
+-
+-condition_var::condition_var( )
+-{
+- m_cond = cond;
+-}
+-
+-
+-void
+-condition_var::signal( )
+-{
+- pthread_cond_signal( &m_cond );
+-}
+-
+-void
+-condition_var::wait( )
+-{
+- pthread_cond_wait( &m_cond, &m_mutex_lock );
+-}
+-
+-
+--- a/src/mutex.h
++++ /dev/null
+@@ -1,63 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#pragma once
+-
+-#include "globals.h"
+-
+-#include <pthread.h>
+-
+-class mutex {
+-
+-private:
+-
+- static const pthread_mutex_t recmutex;
+-
+-protected:
+-
+- /* mutex lock */
+- pthread_mutex_t m_mutex_lock;
+-
+-public:
+-
+- mutex();
+-
+- void lock();
+- void unlock();
+-
+-};
+-
+-class condition_var : public mutex {
+-
+-private:
+-
+- static const pthread_cond_t cond;
+-
+- pthread_cond_t m_cond;
+-
+-public:
+-
+- condition_var();
+-
+- void wait();
+- void signal();
+-
+-};
+-
+--- a/src/perform.cpp
++++ b/src/perform.cpp
+@@ -426,7 +426,7 @@ perform::~perform()
+ m_outputing = false;
+ m_running = false;
+
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+
+ if (m_out_thread_launched )
+ pthread_join( m_out_thread, NULL );
+@@ -1005,7 +1005,7 @@ void perform::stop()
+
+ void perform::inner_start(bool a_state)
+ {
+- m_condition_var.lock();
++ std::lock_guard<std::mutex> lock(m_mutex);
+
+ if (!is_running()) {
+
+@@ -1015,10 +1015,8 @@ void perform::inner_start(bool a_state)
+ off_sequences();
+
+ set_running(true);
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+ }
+-
+- m_condition_var.unlock();
+ }
+
+
+@@ -1262,18 +1260,18 @@ void perform::output_func()
+
+ //printf ("waiting for signal\n");
+
+- m_condition_var.lock();
++ std::unique_lock<std::mutex> lock(m_mutex);
+
+ while (!m_running) {
+
+- m_condition_var.wait();
++ m_condition_var.wait(lock);
+
+ /* if stopping, then kill thread */
+ if (!m_outputing)
+ break;
+ }
+
+- m_condition_var.unlock();
++ lock.unlock();
+
+ //printf( "signaled [%d]\n", m_playback_mode );
+
+--- a/src/perform.h
++++ b/src/perform.h
+@@ -32,6 +32,9 @@ class perform;
+ #endif
+ #include <pthread.h>
+
++#include <condition_variable>
++#include <mutex>
++
+
+ /* if we have jack, include the jack headers */
+ #ifdef JACK_SUPPORT
+@@ -152,7 +155,8 @@ class perform
+ int m_control_status;
+ int m_screen_set;
+
+- condition_var m_condition_var;
++ std::condition_variable m_condition_var;
++ std::mutex m_mutex;
+
+ // do not access these directly, use set/lookup below
+ std::map<unsigned int,long> key_events;
+--- a/src/perfroll.h
++++ b/src/perfroll.h
+@@ -39,8 +39,6 @@
+
+ #include "globals.h"
+ #include "perform.h"
+-#include "mutex.h"
+-
+
+ using namespace Gtk;
+
+--- a/src/sequence.h
++++ b/src/sequence.h
+@@ -26,11 +26,11 @@ class sequence;
+ #include <string>
+ #include <list>
+ #include <stack>
++#include <mutex>
+
+ #include "event.h"
+ #include "midibus.h"
+ #include "globals.h"
+-#include "mutex.h"
+
+ enum draw_type
+ {
+@@ -153,7 +153,7 @@ class sequence
+ long m_rec_vol;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* used to idenfity which events are ours in the out queue */
+ //unsigned char m_tag;
diff --git a/srcpkgs/seq24/template b/srcpkgs/seq24/template
new file mode 100644
index 000000000000..1f9ca182412f
--- /dev/null
+++ b/srcpkgs/seq24/template
@@ -0,0 +1,18 @@
+# Template file for 'seq24'
+pkgname=seq24
+version=0.9.3
+revision=1
+build_style=gnu-configure
+configure_args="--disable-lash"
+hostmakedepends="pkg-config alsa-lib-devel automake"
+makedepends="gtkmm2-devel alsa-lib-devel jack-devel"
+short_desc="Pattern based midi sequencer with strong live performance functions"
+maintainer="mag <mag-one@autistici.org>"
+license="GPL-2.0-or-later"
+homepage="http://filter24.org/seq24/"
+distfiles="https://launchpad.net/seq24/trunk/${version}/+download/${pkgname}-${version}.tar.bz2"
+checksum="e22ad4438b9b350fb8d4d37c3664905e760fa9d8213e55379861ba6d6183b789"
+
+pre_configure() {
+ aclocal; automake
+}
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
` (2 preceding siblings ...)
2022-05-14 8:54 ` DavideMaggio
@ 2022-05-22 7:48 ` DavideMaggio
2022-05-22 7:55 ` [PR REVIEW] " paper42
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: DavideMaggio @ 2022-05-22 7:48 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1243 bytes --]
There is an updated pull request by DavideMaggio against master on the void-packages repository
https://github.com/DavideMaggio/void-packages master
https://github.com/void-linux/void-packages/pull/36975
New package: seq24-0.9.3
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-musl)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- armv7l-musl
- armv7l
- x86_64
- i686
A patch file from https://github.com/void-linux/void-packages/pull/36975.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-36975.patch --]
[-- Type: text/x-diff, Size: 9373 bytes --]
From fb04c146d68498037414f2815eadfc0dd999e2ce Mon Sep 17 00:00:00 2001
From: mag <mag-one@autistici.org>
Date: Tue, 3 May 2022 17:08:01 +0200
Subject: [PATCH] New package: seq24-0.9.3
---
.../seq24/patches/seq24-voidlinux-mutex.patch | 331 ++++++++++++++++++
srcpkgs/seq24/template | 18 +
2 files changed, 349 insertions(+)
create mode 100644 srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
create mode 100644 srcpkgs/seq24/template
diff --git a/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
new file mode 100644
index 000000000000..4e8585a94491
--- /dev/null
+++ b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
@@ -0,0 +1,331 @@
+Description: Use standard mutex and condition variable classes
+ Use std::recursive_mutex and std::condition_variable instead of custom classes
+ based on pthread.
+ .
+ Fixes FTBFS with recent GCC versions which defines the "mutex" class which
+ conflicts with seq24's version of "mutex".
+Author: James Cowgill <jcowgill@debian.org>
+Bug: https://bugs.launchpad.net/seq24/+bug/1647614
+Bug-Debian: https://bugs.debian.org/822394
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/Module.am
++++ b/src/Module.am
+@@ -31,8 +31,6 @@ bin_PROGRAMS = %D%/seq24
+ %D%/midibus_portmidi.h \
+ %D%/midifile.cpp \
+ %D%/midifile.h \
+- %D%/mutex.cpp \
+- %D%/mutex.h \
+ %D%/options.cpp \
+ %D%/options.h \
+ %D%/optionsfile.cpp \
+--- a/src/midibus.h
++++ b/src/midibus.h
+@@ -35,11 +35,11 @@ class midibus;
+ # include <alsa/seq_midi_event.h>
+ #endif
+
++#include <mutex>
+ #include <string>
+
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -90,7 +90,7 @@ class midibus
+
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -208,7 +208,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/midibus_portmidi.h
++++ b/src/midibus_portmidi.h
+@@ -25,12 +25,12 @@ class mastermidibus;
+
+ #ifdef __WIN32__
+
++#include <mutex>
+ #include <string>
+
+ #include "portmidi.h"
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -65,7 +65,7 @@ class midibus
+ long m_lasttick;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -164,7 +164,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/mutex.cpp
++++ /dev/null
+@@ -1,62 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#include "mutex.h"
+-
+-const pthread_mutex_t mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+-const pthread_cond_t condition_var::cond = PTHREAD_COND_INITIALIZER;
+-
+-mutex::mutex( )
+-{
+- m_mutex_lock = recmutex;
+-}
+-
+-void
+-mutex::lock( )
+-{
+- pthread_mutex_lock( &m_mutex_lock );
+-}
+-
+-
+-void
+-mutex::unlock( )
+-{
+- pthread_mutex_unlock( &m_mutex_lock );
+-}
+-
+-condition_var::condition_var( )
+-{
+- m_cond = cond;
+-}
+-
+-
+-void
+-condition_var::signal( )
+-{
+- pthread_cond_signal( &m_cond );
+-}
+-
+-void
+-condition_var::wait( )
+-{
+- pthread_cond_wait( &m_cond, &m_mutex_lock );
+-}
+-
+-
+--- a/src/mutex.h
++++ /dev/null
+@@ -1,63 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#pragma once
+-
+-#include "globals.h"
+-
+-#include <pthread.h>
+-
+-class mutex {
+-
+-private:
+-
+- static const pthread_mutex_t recmutex;
+-
+-protected:
+-
+- /* mutex lock */
+- pthread_mutex_t m_mutex_lock;
+-
+-public:
+-
+- mutex();
+-
+- void lock();
+- void unlock();
+-
+-};
+-
+-class condition_var : public mutex {
+-
+-private:
+-
+- static const pthread_cond_t cond;
+-
+- pthread_cond_t m_cond;
+-
+-public:
+-
+- condition_var();
+-
+- void wait();
+- void signal();
+-
+-};
+-
+--- a/src/perform.cpp
++++ b/src/perform.cpp
+@@ -426,7 +426,7 @@ perform::~perform()
+ m_outputing = false;
+ m_running = false;
+
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+
+ if (m_out_thread_launched )
+ pthread_join( m_out_thread, NULL );
+@@ -1005,7 +1005,7 @@ void perform::stop()
+
+ void perform::inner_start(bool a_state)
+ {
+- m_condition_var.lock();
++ std::lock_guard<std::mutex> lock(m_mutex);
+
+ if (!is_running()) {
+
+@@ -1015,10 +1015,8 @@ void perform::inner_start(bool a_state)
+ off_sequences();
+
+ set_running(true);
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+ }
+-
+- m_condition_var.unlock();
+ }
+
+
+@@ -1262,18 +1260,18 @@ void perform::output_func()
+
+ //printf ("waiting for signal\n");
+
+- m_condition_var.lock();
++ std::unique_lock<std::mutex> lock(m_mutex);
+
+ while (!m_running) {
+
+- m_condition_var.wait();
++ m_condition_var.wait(lock);
+
+ /* if stopping, then kill thread */
+ if (!m_outputing)
+ break;
+ }
+
+- m_condition_var.unlock();
++ lock.unlock();
+
+ //printf( "signaled [%d]\n", m_playback_mode );
+
+--- a/src/perform.h
++++ b/src/perform.h
+@@ -32,6 +32,9 @@ class perform;
+ #endif
+ #include <pthread.h>
+
++#include <condition_variable>
++#include <mutex>
++
+
+ /* if we have jack, include the jack headers */
+ #ifdef JACK_SUPPORT
+@@ -152,7 +155,8 @@ class perform
+ int m_control_status;
+ int m_screen_set;
+
+- condition_var m_condition_var;
++ std::condition_variable m_condition_var;
++ std::mutex m_mutex;
+
+ // do not access these directly, use set/lookup below
+ std::map<unsigned int,long> key_events;
+--- a/src/perfroll.h
++++ b/src/perfroll.h
+@@ -39,8 +39,6 @@
+
+ #include "globals.h"
+ #include "perform.h"
+-#include "mutex.h"
+-
+
+ using namespace Gtk;
+
+--- a/src/sequence.h
++++ b/src/sequence.h
+@@ -26,11 +26,11 @@ class sequence;
+ #include <string>
+ #include <list>
+ #include <stack>
++#include <mutex>
+
+ #include "event.h"
+ #include "midibus.h"
+ #include "globals.h"
+-#include "mutex.h"
+
+ enum draw_type
+ {
+@@ -153,7 +153,7 @@ class sequence
+ long m_rec_vol;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* used to idenfity which events are ours in the out queue */
+ //unsigned char m_tag;
diff --git a/srcpkgs/seq24/template b/srcpkgs/seq24/template
new file mode 100644
index 000000000000..1f9ca182412f
--- /dev/null
+++ b/srcpkgs/seq24/template
@@ -0,0 +1,18 @@
+# Template file for 'seq24'
+pkgname=seq24
+version=0.9.3
+revision=1
+build_style=gnu-configure
+configure_args="--disable-lash"
+hostmakedepends="pkg-config alsa-lib-devel automake"
+makedepends="gtkmm2-devel alsa-lib-devel jack-devel"
+short_desc="Pattern based midi sequencer with strong live performance functions"
+maintainer="mag <mag-one@autistici.org>"
+license="GPL-2.0-or-later"
+homepage="http://filter24.org/seq24/"
+distfiles="https://launchpad.net/seq24/trunk/${version}/+download/${pkgname}-${version}.tar.bz2"
+checksum="e22ad4438b9b350fb8d4d37c3664905e760fa9d8213e55379861ba6d6183b789"
+
+pre_configure() {
+ aclocal; automake
+}
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR REVIEW] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
` (3 preceding siblings ...)
2022-05-22 7:48 ` DavideMaggio
@ 2022-05-22 7:55 ` paper42
2022-05-22 8:27 ` biopsin
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: paper42 @ 2022-05-22 7:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 279 bytes --]
New review comment by paper42 on void-packages repository
https://github.com/void-linux/void-packages/pull/36975#discussion_r878813207
Comment:
We should be trying to get rid of gtk2 packages, not add more of them. Is there a plan to support gtk3/4 or move to another toolkit?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR REVIEW] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
` (4 preceding siblings ...)
2022-05-22 7:55 ` [PR REVIEW] " paper42
@ 2022-05-22 8:27 ` biopsin
2022-05-22 8:32 ` [PR PATCH] [Updated] " DavideMaggio
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: biopsin @ 2022-05-22 8:27 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 176 bytes --]
New review comment by biopsin on void-packages repository
https://github.com/void-linux/void-packages/pull/36975#discussion_r864043725
Comment:
Quotation mark missing on url
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
` (5 preceding siblings ...)
2022-05-22 8:27 ` biopsin
@ 2022-05-22 8:32 ` DavideMaggio
2022-05-22 9:07 ` [PR REVIEW] " DavideMaggio
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: DavideMaggio @ 2022-05-22 8:32 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1243 bytes --]
There is an updated pull request by DavideMaggio against master on the void-packages repository
https://github.com/DavideMaggio/void-packages master
https://github.com/void-linux/void-packages/pull/36975
New package: seq24-0.9.3
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-musl)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- armv7l-musl
- armv7l
- x86_64
- i686
A patch file from https://github.com/void-linux/void-packages/pull/36975.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-36975.patch --]
[-- Type: text/x-diff, Size: 9373 bytes --]
From f669872c3cfdcd88565c1959b6521a7b53da52fb Mon Sep 17 00:00:00 2001
From: mag <mag-one@autistici.org>
Date: Tue, 3 May 2022 17:08:01 +0200
Subject: [PATCH] New package: seq24-0.9.3
---
.../seq24/patches/seq24-voidlinux-mutex.patch | 331 ++++++++++++++++++
srcpkgs/seq24/template | 18 +
2 files changed, 349 insertions(+)
create mode 100644 srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
create mode 100644 srcpkgs/seq24/template
diff --git a/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
new file mode 100644
index 000000000000..4e8585a94491
--- /dev/null
+++ b/srcpkgs/seq24/patches/seq24-voidlinux-mutex.patch
@@ -0,0 +1,331 @@
+Description: Use standard mutex and condition variable classes
+ Use std::recursive_mutex and std::condition_variable instead of custom classes
+ based on pthread.
+ .
+ Fixes FTBFS with recent GCC versions which defines the "mutex" class which
+ conflicts with seq24's version of "mutex".
+Author: James Cowgill <jcowgill@debian.org>
+Bug: https://bugs.launchpad.net/seq24/+bug/1647614
+Bug-Debian: https://bugs.debian.org/822394
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/Module.am
++++ b/src/Module.am
+@@ -31,8 +31,6 @@ bin_PROGRAMS = %D%/seq24
+ %D%/midibus_portmidi.h \
+ %D%/midifile.cpp \
+ %D%/midifile.h \
+- %D%/mutex.cpp \
+- %D%/mutex.h \
+ %D%/options.cpp \
+ %D%/options.h \
+ %D%/optionsfile.cpp \
+--- a/src/midibus.h
++++ b/src/midibus.h
+@@ -35,11 +35,11 @@ class midibus;
+ # include <alsa/seq_midi_event.h>
+ #endif
+
++#include <mutex>
+ #include <string>
+
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -90,7 +90,7 @@ class midibus
+
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -208,7 +208,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/midibus_portmidi.h
++++ b/src/midibus_portmidi.h
+@@ -25,12 +25,12 @@ class mastermidibus;
+
+ #ifdef __WIN32__
+
++#include <mutex>
+ #include <string>
+
+ #include "portmidi.h"
+ #include "event.h"
+ #include "sequence.h"
+-#include "mutex.h"
+ #include "globals.h"
+
+ const int c_midibus_output_size = 0x100000;
+@@ -65,7 +65,7 @@ class midibus
+ long m_lasttick;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+@@ -164,7 +164,7 @@ class mastermidibus
+ sequence *m_seq;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* mutex */
+ void lock();
+--- a/src/mutex.cpp
++++ /dev/null
+@@ -1,62 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#include "mutex.h"
+-
+-const pthread_mutex_t mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+-const pthread_cond_t condition_var::cond = PTHREAD_COND_INITIALIZER;
+-
+-mutex::mutex( )
+-{
+- m_mutex_lock = recmutex;
+-}
+-
+-void
+-mutex::lock( )
+-{
+- pthread_mutex_lock( &m_mutex_lock );
+-}
+-
+-
+-void
+-mutex::unlock( )
+-{
+- pthread_mutex_unlock( &m_mutex_lock );
+-}
+-
+-condition_var::condition_var( )
+-{
+- m_cond = cond;
+-}
+-
+-
+-void
+-condition_var::signal( )
+-{
+- pthread_cond_signal( &m_cond );
+-}
+-
+-void
+-condition_var::wait( )
+-{
+- pthread_cond_wait( &m_cond, &m_mutex_lock );
+-}
+-
+-
+--- a/src/mutex.h
++++ /dev/null
+@@ -1,63 +0,0 @@
+-//----------------------------------------------------------------------------
+-//
+-// This file is part of seq24.
+-//
+-// seq24 is free software; you can redistribute it and/or modify
+-// it under the terms of the GNU General Public License as published by
+-// the Free Software Foundation; either version 2 of the License, or
+-// (at your option) any later version.
+-//
+-// seq24 is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-// GNU General Public License for more details.
+-//
+-// You should have received a copy of the GNU General Public License
+-// along with seq24; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-//
+-//-----------------------------------------------------------------------------
+-
+-#pragma once
+-
+-#include "globals.h"
+-
+-#include <pthread.h>
+-
+-class mutex {
+-
+-private:
+-
+- static const pthread_mutex_t recmutex;
+-
+-protected:
+-
+- /* mutex lock */
+- pthread_mutex_t m_mutex_lock;
+-
+-public:
+-
+- mutex();
+-
+- void lock();
+- void unlock();
+-
+-};
+-
+-class condition_var : public mutex {
+-
+-private:
+-
+- static const pthread_cond_t cond;
+-
+- pthread_cond_t m_cond;
+-
+-public:
+-
+- condition_var();
+-
+- void wait();
+- void signal();
+-
+-};
+-
+--- a/src/perform.cpp
++++ b/src/perform.cpp
+@@ -426,7 +426,7 @@ perform::~perform()
+ m_outputing = false;
+ m_running = false;
+
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+
+ if (m_out_thread_launched )
+ pthread_join( m_out_thread, NULL );
+@@ -1005,7 +1005,7 @@ void perform::stop()
+
+ void perform::inner_start(bool a_state)
+ {
+- m_condition_var.lock();
++ std::lock_guard<std::mutex> lock(m_mutex);
+
+ if (!is_running()) {
+
+@@ -1015,10 +1015,8 @@ void perform::inner_start(bool a_state)
+ off_sequences();
+
+ set_running(true);
+- m_condition_var.signal();
++ m_condition_var.notify_one();
+ }
+-
+- m_condition_var.unlock();
+ }
+
+
+@@ -1262,18 +1260,18 @@ void perform::output_func()
+
+ //printf ("waiting for signal\n");
+
+- m_condition_var.lock();
++ std::unique_lock<std::mutex> lock(m_mutex);
+
+ while (!m_running) {
+
+- m_condition_var.wait();
++ m_condition_var.wait(lock);
+
+ /* if stopping, then kill thread */
+ if (!m_outputing)
+ break;
+ }
+
+- m_condition_var.unlock();
++ lock.unlock();
+
+ //printf( "signaled [%d]\n", m_playback_mode );
+
+--- a/src/perform.h
++++ b/src/perform.h
+@@ -32,6 +32,9 @@ class perform;
+ #endif
+ #include <pthread.h>
+
++#include <condition_variable>
++#include <mutex>
++
+
+ /* if we have jack, include the jack headers */
+ #ifdef JACK_SUPPORT
+@@ -152,7 +155,8 @@ class perform
+ int m_control_status;
+ int m_screen_set;
+
+- condition_var m_condition_var;
++ std::condition_variable m_condition_var;
++ std::mutex m_mutex;
+
+ // do not access these directly, use set/lookup below
+ std::map<unsigned int,long> key_events;
+--- a/src/perfroll.h
++++ b/src/perfroll.h
+@@ -39,8 +39,6 @@
+
+ #include "globals.h"
+ #include "perform.h"
+-#include "mutex.h"
+-
+
+ using namespace Gtk;
+
+--- a/src/sequence.h
++++ b/src/sequence.h
+@@ -26,11 +26,11 @@ class sequence;
+ #include <string>
+ #include <list>
+ #include <stack>
++#include <mutex>
+
+ #include "event.h"
+ #include "midibus.h"
+ #include "globals.h"
+-#include "mutex.h"
+
+ enum draw_type
+ {
+@@ -153,7 +153,7 @@ class sequence
+ long m_rec_vol;
+
+ /* locking */
+- mutex m_mutex;
++ std::recursive_mutex m_mutex;
+
+ /* used to idenfity which events are ours in the out queue */
+ //unsigned char m_tag;
diff --git a/srcpkgs/seq24/template b/srcpkgs/seq24/template
new file mode 100644
index 000000000000..1f9ca182412f
--- /dev/null
+++ b/srcpkgs/seq24/template
@@ -0,0 +1,18 @@
+# Template file for 'seq24'
+pkgname=seq24
+version=0.9.3
+revision=1
+build_style=gnu-configure
+configure_args="--disable-lash"
+hostmakedepends="pkg-config alsa-lib-devel automake"
+makedepends="gtkmm2-devel alsa-lib-devel jack-devel"
+short_desc="Pattern based midi sequencer with strong live performance functions"
+maintainer="mag <mag-one@autistici.org>"
+license="GPL-2.0-or-later"
+homepage="http://filter24.org/seq24/"
+distfiles="https://launchpad.net/seq24/trunk/${version}/+download/${pkgname}-${version}.tar.bz2"
+checksum="e22ad4438b9b350fb8d4d37c3664905e760fa9d8213e55379861ba6d6183b789"
+
+pre_configure() {
+ aclocal; automake
+}
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR REVIEW] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
` (6 preceding siblings ...)
2022-05-22 8:32 ` [PR PATCH] [Updated] " DavideMaggio
@ 2022-05-22 9:07 ` DavideMaggio
2022-05-22 21:31 ` paper42
2022-07-15 9:28 ` [PR PATCH] [Closed]: " DavideMaggio
9 siblings, 0 replies; 11+ messages in thread
From: DavideMaggio @ 2022-05-22 9:07 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 367 bytes --]
New review comment by DavideMaggio on void-packages repository
https://github.com/void-linux/void-packages/pull/36975#discussion_r878826972
Comment:
uh...understand... I recently used this to resurrect some old big midi sessions, it worked very well so I shared my template.
It's an 'old' sequencer, I think there are not many future plans but we'll see. Thanks.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR REVIEW] New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
` (7 preceding siblings ...)
2022-05-22 9:07 ` [PR REVIEW] " DavideMaggio
@ 2022-05-22 21:31 ` paper42
2022-07-15 9:28 ` [PR PATCH] [Closed]: " DavideMaggio
9 siblings, 0 replies; 11+ messages in thread
From: paper42 @ 2022-05-22 21:31 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 283 bytes --]
New review comment by paper42 on void-packages repository
https://github.com/void-linux/void-packages/pull/36975#discussion_r878928404
Comment:
Even if we don't end up merging this PR, the template is still here and interested people can build it on their own, so thanks for that!
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Closed]: New package: seq24-0.9.3
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
` (8 preceding siblings ...)
2022-05-22 21:31 ` paper42
@ 2022-07-15 9:28 ` DavideMaggio
9 siblings, 0 replies; 11+ messages in thread
From: DavideMaggio @ 2022-07-15 9:28 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1078 bytes --]
There's a closed pull request on the void-packages repository
New package: seq24-0.9.3
https://github.com/void-linux/void-packages/pull/36975
Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-musl)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- armv7l-musl
- armv7l
- x86_64
- i686
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-07-15 9:28 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-03 15:21 [PR PATCH] New package: seq24-0.9.3 DavideMaggio
2022-05-03 17:59 ` [PR REVIEW] " biopsin
2022-05-03 19:23 ` [PR PATCH] [Updated] " DavideMaggio
2022-05-14 8:54 ` DavideMaggio
2022-05-22 7:48 ` DavideMaggio
2022-05-22 7:55 ` [PR REVIEW] " paper42
2022-05-22 8:27 ` biopsin
2022-05-22 8:32 ` [PR PATCH] [Updated] " DavideMaggio
2022-05-22 9:07 ` [PR REVIEW] " DavideMaggio
2022-05-22 21:31 ` paper42
2022-07-15 9:28 ` [PR PATCH] [Closed]: " DavideMaggio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).