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.
This commit is contained in:
Felix Uhl 2024-03-09 14:07:50 +01:00
parent 1e04dc2a54
commit 0535756bb0
3 changed files with 10 additions and 94 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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 = [