rpms/portmidi/F-12 pmdefaults.desktop, NONE, 1.1 portmidi-cmake.patch, NONE, 1.1 .cvsignore, 1.2, 1.3 portmidi.spec, 1.3, 1.4 sources, 1.2, 1.3 portmidi-shared.patch, 1.1, NONE

Orcan Ogetbil oget at fedoraproject.org
Sat Nov 28 02:20:12 UTC 2009


Author: oget

Update of /cvs/pkgs/rpms/portmidi/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20602

Modified Files:
	.cvsignore portmidi.spec sources 
Added Files:
	pmdefaults.desktop portmidi-cmake.patch 
Removed Files:
	portmidi-shared.patch 
Log Message:
* Fri Nov 27 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com> 184-1
- Update to 184. Build system uses cmake now.



--- NEW FILE pmdefaults.desktop ---
[Desktop Entry]
Name=PmDefaults
GenericName=PortMidi Settings
Comment=Set default input and output devices for PortMidi
Exec=pmdefaults
Icon=pmdefaults-icon
Terminal=false
Type=Application
Categories=Audio;AudioVideo;Midi;

portmidi-cmake.patch:
 CMakeLists.txt           |    1 +
 pm_common/CMakeLists.txt |   35 ++++++++++++++++-------------------
 pm_java/CMakeLists.txt   |    4 ++--
 pm_test/CMakeLists.txt   |    3 ++-
 4 files changed, 21 insertions(+), 22 deletions(-)

--- NEW FILE portmidi-cmake.patch ---
diff -rupN portmidi.old/CMakeLists.txt portmidi/CMakeLists.txt
--- portmidi.old/CMakeLists.txt	2009-10-19 15:36:57.000000000 -0400
+++ portmidi/CMakeLists.txt	2009-11-27 20:20:22.000000000 -0500
@@ -8,6 +8,7 @@ if(UNIX)
   # allow user to set Release or Debug
   set(CMAKE_BUILD_TYPE Release CACHE STRING 
       "Semicolon-separate list of supported configuration types")
+  set(PROJECT_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)	
   # set default directories but don't override cached values...
   set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
       CACHE STRING "libraries go here")
diff -rupN portmidi.old/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt
--- portmidi.old/pm_common/CMakeLists.txt	2009-10-19 14:41:21.000000000 -0400
+++ portmidi/pm_common/CMakeLists.txt	2009-11-27 20:33:36.000000000 -0500
@@ -65,15 +65,12 @@ 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})
-    list(APPEND LIBSRC ../porttime/ptlinux)
+    set(LIBPTSRC ../porttime/ptlinux)
 
     set(PM_NEEDED_LIBS pthread asound)
   endif(APPLE)
@@ -98,29 +95,29 @@ set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${J
 # this completes the list of library sources by adding shared code
 list(APPEND LIBSRC pmutil portmidi)
 
-# now add the shared files to make the complete list of library sources
-add_library(portmidi-static ${LIBSRC})
-set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
-target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
+add_library(porttime-dynamic SHARED ${LIBPTSRC})
+set_target_properties(porttime-dynamic PROPERTIES SOVERSION 0 VERSION 0.${VERSION} OUTPUT_NAME "porttime")
+target_link_libraries(porttime-dynamic pthread)
 
 add_library(portmidi-dynamic SHARED ${LIBSRC})
-set_target_properties(portmidi-dynamic PROPERTIES OUTPUT_NAME "portmidi")
-target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS})
-
+add_dependencies(portmidi-dynamic porttime-dynamic)
+set_target_properties(portmidi-dynamic PROPERTIES LINK_FLAGS "-L../build/Release" SOVERSION 0 VERSION 0.${VERSION} OUTPUT_NAME "portmidi")
+target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS} porttime)
 
 # define the jni library
 include_directories(${JAVA_INCLUDE_PATHS})
 
 set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
 add_library(pmjni SHARED ${JNISRC})
-target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
-set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
+add_dependencies(pmjni porttime-dynamic)
+target_link_libraries(pmjni ${JNI_EXTRA_LIBS} porttime)
+set_target_properties(pmjni PROPERTIES LINK_FLAGS "-L../build/Release" EXECUTABLE_EXTENSION "jnilib")
 
 # install the libraries (Linux only)
 if(UNIX AND NOT APPLE)
-  INSTALL(TARGETS portmidi-static portmidi-dynamic pmjni
-    LIBRARY DESTINATION /usr/local/lib
-    ARCHIVE DESTINATION /usr/local/lib)
+  INSTALL(TARGETS porttime-dynamic portmidi-dynamic pmjni
+    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+    ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
   INSTALL(FILES portmidi.h ../porttime/porttime.h
-    DESTINATION /usr/local/include)
+    DESTINATION ${INCLUDE_INSTALL_DIR})
 endif(UNIX AND NOT APPLE)
