GNU bug report logs -
#68250
[PATCH v2] gnu: mpv: Fix pkgconfig file.
Previous Next
Reported by: Hilton Chain <hako <at> ultrarare.space>
Date: Fri, 5 Jan 2024 05:08:02 UTC
Severity: normal
Tags: patch
Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 68250 in the body.
You can then email your comments to 68250 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
lars <at> 6xq.net, marius <at> gnu.org, me <at> bonfacemunyoki.com, jgart <at> dismail.de, guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Fri, 05 Jan 2024 05:08:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Hilton Chain <hako <at> ultrarare.space>
:
New bug report received and forwarded. Copy sent to
lars <at> 6xq.net, marius <at> gnu.org, me <at> bonfacemunyoki.com, jgart <at> dismail.de, guix-patches <at> gnu.org
.
(Fri, 05 Jan 2024 05:08:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/video.scm (libmpv): New variable.
(mpv)[arguments]<#:configure-flags>: Remove libmpv library.
(celluloid,mpv-mpris)[inputs]: Replace mpv with libmpv.
* gnu/packages/kde-plasma.scm (plasmatube)[inputs]: Likewise.
* gnu/packages/python-xyz.scm (python-mpv)[inputs]: Likewise.
Change-Id: I7c0a808f9d54f9bfd98b3d2632316c7d58b67896
---
gnu/packages/kde-plasma.scm | 2 +-
gnu/packages/python-xyz.scm | 2 +-
gnu/packages/video.scm | 24 ++++++++++++++++++++----
3 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 331ab28cd1..0527fa136a 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1611,12 +1611,12 @@ (define-public plasmatube
(list kconfig
kirigami
ki18n
+ libmpv
qtbase-5
qtdeclarative-5
qtmultimedia-5
qtquickcontrols2-5
qtsvg-5
- mpv
youtube-dl))
(home-page "https://apps.kde.org/plasmatube/")
(synopsis "Kirigami YouTube video player")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2afce6c667..b23eaaadfc 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -33948,7 +33948,7 @@ (define-public python-mpv
(setenv "HOME" (getcwd)))))))
(native-inputs
(list python-xvfbwrapper)) ; needed for tests only
- (inputs (list mpv))
+ (inputs (list libmpv))
(propagated-inputs (list python-pillow)) ; for raw screenshots
(home-page "https://github.com/jaseg/python-mpv")
(synopsis "Python interface to the mpv media player")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 6da4897a57..b532181225 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -867,7 +867,7 @@ (define-public celluloid
pkg-config
python-wrapper)) ; for generate-authors.py
(inputs
- (list gtk libadwaita libepoxy mpv))
+ (list gtk libadwaita libepoxy libmpv))
(home-page "https://github.com/celluloid-player/celluloid")
(synopsis "GTK+ frontend for the mpv media player")
(description "Celluloid is a simple GTK+ frontend for the mpv media player.
@@ -2367,8 +2367,7 @@ (define-public mpv
;; Set PYTHONHASHSEED as a workaround for deterministic results.
(setenv "PYTHONHASHSEED" "1"))))
#:configure-flags
- #~(list "-Dlibmpv=true"
- "-Dcdda=enabled"
+ #~(list "-Dcdda=enabled"
"-Ddvdnav=enabled"
"-Dbuild-date=false")))
(native-inputs
@@ -2422,6 +2421,23 @@ (define-public mpv
projects while introducing many more.")
(license license:gpl2+)))
+(define-public libmpv
+ (package
+ (inherit mpv)
+ (name "libmpv")
+ (arguments
+ (substitute-keyword-arguments (package-arguments mpv)
+ ((#:configure-flags flags ''())
+ #~(cons* "-Dcplayer=false"
+ "-Dlibmpv=true"
+ #$flags))))
+ (native-inputs
+ (modify-inputs (package-native-inputs mpv)
+ (delete "perl" "python-docutils")))
+ (propagated-inputs (package-inputs mpv))
+ (inputs '())
+ (synopsis "mpv media player client library")))
+
(define-public smplayer
(package
(name "smplayer")
@@ -2524,7 +2540,7 @@ (define-public mpv-mpris
(native-inputs
(list pkg-config))
(inputs
- (list ffmpeg glib mpv))
+ (list ffmpeg glib libmpv))
(home-page "https://github.com/hoyon/mpv-mpris")
(synopsis "MPRIS plugin for mpv")
(description "This package provides an @dfn{MPRIS} (Media Player Remote
base-commit: be1d05c10766a979dd0720b677889ed950d3b895
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Fri, 05 Jan 2024 05:10:03 GMT)
Full text and
rfc822 format available.
Message #8 received at 68250 <at> debbugs.gnu.org (full text, mbox):
Hi,
On Mon, 25 Dec 2023 19:33:41 +0800,
Andrew Tropin wrote:
>
> Hi Hilton!
>
> It seem the mpv update breaks mpv-mpris build. I didn't dive into
> issue yet, only tried to revert this patch.
It's because mpv's pkgconfig file (for libmpv) now includes all its
dependencies in Requires.private. Sorry that I didn't check all the
dependent packages.
Josselin has sent bug#68044, which adds mpv's inputs to mpv-mpris.
However there're actually other packages depend on libmpv, so I think
the proper fix is to split libmpv from the mpv package and propagate
inputs in a new package (as mpv users are likely to include mpv in
their profiles, thus these propagated inputs are usually unwanted).
I tried to add a "lib" output for mpv first but there would be cycles.
As a result, I disabled libmpv in mpv, added a libmpv package which
inherits from mpv, and sent it to bug#68250.
Thanks
Information forwarded
to
hako <at> ultrarare.space, iyzsong <at> member.fsf.org, lars <at> 6xq.net, marius <at> gnu.org, me <at> bonfacemunyoki.com, jgart <at> dismail.de, andrew <at> trop.in, dev <at> jpoiret.xyz, zhengjunjie <at> iscas.ac.cn, guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Sat, 06 Jan 2024 04:30:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 68250 <at> debbugs.gnu.org (full text, mbox):
This is a follow-up to ce7b2b57aa6da0ceace94ea5fb42392c7ff97d53.
* gnu/packages/video.scm (mpv)[arguments]<#:phases>: Add 'fix-mpv.pc.
Suggested-by: 宋文武 <iyzsong <at> member.fsf.org>
Change-Id: I9826d5d6c957ca3022fa326aee111edb533f05bc
---
gnu/packages/video.scm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index e70aa5352e..10d46db38b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2365,7 +2365,13 @@ (define-public mpv
;; and passed as linker flags, but the order in which they are added
;; varies. See <https://github.com/mpv-player/mpv/issues/7855>.
;; Set PYTHONHASHSEED as a workaround for deterministic results.
- (setenv "PYTHONHASHSEED" "1"))))
+ (setenv "PYTHONHASHSEED" "1")))
+ ;; mpv.pc is generated by meson. libmpv's headers don't actually
+ ;; require these dependencies so it's safe to remove these two fields.
+ (add-after 'install 'fix-mpv.pc
+ (lambda _
+ (substitute* (string-append #$output "/lib/pkgconfig/mpv.pc")
+ (("^(Requires|Libs)\\.private:.*") "")))))
#:configure-flags
#~(list "-Dlibmpv=true"
"-Dcdda=enabled"
base-commit: c0e21e523d93081153a2ffc91e5a9f06afe62b91
--
2.41.0
Changed bug title to '[PATCH v2] gnu: mpv: Fix pkgconfig file.' from '[PATCH] gnu: Add libmpv.'
Request was from
Hilton Chain <hako <at> ultrarare.space>
to
control <at> debbugs.gnu.org
.
(Sat, 06 Jan 2024 04:33:01 GMT)
Full text and
rfc822 format available.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Wed, 10 Jan 2024 18:25:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 68250 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Hilton,
Hilton Chain <hako <at> ultrarare.space> writes:
> This is a follow-up to ce7b2b57aa6da0ceace94ea5fb42392c7ff97d53.
>
> * gnu/packages/video.scm (mpv)[arguments]<#:phases>: Add 'fix-mpv.pc.
Does this completely replace the previous patch, instead of augmenting it?
Best,
--
Josselin Poiret
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Sat, 13 Jan 2024 06:49:01 GMT)
Full text and
rfc822 format available.
Message #19 received at 68250 <at> debbugs.gnu.org (full text, mbox):
Hi Josselin,
On Thu, 11 Jan 2024 02:24:16 +0800,
Josselin Poiret wrote:
>
> [1 <text/plain (quoted-printable)>]
> Hi Hilton,
>
> Hilton Chain <hako <at> ultrarare.space> writes:
>
> > This is a follow-up to ce7b2b57aa6da0ceace94ea5fb42392c7ff97d53.
> >
> > * gnu/packages/video.scm (mpv)[arguments]<#:phases>: Add 'fix-mpv.pc.
>
> Does this completely replace the previous patch, instead of augmenting it?
Yes! I should clarify this before.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Fri, 19 Jan 2024 02:06:01 GMT)
Full text and
rfc822 format available.
Message #22 received at 68250 <at> debbugs.gnu.org (full text, mbox):
Hi,
Hilton Chain <hako <at> ultrarare.space> writes:
> This is a follow-up to ce7b2b57aa6da0ceace94ea5fb42392c7ff97d53.
>
> * gnu/packages/video.scm (mpv)[arguments]<#:phases>: Add 'fix-mpv.pc.
>
> Suggested-by: 宋文武 <iyzsong <at> member.fsf.org>
> Change-Id: I9826d5d6c957ca3022fa326aee111edb533f05bc
> ---
> gnu/packages/video.scm | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
> index e70aa5352e..10d46db38b 100644
> --- a/gnu/packages/video.scm
> +++ b/gnu/packages/video.scm
> @@ -2365,7 +2365,13 @@ (define-public mpv
> ;; and passed as linker flags, but the order in which they are added
> ;; varies. See <https://github.com/mpv-player/mpv/issues/7855>.
> ;; Set PYTHONHASHSEED as a workaround for deterministic results.
> - (setenv "PYTHONHASHSEED" "1"))))
> + (setenv "PYTHONHASHSEED" "1")))
> + ;; mpv.pc is generated by meson. libmpv's headers don't actually
> + ;; require these dependencies so it's safe to remove these two fields.
> + (add-after 'install 'fix-mpv.pc
> + (lambda _
> + (substitute* (string-append #$output "/lib/pkgconfig/mpv.pc")
> + (("^(Requires|Libs)\\.private:.*") "")))))
> #:configure-flags
> #~(list "-Dlibmpv=true"
> "-Dcdda=enabled"
I've just seen this, after pushing a hot fix as
f3fdb4e041cb5740ba0b38b9ad017571f8414d33, which propagates all listed
libraries in Requires.private.
I suppose that someone wanting to build something statically from mpv
would benefit from having the original mpv.pc file without
modifications.
Perhaps we can try it out for a bit, and if the propagation causes
problems, we can fall-back to this change here?
--
Thanks,
Maxim
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Thu, 01 Feb 2024 05:03:02 GMT)
Full text and
rfc822 format available.
Message #25 received at 68250 <at> debbugs.gnu.org (full text, mbox):
Hi Maxim,
On Fri, 19 Jan 2024 10:05:41 +0800,
Maxim Cournoyer wrote:
>
> Hi,
>
> Hilton Chain <hako <at> ultrarare.space> writes:
>
> > This is a follow-up to ce7b2b57aa6da0ceace94ea5fb42392c7ff97d53.
> >
> > * gnu/packages/video.scm (mpv)[arguments]<#:phases>: Add 'fix-mpv.pc.
> >
> > Suggested-by: 宋文武 <iyzsong <at> member.fsf.org>
> > Change-Id: I9826d5d6c957ca3022fa326aee111edb533f05bc
> > ---
> > gnu/packages/video.scm | 8 +++++++-
> > 1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
> > index e70aa5352e..10d46db38b 100644
> > --- a/gnu/packages/video.scm
> > +++ b/gnu/packages/video.scm
> > @@ -2365,7 +2365,13 @@ (define-public mpv
> > ;; and passed as linker flags, but the order in which they are added
> > ;; varies. See <https://github.com/mpv-player/mpv/issues/7855>.
> > ;; Set PYTHONHASHSEED as a workaround for deterministic results.
> > - (setenv "PYTHONHASHSEED" "1"))))
> > + (setenv "PYTHONHASHSEED" "1")))
> > + ;; mpv.pc is generated by meson. libmpv's headers don't actually
> > + ;; require these dependencies so it's safe to remove these two fields.
> > + (add-after 'install 'fix-mpv.pc
> > + (lambda _
> > + (substitute* (string-append #$output "/lib/pkgconfig/mpv.pc")
> > + (("^(Requires|Libs)\\.private:.*") "")))))
> > #:configure-flags
> > #~(list "-Dlibmpv=true"
> > "-Dcdda=enabled"
>
> I've just seen this, after pushing a hot fix as
> f3fdb4e041cb5740ba0b38b9ad017571f8414d33, which propagates all listed
> libraries in Requires.private.
>
> I suppose that someone wanting to build something statically from mpv
> would benefit from having the original mpv.pc file without
> modifications.
>
> Perhaps we can try it out for a bit, and if the propagation causes
> problems, we can fall-back to this change here?
Then we should follow the approach in v1 to add libmpv as a separate package.
I'll send v3 later.
Thanks
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Mon, 05 Feb 2024 19:39:02 GMT)
Full text and
rfc822 format available.
Message #28 received at 68250 <at> debbugs.gnu.org (full text, mbox):
Hi Hilton,
[...]
>> I've just seen this, after pushing a hot fix as
>> f3fdb4e041cb5740ba0b38b9ad017571f8414d33, which propagates all listed
>> libraries in Requires.private.
>>
>> I suppose that someone wanting to build something statically from mpv
>> would benefit from having the original mpv.pc file without
>> modifications.
>>
>> Perhaps we can try it out for a bit, and if the propagation causes
>> problems, we can fall-back to this change here?
>
>
> Then we should follow the approach in v1 to add libmpv as a separate package.
> I'll send v3 later.
Actually I don't think we need to split out a library for mpv here;
there are two things we can do in the short term:
1. Build MPV strictly as a shared library (-Dbuild=shared) or something
in Meson. Then Meson doesn't output all these Requires.private
dependencies, which are only useful for static linking, and which
pkg-config confusingly uses for its --exists check.
2. On core-updates, I've been experimenting with replacing pkg-config
with pkgconf, which seems to be designed better for avoiding the above
pkg-config's pitfall. Currently stuck on a hard to understand cycle.
--
Thanks,
Maxim
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Mon, 26 Feb 2024 16:04:02 GMT)
Full text and
rfc822 format available.
Message #31 received at 68250 <at> debbugs.gnu.org (full text, mbox):
Hi Hilton,
Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:
> Hi Hilton,
>
> [...]
>
>>> I've just seen this, after pushing a hot fix as
>>> f3fdb4e041cb5740ba0b38b9ad017571f8414d33, which propagates all listed
>>> libraries in Requires.private.
>>>
>>> I suppose that someone wanting to build something statically from mpv
>>> would benefit from having the original mpv.pc file without
>>> modifications.
>>>
>>> Perhaps we can try it out for a bit, and if the propagation causes
>>> problems, we can fall-back to this change here?
>>
>>
>> Then we should follow the approach in v1 to add libmpv as a separate package.
>> I'll send v3 later.
>
> Actually I don't think we need to split out a library for mpv here;
> there are two things we can do in the short term:
>
> 1. Build MPV strictly as a shared library (-Dbuild=shared) or something
> in Meson. Then Meson doesn't output all these Requires.private
> dependencies, which are only useful for static linking, and which
> pkg-config confusingly uses for its --exists check.
>
> 2. On core-updates, I've been experimenting with replacing pkg-config
> with pkgconf, which seems to be designed better for avoiding the above
> pkg-config's pitfall. Currently stuck on a hard to understand cycle.
I've implemented 2. above; see: <https://issues.guix.gnu.org/68813>,
which removes the need to propagate pkg-config *.private fields, which
should only be needed when doing static builds.
I'm thus closing this issue. Let me know if I've missed anything!
--
Thanks,
Maxim
bug closed, send any further explanations to
68250 <at> debbugs.gnu.org and Hilton Chain <hako <at> ultrarare.space>
Request was from
Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Mon, 26 Feb 2024 16:04:03 GMT)
Full text and
rfc822 format available.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68250
; Package
guix-patches
.
(Tue, 27 Feb 2024 02:16:02 GMT)
Full text and
rfc822 format available.
Message #36 received at 68250 <at> debbugs.gnu.org (full text, mbox):
Hi Maxim,
On Tue, 27 Feb 2024 00:01:31 +0800,
Maxim Cournoyer wrote:
>
> Hi Hilton,
>
> Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:
>
> > Hi Hilton,
> >
> > [...]
> >
> >>> I've just seen this, after pushing a hot fix as
> >>> f3fdb4e041cb5740ba0b38b9ad017571f8414d33, which propagates all listed
> >>> libraries in Requires.private.
> >>>
> >>> I suppose that someone wanting to build something statically from mpv
> >>> would benefit from having the original mpv.pc file without
> >>> modifications.
> >>>
> >>> Perhaps we can try it out for a bit, and if the propagation causes
> >>> problems, we can fall-back to this change here?
> >>
> >>
> >> Then we should follow the approach in v1 to add libmpv as a separate package.
> >> I'll send v3 later.
> >
> > Actually I don't think we need to split out a library for mpv here;
> > there are two things we can do in the short term:
> >
> > 1. Build MPV strictly as a shared library (-Dbuild=shared) or something
> > in Meson. Then Meson doesn't output all these Requires.private
> > dependencies, which are only useful for static linking, and which
> > pkg-config confusingly uses for its --exists check.
> >
> > 2. On core-updates, I've been experimenting with replacing pkg-config
> > with pkgconf, which seems to be designed better for avoiding the above
> > pkg-config's pitfall. Currently stuck on a hard to understand cycle.
>
> I've implemented 2. above; see: <https://issues.guix.gnu.org/68813>,
> which removes the need to propagate pkg-config *.private fields, which
> should only be needed when doing static builds.
>
> I'm thus closing this issue. Let me know if I've missed anything!
Great to see! Thank you very much!
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 27 Mar 2024 11:24:14 GMT)
Full text and
rfc822 format available.
This bug report was last modified 121 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.