git: d76542d7123a - main - www/persepolis: new port had been added (+)
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 01 Mar 2022 11:15:37 UTC
The branch main has been updated by danfe:
URL: https://cgit.FreeBSD.org/ports/commit/?id=d76542d7123a7dbcbf9ca31b143639571b69ce1c
commit d76542d7123a7dbcbf9ca31b143639571b69ce1c
Author: Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2022-03-01 11:13:46 +0000
Commit: Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2022-03-01 11:13:46 +0000
www/persepolis: new port had been added (+)
Persepolis is a download manager and GUI for Aria2 which is written
in Python using Qt and other components. Some functionality had been
reimplemented to avoid pulling needless or heavy dependencies.
WWW: https://persepolisdm.github.io/
---
www/Makefile | 1 +
www/persepolis/Makefile | 28 +++++++++++++++
www/persepolis/distinfo | 3 ++
.../files/patch-persepolis_scripts_bubble.py | 42 ++++++++++++++++++++++
.../files/patch-persepolis_scripts_persepolis.py | 24 +++++++++++++
.../files/patch-persepolis_scripts_play.py | 35 ++++++++++++++++++
www/persepolis/files/patch-setup.py | 40 +++++++++++++++++++++
www/persepolis/pkg-descr | 9 +++++
8 files changed, 182 insertions(+)
diff --git a/www/Makefile b/www/Makefile
index d0aed03de59d..c88826e2c74f 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -1376,6 +1376,7 @@
SUBDIR += pecl-yaf
SUBDIR += pecl-yar
SUBDIR += perlbal
+ SUBDIR += persepolis
SUBDIR += pglogd
SUBDIR += phalcon
SUBDIR += phalcon4
diff --git a/www/persepolis/Makefile b/www/persepolis/Makefile
new file mode 100644
index 000000000000..b0ece16d2c01
--- /dev/null
+++ b/www/persepolis/Makefile
@@ -0,0 +1,28 @@
+# Created by: Alexey Dokuchaev <danfe@FreeBSD.org>
+
+PORTNAME= persepolis
+PORTVERSION= 3.2.0
+CATEGORIES= www net ftp
+
+MAINTAINER= danfe@FreeBSD.org
+COMMENT= Graphical download manager (GUI for Aria2)
+
+LICENSE= GPLv3+
+
+BUILD_DEPENDS= aria2c:www/aria2 ffmpeg:multimedia/ffmpeg \
+ ${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}setproctitle>0:devel/py-setproctitle@${PY_FLAVOR} \
+ ${LOCALBASE}/share/sounds/freedesktop/stereo/complete.oga:audio/freedesktop-sound-theme
+RUN_DEPENDS:= ${BUILD_DEPENDS} \
+ ${PYTHON_PKGNAMEPREFIX}PyOgg>0:audio/py-pyogg@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dbus>0:devel/py-dbus@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
+
+USES= pyqt:5 python
+USE_PYTHON= autoplist distutils noflavors
+USE_PYQT= pyqt5
+USE_GITHUB= yes
+GH_ACCOUNT= ${PORTNAME}dm
+
+.include <bsd.port.mk>
diff --git a/www/persepolis/distinfo b/www/persepolis/distinfo
new file mode 100644
index 000000000000..98490ad66451
--- /dev/null
+++ b/www/persepolis/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1568666738
+SHA256 (persepolisdm-persepolis-3.2.0_GH0.tar.gz) = d27cf2a4e02b0fbe79b1903ca0ab32a6007493d51a8201443a8febb566750acd
+SIZE (persepolisdm-persepolis-3.2.0_GH0.tar.gz) = 665662
diff --git a/www/persepolis/files/patch-persepolis_scripts_bubble.py b/www/persepolis/files/patch-persepolis_scripts_bubble.py
new file mode 100644
index 000000000000..3f31210fcfb2
--- /dev/null
+++ b/www/persepolis/files/patch-persepolis_scripts_bubble.py
@@ -0,0 +1,42 @@
+--- persepolis/scripts/bubble.py.orig 2019-09-16 20:45:38 UTC
++++ persepolis/scripts/bubble.py
+@@ -29,6 +29,8 @@ if os_type == 'Darwin':
+ elif os_type == 'Windows':
+ from persepolis.scripts.windows_notification import Windows_Notification
+
++else: import dbus
++
+ # notifySend use notify-send program in user's system for sending notifications
+ # and use playNotification function in play.py file for playing sound
+ # notifications
+@@ -68,7 +70,7 @@ def notifySend(message1, message2, time, sound, parent
+
+ enable_notification = persepolis_setting.value('settings/notification')
+
+- time = str(time)
++ time = int(time)
+ message1 = str(message1)
+ message2 = str(message2)
+
+@@ -77,14 +79,13 @@ def notifySend(message1, message2, time, sound, parent
+ parent.system_tray_icon.showMessage(message1, message2, 0, 10000)
+ else:
+ if os_type == 'Linux' or os_type == 'FreeBSD' or os_type == 'OpenBSD':
+- subprocess.Popen(['notify-send', '--icon', 'persepolis',
+- '--app-name', 'Persepolis Download Manager',
+- '--expire-time', time,
+- message1, message2],
+- stderr=subprocess.PIPE,
+- stdout=subprocess.PIPE,
+- stdin=subprocess.PIPE,
+- shell=False)
++ service = 'org.freedesktop.Notifications'
++ notify_iface = dbus.Interface(
++ dbus.SessionBus().get_object(service,
++ '/%s' % service.replace('.', '/')), service)
++ notify_iface.Notify('Persepolis Download Manager', 0,
++ '/usr/local/share/pixmaps/persepolis.svg', message1, message2,
++ [], {'urgency': 0}, time)
+
+ elif os_type == 'Darwin':
+ notifyMac("Persepolis Download Manager", message1, message2)
diff --git a/www/persepolis/files/patch-persepolis_scripts_persepolis.py b/www/persepolis/files/patch-persepolis_scripts_persepolis.py
new file mode 100644
index 000000000000..a699afca58ea
--- /dev/null
+++ b/www/persepolis/files/patch-persepolis_scripts_persepolis.py
@@ -0,0 +1,24 @@
+--- persepolis/scripts/persepolis.py.orig 2019-09-16 20:45:38 UTC
++++ persepolis/scripts/persepolis.py
+@@ -42,9 +42,6 @@ if os_type == 'Linux' or os_type == 'FreeBSD' or os_ty
+
+ # initialization
+
+-# find home address
+-home_address = os.path.expanduser("~")
+-
+ # persepolis config_folder
+ config_folder = determineConfigFolder()
+
+@@ -58,10 +55,8 @@ global lock_file_validation
+
+ if os_type != 'Windows':
+ import fcntl
+- user_name_split = home_address.split('/')
+- user_name = user_name_split[2]
+ # persepolis lock file
+- lock_file = '/tmp/persepolis_exec_' + user_name + '.lock'
++ lock_file = '/tmp/persepolis_exec_' + os.getlogin() + '.lock'
+
+ # create lock file
+ fp = open(lock_file, 'w')
diff --git a/www/persepolis/files/patch-persepolis_scripts_play.py b/www/persepolis/files/patch-persepolis_scripts_play.py
new file mode 100644
index 000000000000..ddb2f02a6424
--- /dev/null
+++ b/www/persepolis/files/patch-persepolis_scripts_play.py
@@ -0,0 +1,35 @@
+--- persepolis/scripts/play.py.orig 2019-09-16 20:45:38 UTC
++++ persepolis/scripts/play.py
+@@ -16,6 +16,8 @@ from persepolis.scripts import logger
+ from PyQt5.QtCore import QSettings
+ import subprocess
+ import platform
++from pyogg import VorbisFile
++from ossaudiodev import open as ossOpen, AFMT_S16_NE
+
+ os_type = platform.system()
+
+@@ -36,18 +38,11 @@ def playNotification(file):
+ if enable_notification == 'yes':
+ if os_type == 'Linux' or os_type == 'FreeBSD' or os_type == 'OpenBSD':
+
+- pipe = subprocess.Popen(['paplay', '--volume=' + str(volume),
+- str(file)],
+- stderr=subprocess.PIPE,
+- stdout=subprocess.PIPE,
+- stdin=subprocess.PIPE,
+- shell=False)
+-
+- answer = pipe.wait()
+-
+- if answer != 0:
+- logger.sendToLog(
+- "paplay not installed!Install it for playing sound notification", "WARNING")
++ sound = VorbisFile(file)
++ dsp = ossOpen('/dev/dsp', 'w')
++ dsp.setparameters(AFMT_S16_NE, sound.channels, sound.frequency)
++ dsp.write(sound.buffer)
++ dsp.close()
+
+ elif os_type == 'Darwin':
+
diff --git a/www/persepolis/files/patch-setup.py b/www/persepolis/files/patch-setup.py
new file mode 100644
index 000000000000..bd82082de251
--- /dev/null
+++ b/www/persepolis/files/patch-setup.py
@@ -0,0 +1,40 @@
+--- setup.py.orig 2019-09-16 20:45:38 UTC
++++ setup.py
+@@ -67,14 +67,6 @@ except:
+ print("Warning: python3-psutil is not installed!")
+ not_installed = not_installed + 'psutil, '
+
+-# youtube_dl
+-try:
+- import youtube_dl
+- print('youtube-dl is found')
+-except:
+- print('Warning: youtube-dl is not installed!')
+- not_installed = not_installed + 'youtube-dl, '
+-
+ # aria2
+ answer = os.system('aria2c --version 1>/dev/null')
+ if answer != 0:
+@@ -82,22 +74,6 @@ if answer != 0:
+ not_installed = not_installed + 'aria2c, '
+ else:
+ print('aria2 is found!')
+-
+-# libnotify-bin
+-answer = os.system('notify-send --version 1>/dev/null')
+-if answer != 0:
+- print("Error libnotify-bin is not installed!")
+- not_installed = not_installed + 'libnotify-bin, '
+-else:
+- print('libnotify-bin is found!')
+-
+-# paplay
+-answer = os.system('paplay --version 1>/dev/null')
+-if answer != 0:
+- print("Warning: paplay not installed!You need pulseaudio for sound notifications!")
+- not_installed = not_installed + 'paplay, '
+-else:
+- print('paplay is found!')
+
+ # sound-theme-freedesktop
+ if os_type == 'Linux':
diff --git a/www/persepolis/pkg-descr b/www/persepolis/pkg-descr
new file mode 100644
index 000000000000..ce64c683460e
--- /dev/null
+++ b/www/persepolis/pkg-descr
@@ -0,0 +1,9 @@
+Persepolis is a download manager and GUI for Aria2 which is written
+in Python using Qt and other components. It features:
+
+ - Multi-segment downloading
+ - Scheduling downloads
+ - Download queuing
+ - And many more!
+
+WWW: https://persepolisdm.github.io/