Discussion:
Help needed updating vlc to version 3.0.1.
Mark H Weaver
2018-04-21 08:36:52 UTC
Permalink
Hello Guix,

Below I've attached a draft patch to update vlc to 3.0.1, and also to
add several more inputs based on reading the output of the 'configure'
script.

It builds successfully and mostly works except for one problem: the
icons are missing from the control buttons on the main window of the Qt
interface. The icons in question are .svg files in the source tarball,
but are converted into data structures within C++ source code using
'rcc'.

strace reveals that vlc is performing 'stat' system calls on bogus file
names beginning with ":/", e.g. ":/toolbar/play_b.svg". These
correspond to the missing icons. According to
<https://doc.qt.io/archives/qt-4.8/resources.html>, these names that
begin with ":/" are meant to be references to resources that were
imported using 'rcc'.

I can't afford to spend more time on this right now. I don't use vlc
myself, but for security reasons I think it's important to keep our
media players up-to-date, especially media players like vlc that bundle
their own codecs. I expect that vlc is quite popular, which makes it
all the more important.

I'm hoping that someone with more knowledge of Qt will step up to debug
this problem. Any volunteers?

Note, this patch is based on core-updates, but hopefully it would work
on 'master' too.

Mark
Chris Marusich
2018-04-21 19:53:13 UTC
Permalink
Hi Mark,
Post by Mark H Weaver
Below I've attached a draft patch to update vlc to 3.0.1, and also to
add several more inputs based on reading the output of the 'configure'
script.
Thank you for working on this! I don't have a solution, but I wanted to
ask: why not post this to guix-***@gnu.org? That way, it's less
likely we will forget about it, and it is more likely that somebody
perusing the patches might pick it up later.
--
Chris
Mark H Weaver
2018-04-21 20:20:07 UTC
Permalink
Post by Chris Marusich
Post by Mark H Weaver
Below I've attached a draft patch to update vlc to 3.0.1, and also to
add several more inputs based on reading the output of the 'configure'
script.
Thank you for working on this! I don't have a solution, but I wanted to
likely we will forget about it, and it is more likely that somebody
perusing the patches might pick it up later.
Indeed, you are right. 'guix-patches' is the proper venue for this.
I will post it there after crafting a proper commit log.

Thanks,
Mark
Roel Janssen
2018-04-23 22:00:52 UTC
Permalink
Post by Mark H Weaver
Hello Guix,
Below I've attached a draft patch to update vlc to 3.0.1, and also to
add several more inputs based on reading the output of the 'configure'
script.
It builds successfully and mostly works except for one problem: the
icons are missing from the control buttons on the main window of the Qt
interface. The icons in question are .svg files in the source tarball,
but are converted into data structures within C++ source code using
'rcc'.
strace reveals that vlc is performing 'stat' system calls on bogus file
names beginning with ":/", e.g. ":/toolbar/play_b.svg". These
correspond to the missing icons. According to
<https://doc.qt.io/archives/qt-4.8/resources.html>, these names that
begin with ":/" are meant to be references to resources that were
imported using 'rcc'.
I can't afford to spend more time on this right now. I don't use vlc
myself, but for security reasons I think it's important to keep our
media players up-to-date, especially media players like vlc that bundle
their own codecs. I expect that vlc is quite popular, which makes it
all the more important.
I'm hoping that someone with more knowledge of Qt will step up to debug
this problem. Any volunteers?
Note, this patch is based on core-updates, but hopefully it would work
on 'master' too.
Thanks a lot for working on this! I applied your patch to ‘master’ and
built VLC. It is missing the icons.

Then I manually built it inside a ‘guix environment vlc’.
Launching it shows the icons. Leaving the environment and running the
same executable misses the icons.

Could it be that we need to propagate an input?
I'll try to dissect it further.

Kind regards,
Roel Janssen
Roel Janssen
2018-04-23 22:09:55 UTC
Permalink
Post by Roel Janssen
Post by Mark H Weaver
Hello Guix,
Below I've attached a draft patch to update vlc to 3.0.1, and also to
add several more inputs based on reading the output of the 'configure'
script.
It builds successfully and mostly works except for one problem: the
icons are missing from the control buttons on the main window of the Qt
interface. The icons in question are .svg files in the source tarball,
but are converted into data structures within C++ source code using
'rcc'.
strace reveals that vlc is performing 'stat' system calls on bogus file
names beginning with ":/", e.g. ":/toolbar/play_b.svg". These
correspond to the missing icons. According to
<https://doc.qt.io/archives/qt-4.8/resources.html>, these names that
begin with ":/" are meant to be references to resources that were
imported using 'rcc'.
I can't afford to spend more time on this right now. I don't use vlc
myself, but for security reasons I think it's important to keep our
media players up-to-date, especially media players like vlc that bundle
their own codecs. I expect that vlc is quite popular, which makes it
all the more important.
I'm hoping that someone with more knowledge of Qt will step up to debug
this problem. Any volunteers?
Note, this patch is based on core-updates, but hopefully it would work
on 'master' too.
Thanks a lot for working on this! I applied your patch to ‘master’ and
built VLC. It is missing the icons.
Then I manually built it inside a ‘guix environment vlc’.
Launching it shows the icons. Leaving the environment and running the
same executable misses the icons.
Could it be that we need to propagate an input?
I'll try to dissect it further.
After setting QT_PLUGIN_PATH outside of the environment, the icons
appear in the Guix-compiled vlc-3.0.1. I think the files in
QT_PLUGIN_PATH do not originate from VLC, but instead from Qt and
QtSvg.

Should we wrap the executable so that QT_PLUGIN_PATH is defined?

Thanks!

Kind regards,
Roel Janssen
Roel Janssen
2018-04-23 22:29:22 UTC
Permalink
Post by Roel Janssen
Post by Mark H Weaver
Hello Guix,
Below I've attached a draft patch to update vlc to 3.0.1, and also to
add several more inputs based on reading the output of the 'configure'
script.
It builds successfully and mostly works except for one problem: the
icons are missing from the control buttons on the main window of the Qt
interface. The icons in question are .svg files in the source tarball,
but are converted into data structures within C++ source code using
'rcc'.
strace reveals that vlc is performing 'stat' system calls on bogus file
names beginning with ":/", e.g. ":/toolbar/play_b.svg". These
correspond to the missing icons. According to
<https://doc.qt.io/archives/qt-4.8/resources.html>, these names that
begin with ":/" are meant to be references to resources that were
imported using 'rcc'.
I can't afford to spend more time on this right now. I don't use vlc
myself, but for security reasons I think it's important to keep our
media players up-to-date, especially media players like vlc that bundle
their own codecs. I expect that vlc is quite popular, which makes it
all the more important.
I'm hoping that someone with more knowledge of Qt will step up to debug
this problem. Any volunteers?
Note, this patch is based on core-updates, but hopefully it would work
on 'master' too.
Thanks a lot for working on this! I applied your patch to ‘master’ and
built VLC. It is missing the icons.
Then I manually built it inside a ‘guix environment vlc’.
Launching it shows the icons. Leaving the environment and running the
same executable misses the icons.
Could it be that we need to propagate an input?
I'll try to dissect it further.
After setting QT_PLUGIN_PATH outside of the environment, the icons
appear in the Guix-compiled vlc-3.0.1. I think the files in
QT_PLUGIN_PATH do not originate from VLC, but instead from Qt and
QtSvg.
Should we wrap the executable so that QT_PLUGIN_PATH is defined?
The attached patch adds such a wrap phase, with which running ‘vlc’ the
icons work again.

Kind regards,
Roel Janssen

Loading...