SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I tried to compile the new mpv-0.37.0, and now libplacebo-6 is required.
So I tried to compile libplacebo-6 with the slackbuilds.org slackbuild for libplacebo-5. First I installed successfully python3-glad. Then the following error appears in the compilation of libplacebo-6
Quote:
usr/bin/ld: demos/plplay.p/plplay.c.o*: dans la fonction «*main*»*:
plplay.c.text.startup+0x6b): undefined reference to `parse_args'
collect2: erreur: ld a retourné le statut de sortie 1
ninja: build stopped: subcommand failed.
Since plplay is in the demos, I removed the option "demos" in meson-buid.txt, and libplacebo-6 compiled successfully.
mpv-0.37 was also compiled successfully after that, and it works correctly so far.
So my question is: in which library is the function "parse_args" ?
parse_args is declared in demos/plplay.p/plplay.h and implemented in demos/plplay.p/settings.c.
However, the implementation is defined only if the flag "HAVE_NUKLEAR" is declared, but to me it doesn't seem to depend on nuklear, it's just parsing cli arguments.
Try to move the implementation outside the "#ifdef HAVE_NUKLEAR" line (it's on line 17 of demos/plplay.p/settings.c) and see if it works.
you can also just pass the -Ddemos=false parameter between the meson options.
On an unrelated note, I hope I am wrong, but most probably libplacebo won't be updated to 6.x on 15.0 because that version requires a vulkan-sdk newer than the one provided by Slackware...
@giomat Compilation is successful if I put the parse_args function outside the "#ifdef HAVE_NUKLEAR" part of demos/plplay.p/settings.c . And the libplacebo.so.338 file is identical to the previous one. So the change only affects the demos.
@giomat Compilation is successful if I put the parse_args function outside the "#ifdef HAVE_NUKLEAR" part of demos/plplay.p/settings.c . And the libplacebo.so.338 file is identical to the previous one. So the change only affects the demos.
Great! Perhaps worth to leave an issue on their github
On 15.0 the main problems for mpv-0.37.0 are the versions of meson and, because of that, the version of libplacebo that is able to be built.
Here is a hack that adds the latest version of meson into /opt which can be used to then build libplacebo and then mpv-0.37.0. Run:
Code:
python3 -m pip install --target /opt meson
Now edit /opt/bin/meson: after the line 'import sys', add a new line with
Code:
sys.path.append('/opt/')
In SBO's libplacebo, update all the versions to 6.338.1. Also in the libplacebo.SlackBuild file at line 92, change 'meson' to '/opt/bin/meson'. Add another line just after that containing (thanks ponce)
Code:
-Ddemos=false \
You should now be able to build (and install when done) the latest libplacebo.
Make similar changes in /multimedia/mpv (version numbers and change 'meson' to '/opt/bin/meson'). mpv-0.37.0 should now build (works for me).
It's not very clean - a proper SlackBuild for meson-1.3.0 (meson-latest?) installing into /opt would make it nicer.
chris
Last edited by chris.willing; 11-23-2023 at 09:03 PM.
On 15.0 the main problems for mpv-0.37.0 are the versions of meson and, because of that, the version of libplacebo that is able to be built.
Here is a hack that adds the latest version of meson into /opt which can be used to then build libplacebo and then mpv-0.37.0. Run:
Code:
python3 -m pip install --target /opt meson
Now edit /opt/bin/meson: after the line 'import sys', add a new line with
Code:
sys.path.append('/opt/')
In SBO's libplacebo, update all the versions to 6.338.1. Also in the libplacebo.SlackBuild file at line 92, change 'meson' to '/opt/bin/meson'. Add another line just after that containing (thanks ponce)
Code:
-Ddemos=false \
You should now be able to build (and install when done) the latest libplacebo.
Make similar changes in /multimedia/mpv (version numbers and change 'meson' to '/opt/bin/meson'). mpv-0.37.0 should now build (works for me).
It's not very clean - a proper SlackBuild for meson-1.3.0 (meson-latest?) installing into /opt would make it nicer.
chris
Hey Chris, I submitted a slackbuild for python3-meson-opt a while back. I haven't upgraded it to 1.3.0 yet if that's what needed, I can get it updated for tomorrow. Then all you need to do is set PYTHONPATH in your slackbuild to use it (see the slackbuild README). I also haven't found that the newer meson bin is needed so far just the module, but the slackbuild installs it to /opt/meson/bin/meson just in case.
Hey Chris, I submitted a slackbuild for python3-meson-opt a while back.
Yes I thought I'd seen something like before that but when I searched for "meson" at the SBo website yesterday, python3-meson-opt didn't come up (it does today). So thanks - I've update the SlackBuild for libplacebo to use it, as well as mpv's update to 0.37.0.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.