[packages/portmidi] - new Source URL, updated to 2.0.4 (new soname), epoch 1

qboosh qboosh at pld-linux.org
Sun Sep 22 11:10:59 CEST 2024


commit 2c5d7c6b50aba895b9bf0e02a4df5e44f321b59a
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Sep 22 11:13:58 2024 +0200

    - new Source URL, updated to 2.0.4 (new soname), epoch 1

 portmidi-cmake.patch  | 108 ----------------------------------------
 portmidi-format.patch |  91 ----------------------------------
 portmidi.spec         | 133 +++++++++++++++++++++++++++++---------------------
 3 files changed, 77 insertions(+), 255 deletions(-)
---
diff --git a/portmidi.spec b/portmidi.spec
index fb14a01..69c6092 100644
--- a/portmidi.spec
+++ b/portmidi.spec
@@ -1,30 +1,30 @@
-#
 # TODO: fix build doxygen documentaton
 #
+# Conditional build:
+%bcond_without	apidocs	# API documentation
+%bcond_without	jni	# Java Native Interface library
+
 Summary:	Portable Real-Time MIDI library
 Summary(pl.UTF-8):	Przenośna biblioteka MIDI czasu rzeczywistego
 Name:		portmidi
-Version:	217
-Release:	5
+Version:	2.0.4
+Release:	1
+Epoch:		1
 License:	MIT-like
 Group:		Libraries
-Source0:	http://downloads.sourceforge.net/portmedia/%{version}/%{name}-src-%{version}.zip
-# Source0-md5:	03f46fd3947e2ef4c8c465baaf832241
+#Source0Download: https://github.com/PortMidi/portmidi/releases
+Source0:	https://github.com/PortMidi/portmidi/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5:	cda6c7714fe2ea8d8184226f3a85c923
 Source1:	pmdefaults.desktop
-Patch0:		%{name}-cmake.patch
-Patch1:		%{name}-format.patch
-URL:		http://portmedia.sourceforge.net/
+URL:		https://portmedia.sourceforge.net/
 BuildRequires:	alsa-lib-devel >= 0.9
-BuildRequires:	cmake >= 2.6
-#BuildRequires:	doxygen
-BuildRequires:	jdk >= 1.5
+BuildRequires:	cmake >= 3.21
+%{?with_apidocs:BuildRequires:	doxygen}
+%{?with_jni:BuildRequires:	jdk >= 1.5}
 BuildRequires:	jpackage-utils
-BuildRequires:	rpmbuild(macros) >= 1.600
+BuildRequires:	rpm-build >= 4.6
+BuildRequires:	rpmbuild(macros) >= 1.605
 BuildRequires:	sed >= 4.0
-#BuildRequires:	texlive-format-pdflatex
-#BuildRequires:	texlive-latex-extend
-#BuildRequires:	texlive-xetex
-BuildRequires:	unzip
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -37,9 +37,9 @@ Przenośna biblioteka MIDI czasu rzeczywistego.
 Summary:	Header files for PortMidi library
 Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki PortMidi
 Group:		Development/Libraries
-Requires:	%{name} = %{version}-%{release}
+Requires:	%{name} = %{epoch}:%{version}-%{release}
 Requires:	alsa-lib-devel >= 0.9
-Obsoletes:	portmidi-static
+Obsoletes:	portmidi-static < 131
 
 %description devel
 Header files for PortMidi library.
@@ -47,13 +47,27 @@ Header files for PortMidi library.
 %description devel -l pl.UTF-8
 Pliki nagłówkowe biblioteki PortMidi.
 
+%package apidocs
+Summary:	API documentation for PortMidi library
+Summary(pl.UTF-8):	Dokumentacja API biblioteki PortMidi
+Group:		Documentation
+BuildArch:	noarch
+
+%description apidocs
+API documentation for PortMidi library.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API biblioteki PortMidi.
+
 %package tools
 Summary:	Tools to configure and use portmidi
 Summary(pl.UTF-8):	Narzędzia do konfiguracji i używania portmidi
 Group:		Applications/Multimedia
-Requires:	%{name} = %{version}-%{release}
+Requires:	%{name} = %{epoch}:%{version}-%{release}
+%if %{with jni}
 Requires:	jre >= 1.5
 Requires:	jpackage-utils
