[Buildroot] [PATCH v4 5/6] qt5base: Fix inconsistencies when overriding qmake properties

Arnout Vandecappelle arnout at mind.be
Mon Apr 15 08:55:57 UTC 2019

On 15/04/2019 08:34, Andreas Naumann wrote:
> Hi Arnout,
> Am 14.04.19 um 12:12 schrieb Arnout Vandecappelle:
>> On 22/03/2019 19:39, Andreas Naumann wrote:
>>> When querying the qmake properties with our custom qt.conf present, I noticed
>>> that they were different from the built-in ones (without qt.conf).
>>> Most notably QT_INSTALL_PREFIX was a concatenated string of two absolute pathes
>>> (hostdir + sysroot).
>>> This is due to Prefix being set to our HOST_DIR and HostPrefix not being set at
>>> all. I guess this was also the root cause of the initial problem with
>>> qt.conf.in, because once Prefix and HostPrefix were set to their correct values,
>>> re-setting all the other default pathes became obsolete. (However, since our
>>> pathes for Headers, Plugins and Examples are non-default, they still have to be
>>> explicitely set.)
>>> There is one additional exception to this: Omitting 'Settings' leads to the
>>> CONFIGURATION path being plain /usr, whereas the default without qt.conf is
>>> /usr/etc/xdg. Thus 'Settings' is now also explicitely set, in order to keep
>>> behaviour with/without qt.conf as similar as possible.
>>   Since you said this patch is indeed independent of the rest, I was about to
>> apply, but then I noticed this...
>>   In the original qt.conf.in, Settings was explicitly set to /usr. Now, you
>> change it back to /usr/etc/xdg, which is indeed the Qt default. However, would
>> this not lead to runtime problems for people who actually use the settings
>> directory, because it will have changed location after Buildroot upgrade? If we
>> had the Qt default overridden before, I think we should keep that override (even
>> if it is maybe not such a great idea to override it).
> I agree and actually was a bit unsure if changing the value would create issues
> for anybody. However within buildroot I have not found a package that actually
> deploys anything to /usr/etc/xdg, which could also mean I didnt look hard enough.

 I can't say I *really* know what this Settings configuration is doing, but I
*think* it is used by applications (and we don't ship many qt5-based
applications, mainly libraries). Also I think it will typically not be populated
during installation, but it will be used at runtime to read and save global

> I will try to finally prepare v5 of the set tonight. If I dont hear anything
> else, I'll set the value back to /usr.

 Okay, thanks.


> regards,
> Andreas
>>> Signed-off-by: Andreas Naumann <anaumann at ultratronik.de>
>>> ---
>>>   package/qt5/qt5base/qt.conf.in | 17 +++--------------
>>>   1 file changed, 3 insertions(+), 14 deletions(-)
>>> diff --git a/package/qt5/qt5base/qt.conf.in b/package/qt5/qt5base/qt.conf.in
>>> index 9a0b9cd53b..46ebe61614 100644
>>> --- a/package/qt5/qt5base/qt.conf.in
>>> +++ b/package/qt5/qt5base/qt.conf.in
>>> @@ -1,19 +1,8 @@
>>>   [Paths]
>>> -Prefix=@@HOST_DIR@@
>>> +Prefix=/usr
>>> +HostPrefix=@@HOST_DIR@@
>>>   Sysroot=@@STAGING_DIR@@
>>>   Headers=/usr/include/qt5
>>> -Libraries=/usr/lib
>>> -LibraryExecutables=/usr/libexec
>>> -Binaries=/usr/bin
>>>   Plugins=/usr/lib/qt/plugins
>>>   Examples=/usr/lib/qt/examples
>>> -Qml2Imports=/usr/qml
>>> -Imports=/usr/imports
>>> -Translations=/usr/translations
>>> -Examples=/usr/lib/qt/examples
>>> -Demos=/usr/lib/qt/examples
>>> -Tests=/usr/tests
>>> -Settings=/usr
>>   This is the original setting of Settings.
>>   Regards,
>>   Arnout
>>> -Documentation=/usr/doc
>>> -ArchData=/usr
>>> -Data=/usr
>>> +Settings=/usr/etc/xdg

More information about the buildroot mailing list