Message ID | 79fa17151ff834161b71e2dbffe853ddff29a66d.1718763195.git.leo@famulari.name |
---|---|
State | New |
Headers | show |
Series | [bug#71640,1/6] gnu: yt-dlp: Don't inherit from youtube-dl. | expand |
Hi, Leo Famulari <leo@famulari.name> writes: > * gnu/packages/video.scm (yt-dlp): Update to 2024.05.27. > [build-system]: Use PYPROJECT-BUILD-SYSTEM. > [arguments]: Remove the custom build phase 'fix-the-data-directories', because > There is no longer a setup.py file to be amended. > [inputs]: Add PYTHON-REQUESTS-NEXT and PYTHON-URLLIB3-NEXT. > [native-inputs]: Add PYTHON-HATCHLING. > > Change-Id: I0c9e609817071346ca85d1f0966cf8994b2da2c5 > --- > gnu/packages/video.scm | 18 ++++++------------ > 1 file changed, 6 insertions(+), 12 deletions(-) > > diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm > index 76e4a8a02f..e3c20693fc 100644 > --- a/gnu/packages/video.scm > +++ b/gnu/packages/video.scm > @@ -3137,7 +3137,7 @@ (define-public youtube-dl > (define-public yt-dlp > (package > (name "yt-dlp") > - (version "2023.10.13") > + (version "2024.05.27") > (source > (origin > (method git-fetch) > @@ -3146,8 +3146,8 @@ (define-public yt-dlp > (commit version))) > (file-name (git-file-name name version)) > (sha256 > - (base32 "1cy8cpqwq6yfsbrnln3qqp9lsjckn20m6w7b890ha7jahyir5m1n")))) > - (build-system python-build-system) > + (base32 "13j6vg0kxfw3hppq7gzbz2d72g415071gh5arkwzj902rh0c7777")))) > + (build-system pyproject-build-system) > (arguments > `(#:tests? ,(not (%current-target-system)) > #:phases > @@ -3176,14 +3176,6 @@ (define-public yt-dlp > "PYTHON=python" > "yt-dlp" > "completions")))) > - (add-before 'install 'fix-the-data-directories > - (lambda* (#:key outputs #:allow-other-keys) > - (let ((prefix (assoc-ref outputs "out"))) > - (substitute* "setup.py" > - (("'etc/") > - (string-append "'" prefix "/etc/")) > - (("'share/") > - (string-append "'" prefix "/share/")))))) > (replace 'check > (lambda* (#:key tests? #:allow-other-keys) > (when tests? > @@ -3192,6 +3184,8 @@ (define-public yt-dlp > python-certifi > python-mutagen > python-pycryptodomex > + python-requests-next ; TODO Remove this special package > + python-urllib3-next ; TODO Remove this one too That's OK only because that's an application and these inputs are not propagated. I'm a bit worried the '-next' variants may be used by packagers elsewhere, but I guess this means we should give the python-team branch a spin. Also, I see you haven't used inheritance anywhere; I guess that's to make the transition to the latest package as painful as possible (simply deleting the old definitions).
On Sun, Jun 23, 2024 at 09:58:13PM -0400, Maxim Cournoyer wrote: > > + python-requests-next ; TODO Remove this special package > > + python-urllib3-next ; TODO Remove this one too > > That's OK only because that's an application and these inputs are not > propagated. I'm a bit worried the '-next' variants may be used by > packagers elsewhere, but I guess this means we should give the > python-team branch a spin. I could make the packages hidden. Is there a better approach? > Also, I see you haven't used inheritance anywhere; I guess that's to > make the transition to the latest package as painful as possible > (simply deleting the old definitions). For me, using inheritance is painful, and this is relatively painless.
Hi Leo, Leo Famulari <leo@famulari.name> writes: > On Sun, Jun 23, 2024 at 09:58:13PM -0400, Maxim Cournoyer wrote: >> > + python-requests-next ; TODO Remove this special package >> > + python-urllib3-next ; TODO Remove this one too >> >> That's OK only because that's an application and these inputs are not >> propagated. I'm a bit worried the '-next' variants may be used by >> packagers elsewhere, but I guess this means we should give the >> python-team branch a spin. > > I could make the packages hidden. Is there a better approach? Not really, as the problem with Python is that everything gets propagated and you can't mix incompatible libraries together. I guess that's something to keep in mind when reviewing Python packages. It's OK to use any version for *applications*, but it's not OK for libraries, as these are expected to be compatible with the larger Python package collection of Guix. >> Also, I see you haven't used inheritance anywhere; I guess that's to >> make the transition to the latest package as painful as possible >> (simply deleting the old definitions). > > For me, using inheritance is painful, and this is relatively painless. I meant painless above. I disagree that inheritance is generally painful, although it brings some complications (such as 'guix refresh' not taking inheritance dependencies into account). Anyway, LGTM :-).
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 76e4a8a02f..e3c20693fc 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3137,7 +3137,7 @@ (define-public youtube-dl (define-public yt-dlp (package (name "yt-dlp") - (version "2023.10.13") + (version "2024.05.27") (source (origin (method git-fetch) @@ -3146,8 +3146,8 @@ (define-public yt-dlp (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1cy8cpqwq6yfsbrnln3qqp9lsjckn20m6w7b890ha7jahyir5m1n")))) - (build-system python-build-system) + (base32 "13j6vg0kxfw3hppq7gzbz2d72g415071gh5arkwzj902rh0c7777")))) + (build-system pyproject-build-system) (arguments `(#:tests? ,(not (%current-target-system)) #:phases @@ -3176,14 +3176,6 @@ (define-public yt-dlp "PYTHON=python" "yt-dlp" "completions")))) - (add-before 'install 'fix-the-data-directories - (lambda* (#:key outputs #:allow-other-keys) - (let ((prefix (assoc-ref outputs "out"))) - (substitute* "setup.py" - (("'etc/") - (string-append "'" prefix "/etc/")) - (("'share/") - (string-append "'" prefix "/share/")))))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? @@ -3192,6 +3184,8 @@ (define-public yt-dlp python-certifi python-mutagen python-pycryptodomex + python-requests-next ; TODO Remove this special package + python-urllib3-next ; TODO Remove this one too python-websockets)) (native-inputs (append @@ -3199,7 +3193,7 @@ (define-public yt-dlp (if (supported-package? pandoc) (list pandoc) '()) - (list python-pytest zip))) + (list python-hatchling python-pytest zip))) (synopsis "Download videos from YouTube.com and other sites") (description "yt-dlp is a small command-line program to download videos from