+%endif
 
 %description tools
 Tools to configure and use portmidi.
@@ -62,59 +76,55 @@ Tools to configure and use portmidi.
 Narzędzia do konfiguracji i używania portmidi.
 
 %prep
-%setup -q -n %{name}
-%patch0 -p1
-%patch1 -p1
+%setup -q
 
 # Add shebang, lib and class path
-%{__sed} -i -e 's|^java|#!/bin/sh\njava \\\
-	-Djava.library.path=%{_libdir}/%{name}/|' \
-	-e 's|%{_javadir}/|%{_libdir}/%{name}/|' \
+%{__sed} -i -e 's|\.\./\.\./Release:\.\./\.\./Debug:\.\./\.\.|%{_libdir}/%{name}|' \
 	pm_java/pmdefaults/pmdefaults
 
+%{__sed} -i -e 's/^OUTPUT_DIRECTORY .*/OUTPUT_DIRECTORY = html/' Doxyfile
+
 %build
 export JAVA_HOME=%{java_home}
-%cmake \
-	-DCMAKE_CXX_COMPILER_WORKS=1 -DCMAKE_CXX_COMPILER="%{__cc}" \
-	-DCMAKE_CACHEFILE_DIR=%{_builddir}/%{name}/build \
-	-DLIB_INSTALL_DIR=%{_libdir} \
-	-DINCLUDE_INSTALL_DIR=%{_includedir} \
-	-DVERSION=%{version}
-
-%{__make} -j 1
-
-# TODO: fix "undefined refernce" errors
-%if 0
-# Build the doxygen documentation
+%cmake -B build \
+	-DCMAKE_CXX_COMPILER="%{__cc}" \
+	-DCMAKE_CXX_COMPILER_WORKS=1 \
+	%{?with_jni:-DBUILD_JAVA_NATIVE_INTERFACE=ON} \
+	%{?with_jni:-DBUILD_PMDEFAULTS=ON} \
+	-DBUILD_PORTMIDI_TESTS=ON
+
+%{__make} -C build
+
+%if %{with apidocs}
 doxygen
-%{__make} -C latex
 %endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_libdir}/%{name},%{_datadir}/icons/hicolor/128x128/apps,%{_desktopdir}}
 
-%{__make} install \
+%{__make} -C build install \
 	DESTDIR=$RPM_BUILD_ROOT
 
 # Install the test applications
-for app in latency midiclock midithread midithru mm qtest sysex test; do
-	install build/PLD/$app $RPM_BUILD_ROOT%{_libdir}/%{name}
+for app in latency midiclock midithread midithru mm pmlist ; do
+	install build/pm_test/$app $RPM_BUILD_ROOT%{_libdir}/%{name}
 done
 
+%if %{with jni}
 # PLD's jni library location is different
-mv $RPM_BUILD_ROOT%{_libdir}/libpmjni.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-mv $RPM_BUILD_ROOT%{_javadir}/pmdefaults.jar $RPM_BUILD_ROOT%{_libdir}/%{name}
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libpmjni.so* $RPM_BUILD_ROOT%{_libdir}/%{name}
+cp -p pm_java/pmdefaults/pmdefaults.jar $RPM_BUILD_ROOT%{_libdir}/%{name}
+install -d $RPM_BUILD_ROOT%{_bindir}
+install pm_java/pmdefaults/pmdefaults $RPM_BUILD_ROOT%{_bindir}
 
 # pmdefaults icon
-cp -a pm_java/pmdefaults/pmdefaults-icon.png \
+cp -p pm_java/pmdefaults/pmdefaults-icon.png \
 	$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/128x128/apps
 
 # desktop file
-install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
-
-# remove duplicate library
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libportmidi_s.so
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -125,29 +135,40 @@ rm -rf $RPM_BUILD_ROOT
 %files
 %defattr(644,root,root,755)
 %doc CHANGELOG.txt README.txt license.txt pm_linux/README_LINUX.txt
-%attr(755,root,root) %{_libdir}/libportmidi.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libportmidi.so.0
+%attr(755,root,root) %{_libdir}/libportmidi.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libportmidi.so.2
 
 %files devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libportmidi.so
