about summary refs log tree commit diff
path: root/pkgs/by-name/pe
diff options
context:
space:
mode:
authorFelix Uhl <github@mail.felix-uhl.de>2024-03-09 14:07:50 +0100
committerFelix Uhl <github@mail.felix-uhl.de>2024-04-08 14:54:32 +0200
commit0535756bb00c8313624e98a4a95b2459a71c60ea (patch)
tree0b72c7f96345eed8b3202a8786ae5a98c51e1952 /pkgs/by-name/pe
parent1e04dc2a54cbf84b041509cce01b89295751f882 (diff)
persepolis: 4.0.0 -> 4.0.1
See https://github.com/persepolisdm/persepolis/releases/tag/4.0.1
This version changed the build system from setuptools to meson.
It also fixed notifications on macOS when building from source.
This means that two patches could be deleted.
Diffstat (limited to 'pkgs/by-name/pe')
-rw-r--r--pkgs/by-name/pe/persepolis/0001-Allow-building-on-darwin.patch37
-rw-r--r--pkgs/by-name/pe/persepolis/0002-Fix-startup-crash-on-darwin.patch41
-rw-r--r--pkgs/by-name/pe/persepolis/package.nix26
3 files changed, 10 insertions, 94 deletions
diff --git a/pkgs/by-name/pe/persepolis/0001-Allow-building-on-darwin.patch b/pkgs/by-name/pe/persepolis/0001-Allow-building-on-darwin.patch
deleted file mode 100644
index 46790103f3d12..0000000000000
--- a/pkgs/by-name/pe/persepolis/0001-Allow-building-on-darwin.patch
+++ /dev/null
@@ -1,37 +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 = ''
-@@ -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/by-name/pe/persepolis/0002-Fix-startup-crash-on-darwin.patch b/pkgs/by-name/pe/persepolis/0002-Fix-startup-crash-on-darwin.patch
deleted file mode 100644
index 50252c8cd72a8..0000000000000
--- a/pkgs/by-name/pe/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/by-name/pe/persepolis/package.nix b/pkgs/by-name/pe/persepolis/package.nix
index 0aa47b37fe177..3105cd8621f3f 100644
--- a/pkgs/by-name/pe/persepolis/package.nix
+++ b/pkgs/by-name/pe/persepolis/package.nix
@@ -8,39 +8,33 @@
 , libnotify
 , pulseaudio
 , sound-theme-freedesktop
+, pkg-config
+, meson
+, ninja
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "persepolis";
-  version = "4.0.0";
+  version = "4.0.1";
+  format = "other";
 
   src = fetchFromGitHub {
     owner = "persepolisdm";
     repo = "persepolis";
-    rev = "refs/tags/${version}";
-    hash = "sha256-2S6s/tWhI9RBFA26jkwxYTGeaok8S8zv/bY+Zr8TOak=";
+    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
-    ./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|'persepolis = persepolis.__main__'|'persepolis = persepolis.scripts.persepolis:main'|" setup.py
-
-    # Automatically answer yes to all interactive questions during setup
-    substituteInPlace setup.py --replace-fail "answer = input(" "answer = 'y'#"
-
-    # Ensure dependencies with hard-coded FHS paths are properly detected
-    substituteInPlace setup.py --replace-fail "isdir(notifications_path)" "isdir('${sound-theme-freedesktop}/share/sounds/freedesktop')"
-
-    # Fix oversight in test script (can be removed once https://github.com/persepolisdm/persepolis/pull/942 is merged upstream)
-    substituteInPlace setup.py --replace-fail "sys.exit('0')" "sys.exit(0)"
+    # 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 = ''
@@ -50,7 +44,7 @@ python3.pkgs.buildPythonApplication rec {
 
   # prevent double wrapping
   dontWrapQtApps = true;
-  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+  nativeBuildInputs = [ meson ninja pkg-config qt5.wrapQtAppsHook ];
 
   # feed args to wrapPythonApp
   makeWrapperArgs = [