Merge pull request #160614 from emilytrau/portmidi-2.0.2

authored by Sandro and committed by GitHub 43b9ce4d 157b6703

+23 -102
+11 -50
pkgs/development/libraries/portmidi/default.nix
··· 1 - { lib, stdenv, fetchurl, unzip, cmake, /*jdk,*/ alsa-lib, Carbon, CoreAudio, CoreFoundation, CoreMIDI, CoreServices }: 1 + { lib, stdenv, fetchFromGitHub, unzip, cmake, alsa-lib, Carbon, CoreAudio, CoreFoundation, CoreMIDI, CoreServices }: 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "portmidi"; 5 - version = "234"; 5 + version = "2.0.2"; 6 6 7 - src = fetchurl { 8 - url = "mirror://sourceforge/portmedia/portmedia-code-r${version}.zip"; 9 - sha256 = "1g7i8hgarihycadbgy2f7lifiy5cbc0mcrcazmwnmbbh1bqx6dyp"; 7 + src = fetchFromGitHub { 8 + owner = pname; 9 + repo = pname; 10 + rev = "v${version}"; 11 + sha256 = "zOmzJ2MLGhGXiN0XjcmnnUrk/uqxP9IaZbqCG5XchC4="; 10 12 }; 11 13 12 - prePatch = '' 13 - cd portmidi/trunk 14 - ''; 15 - 16 - cmakeFlags = let 17 - #base = "${jdk}/jre/lib/${jdk.architecture}"; 18 - in [ 19 - "-DPORTMIDI_ENABLE_JAVA=0" 20 - /* TODO: Fix Java support. 21 - "-DJAVA_AWT_LIBRARY=${base}/libawt.so" 22 - "-DJAVA_JVM_LIBRARY=${base}/server/libjvm.so" 23 - */ 14 + cmakeFlags = [ 24 15 "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=Release" 25 16 "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=Release" 26 17 "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=Release" 27 - ] ++ lib.optionals stdenv.isDarwin [ 28 - "-DCMAKE_OSX_ARCHITECTURES=${if stdenv.isAarch64 then "arm64" else "x86_64"}" 29 - "-DCOREAUDIO_LIB=${CoreAudio}" 30 - "-DCOREFOUNDATION_LIB=${CoreFoundation}" 31 - "-DCOREMIDI_LIB=${CoreMIDI}" 32 - "-DCORESERVICES_LIB=${CoreServices}" 33 - ]; 34 - 35 - NIX_LDFLAGS = lib.optionalString stdenv.isDarwin [ 36 - "-framework CoreAudio" 37 - "-framework CoreFoundation" 38 - "-framework CoreMIDI" 39 - "-framework CoreServices" 40 18 ]; 41 19 42 20 patches = [ 43 - # XXX: This is to deactivate Java support. 44 - (fetchurl { 45 - url = "https://raw.github.com/Rogentos/argent-gentoo/master/media-libs/portmidi/files/portmidi-217-cmake-libdir-java-opts.patch"; 46 - sha256 = "1jbjwan61iqq9fqfpq2a4fd30k3clg7a6j0gfgsw87r8c76kqf6h"; 47 - }) 48 - ] ++ lib.optionals stdenv.isDarwin [ 49 - # Remove hardcoded variables so we can set them properly 50 - ./remove-darwin-variables.diff 21 + # Add missing header include 22 + ./missing-header.diff 51 23 ]; 52 - 53 - postPatch = '' 54 - sed -i -e 's|/usr/local/|'"$out"'|' -e 's|/usr/share/|'"$out"'/share/|' \ 55 - pm_common/CMakeLists.txt pm_dylib/CMakeLists.txt pm_java/CMakeLists.txt 56 - sed -i \ 57 - -e 's|-classpath .|-classpath '"$(pwd)"'/pm_java|' \ 58 - -e 's|pmdefaults/|'"$(pwd)"'/pm_java/&|g' \ 59 - -e 's|jportmidi/|'"$(pwd)"'/pm_java/&|g' \ 60 - -e 's/WORKING_DIRECTORY pm_java//' \ 61 - pm_java/CMakeLists.txt 62 - ''; 63 24 64 25 postInstall = let ext = stdenv.hostPlatform.extensions.sharedLibrary; in '' 65 26 ln -s libportmidi${ext} "$out/lib/libporttime${ext}" ··· 75 36 hardeningDisable = [ "format" ]; 76 37 77 38 meta = with lib; { 78 - homepage = "http://portmedia.sourceforge.net/portmidi/"; 39 + homepage = "https://github.com/PortMidi/portmidi"; 79 40 description = "Platform independent library for MIDI I/O"; 80 41 license = licenses.mit; 81 42 maintainers = with maintainers; [ emilytrau ];
+12
pkgs/development/libraries/portmidi/missing-header.diff
··· 1 + diff --git a/porttime/ptmacosx_mach.c b/porttime/ptmacosx_mach.c 2 + index 10c3554..712a974 100755 3 + --- a/porttime/ptmacosx_mach.c 4 + +++ b/porttime/ptmacosx_mach.c 5 + @@ -12,6 +12,7 @@ 6 + 7 + #include "porttime.h" 8 + #include "sys/time.h" 9 + +#include "sys/qos.h" 10 + #include "pthread.h" 11 + 12 + #ifndef NSEC_PER_MSEC
-52
pkgs/development/libraries/portmidi/remove-darwin-variables.diff
··· 1 - diff --git a/CMakeLists.txt b/CMakeLists.txt 2 - index 4919b78..758eccb 100644 3 - --- a/CMakeLists.txt 4 - +++ b/CMakeLists.txt 5 - @@ -36,8 +36,6 @@ set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused") 6 - set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused") 7 - set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused") 8 - 9 - -set(CMAKE_OSX_ARCHITECTURES i386 ppc x86_64 CACHE STRING "change to needed architecture for a smaller library" FORCE) 10 - - 11 - PROJECT(portmidi) 12 - 13 - if(UNIX) 14 - diff --git a/pm_common/CMakeLists.txt b/pm_common/CMakeLists.txt 15 - index cbeeade..f765430 100644 16 - --- a/pm_common/CMakeLists.txt 17 - +++ b/pm_common/CMakeLists.txt 18 - @@ -22,7 +22,7 @@ else(APPLE OR WIN32) 19 - endif(APPLE OR WIN32) 20 - 21 - if(APPLE) 22 - - set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk CACHE 23 - + set(CMAKE_OSX_SYSROOT / CACHE 24 - PATH "-isysroot parameter for compiler") 25 - set(CMAKE_C_FLAGS "-mmacosx-version-min=10.6" CACHE 26 - STRING "needed in conjunction with CMAKE_OSX_SYSROOT" FORCE) 27 - @@ -54,10 +54,6 @@ if(UNIX) 28 - 29 - include_directories(${CMAKE_OSX_SYSROOT}/Developer/Headers/FlatCarbon) 30 - set(FRAMEWORK_PATH ${CMAKE_OSX_SYSROOT}/System/Library/Frameworks) 31 - - set(COREAUDIO_LIB "${FRAMEWORK_PATH}/CoreAudio.framework") 32 - - set(COREFOUNDATION_LIB "${FRAMEWORK_PATH}/CoreFoundation.framework") 33 - - set(COREMIDI_LIB "${FRAMEWORK_PATH}/CoreMIDI.framework") 34 - - set(CORESERVICES_LIB "${FRAMEWORK_PATH}/CoreServices.framework") 35 - set(PM_NEEDED_LIBS ${COREAUDIO_LIB} ${COREFOUNDATION_LIB} 36 - ${COREMIDI_LIB} ${CORESERVICES_LIB} 37 - CACHE INTERNAL "") 38 - diff --git a/pm_dylib/CMakeLists.txt b/pm_dylib/CMakeLists.txt 39 - index f693dd6..1dc5cd6 100644 40 - --- a/pm_dylib/CMakeLists.txt 41 - +++ b/pm_dylib/CMakeLists.txt 42 - @@ -49,10 +49,6 @@ if(UNIX) 43 - 44 - include_directories(${CMAKE_OSX_SYSROOT}/Developer/Headers/FlatCarbon) 45 - set(FRAMEWORK_PATH ${CMAKE_OSX_SYSROOT}/System/Library/Frameworks) 46 - - set(COREAUDIO_LIB "${FRAMEWORK_PATH}/CoreAudio.framework") 47 - - set(COREFOUNDATION_LIB "${FRAMEWORK_PATH}/CoreFoundation.framework") 48 - - set(COREMIDI_LIB "${FRAMEWORK_PATH}/CoreMIDI.framework") 49 - - set(CORESERVICES_LIB "${FRAMEWORK_PATH}/CoreServices.framework") 50 - set(PM_NEEDED_LIBS ${COREAUDIO_LIB} ${COREFOUNDATION_LIB} 51 - ${COREMIDI_LIB} ${CORESERVICES_LIB} 52 - CACHE INTERNAL "")