diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..456f069 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +a2jmidid-6.tar.bz2 +/a2jmidid-7.tar.bz2 +/a2jmidid-8.tar.bz2 +/a2jmidid-9.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index 40cf9b9..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: a2jmidid -# $Id$ -NAME := a2jmidid -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/a2jmidid-add-riscv64-support.patch b/a2jmidid-add-riscv64-support.patch new file mode 100644 index 0000000..2b9e2ed --- /dev/null +++ b/a2jmidid-add-riscv64-support.patch @@ -0,0 +1,44 @@ +From 2c3fbef6854743416d95d85b1565dde51668488c Mon Sep 17 00:00:00 2001 +From: Heinrich Schuchardt +Date: Fri, 1 Oct 2021 16:15:29 +0200 +Subject: [PATCH] sigsegv: enable RISC-V build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Avoid build error + +../sigsegv.c:104:39: error: ‘mcontext_t’ has no member named ‘gregs’; +did you mean ‘__gregs’? + 104 | ucontext->uc_mcontext.gregs[i] + | ^~~~~ + +Signed-off-by: Heinrich Schuchardt +--- + sigsegv.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/sigsegv.c b/sigsegv.c +index fb4456e..6930185 100644 +--- a/sigsegv.c ++++ b/sigsegv.c +@@ -91,7 +91,9 @@ static void signal_segv(int signum, siginfo_t* info, void*ptr) { + a2j_error("info.si_errno = %d", info->si_errno); + a2j_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); + a2j_error("info.si_addr = %p", info->si_addr); +-#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) ++#if !defined(__alpha__) && !defined(__ia64__) && \ ++ !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && \ ++ !defined(__sh__) && !defined(__aarch64__) && !defined(__riscv) + for(i = 0; i < NGREG; i++) + a2j_error("reg[%02d] = 0x" REGFORMAT, i, + #if defined(__powerpc__) && !defined(__powerpc64__) +@@ -108,7 +110,7 @@ static void signal_segv(int signum, siginfo_t* info, void*ptr) { + ucontext->uc_mcontext.gregs[i] + #endif + ); +-#endif /* alpha, ia64, kFreeBSD, arm, hppa, aarch64 */ ++#endif /* alpha, ia64, kFreeBSD, arm, hppa, aarch64, riscv */ + + #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) + # if defined(SIGSEGV_STACK_IA64) diff --git a/a2jmidid-man.patch b/a2jmidid-man.patch new file mode 100644 index 0000000..f536a66 --- /dev/null +++ b/a2jmidid-man.patch @@ -0,0 +1,49 @@ +diff --git a/man/a2jmidi_bridge.1 b/man/a2jmidi_bridge.1 +index c4c358d..e3a4af8 100644 +--- a/man/a2jmidi_bridge.1 ++++ b/man/a2jmidi_bridge.1 +@@ -5,7 +5,7 @@ a2jmidi_bridge \- static bridge with one ALSA playback port and one JACK MIDI in + .SH SYNOPSIS + .B a2jmidi_bridge [NAME] + .SH DESCRIPTION +-A single, static, one-way bridge from legacy ALSA MIDI to JACK MIDI. Mostly useful for those needing a steady bridge rather than an active briding daemon such as a2jmidid. Multiple instances of this can be run simultaneously. ++A single, static, one-way bridge from legacy ALSA MIDI to JACK MIDI. Mostly useful for those needing a steady bridge rather than an active bridging daemon such as a2jmidid. Multiple instances of this can be run simultaneously. + .SH OPTIONS + .IP NAME + names the given bridge with the name provided +@@ -15,4 +15,3 @@ Eric Hedekar + .BR a2jmidid (1), + .BR a2j_control (1), + .BR j2amidi_bridge (1) +- +diff --git a/man/a2jmidid.1 b/man/a2jmidid.1 +index d4b4bf5..432e0a5 100644 +--- a/man/a2jmidid.1 ++++ b/man/a2jmidid.1 +@@ -6,7 +6,7 @@ a2jmidid \- JACK MIDI daemon for ALSA MIDI + .B a2jmidid [-j jack-server] [e | --export-hw] + .SH DESCRIPTION + a2jmidid is a daemon that implements automatic bridging. For every ALSA +-sequencer port you get one jack midi port. If ALSA sequencer port is ++sequencer port you get one JACK midi port. If ALSA sequencer port is + both input and output one, you get two JACK MIDI ports, one input and + output. + .SH OPTIONS +diff --git a/man/j2amidi_bridge.1 b/man/j2amidi_bridge.1 +index e2f2ce0..8c4bcbd 100644 +--- a/man/j2amidi_bridge.1 ++++ b/man/j2amidi_bridge.1 +@@ -5,7 +5,7 @@ j2amidi_bridge \- static bridge with one ALSA input port and one JACK MIDI outpu + .SH SYNOPSIS + .B j2amidi_bridge [NAME] + .SH DESCRIPTION +-A single, static, one-way bridge from JACK MIDI to legacy ALSA MIDI. Mostly useful for those needing a steady bridge rather than an active briding daemon such as a2jmidid. Multiple instances of this can be run simultaneously. ++A single, static, one-way bridge from JACK MIDI to legacy ALSA MIDI. Mostly useful for those needing a steady bridge rather than an active bridging daemon such as a2jmidid. Multiple instances of this can be run simultaneously. + .SH OPTIONS + .IP NAME + names the given bridge with the name provided +@@ -15,4 +15,3 @@ Eric Hedekar + .BR a2jmidid (1), + .BR a2j_control (1), + .BR a2jmidi_bridge (1) +- diff --git a/a2jmidid-portname.patch b/a2jmidid-portname.patch new file mode 100644 index 0000000..06c7368 --- /dev/null +++ b/a2jmidid-portname.patch @@ -0,0 +1,17 @@ +diff --git a/port.c b/port.c +index 3a7c41e..523fae2 100644 +--- a/port.c ++++ b/port.c +@@ -116,10 +116,11 @@ a2j_port_fill_name( + ret = snprintf( + port_ptr->name, + g_max_jack_port_name_size, +- "%s [%d] (%s): %s", ++ "%s [%d] (%s): [%d] %s", + snd_seq_client_info_get_name(client_info_ptr), + snd_seq_client_info_get_client(client_info_ptr), + type == A2J_PORT_CAPTURE ? "capture": "playback", ++ snd_seq_port_info_get_port(port_info_ptr), + snd_seq_port_info_get_name(port_info_ptr)); + } + else diff --git a/a2jmidid.spec b/a2jmidid.spec new file mode 100644 index 0000000..938ee27 --- /dev/null +++ b/a2jmidid.spec @@ -0,0 +1,219 @@ +Summary: Daemon for exposing ALSA sequencer applications in JACK MIDI system +Name: a2jmidid +Version: 9 +Release: 19%{?dist} +URL: https://github.com/linuxaudio/a2jmidid +Source0: https://github.com/linuxaudio/a2jmidid/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +# Backported from upstream +Patch0: %{name}-man.patch +Patch1: %{name}-portname.patch +Patch2: %{name}-add-riscv64-support.patch + +# a2jmidi_bridge.c and j2amidi_bridge.c are GPLv2+ +# The rest is GPLv2 +# Automatically converted from old format: GPLv2 and GPLv2+ - review is highly recommended. +License: GPL-2.0-only AND GPL-2.0-or-later + +BuildRequires: alsa-lib-devel +BuildRequires: dbus-devel +BuildRequires: gcc +%if 0%{?fedora} || 0%{?rhel} >= 9 +BuildRequires: pipewire-jack-audio-connection-kit-devel +%else +BuildRequires: jack-audio-connection-kit-devel +%endif +BuildRequires: meson +Requires: dbus +Requires: python3 + +%description +a2jmidid is a project that aims to ease usage of legacy ALSA sequencer +applications, in a JACK MIDI enabled system. There are two ways to use legacy +ALSA sequencer applications in JACK MIDI system. + +The first approach is to use automatic bridging. For every ALSA sequencer port +you get one JACK MIDI port. If ALSA sequencer port is both input and output +one, you get two JACK MIDI ports, one input and output. + +The second approach is to static bridges. You start application that creates +one ALSA sequencer port and one JACK MIDI port. Such bridge is unidirectional. + +%prep +%autosetup -p1 + +# Fix Python shebangs +sed -i 's|^#!/usr/bin/env python3|#!/usr/bin/python3|' a2j_control + +%build +%meson +%meson_build + +%install +%meson_install + +%files +%doc AUTHORS.rst README.rst CHANGELOG.rst +%license LICENSE +%{_bindir}/a2j +%{_bindir}/%{name} +%{_bindir}/a2j_control +%{_bindir}/a2jmidi_bridge +%{_bindir}/j2amidi_bridge +%{_datadir}/dbus-1/services/org.gna.home.a2jmidid.service +%{_mandir}/man1/a2j* +%{_mandir}/man1/j2a* + +%changelog +* Fri Jan 16 2026 Fedora Release Engineering - 9-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Jul 23 2025 Fedora Release Engineering - 9-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Mar 27 2025 Davide Cavalca - 9-17 +- Switch to pipewire-jack-audio-connection-kit-devel where available + +* Thu Jan 16 2025 Fedora Release Engineering - 9-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Aug 07 2024 Miroslav Suchý - 9-15 +- convert license to SPDX + +* Wed Jul 17 2024 Fedora Release Engineering - 9-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 9-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 9-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Oct 06 2023 Songsong Zhang - 9-11 +- Add riscv64 patch from https://github.com/jackaudio/a2jmidid/pull/18 + +* Wed Jul 19 2023 Fedora Release Engineering - 9-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jan 18 2023 Fedora Release Engineering - 9-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 9-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 9-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 9-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jan 25 2021 Fedora Release Engineering - 9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jul 31 2020 Fedora Release Engineering - 9-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Sep 26 2019 Guido Aulisi - 9-1 +- Update to version 9 +- New upstream + +* Wed Jul 24 2019 Fedora Release Engineering - 8-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 8-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 19 2018 Orcan Ogetbil - 8-18 +- Use Fedora link flags +- BR: gcc +- Moved license file to %%license +- Fix Python shebangs + +* Thu Jul 12 2018 Fedora Release Engineering - 8-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 28 2018 Iryna Shcherbina - 8-16 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Wed Feb 07 2018 Fedora Release Engineering - 8-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 8-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 8-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Feb 16 2017 Orcan Ogetbil - 8-12 +- Add patch to fix build on ppc64* + +* Fri Feb 10 2017 Fedora Release Engineering - 8-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 8-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jun 16 2015 Fedora Release Engineering - 8-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Oct 26 2014 Peter Robinson 8-8 +- Add patch to fix ftbfs on aarch64 + +* Fri Aug 15 2014 Fedora Release Engineering - 8-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jun 06 2014 Fedora Release Engineering - 8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Feb 13 2013 Fedora Release Engineering - 8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Jan 13 2013 Brendan Jones 8-3 +- Release bump for F19 + +* Sat Sep 15 2012 Jørn Lomax - 8-2 +- added patch for man pages + +* Mon Jul 09 2012 Orcan Ogetbil - 8-1 +- Update to 8. + +* Thu Jan 12 2012 Fedora Release Engineering - 7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Feb 07 2011 Fedora Release Engineering - 7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 26 2011 Orcan Ogetbil - 7-1 +- Update to 7. +- Drop upstreamed patches. + +* Fri Jul 16 2010 Orcan Ogetbil - 6-3 +- Fix license tag + +* Wed May 19 2010 Orcan Ogetbil - 6-2 +- Fix DSO linking + +* Sat Jan 30 2010 Orcan Ogetbil - 6-1 +- Update to 6 + +* Thu Nov 26 2009 Orcan Ogetbil - 5-1 +- Initial Fedora package. Specfile borrowed from SuSE. + +* Mon Jun 15 2009 Toni Graffy - 5-0.pm.1 +- update to 5 +* Sun Aug 03 2008 Toni Graffy - 4-0.pm.1 +- update to 4 +* Sat Oct 27 2007 Toni Graffy - 2-0.pm.1 +- update to 2 +* Mon Aug 27 2007 Toni Graffy - 1-0.pm.1 +- Initial build 1 diff --git a/sources b/sources index e69de29..e40c361 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (a2jmidid-9.tar.gz) = 5bd13b6904ed68c5bfe40ca516fd49b7eb4d4a946b9908ee04687265848734c8e1a81579f0f1a5bd0752595be8858dc748da10487b7f366394c09a5ffc7d5e5c