Lisandro Damián Nicanor Pérez Meyer:
> Hi everyone!

Greetings again Lisandro. :)

> El miércoles, 16 de enero de 2019 14:53:19 -03 Helmut Grohne escribió:
>> Hi Chris,
>>
> [snip]
>>> I had a chance to review the patch.  The fix hinges on this function call:
>>>    PKG_CONFIG = $$pkgConfigExecutable()
>>>
>>> Could you let me know where this function call exists, i.e. what package
>>> it's in so I can look at it?  I haven't been able to find it, and to try
>>> to get a patch upstream I need to understand and be able to explain what
>>> this is for and what it does.
>>
>> Unfortunately, I cannot precisely answer that question. I'll have to
>> defer to Lisandro or Dmitry (both Cced here). In any case, the reason is
>> that your dependencies (aka .pc files) may be present for multiple
>> architectures and for cross building that matters. So you need to
>> somehow specify to pkg-config, which architecture you are interested in.
>> On Debian systems you do that by invoking a different pkg-config.
>> Typically, that's ${DEB_HOST_GNU_TYPE}-pkg-config. So I can tell, what
>> this call does (but not where it comes from): It returns the pkg-config
>> that the user (in this case dh_auto_configure) supplied to the build.
>>
>> A quick codesearch[1] reveals that it is defined somewhere in
>> qtbase-opensource-src, so it should come with any qmake installation
>> based on qt5.
> 
> qmake as a build system has support for using pkgconfig. I have not used this 
> myself (I strongly prefer CMake), but glazing at the code it's just the way 
> qmake passes the path to pkgconfig.

Looking at the code (below), that sounds right.

This is what I was looking for:

root@code-devel:/# fgrep -r pkgConfigExecutable /usr/*
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf:defineReplace(pkgConfigExecutable)
{
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf:    pkg_config =
$$pkgConfigExecutable()

root@code-devel:/# dpkg -S
/usr/lib/x85_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf
qt5-qmake:amd64: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf

So it's part of the qt5-qmake package, thus part of Qt5 itself.  That's most of
what I needed to know.

The code section in qt_functions.prf:

[...]
defineReplace(pkgConfigExecutable) {
    isEmpty(PKG_CONFIG) {
        !isEmpty(QMAKE_PKG_CONFIG): \
            PKG_CONFIG = $$QMAKE_PKG_CONFIG
        else: \
            PKG_CONFIG = pkg-config

        sysroot.name = PKG_CONFIG_SYSROOT_DIR
        sysroot.value = $$PKG_CONFIG_SYSROOT_DIR
        libdir.name = PKG_CONFIG_LIBDIR
        libdir.value = $$PKG_CONFIG_LIBDIR
        QT_TOOL_NAME = pkg-config
        qtAddToolEnv(PKG_CONFIG, sysroot libdir, SYS)
    }

    equals(QMAKE_HOST.os, Windows): \
        PKG_CONFIG += 2> NUL
    else: \
        PKG_CONFIG += 2> /dev/null

    return($$PKG_CONFIG)
}
[...]

I'm satisfied.  I'll open an issue with Mumble upstream to see if I can get the
patch incorporated for Mumble 1.3.  The build for mumble
1.3.0~git20190114.9fcc588+dfsg-1 hasn't completed for 3 architectures, and I'd
like to wait the 5 days for the package to transition to Testing/Buster -- I
plan to upload a package with the patch after that.

Thanks very much for this work.

   -- Chris

-- 
Chris Knadle
chris.kna...@coredump.us

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to