+%{_includedir}/pmutil.h
 %{_includedir}/portmidi.h
 %{_includedir}/porttime.h
+%{_pkgconfigdir}/portmidi.pc
+%{_libdir}/cmake/PortMidi
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%doc html/docs/*
+%endif
 
 %files tools
 %defattr(644,root,root,755)
-%doc pm_java/pmdefaults/README.txt pm_cl/*
-%attr(755,root,root) %{_bindir}/pmdefaults
+%doc pm_java/pmdefaults/README.txt
 %dir %{_libdir}/portmidi
 %attr(755,root,root) %{_libdir}/portmidi/latency
-%attr(755,root,root) %{_libdir}/portmidi/libpmjni.so
 %attr(755,root,root) %{_libdir}/portmidi/midiclock
 %attr(755,root,root) %{_libdir}/portmidi/midithread
 %attr(755,root,root) %{_libdir}/portmidi/midithru
 %attr(755,root,root) %{_libdir}/portmidi/mm
+%attr(755,root,root) %{_libdir}/portmidi/pmlist
+%if %{with jni}
+%attr(755,root,root) %{_bindir}/pmdefaults
+%attr(755,root,root) %{_libdir}/portmidi/libpmjni.so.*.*.*
+%attr(755,root,root) %{_libdir}/portmidi/libpmjni.so.2
+%attr(755,root,root) %{_libdir}/portmidi/libpmjni.so
 %attr(755,root,root) %{_libdir}/portmidi/pmdefaults.jar
-%attr(755,root,root) %{_libdir}/portmidi/qtest
-%attr(755,root,root) %{_libdir}/portmidi/sysex
-%attr(755,root,root) %{_libdir}/portmidi/test
 %{_desktopdir}/pmdefaults.desktop
 %{_iconsdir}/hicolor/128x128/apps/pmdefaults-icon.png
+%endif
diff --git a/portmidi-cmake.patch b/portmidi-cmake.patch
deleted file mode 100644
index 06d1e11..0000000
--- a/portmidi-cmake.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-diff -rupN portmidi.old/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt
---- portmidi.old/pm_common/CMakeLists.txt	2010-09-20 15:57:48.000000000 -0400
-+++ portmidi/pm_common/CMakeLists.txt	2010-10-09 01:14:53.000000000 -0400
-@@ -120,8 +120,8 @@ set_target_properties(pmjni PROPERTIES E
- # install the libraries (Linux and Mac OS X command line)
- if(UNIX)
-   INSTALL(TARGETS portmidi-static pmjni
--    LIBRARY DESTINATION /usr/local/lib
--    ARCHIVE DESTINATION /usr/local/lib)
-+    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
-+    ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
- # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
- #  INSTALL(FILES portmidi.h ../porttime/porttime.h
- #    DESTINATION /usr/local/include)
-diff -rupN portmidi.old/pm_dylib/CMakeLists.txt portmidi/pm_dylib/CMakeLists.txt
---- portmidi.old/pm_dylib/CMakeLists.txt	2009-11-20 00:41:09.000000000 -0500
-+++ portmidi/pm_dylib/CMakeLists.txt	2010-10-09 01:17:32.000000000 -0400
-@@ -59,7 +59,7 @@ if(UNIX)
- 
-     set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework")
-     set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
--    set(INSTALL_NAME_DIR "/usr/local/lib")
-+    set(INSTALL_NAME_DIR ${LIB_INSTALL_DIR})
-     message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
-   else(APPLE)
-     # LINUX settings...
-@@ -75,11 +75,7 @@ if(UNIX)
-     # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
-     # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
-     # because JAVA_INCLUDE_PATH2 is pretty obscure)
--    set(JAVA_INCLUDE_PATH  ${JAVA_INCLUDE_PATH-UNKNOWN}
--        CACHE STRING "where to find Java SDK include directory")
--    set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
--    # libjvm.so is found relative to JAVA_INCLUDE_PATH:
--    set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
-+    set(JAVAVM_LIB ${JAVA_JVM_LIBRARY})
- 
-     set(LINUXSRC pmlinuxalsa pmlinux finddefault)
-     prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
-@@ -114,14 +110,14 @@ prepend_path(SHARED_PATHS ../pm_common/ 
- list(APPEND LIBSRC ${SHARED_PATHS})
- 
- add_library(portmidi-dynamic SHARED ${LIBSRC})
--set_target_properties(portmidi-dynamic PROPERTIES OUTPUT_NAME "portmidi")
-+set_target_properties(portmidi-dynamic PROPERTIES LINK_FLAGS "-L${CMAKE_CACHEFILE_DIR}/Release" SOVERSION 0 VERSION 0.${VERSION} OUTPUT_NAME "portmidi")
- target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS})
- 
- # install the libraries (Linux and Mac OS X command line)
- if(UNIX)
-   INSTALL(TARGETS portmidi-dynamic
--    LIBRARY DESTINATION /usr/local/lib
--    ARCHIVE DESTINATION /usr/local/lib)
-+    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
-+    ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
-   INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h
--    DESTINATION /usr/local/include)
-+    DESTINATION ${INCLUDE_INSTALL_DIR})
- endif(UNIX)
-diff -rupN portmidi.old/pm_java/CMakeLists.txt portmidi/pm_java/CMakeLists.txt
---- portmidi.old/pm_java/CMakeLists.txt	2009-11-04 10:20:44.000000000 -0500
-+++ portmidi/pm_java/CMakeLists.txt	2010-10-09 01:18:10.000000000 -0400
-@@ -41,7 +41,7 @@ if(UNIX)
-     INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
-       DESTINATION /usr/share/java)
-     INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults
--      DESTINATION /usr/local/bin)
-+      DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
-   endif(APPLE)
- endif(UNIX)
- # In windows, use pm_java/make.bat
-diff -rupN portmidi.old/pm_test/CMakeLists.txt portmidi/pm_test/CMakeLists.txt
---- portmidi.old/pm_test/CMakeLists.txt	2010-09-20 15:57:48.000000000 -0400
-+++ portmidi/pm_test/CMakeLists.txt	2010-10-09 02:36:31.000000000 -0400
-@@ -12,7 +12,7 @@ endif(WIN32)
- 
- macro(make_a_test name)
-   add_executable(${name} ${name}.c)
--  target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS})
-+  target_link_libraries(${name} portmidi-dynamic)
-   add_dependencies(${name} portmidi-static)
- endmacro(make_a_test)
- 
---- portmidi/pm_java/CMakeLists.txt.orig	2013-11-08 22:49:02.049676834 +0100
-+++ portmidi/pm_java/CMakeLists.txt	2013-11-08 22:54:44.099662483 +0100
-@@ -16,12 +16,12 @@
-         COMMAND javac -classpath . pmdefaults/PmDefaultsFrame.java
- 	MAIN_DEPENDENCY pmdefaults/PmDefaultsFrame.java
- 	DEPENDS pmdefaults/PmDefaults.java
--	WORKING_DIRECTORY pm_java)
-+	WORKING_DIRECTORY .)
-     add_custom_command(OUTPUT pmdefaults/PmDefaults.class
-         COMMAND javac -classpath . pmdefaults/PmDefaults.java
- 	MAIN_DEPENDENCY pmdefaults/PmDefaults.java
- 	DEPENDS pmdefaults/PmDefaultsFrame.java
--	WORKING_DIRECTORY pm_java)
-+	WORKING_DIRECTORY .)
-     add_custom_command(OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
-         COMMAND	cp pmdefaults/portmusic_logo.png .
-         COMMAND	jar cmf pmdefaults/manifest.txt pmdefaults.jar
-@@ -32,7 +32,7 @@
- 	COMMAND rm portmusic_logo.png
- 	MAIN_DEPENDENCY pmdefaults/PmDefaults.class
- 	DEPENDS ${PMDEFAULTS_ALL_CLASSES}
--	WORKING_DIRECTORY pm_java)
-+	WORKING_DIRECTORY .)
-     add_custom_target(pmdefaults_target ALL 
-         DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar)
-     # message(STATUS "add_custom_target: pmdefaults.jar")
diff --git a/portmidi-format.patch b/portmidi-format.patch
deleted file mode 100644
index e21f0b1..0000000
--- a/portmidi-format.patch
+++ /dev/null
@@ -1,91 +0,0 @@
---- portmidi/pm_test/latency.c.orig	2009-09-16 18:54:04.000000000 +0200
-+++ portmidi/pm_test/latency.c	2013-11-08 22:37:43.746372124 +0100
-@@ -280,7 +280,7 @@
- {
-     char line[STRING_MAX];
-     int n = 0, i;
--    printf(prompt);
-+    fputs(prompt, stdout);
-     while (n != 1) {
-         n = scanf("%d", &i);
-         fgets(line, STRING_MAX, stdin);
---- portmidi/pm_test/midiclock.c.orig	2009-10-04 21:50:44.000000000 +0200
-+++ portmidi/pm_test/midiclock.c	2013-11-08 22:43:24.679690984 +0100
-@@ -167,7 +167,7 @@
- {
-     char line[STRING_MAX];
-     int n = 0, i;
--    printf(prompt);
-+    fputs(prompt, stdout);
-     while (n != 1) {
-         n = scanf("%d", &i);
-         fgets(line, STRING_MAX, stdin);
-@@ -256,7 +256,7 @@
-     err = Pm_OpenOutput(&midi, outp, DRIVER_INFO, OUTPUT_BUFFER_SIZE, 
-                         TIME_PROC, TIME_INFO, LATENCY);
-     if (err) {
--        printf(Pm_GetErrorText(err));
-+        fputs(Pm_GetErrorText(err), stdout);
-         goto error_exit_no_device;
-     }
-     active = true;
---- portmidi/pm_test/mm.c.orig	2010-10-05 20:49:09.000000000 +0200
-+++ portmidi/pm_test/mm.c	2013-11-08 22:47:25.009680022 +0100
-@@ -119,7 +119,7 @@
- {
-     char line[STRING_MAX];
-     int n = 0, i;
--    printf(prompt);
-+    fputs(prompt, stdout);
-     while (n != 1) {
-         n = scanf("%d", &i);
-         fgets(line, STRING_MAX, stdin);
-@@ -136,7 +136,7 @@
-     if (!active) return;
-     while ((count = Pm_Read(midi_in, &event, 1))) {
-         if (count == 1) output(event.message);
--        else            printf(Pm_GetErrorText(count));
-+        else            fputs(Pm_GetErrorText(count), stdout);
-     }
- }
- 
-@@ -168,7 +168,7 @@
-     inp = get_number("Type input device number: ");
-     err = Pm_OpenInput(&midi_in, inp, NULL, 512, NULL, NULL);
-     if (err) {
--        printf(Pm_GetErrorText(err));
-+        fputs(Pm_GetErrorText(err), stdout);
-         Pt_Stop();
-         mmexit(1);
-     }
-@@ -484,7 +484,7 @@
-         "gs", "a", "bf", "b"    };
-     /* note octave correction below */
-     sprintf(result, "%s%d", ptos[p % 12], (p / 12) - 1);
--    printf(result);
-+    fputs(result, stdout);
-     return strlen(result);
- }
- 
---- portmidi/pm_test/sysex.c.orig	2010-09-20 21:57:48.000000000 +0200
-+++ portmidi/pm_test/sysex.c	2013-11-08 22:48:00.546346082 +0100
-@@ -39,7 +39,7 @@
- {
-     char line[STRING_MAX];
-     int n = 0, i;
--    printf(prompt);
-+    fputs(prompt, stdout);
-     while (n != 1) {
-         n = scanf("%d", &i);
-         fgets(line, STRING_MAX, stdin);
---- portmidi/pm_test/test.c.orig	2009-09-16 18:54:04.000000000 +0200
-+++ portmidi/pm_test/test.c	2013-11-08 22:48:28.869678279 +0100
-@@ -37,7 +37,7 @@
- {
-     char line[STRING_MAX];
-     int n = 0, i;
--    printf(prompt);
-+    fputs(prompt, stdout);
-     while (n != 1) {
-         n = scanf("%d", &i);
-         fgets(line, STRING_MAX, stdin);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/portmidi.git/commitdiff/2c5d7c6b50aba895b9bf0e02a4df5e44f321b59a



More information about the pld-cvs-commit mailing list