diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 4e56fba..0000000 --- a/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -abcMIDI-2009-03-17.zip diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cc4d19e --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +abcMIDI-*.zip +*.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index d89b7f1..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: abcMIDI -# $Id$ -NAME := abcMIDI -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/abcMIDI-gnu23.patch b/abcMIDI-gnu23.patch new file mode 100644 index 0000000..239a7d9 --- /dev/null +++ b/abcMIDI-gnu23.patch @@ -0,0 +1,221 @@ +diff -up ./genmidi.h.gnu23 ./genmidi.h +--- ./genmidi.h.gnu23 2025-02-16 20:30:44.000000000 -0500 ++++ ./genmidi.h 2025-04-23 21:21:39.558432536 -0400 +@@ -23,6 +23,7 @@ extern void midi_noteoff(); + extern void progress_sequence(); + #endif + ++int parse_stress_params (char *input); + + /* introduced 2010-02-01 (feb 01) [SS] */ + struct trackstruct {enum {NOTES, WORDS, NOTEWORDS, GCHORDS, DRUMS, DRONE} tracktype; +diff -up ./Makefile.gnu23 ./Makefile +--- ./Makefile.gnu23 2025-02-16 20:30:44.000000000 -0500 ++++ ./Makefile 2025-04-23 21:21:39.558774383 -0400 +@@ -33,7 +33,7 @@ + + VERSION = @VERSION@ + +-CC = gcc ++CC = gcc --std=gnu17 + INSTALL = /usr/bin/install -c + INSTALL_DATA = ${INSTALL} -m 644 + INSTALL_PROGRAM = ${INSTALL} +diff -up ./midicopy.c.gnu23 ./midicopy.c +--- ./midicopy.c.gnu23 2025-04-23 21:22:18.174069818 -0400 ++++ ./midicopy.c 2025-04-23 21:22:29.021627006 -0400 +@@ -53,7 +53,6 @@ + + + #define VERSION "1.40 August 11 2024 midicopy" +-#include "midicopy.h" + #define NULLFUNC 0 + #define NULL 0 + +@@ -63,6 +62,7 @@ + + #include + #include ++#include "midicopy.h" + + + /* Functions to be called while processing the MIDI file. */ +diff -up ./midicopy.h.gnu23 ./midicopy.h +--- ./midicopy.h.gnu23 2025-02-16 20:30:44.000000000 -0500 ++++ ./midicopy.h 2025-04-23 21:21:39.559005865 -0400 +@@ -1,7 +1,8 @@ + /* definitions for MIDI file writing code */ + float mf_ticks2sec(); + long mf_sec2ticks(); +-void mfwrite(); ++/* FIXME: also defined in midifile.h */ ++void mfwrite(int format,int ntracks,int division,FILE *fp); + void mfread(); + + /* MIDI status commands most significant bit is 1 */ +diff -up ./midifile.c.gnu23 ./midifile.c +--- ./midifile.c.gnu23 2025-02-16 20:30:44.000000000 -0500 ++++ ./midifile.c 2025-04-23 21:21:39.559270736 -0400 +@@ -80,11 +80,11 @@ void (*Mf_error)() = NULLFUNC; + void (*Mf_header)() = NULLFUNC; + void (*Mf_trackstart)() = NULLFUNC; + void (*Mf_trackend)() = NULLFUNC; +-void (*Mf_noteon)() = NULLFUNC; +-void (*Mf_noteoff)() = NULLFUNC; +-void (*Mf_pressure)() = NULLFUNC; +-void (*Mf_parameter)() = NULLFUNC; +-void (*Mf_pitchbend)() = NULLFUNC; ++void (*Mf_noteon)(int,int,int) = NULLFUNC; ++void (*Mf_noteoff)(int,int,int) = NULLFUNC; ++void (*Mf_pressure)(int,int,int) = NULLFUNC; ++void (*Mf_parameter)(int,int,int) = NULLFUNC; ++void (*Mf_pitchbend)(int,int,int) = NULLFUNC; + void (*Mf_program)() = NULLFUNC; + void (*Mf_chanpressure)() = NULLFUNC; + void (*Mf_sysex)() = NULLFUNC; +@@ -101,7 +101,7 @@ void (*Mf_text)() = NULLFUNC; + + /* Functions to implement in order to write a MIDI file */ + int (*Mf_putc)() = NULLFUNC; +-long (*Mf_writetrack)() = NULLFUNC; ++long (*Mf_writetrack)(int) = NULLFUNC; + int (*Mf_writetempotrack)() = NULLFUNC; + + int Mf_nomerge = 0; /* 1 => continue'ed system exclusives are */ +@@ -128,7 +128,7 @@ static void readheader(); + static void badbyte(); + static void metaevent(); + static void sysex(); +-static void chanmessage(); ++static void chanmessage(int,int,int); + static void msginit(); + static void msgadd(); + static void biggermsg(); +@@ -580,8 +580,7 @@ read16bit() + } + + /* static */ +-void mferror(s) +- char *s; ++void mferror(char *s) + { + if ( Mf_error ) { + (*Mf_error)(s); +diff -up ./midifile.h.gnu23 ./midifile.h +--- ./midifile.h.gnu23 2025-02-16 20:30:44.000000000 -0500 ++++ ./midifile.h 2025-04-23 21:21:39.559575903 -0400 +@@ -28,16 +28,16 @@ extern int Mf_nomerge; + + /* definitions for MIDI file writing code */ + extern int (*Mf_putc)(); +-extern long (*Mf_writetrack)(); ++extern long (*Mf_writetrack)(int); + extern int (*Mf_writetempotrack)(); + float mf_ticks2sec(); + long mf_sec2ticks(); +-void mfwrite(); ++void mfwrite(int format,int ntracks,int division,FILE *fp); + void mfread(); + int mf_write_meta_event(); + int mf_write_midi_event(); + void mf_write_tempo(); +-void mferror(); ++void mferror(char *s); + + /* MIDI status commands most significant bit is 1 */ + #define note_off 0x80 +diff -up ./parseabc.h.gnu23 ./parseabc.h +--- ./parseabc.h.gnu23 2025-02-16 20:30:44.000000000 -0500 ++++ ./parseabc.h 2025-04-23 21:21:39.559857281 -0400 +@@ -171,11 +171,11 @@ extern void event_acciaccatura(); + extern void event_start_extended_overlay(); + extern void event_stop_extended_overlay(); + extern void event_split_voice(); +-extern void event_temperament(); ++extern void event_temperament(char *line); + extern void print_voicecodes(void); + extern void init_abbreviations(); + extern void free_abbreviations(); +-extern void parsefile(); ++extern void parsefile(char *name); + extern int parsetune(); + #else + extern void event_init(); +@@ -239,6 +239,7 @@ extern void event_split_voice(); + extern void print_voicecodes(); + extern void init_abbreviations(); + extern void free_abbreviations(); +-extern void parsefile(); ++extern void parsefile(char *name); + extern int parsetune(); + #endif ++extern int readaln (char out[], char **in, int limit); +diff -up ./store.c.gnu23 ./store.c +--- ./store.c.gnu23 2025-02-16 20:30:44.000000000 -0500 ++++ ./store.c 2025-04-23 21:21:39.560510000 -0400 +@@ -157,9 +157,6 @@ void dotie() + void fix_enclosed_note_lengths() + int patchup_chordtie() + void tiefix() +-void applygrace() +-void applygrace_orig() +-void applygrace_new() + void dograce() + void zerobar() + void event_bar() +@@ -503,7 +500,7 @@ static void addfeature(int f,int p,int n + static void replacefeature(int f, int p, int n, int d, int loc); + void insertfeature(int f, int p, int n, int d, int loc); + static void textfeature(int type, char *s); +-extern long writetrack(); ++extern long writetrack(int); + void init_drum_map(); + static void fix_enclosed_note_lengths(int from, int end); + static int patchup_chordtie(int chordstart,int chordend); +@@ -511,7 +508,6 @@ static void copymap(struct voicecontext* + void init_stresspat(); + void beat_modifier(int); + void readstressfile (char * filename); +-int parse_stress_params(); + void calculate_stress_parameters(); + extern int inbody; /* from parseabc.c [SS] 2009-12-18 */ + extern int lineposition; /* from parseabc.c [SS] 2011-07-18 */ +@@ -1884,7 +1880,7 @@ j = 1; + k = 0; + while (j > 0) { + skipspace(&p); +- j = readaln(&name,&p,31); ++ j = readaln(name,&p,31); + if (j < 1) break; + for (i=0; i3) printf("tiefix finished\ + static void applygrace_orig(int); + static void applygrace_new(int); + +-static void applygrace(place) +-int place; ++static void applygrace(int place) + { + if (gfact_method) applygrace_orig(place); + else applygrace_new(place); +@@ -5146,8 +5141,7 @@ removefeatures(start,end); + } /* [SS] 2021-01-24 */ + + +-static void applygrace_orig(place) +-int place; ++static void applygrace_orig(int place) + /* assign lengths to grace notes before generating MIDI */ + /* This version adjusts the length of the grace notes + * based on the length of the following note, the +@@ -5257,8 +5251,7 @@ int place; + }; + } + +-static void applygrace_new(place) +-int place; ++static void applygrace_new(int place) + /* assign lengths to grace notes before generating MIDI */ + /* In this version each grace note has a predetermined + * length, eg, (1/64 th note) and the total length of diff --git a/abcMIDI.spec b/abcMIDI.spec index 965d042..ca93f58 100644 --- a/abcMIDI.spec +++ b/abcMIDI.spec @@ -1,13 +1,16 @@ Name: abcMIDI -Version: 20090317 -Release: 2%{?dist} +Version: 2025.02.16 +Release: 4%{?dist} Summary: ABC to/from MIDI conversion utilities Group: Applications/Multimedia -License: GPLv2+ -URL: http://abc.sourceforge.net/abcMIDI -Source0: http://ifdo.pugmarks.com/~seymour/runabc/abcMIDI-2009-03-17.zip -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +License: GPL-2.0-or-later +URL: https://ifdo.ca/~seymour/runabc/top.html +Source0: https://github.com/sshlien/abcmidi/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: abcMIDI-gnu23.patch + +BuildRequires: gcc dos2unix +BuildRequires: make %description The abcMIDI package contains four programs: abc2midi to convert ABC @@ -18,51 +21,128 @@ transpose ABC files, and yaps to typeset ABC files as PostScript. For a description of the ABC syntax, please see the ABC userguide which is a part of the abcm2ps. +A mirror github repo is at https://github.com/sdgathman/abcmidi + %prep -%setup -q -n abcmidi -# correct end-of-line encoding -sed -i 's/\r//' doc/*.txt *.abc doc/AUTHORS VERSION -# remove executable flag from text files -chmod 0644 *.abc VERSION doc/*.txt doc/AUTHORS doc/CHANGES - +%setup -q -n abcmidi-%{version} +#find . -type f | xargs dos2unix +%patch -P 0 -p 1 -b .gnu23 +# make license easier to find in files +mv doc/gpl.txt doc/LICENSE %build -make %{?_smp_mflags} -f makefiles/unix.mak all CFLAGS="-DANSILIBS $RPM_OPT_FLAGS" - +%configure +sed -i Makefile -e 's/^CC = gcc/CC = gcc --std=gnu17/' +%{make_build} %install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT%{_bindir} -install -m 755 abc2midi $RPM_BUILD_ROOT%{_bindir} -install -m 755 abcmatch $RPM_BUILD_ROOT%{_bindir} -install -m 755 midi2abc $RPM_BUILD_ROOT%{_bindir} -install -m 755 midicopy $RPM_BUILD_ROOT%{_bindir} -install -m 755 abc2abc $RPM_BUILD_ROOT%{_bindir} -install -m 755 mftext $RPM_BUILD_ROOT%{_bindir} -install -m 755 yaps $RPM_BUILD_ROOT%{_bindir} - -mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 -install -m 644 doc/abc2abc.1 $RPM_BUILD_ROOT%{_mandir}/man1 -install -m 644 doc/abc2midi.1 $RPM_BUILD_ROOT%{_mandir}/man1 -install -m 644 doc/mftext.1 $RPM_BUILD_ROOT%{_mandir}/man1 -install -m 644 doc/midi2abc.1 $RPM_BUILD_ROOT%{_mandir}/man1 -install -m 644 doc/midicopy.1 $RPM_BUILD_ROOT%{_mandir}/man1 -install -m 644 doc/yaps.1 $RPM_BUILD_ROOT%{_mandir}/man1 +mkdir -p %{buildroot}%{_bindir} +install -p -m 755 abc2midi %{buildroot}%{_bindir} +install -p -m 755 abcmatch %{buildroot}%{_bindir} +install -p -m 755 midi2abc %{buildroot}%{_bindir} +install -p -m 755 midicopy %{buildroot}%{_bindir} +install -p -m 755 midistats %{buildroot}%{_bindir} +install -p -m 755 abc2abc %{buildroot}%{_bindir} +install -p -m 755 mftext %{buildroot}%{_bindir} +install -p -m 755 yaps %{buildroot}%{_bindir} -%clean -rm -rf $RPM_BUILD_ROOT +mkdir -p %{buildroot}%{_mandir}/man1 +install -p -m 644 doc/abc2abc.1 %{buildroot}%{_mandir}/man1 +install -p -m 644 doc/abc2midi.1 %{buildroot}%{_mandir}/man1 +install -p -m 644 doc/mftext.1 %{buildroot}%{_mandir}/man1 +install -p -m 644 doc/midi2abc.1 %{buildroot}%{_mandir}/man1 +install -p -m 644 doc/midicopy.1 %{buildroot}%{_mandir}/man1 +install -p -m 644 doc/midistats.1 %{buildroot}%{_mandir}/man1 +install -p -m 644 doc/yaps.1 %{buildroot}%{_mandir}/man1 %files -%defattr(-,root,root,-) -%doc *.abc VERSION doc/*.txt doc/AUTHORS doc/CHANGES +%license doc/LICENSE +%doc doc/programming VERSION doc/*.txt doc/AUTHORS doc/CHANGES %{_mandir}/man*/* %{_bindir}/* %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 2025.02.16-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Jul 23 2025 Fedora Release Engineering - 2025.02.16-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Apr 24 2025 Stuart Gathman - 2025.02.16-2 +- Include new midistats binary from upstream release + +* Wed Apr 23 2025 Stuart Gathman - 2025.02.16-1 +- New upstream release +- fix compile errors + +* Thu Jan 16 2025 Fedora Release Engineering - 2022.12.09-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Jul 25 2024 Miroslav Suchý - 2022.12.09-7 +- convert license to SPDX + +* Wed Jul 17 2024 Fedora Release Engineering - 2022.12.09-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 2022.12.09-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2022.12.09-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 2022.12.09-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jan 18 2023 Fedora Release Engineering - 2022.12.09-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Dec 13 2022 Stuart Gathman - 2022.12.09-1 +- New upstream release, removes compiled binaries :-{ + +* Tue Dec 06 2022 Peter Fordham - 2022.12.05-8 +- New upstream release, fixes C99 issues + +* Wed Jul 20 2022 Fedora Release Engineering - 2020.06.29-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 2020.06.29-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 2020.06.29-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jan 25 2021 Fedora Release Engineering - 2020.06.29-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jul 31 2020 Fedora Release Engineering - 2020.06.29-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2020.06.29-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 29 2020 Stuart Gathman - 2020.06.29-1 +- New upstream release + +* Tue Jun 02 2020 Stuart Gathman - 2020.05.06-2 +- Patch some warnings and dup globals + +* Mon Jun 01 2020 Stuart Gathman - 2020.05.06-1 +- New upstream release + +* Sun Mar 22 2020 Stuart Gathman - 2020.02.12-1 +- New release 2020-02-12 + +* Sun Nov 12 2017 Stuart Gathman - 2013.04.30-1 +- New release 2013-04-30 + +* Mon Feb 07 2011 Fedora Release Engineering - 20090317-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + * Fri Jul 24 2009 Fedora Release Engineering - 20090317-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild diff --git a/sources b/sources index 1c0735e..66cb2c5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e58ee677884bfc85fd3cd150179966c1 abcMIDI-2009-03-17.zip +SHA512 (abcMIDI-2025.02.16.tar.gz) = 47e6620b9ab8101b7f9b9d22ef550af932f47d349ad90e08fc4e0ca844aafd98785b4e1913bca3115c53b0d1f08a7a1792c2af55ac82fe8983b2e58109fd564d