diff -rupN portmidi.old/pm_java/CMakeLists.txt portmidi/pm_java/CMakeLists.txt
--- portmidi.old/pm_java/CMakeLists.txt	2009-10-14 14:04:06.000000000 -0400
+++ portmidi/pm_java/CMakeLists.txt	2009-11-27 20:20:22.000000000 -0500
@@ -39,9 +39,9 @@ if(UNIX)
 
     # install the libraries (Linux only)
     INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar
-      DESTINATION /usr/share/java)
+      DESTINATION ${SHARE_INSTALL_PREFIX}/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	2009-10-19 14:41:21.000000000 -0400
+++ portmidi/pm_test/CMakeLists.txt	2009-11-27 20:20:22.000000000 -0500
@@ -8,7 +8,8 @@ endif(APPLE)
 
 macro(make_a_test name)
   add_executable(${name} ${name}.c)
-  target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS})
+  set_target_properties(${name} PROPERTIES LINK_FLAGS "-L${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
+  target_link_libraries(${name} portmidi-dynamic ${PM_NEEDED_LIBS})
 endmacro(make_a_test)
 
 make_a_test(test)


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/portmidi/F-12/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- .cvsignore	28 Jan 2009 06:31:52 -0000	1.2
+++ .cvsignore	28 Nov 2009 02:20:12 -0000	1.3
@@ -1 +1 @@
-portmidi-src-131.zip
+portmidi-src-184.zip


Index: portmidi.spec
===================================================================
RCS file: /cvs/pkgs/rpms/portmidi/F-12/portmidi.spec,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- portmidi.spec	26 Jul 2009 19:12:37 -0000	1.3
+++ portmidi.spec	28 Nov 2009 02:20:12 -0000	1.4
@@ -1,21 +1,32 @@
+%global with_gcj %{!?_without_gcj:1}%{?_without_gcj:0}
 Summary:        Real-time Midi I/O Library
 Name:           portmidi
-Version:        131
-Release:        4%{?dist}
+Version:        184
+Release:        1%{?dist}
 License:        MIT
 Group:          System Environment/Libraries
 URL:            http://portmedia.sourceforge.net/
 Source0:        http://downloads.sourceforge.net/portmedia/%{name}-src-%{version}.zip
-# For building shared libraries:
-Patch0:         portmidi-shared.patch
+Source1:        pmdefaults.desktop
+# Build fixes:
+Patch0:         portmidi-cmake.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires:  alsa-lib-devel doxygen tex(latex)
+BuildRequires:  alsa-lib-devel
+BuildRequires:  cmake
+BuildRequires:  desktop-file-utils
+BuildRequires:  java-devel >= 1.5
+BuildRequires:  jpackage-utils
+BuildRequires:  doxygen
+BuildRequires:  tex(latex)
+BuildRequires:    java-gcj-compat-devel >= 1.0.31
+Requires(post):   java-gcj-compat >= 1.0.31
+Requires(postun): java-gcj-compat >= 1.0.31
 
 %description
 PortMedia is a set of simple clean APIs and cross-platform library
 implementations for music and other media. PortMidi subproject provides a
 real-time MIDI input/output library. This package contains the PortMidi
-libraries and some test applications.
+libraries.
 
 %package devel
 Summary:        Headers for developing programs that will use %{name}
@@ -28,28 +39,52 @@ implementations for music and other medi
 real-time MIDI input/output library. This package contains the header files
 and the documentation of PortMidi libraries.
 
+%package tools
+Summary:        Tools to configure and use %{name}
+Group:          Applications/Multimedia
+Requires:       hicolor-icon-theme
+Requires:       java >= 1.5
+Requires:       jpackage-utils
+Requires:       %{name} = %{version}-%{release}
+
+%description tools
+PortMedia is a set of simple clean APIs and cross-platform library
+implementations for music and other media. PortMidi subproject provides a
+real-time MIDI input/output library. This package contains the PortMidi
+configuration utility "pmdefaults" and some test applications.
 
 %prep
 %setup -q -n %{name}
-%patch0 -p1
+%patch0 -p1 -b .buildfix
+
+# ewwww... binaries
+rm -f portmidi_cdt.zip */*.exe */*/*.exe
 
-# Fix permissions and encoding issues:
+# Fix permissons and encoding issues:
 find . -name "*.c" -exec chmod -x {} \;
 find . -name "*.h" -exec chmod -x {} \;
-for i in *.txt */*.txt ; do
+for i in *.txt */*.txt */*/*.txt ; do
+   chmod -x $i
    sed 's|\r||' $i > $i.tmp
    touch -r $i $i.tmp
    mv -f $i.tmp $i
 done
 
-# Preserve timestamps:
-sed -i 's|\(INSTALL = install\)|\1 -p|' pm_linux/Makefile
+# Fedora's jni library location is different
+sed -i 's|loadLibrary.*|load("%{_libdir}/%{name}/libpmjni.so");|' \
+   pm_java/jportmidi/JPortMidiApi.java
+
+# Add shebang, lib and class path
+sed -i -e 's|^java|#!/bin/sh\njava \\\
+   -Djava.library.path=%{_libdir}/%{name}/|' \
+   -e 's|/usr/share/java/|%{_libdir}/%{name}/|' \
+   pm_java/pmdefaults/pmdefaults
+
 
 %build
-# Parallel make not supported
-make -f pm_linux/Makefile \
-     CFLAGS="%{optflags} -fPIC" \
-     VERSION=".%{version}" 
+export JAVA_HOME=%{java_home}
+%cmake -DVERSION=%{version} .
+make %{?_smp_flags}
 
 # Build the doxygen documentation:
 doxygen
@@ -57,22 +92,43 @@ pushd latex
    make %{?_smp_flags}
 popd
 
+
 %install
 rm -rf %{buildroot}
-# Install the libraries and headers:
-make -f pm_linux/Makefile install \
-     DESTDIR=%{buildroot} \
-     LIBDIR=%{_libdir} \
-     INCLUDEDIR=%{_includedir}
-
-install -pm 644 pm_common/pmutil.h %{buildroot}%{_includedir}
+make install DESTDIR=%{buildroot}
 
 # Install the test applications:
 install -d %{buildroot}%{_libdir}/%{name}
-for app in latency midithread midithru mm qtest sysex test; do
-   install -m 0755 pm_test/$app %{buildroot}%{_libdir}/%{name}
+for app in latency midiclock midithread midithru mm sysex test; do
+   install -m 0755 build/Release/$app %{buildroot}%{_libdir}/%{name}/
 done
 
+# Fedora's jni library location is different
+mv %{buildroot}%{_libdir}/libpmjni.so \
+   %{buildroot}%{_libdir}/%{name}/
+mv %{buildroot}%{_javadir}/pmdefaults.jar \
+   %{buildroot}%{_libdir}/%{name}/
+
+# pmdefaults icon
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/
+install -pm 644 pm_java/pmdefaults/pmdefaults-icon.png \
+   %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/
+
+# desktop file
+mkdir -p %{buildroot}%{_desktopdir}/
+desktop-file-install \
+   --dir=${RPM_BUILD_ROOT}%{_desktopdir} \
+   %{SOURCE1}
+
+# Why don't they install this header file?
+install -pm 644 pm_common/pmutil.h %{buildroot}%{_includedir}/
+
+# AOT bits
+%if %{with_gcj}
+   %{_bindir}/aot-compile-rpm
+%endif
+
+
 %clean
 rm -rf %{buildroot}
 
@@ -80,20 +136,50 @@ rm -rf %{buildroot}
 
 %postun -p /sbin/ldconfig
 
+%post tools
+%if %{with_gcj}
+   if [ -x %{_bindir}/rebuild-gcj-db ] 
+      then
+      %{_bindir}/rebuild-gcj-db
+   fi
+%endif
+
+%postun tools
+%if %{with_gcj}
+   if [ -x %{_bindir}/rebuild-gcj-db ] 
+      then
+      %{_bindir}/rebuild-gcj-db
+   fi
+%endif
+
 %files
 %defattr(-,root,root,-)
 %doc CHANGELOG.txt license.txt
-%{_libdir}/*.so.*
-%{_libdir}/%{name}
+%{_libdir}/lib*.so.*
+
+%files tools
+%defattr(-,root,root,-)
+%doc pm_java/pmdefaults/README.txt
+%{_libdir}/%{name}/
+%{_bindir}/pmdefaults
+%{_datadir}/icons/hicolor/128x128/apps/pmdefaults-icon.png
+%{_desktopdir}/pmdefaults.desktop
+%if %{with_gcj}
+%{_libdir}/gcj/%{name}/
+%endif
+
 
 %files devel
 %defattr(-,root,root,-)
-%doc CHANGELOG.txt license.txt README.txt pm_linux/README_LINUX.txt
+%doc README.txt
 %doc html latex/*.pdf
 %{_includedir}/*
-%{_libdir}/*.so
+%{_libdir}/lib*.so
 
 %changelog
+* Fri Nov 27 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com> 184-1
+- Update to 184. Build system uses cmake now.
+
 * Sun Jul 26 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 131-4
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/portmidi/F-12/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- sources	28 Jan 2009 06:31:53 -0000	1.2
+++ sources	28 Nov 2009 02:20:12 -0000	1.3
@@ -1 +1 @@
-1715bb3d9f63c6b259720709ef43b534  portmidi-src-131.zip
+6d242a5cfe802cace10af733c185d1b6  portmidi-src-184.zip


--- portmidi-shared.patch DELETED ---




More information about the fedora-extras-commits mailing list