ports@,
I'd like to update www/qobuz-dl to 2.1.4 from a fork which seems alive and
fixes issues and includes all backported patches.
I don't think that renaming is nessesary, so, I've just switched pypi source.
Also, take maintainership of that port.
Ok?
Index: Makefile
===================================================================
RCS file: /cvs/ports/www/qobuz-dl/Makefile,v
diff -u -p -r1.3 Makefile
--- Makefile 29 Apr 2025 10:40:31 -0000 1.3
+++ Makefile 8 May 2026 18:44:03 -0000
@@ -1,13 +1,15 @@
COMMENT = music downloader for Qobuz
-MODPY_DISTV = 0.9.9.10
+MODPY_DISTV = 2.1.4
-DISTNAME = qobuz-dl-${MODPY_DISTV}
-REVISION = 1
+DISTNAME = qobuz_dl_ultimate-${MODPY_DISTV}
+PKGNAME= qobuz-dl-${MODPY_DISTV}
CATEGORIES = www audio
-HOMEPAGE = https://github.com/vitiko98/Qobuz-DL
+HOMEPAGE = https://github.com/Sei969/qobuz-dl
+
+MAINTAINER = Kirill A. Korinsky <[email protected]>
# GPLv3
PERMIT_PACKAGE = Yes
@@ -22,12 +24,12 @@ RUN_DEPENDS = audio/py-mutagen \
devel/py-pathvalidate \
devel/py-pick \
devel/py-tqdm \
+ graphics/ffmpeg \
+ security/py-cryptography \
www/py-beautifulsoup4 \
www/py-requests
# tests don't exist
NO_TEST = Yes
-
-FIX_CRLF_FILES = qobuz_dl/qopy.py
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/www/qobuz-dl/distinfo,v
diff -u -p -r1.1.1.1 distinfo
--- distinfo 22 Nov 2024 19:17:36 -0000 1.1.1.1
+++ distinfo 8 May 2026 18:44:03 -0000
@@ -1,2 +1,2 @@
-SHA256 (qobuz-dl-0.9.9.10.tar.gz) =
q7TUl3scg+isoLB0xJvJLCtvJU7O+ogMlftt0O73qb4=
-SIZE (qobuz-dl-0.9.9.10.tar.gz) = 35976
+SHA256 (qobuz_dl_ultimate-2.1.4.tar.gz) =
pwpFfWF6emQYCL64TuqZGFQo+qSrVvCUSYhlV1Yjshs=
+SIZE (qobuz_dl_ultimate-2.1.4.tar.gz) = 88121
Index: patches/patch-qobuz_dl_core_py
===================================================================
RCS file: patches/patch-qobuz_dl_core_py
diff -N patches/patch-qobuz_dl_core_py
--- patches/patch-qobuz_dl_core_py 22 Nov 2024 19:17:36 -0000 1.1.1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,60 +0,0 @@
-https://github.com/vitiko98/qobuz-dl/pull/179
-
-Index: qobuz_dl/core.py
---- qobuz_dl/core.py.orig
-+++ qobuz_dl/core.py
-@@ -274,7 +274,7 @@ class QobuzDL:
-
- def interactive(self, download=True):
- try:
-- from pick import pick
-+ from pick import pick, Option
- except (ImportError, ModuleNotFoundError):
- if os.name == "nt":
- sys.exit(
-@@ -284,10 +284,10 @@ class QobuzDL:
- raise
-
- qualities = [
-- {"q_string": "320", "q": 5},
-- {"q_string": "Lossless", "q": 6},
-- {"q_string": "Hi-res =< 96kHz", "q": 7},
-- {"q_string": "Hi-Res > 96 kHz", "q": 27},
-+ Option("320", 5),
-+ Option("Lossless", 6),
-+ Option("Hi-res =< 96kHz", 7),
-+ Option("Hi-Res > 96 kHz", 27),
- ]
-
- def get_title_text(option):
-@@ -320,15 +320,17 @@ class QobuzDL:
- "(one or more)\nPress Ctrl + c to quit\n"
- "Don't select anything to try another search"
- )
-+
-+ pick_options = [Option(option['text'], option['url']) for
option in options]
-+
- selected_items = pick(
-- options,
-+ pick_options,
- title,
- multiselect=True,
- min_selection_count=0,
-- options_map_func=get_title_text,
- )
- if len(selected_items) > 0:
-- [final_url_list.append(i[0]["url"]) for i in
selected_items]
-+ [final_url_list.append(i[0].value) for i in
selected_items]
- y_n = pick(
- ["Yes", "No"],
- "Items were added to queue to be downloaded. "
-@@ -349,8 +351,7 @@ class QobuzDL:
- qualities,
- desc,
- default_index=1,
-- options_map_func=get_quality_text,
-- )[0]["q"]
-+ )[0].value
-
- if download:
- self.download_list_of_urls(final_url_list)
Index: patches/patch-qobuz_dl_qopy_py
===================================================================
RCS file: patches/patch-qobuz_dl_qopy_py
diff -N patches/patch-qobuz_dl_qopy_py
--- patches/patch-qobuz_dl_qopy_py 22 Nov 2024 19:17:36 -0000 1.1.1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-https://github.com/vitiko98/qobuz-dl/issues/261
-Index: qobuz_dl/qopy.py
---- qobuz_dl/qopy.py.orig
-+++ qobuz_dl/qopy.py
-@@ -122,12 +122,8 @@ class Client:
-
- def auth(self, email, pwd):
- usr_info = self.api_call("user/login", email=email, pwd=pwd)
-- if not usr_info["user"]["credential"]["parameters"]:
-- raise IneligibleError("Free accounts are not eligible to download
tracks.")
- self.uat = usr_info["user_auth_token"]
- self.session.headers.update({"X-User-Auth-Token": self.uat})
-- self.label =
usr_info["user"]["credential"]["parameters"]["short_label"]
-- logger.info(f"{GREEN}Membership: {self.label}")
-
- def multi_meta(self, epoint, key, id, type):
- total = 1
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/www/qobuz-dl/pkg/PLIST,v
diff -u -p -r1.4 PLIST
--- pkg/PLIST 23 Oct 2025 13:20:35 -0000 1.4
+++ pkg/PLIST 8 May 2026 18:44:03 -0000
@@ -1,18 +1,13 @@
bin/qdl
bin/qobuz-dl
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/
-lib/python${MODPY_VERSION}/site-packages/qobuz_dl-${MODPY_DISTV}.dist-info/
-lib/python${MODPY_VERSION}/site-packages/qobuz_dl-${MODPY_DISTV}.dist-info/METADATA
-lib/python${MODPY_VERSION}/site-packages/qobuz_dl-${MODPY_DISTV}.dist-info/RECORD
-lib/python${MODPY_VERSION}/site-packages/qobuz_dl-${MODPY_DISTV}.dist-info/WHEEL
-lib/python${MODPY_VERSION}/site-packages/qobuz_dl-${MODPY_DISTV}.dist-info/entry_points.txt
-lib/python${MODPY_VERSION}/site-packages/qobuz_dl-${MODPY_DISTV}.dist-info/licenses/
-lib/python${MODPY_VERSION}/site-packages/qobuz_dl-${MODPY_DISTV}.dist-info/licenses/LICENSE
-lib/python${MODPY_VERSION}/site-packages/qobuz_dl-${MODPY_DISTV}.dist-info/top_level.txt
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/__init__.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/__main__.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}__main__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}__main__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}bundle.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}bundle.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}cli.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -21,6 +16,8 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}color.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}commands.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}commands.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}db.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -29,20 +26,50 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}downloader.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}lastfm_parser.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}lastfm_parser.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}lyrics_engine.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}lyrics_engine.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}metadata.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}metadata.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}qopy.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}qopy.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}radar.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}radar.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}retro_tagger.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}retro_tagger.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}settings.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}settings.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}sync.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}sync.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}sync_playlist.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}sync_playlist.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/bundle.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/cli.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/color.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/commands.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/constants.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/core.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/db.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/downloader.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/exceptions.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/lastfm_parser.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/lyrics_engine.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/metadata.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/qopy.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/radar.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/retro_tagger.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/settings.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/sync.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl/sync_playlist.py
lib/python${MODPY_VERSION}/site-packages/qobuz_dl/utils.py
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl_ultimate-${MODPY_DISTV}.dist-info/
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl_ultimate-${MODPY_DISTV}.dist-info/METADATA
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl_ultimate-${MODPY_DISTV}.dist-info/RECORD
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl_ultimate-${MODPY_DISTV}.dist-info/WHEEL
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl_ultimate-${MODPY_DISTV}.dist-info/entry_points.txt
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl_ultimate-${MODPY_DISTV}.dist-info/licenses/
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl_ultimate-${MODPY_DISTV}.dist-info/licenses/LICENSE
+lib/python${MODPY_VERSION}/site-packages/qobuz_dl_ultimate-${MODPY_DISTV}.dist-info/top_level.txt
--
wbr, Kirill