From 211b645d47d18a3bd307c6057a16490381fb4657 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Thu, 30 Nov 2023 10:58:45 -0300 Subject: libsForQt5.libopenshot-audio: refactor - finalAttrs design pattern - strictDeps --- .../video/openshot-qt/libopenshot-audio.nix | 75 --------------------- .../0001-undef-fpret-on-aarch64-darwin.patch | 13 ++++ .../openshot-qt/libopenshot-audio/default.nix | 77 ++++++++++++++++++++++ .../undef-fpret-on-aarch64-darwin.patch | 13 ---- pkgs/top-level/qt5-packages.nix | 2 +- 5 files changed, 91 insertions(+), 89 deletions(-) delete mode 100644 pkgs/applications/video/openshot-qt/libopenshot-audio.nix create mode 100644 pkgs/applications/video/openshot-qt/libopenshot-audio/0001-undef-fpret-on-aarch64-darwin.patch create mode 100644 pkgs/applications/video/openshot-qt/libopenshot-audio/default.nix delete mode 100644 pkgs/applications/video/openshot-qt/undef-fpret-on-aarch64-darwin.patch diff --git a/pkgs/applications/video/openshot-qt/libopenshot-audio.nix b/pkgs/applications/video/openshot-qt/libopenshot-audio.nix deleted file mode 100644 index 5526c8b417350..0000000000000 --- a/pkgs/applications/video/openshot-qt/libopenshot-audio.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, alsa-lib -, cmake -, doxygen -, libX11 -, libXcursor -, libXext -, libXft -, libXinerama -, libXrandr -, pkg-config -, zlib -, Accelerate -, AGL -, Cocoa -, Foundation -}: - -stdenv.mkDerivation rec { - pname = "libopenshot-audio"; - version = "0.3.2"; - - src = fetchFromGitHub { - owner = "OpenShot"; - repo = "libopenshot-audio"; - rev = "v${version}"; - sha256 = "sha256-PLpB9sy9xehipN5S9okCHm1mPm5MaZMVaFqCBvFUiTw="; - }; - - patches = [ - # https://forum.juce.com/t/juce-and-macos-11-arm/40285/24 - ./undef-fpret-on-aarch64-darwin.patch - ]; - - nativeBuildInputs = [ - cmake - doxygen - pkg-config - ]; - - buildInputs = lib.optionals stdenv.isLinux [ - alsa-lib - ] ++ (if stdenv.isDarwin then [ - Accelerate - AGL - Cocoa - Foundation - zlib - ] else [ - libX11 - libXcursor - libXext - libXft - libXinerama - libXrandr - ]); - - doCheck = false; - - meta = with lib; { - homepage = "http://openshot.org/"; - description = "High-quality sound editing library"; - longDescription = '' - OpenShot Audio Library (libopenshot-audio) is a program that allows the - high-quality editing and playback of audio, and is based on the amazing - JUCE library. - ''; - license = with licenses; gpl3Plus; - maintainers = with maintainers; [ AndersonTorres ]; - platforms = with platforms; unix; - }; -} diff --git a/pkgs/applications/video/openshot-qt/libopenshot-audio/0001-undef-fpret-on-aarch64-darwin.patch b/pkgs/applications/video/openshot-qt/libopenshot-audio/0001-undef-fpret-on-aarch64-darwin.patch new file mode 100644 index 0000000000000..c391f77dda8b7 --- /dev/null +++ b/pkgs/applications/video/openshot-qt/libopenshot-audio/0001-undef-fpret-on-aarch64-darwin.patch @@ -0,0 +1,13 @@ +diff --git a/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h b/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h +index 2593790..0b5983d 100644 +--- a/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h ++++ b/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h +@@ -209,7 +209,7 @@ static inline ReturnValue ObjCMsgSendSuper (struct objc_super* s, SEL sel, Param + typedef id (*MsgSendSuperFn) (struct objc_super*, SEL, ...); + static inline MsgSendSuperFn getMsgSendSuperFn() noexcept { return (MsgSendSuperFn) (void*) objc_msgSendSuper; } + +-#if ! JUCE_IOS ++#if JUCE_INTEL && ! JUCE_IOS + typedef double (*MsgSendFPRetFn) (id, SEL op, ...); + static inline MsgSendFPRetFn getMsgSendFPRetFn() noexcept { return (MsgSendFPRetFn) (void*) objc_msgSend_fpret; } + #endif diff --git a/pkgs/applications/video/openshot-qt/libopenshot-audio/default.nix b/pkgs/applications/video/openshot-qt/libopenshot-audio/default.nix new file mode 100644 index 0000000000000..e546dc7a57862 --- /dev/null +++ b/pkgs/applications/video/openshot-qt/libopenshot-audio/default.nix @@ -0,0 +1,77 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, alsa-lib +, cmake +, doxygen +, libX11 +, libXcursor +, libXext +, libXft +, libXinerama +, libXrandr +, pkg-config +, zlib +, Accelerate +, AGL +, Cocoa +, Foundation +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libopenshot-audio"; + version = "0.3.2"; + + src = fetchFromGitHub { + owner = "OpenShot"; + repo = "libopenshot-audio"; + rev = "v${finalAttrs.version}"; + hash = "sha256-PLpB9sy9xehipN5S9okCHm1mPm5MaZMVaFqCBvFUiTw="; + }; + + patches = [ + # https://forum.juce.com/t/juce-and-macos-11-arm/40285/24 + ./0001-undef-fpret-on-aarch64-darwin.patch + ]; + + nativeBuildInputs = [ + cmake + doxygen + pkg-config + ]; + + buildInputs = lib.optionals stdenv.isLinux [ + alsa-lib + ] ++ (if stdenv.isDarwin then [ + Accelerate + AGL + Cocoa + Foundation + zlib + ] else [ + libX11 + libXcursor + libXext + libXft + libXinerama + libXrandr + ]); + + strictDeps = true; + + doCheck = true; + + meta = { + homepage = "http://openshot.org/"; + description = "High-quality sound editing library"; + longDescription = '' + OpenShot Audio Library (libopenshot-audio) is a program that allows the + high-quality editing and playback of audio, and is based on the amazing + JUCE library. + ''; + license = with lib.licenses; [ gpl3Plus ]; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/applications/video/openshot-qt/undef-fpret-on-aarch64-darwin.patch b/pkgs/applications/video/openshot-qt/undef-fpret-on-aarch64-darwin.patch deleted file mode 100644 index c391f77dda8b7..0000000000000 --- a/pkgs/applications/video/openshot-qt/undef-fpret-on-aarch64-darwin.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h b/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h -index 2593790..0b5983d 100644 ---- a/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h -+++ b/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h -@@ -209,7 +209,7 @@ static inline ReturnValue ObjCMsgSendSuper (struct objc_super* s, SEL sel, Param - typedef id (*MsgSendSuperFn) (struct objc_super*, SEL, ...); - static inline MsgSendSuperFn getMsgSendSuperFn() noexcept { return (MsgSendSuperFn) (void*) objc_msgSendSuper; } - --#if ! JUCE_IOS -+#if JUCE_INTEL && ! JUCE_IOS - typedef double (*MsgSendFPRetFn) (id, SEL op, ...); - static inline MsgSendFPRetFn getMsgSendFPRetFn() noexcept { return (MsgSendFPRetFn) (void*) objc_msgSend_fpret; } - #endif diff --git a/pkgs/top-level/qt5-packages.nix b/pkgs/top-level/qt5-packages.nix index b1fb263e0bb83..597ab338149f8 100644 --- a/pkgs/top-level/qt5-packages.nix +++ b/pkgs/top-level/qt5-packages.nix @@ -146,7 +146,7 @@ in (noExtraAttrs (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdP packagekit-qt = callPackage ../tools/package-management/packagekit/qt.nix { }; - libopenshot-audio = callPackage ../applications/video/openshot-qt/libopenshot-audio.nix { + libopenshot-audio = callPackage ../applications/video/openshot-qt/libopenshot-audio { inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate AGL Cocoa Foundation; }; -- cgit 1.4.1