diff options
author | Sandro <sandro.jaeckel@gmail.com> | 2024-05-17 20:05:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-17 20:05:33 +0200 |
commit | 3dd4b58d05d876feaf8ae308daf7556053a5504a (patch) | |
tree | ac352b49b216a7e89c687d1d526f46fccd95085d | |
parent | d769131c2703094f9c78fe74c09606173c38e6df (diff) | |
parent | 0535756bb00c8313624e98a4a95b2459a71c60ea (diff) |
Merge pull request #292837 from iFreilicht/update-persepolis
persepolis: 3.2.0 -> 4.0.1
-rw-r--r-- | pkgs/by-name/pe/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch (renamed from pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch) | 2 | ||||
-rw-r--r-- | pkgs/by-name/pe/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch (renamed from pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch) | 0 | ||||
-rw-r--r-- | pkgs/by-name/pe/persepolis/package.nix | 84 | ||||
-rw-r--r-- | pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch | 45 | ||||
-rw-r--r-- | pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch | 41 | ||||
-rw-r--r-- | pkgs/tools/networking/persepolis/default.nix | 92 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
7 files changed, 85 insertions, 183 deletions
diff --git a/pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch b/pkgs/by-name/pe/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch index ab3c957ef4b19..505961d1ce6b7 100644 --- a/pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch +++ b/pkgs/by-name/pe/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch @@ -9,7 +9,7 @@ index aaabb35..69676d3 100644 @@ -72,16 +72,8 @@ def startAria(): # in macintosh - elif os_type == 'Darwin': + elif os_type == OS.OSX: - if aria2_path == "" or aria2_path == None or os.path.isfile(str(aria2_path)) == False: - - cwd = sys.argv[0] diff --git a/pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch b/pkgs/by-name/pe/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch index 800f7bddd4086..800f7bddd4086 100644 --- a/pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch +++ b/pkgs/by-name/pe/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch diff --git a/pkgs/by-name/pe/persepolis/package.nix b/pkgs/by-name/pe/persepolis/package.nix new file mode 100644 index 0000000000000..3105cd8621f3f --- /dev/null +++ b/pkgs/by-name/pe/persepolis/package.nix @@ -0,0 +1,84 @@ +{ lib +, stdenv +, qt5 +, python3 +, fetchFromGitHub +, aria2 +, ffmpeg +, libnotify +, pulseaudio +, sound-theme-freedesktop +, pkg-config +, meson +, ninja +}: + +python3.pkgs.buildPythonApplication rec { + pname = "persepolis"; + version = "4.0.1"; + format = "other"; + + src = fetchFromGitHub { + owner = "persepolisdm"; + repo = "persepolis"; + rev = "57dc9d438bb3f126070a17c7a3677c45ea4dd332"; + hash = "sha256-7OXAITFQJ2/aY0QmqlAo7if7cY7+T3j6PUjfJJV8Z2Q="; + }; + + patches = [ + # Upstream does currently not allow building from source on macOS. These patches can likely + # be removed if https://github.com/persepolisdm/persepolis/issues/943 is fixed upstream + ./0003-Search-PATH-for-aria2c-on-darwin.patch + ./0004-Search-PATH-for-ffmpeg-on-darwin.patch + ]; + + postPatch = '' + # Ensure dependencies with hard-coded FHS dependencies are properly detected + substituteInPlace check_dependencies.py --replace-fail "isdir(notifications_path)" "isdir('${sound-theme-freedesktop}/share/sounds/freedesktop')" + ''; + + postInstall = '' + mkdir -p $out/share/applications + cp $src/xdg/com.github.persepolisdm.persepolis.desktop $out/share/applications + ''; + + # prevent double wrapping + dontWrapQtApps = true; + nativeBuildInputs = [ meson ninja pkg-config qt5.wrapQtAppsHook ]; + + # feed args to wrapPythonApp + makeWrapperArgs = [ + "--prefix PATH : ${lib.makeBinPath [ aria2 ffmpeg libnotify ]}" + "\${qtWrapperArgs[@]}" + ]; + + # The presence of these dependencies is checked during setuptoolsCheckPhase, + # but apart from that, they're not required during build, only runtime + nativeCheckInputs = [ + aria2 + libnotify + pulseaudio + sound-theme-freedesktop + ffmpeg + ]; + + propagatedBuildInputs = [ + pulseaudio + sound-theme-freedesktop + ] ++ (with python3.pkgs; [ + psutil + pyqt5 + requests + setproctitle + setuptools + yt-dlp + ]); + + meta = with lib; { + description = "A GUI for aria2"; + mainProgram = "persepolis"; + homepage = "https://persepolisdm.github.io/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ iFreilicht ]; + }; +} diff --git a/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch b/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch deleted file mode 100644 index 4ddd18bbd4687..0000000000000 --- a/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- - setup.py | 13 +++++-------- - 1 file changed, 5 insertions(+), 8 deletions(-) - -diff --git a/setup.py b/setup.py -index 985d28d..933f3df 100755 ---- a/setup.py -+++ b/setup.py -@@ -24,13 +24,9 @@ import shutil - # finding os platform - os_type = platform.system() - --if os_type == 'Linux' or os_type == 'FreeBSD' or os_type == 'OpenBSD': -- from setuptools import setup, Command, find_packages -- setuptools_available = True -- print(os_type + " detected!") --else: -- print('This script is only work for GNU/Linux or BSD!') -- sys.exit(1) -+from setuptools import setup, Command, find_packages -+setuptools_available = True -+print(os_type + " detected!") - - # Checking dependencies! - not_installed = '' -@@ -100,6 +96,7 @@ else: - print('paplay is found!') - - # sound-theme-freedesktop -+notifications_path = '' - if os_type == 'Linux': - notifications_path = '/usr/share/sounds/freedesktop/stereo/' - elif os_type == 'FreeBSD' or os_type == 'OpenBSD': -@@ -139,7 +136,7 @@ if sys.argv[1] == "test": - - DESCRIPTION = 'Persepolis Download Manager' - --if os_type == 'Linux': -+if os_type in ['Linux', 'Darwin']: - DATA_FILES = [ - ('/usr/share/man/man1/', ['man/persepolis.1.gz']), - ('/usr/share/applications/', ['xdg/com.github.persepolisdm.persepolis.desktop']), --- -2.39.3 (Apple Git-145) - diff --git a/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch b/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch deleted file mode 100644 index 50252c8cd72a8..0000000000000 --- a/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- - persepolis/scripts/mac_notification.py | 25 +++++++++---------------- - 1 file changed, 9 insertions(+), 16 deletions(-) - -diff --git a/persepolis/scripts/mac_notification.py b/persepolis/scripts/mac_notification.py -index 4d69929..9a9a7cf 100644 ---- a/persepolis/scripts/mac_notification.py -+++ b/persepolis/scripts/mac_notification.py -@@ -15,20 +15,13 @@ - - # native notification on mac! needs Xcode (latest version) installed and pyobjc - # library from pip --import Foundation --import AppKit --import objc -- --NSUserNotification = objc.lookUpClass('NSUserNotification') --NSUserNotificationCenter = objc.lookUpClass('NSUserNotificationCenter') -- -- - def notifyMac(title, subtitle, info_text, delay=0): -- notification = NSUserNotification.alloc().init() -- notification.setTitle_(title) -- notification.setSubtitle_(subtitle) -- notification.setInformativeText_(info_text) -- notification.setDeliveryDate_(Foundation.NSDate.dateWithTimeInterval_sinceDate_( -- delay, Foundation.NSDate.date())) -- NSUserNotificationCenter.defaultUserNotificationCenter( -- ).scheduleNotification_(notification) -+ print(f""" -+Warning: Persepolis was installed from nixpkgs, which currently breaks notifications -+ on macOS. Until https://github.com/NixOS/nixpkgs/issues/105156 is resolved, -+ this cannot be fixed. The notification that should've been displayed was: -+ -+ title: {title} -+ subtitle: {subtitle} -+ info_text: {info_text} -+ """) --- -2.39.3 (Apple Git-145) - diff --git a/pkgs/tools/networking/persepolis/default.nix b/pkgs/tools/networking/persepolis/default.nix deleted file mode 100644 index b3b084c225964..0000000000000 --- a/pkgs/tools/networking/persepolis/default.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ lib -, stdenv -, buildPythonApplication -, fetchFromGitHub -, aria2 -, ffmpeg -, libnotify -, pulseaudio -, psutil -, pyqt5 -, requests -, setproctitle -, setuptools -, sound-theme-freedesktop -, wrapQtAppsHook -, yt-dlp -}: - -buildPythonApplication rec { - pname = "persepolis"; - version = "3.2.0"; - - src = fetchFromGitHub { - owner = "persepolisdm"; - repo = "persepolis"; - rev = version; - sha256 = "1rh7q432ynbysapsd075nif975ync71icpb71x2mb4j8jx1vzs45"; - }; - - # see: https://github.com/persepolisdm/persepolis/blob/3.2.0/setup.py#L130 - doCheck = false; - - preBuild= - # Make setup automatic - '' - substituteInPlace setup.py --replace "answer = input(" "answer = 'y'#" - '' + - # Replace abandoned youtube-dl with maintained fork yt-dlp. Fixes https://github.com/persepolisdm/persepolis/issues/930, - # can be removed if that issue is fixed and/or https://github.com/persepolisdm/persepolis/pull/936 is merged - '' - substituteInPlace setup.py ./persepolis/scripts/video_finder_addlink.py --replace \ - "import youtube_dl" "import yt_dlp as youtube_dl" - ''; - - patches = lib.optionals stdenv.isDarwin [ - # Upstream is abandonware, the last commit to master was on 2021-08-26. - # If it is forked or picked up again, consider upstreaming these patches. - ./0001-Allow-building-on-darwin.patch - ./0002-Fix-startup-crash-on-darwin.patch - ./0003-Search-PATH-for-aria2c-on-darwin.patch - ./0004-Search-PATH-for-ffmpeg-on-darwin.patch - ]; - - postPatch = '' - sed -i 's|/usr/share/sounds/freedesktop/stereo/|${sound-theme-freedesktop}/share/sounds/freedesktop/stereo/|' setup.py - sed -i "s|'persepolis = persepolis.__main__'|'persepolis = persepolis.scripts.persepolis:main'|" setup.py - ''; - - postInstall = '' - mkdir -p $out/share/applications - cp $src/xdg/com.github.persepolisdm.persepolis.desktop $out/share/applications - ''; - - # prevent double wrapping - dontWrapQtApps = true; - nativeBuildInputs = [ wrapQtAppsHook ]; - - # feed args to wrapPythonApp - makeWrapperArgs = [ - "--prefix PATH : ${lib.makeBinPath [ aria2 ffmpeg libnotify ]}" - "\${qtWrapperArgs[@]}" - ]; - - propagatedBuildInputs = [ - pulseaudio - psutil - pyqt5 - requests - setproctitle - setuptools - sound-theme-freedesktop - yt-dlp - ]; - - meta = with lib; { - description = "Persepolis Download Manager is a GUI for aria2"; - mainProgram = "persepolis"; - homepage = "https://persepolisdm.github.io/"; - license = licenses.gpl3; - maintainers = with maintainers; [ iFreilicht ]; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1ce75d4d39844..1f6c9407956fa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6050,10 +6050,6 @@ with pkgs; pcp = callPackage ../tools/misc/pcp { }; - persepolis = python3Packages.callPackage ../tools/networking/persepolis { - wrapQtAppsHook = qt5.wrapQtAppsHook; - }; - pev = callPackage ../development/tools/analysis/pev { }; phd2 = callPackage ../applications/science/astronomy/phd2 { }; |