[vlc-devel] [vlc-commits] configure: unbreak cross-pkg-config support with contrib

Rémi Denis-Courmont remi at remlab.net
Tue Mar 4 08:50:43 CET 2014


On Mon, 03 Mar 2014 21:00:23 +0100, Rafaël Carré <funman at videolan.org>
wrote:
> Where's
> 
> On 03/03/14 15:23, Rémi Denis-Courmont wrote:
>> On Mon, 03 Mar 2014 15:07:16 +0100, Rémi Denis-Courmont
>> <remi at remlab.net>
>> wrote:
>>>> What is 'cross-pkg-config tools' exactly ?
>>>
>>> $(CROSS)-pkg-config.
>>>
>>>> I only saw something like this in Fedora and I have no idea yet how
>>>> hacky it is.
>>>
>>> Debian does it too and I believe it is part of pkg-config.
>> 
>> Indeed, that actually comes from upstream pkg-config, not from Debian
>> mingw64-tools. The automake macro calls AC_CHECK_TOOL expecting a
>> $(host)-specific cross-tool (as opposed to AC_CHECK_PROG) just like the
>> compiler and the linker. So this commit is just matching the expected
>> pkg-config usage.
> 
> We can make sure we're always using 'pkg-config' instead of a
> distro-specific
> $(CROSS)-pkg-config.

Essentially, this amounts to breaking correctly configured SDKs to
optimize for unconfigured ones. I don't know if it works. But that seems
rather cumbersone, as compared to configuring the unconfigured SDKs.
Unincidentally, this is basically what contrib already does. It does set
the pkg-config environment correctly for cross-compilation targets that
lack those environment variables, globally - not in the per-package
configure script or Makefile or whatever.

> If you want to use distibution provided cross libraries (I am not sure
> if that is a good idea anyway) you can always use export
> PKG_CONFIG_PATH=/distro/prefix

For the fifth or sixth time now, the pkg-config automake macro favors the
cross-prefix pkg-config over the native one. Sure, I find it convenient.
But this is NOT my decision any more than it was my decision to derecursify
the build system last summer. This is how autotools work. If you want to
use something else than autotools, you are more than welcome to propose a
better alternative. I do not have time for that.

>> Generally speaking, it is not the job of the contrib snippet of the VLC
>> configure script to guess whether the pkg-config environment is right
or
>> wrong, anymore than that of other build tools. That is the job of the
>> caller (of the script) or of the SDK. The --with-contrib option is
meant
>> to *add* contribs to the search path.
> 
> Your goal toward perfection and guessing whose job is what might be
> commendable.
> 
> However as you were told before I will not let you break other people
> setup doing so.

While it is arguably laudable to protect people from build breakages, this
is self-defeating purpose.
Reverting this patch and reintroducing the kludgy correlation between
using VLC contribs and cross-compiling on the one hand, and overriding the
pkg-config library path on the other hand, does break the Win32
configuration of anyone with a system like mine.

> That patch is at best incomplete if not completely incorrect (for
> handling a distro specific script)

pkg.m4 is not a distribution-specific script. It calls AC_CHECK_TOOLS, not
AC_CHECK_PROGS.

> and in any case should have been posted here before.

You say that and you proclaim yourself the Windows maintainer. The reality
with the Win32 port however is that:

- Packaging has been (accidentally) broken for over a year by Felix with
NPAPI. He acknowledged but reported his inability to fix it. The bug has
been reported for quite a while.
- Packaging depends on a hard-coded path to WINE for the ActiveX. That
breaks any system who WINE path does not match that of the Makefile author
(including any recent Linux distro), and prevents builds from non-x86.
- Without this patch, configure will not even complete with mingw64-tools.
- With recent Mingw64, you have to hack and remove files from the SDK to
avoid linking against pthread (not much the spirit of the GPL).
- Also with that, VLC depends on gcc_s without sources for it.

So it rather looks like Win32 is not maintained. Yeah, JB spends a lot of
time doing QA and support. Felix A and myself have done some improvements
and fixes here and there. And you have deteriotated the desktop version for
the sake of the store variant, *against* review comments from both JB and
myself. *I* cleaned them up. By that measure, I am paradoxically enough
closer to Win32 maintainer than you.

Furthermore, I did report several time in the last month build problems.
JB did some efforts to help me. You did not do anything, even though you
claim that you would be helping. So sorry, but if anyone is the Windows
maintainer, that would probably be JB.

> As it breaks win32 builds with only pkg-config and android builds it
> must be reverted now.

It unbreaks Win32 builds with "not only" pkg-config.

I don't understand what's so hard about setting your PKG_CONFIG_LIBDIR
correctly before calling configure.I also do not understand why you make
such a controversy out of it; setting environment variables for
cross-compilation is not exactly new, peculiar, or specific to this patch.

-- 
Rémi Denis-Courmont
Sent from my collocated server



More information about the vlc-devel mailing list