Skip to contentSkip to conversation

qtbase-native: Force use of built-in pcre

PATCH In review Mike Crowe 2 participants 4 messages Sep 8, 2017 – Sep 22, 2017

lore
Share & tools
lore

Mike Crowe

author
#0 lore raw

PATCH 1/1 qtbase-native: Force use of built-in pcre

If we specify neither -system-pcre nor -qt-pcre then qtbase will first see if it can find the pcre library in the system and fall back to compiling its own if that's not possible.

Unfortunately, this means that if qtbase-native happens to be built on a machine with system pcre available then the resulting binaries such as bin/qt5/uic in sstate files won't work correctly on machines that don't have pcre available. Even ignoring that, it doesn't help for packages to build differently depending on how the build system is configured.

We could depend on pcre-native and pass -system-pcre, but this doesn't work by default because qtbase actually requires pcre16 which is an optional (via PACKAGECONFIG) feature of pcre so the default there would need to be changed too.

So, let's make qtbase-native match the default of qtbase by passing -qt-pcre in order to ensure that qtbase-native is always built with its own pcre implementation.

---
 recipes-qt/qt5/qtbase-native_git.bb | 1 +
 1 file changed, 1 insertion(+)
recipes-qt/qt5/qtbase-native_git.bb +1 -0
index 54a0b78..0951ede 100644
@@ -46,6 +46,7 @@ PACKAGECONFIG_CONFARGS = " \
     -sysroot ${STAGING_DIR_NATIVE} \
     -no-gcc-sysroot \
     -system-zlib \
+    -qt-pcre \
     -no-libjpeg \
     -no-libpng \
     -no-gif \
Signature · 1 line
2.11.0
author
#1 lore raw
Quoted 29 lines · Mike Crowe

If we specify neither -system-pcre nor -qt-pcre then qtbase will first see if it can find the pcre library in the system and fall back to compiling its own if that's not possible.

Unfortunately, this means that if qtbase-native happens to be built on a machine with system pcre available then the resulting binaries such as bin/qt5/uic in sstate files won't work correctly on machines that don't have pcre available. Even ignoring that, it doesn't help for packages to build differently depending on how the build system is configured.

We could depend on pcre-native and pass -system-pcre, but this doesn't work by default because qtbase actually requires pcre16 which is an optional (via PACKAGECONFIG) feature of pcre so the default there would need to be changed too.

So, let's make qtbase-native match the default of qtbase by passing -qt-pcre in order to ensure that qtbase-native is always built with its own pcre implementation.

---
 recipes-qt/qt5/qtbase-native_git.bb | 1 +
 1 file changed, 1 insertion(+)
recipes-qt/qt5/qtbase-native_git.bb +0 -0
index 54a0b78..0951ede 100644

recipes-qt/qt5/qtbase-native_git.bb PACKAGECONFIG_CONFARGS = " \ · line 52

Quoted 7 lines
recipes-qt/qt5/qtbase-native_git.bb +1 -0
@@ -46,6 +46,7 @@ PACKAGECONFIG_CONFARGS = " \
     -sysroot ${STAGING_DIR_NATIVE} \
     -no-gcc-sysroot \
     -system-zlib \
+    -qt-pcre \
     -no-libjpeg \
     -no-libpng \
     -no-gif \

Does anyone have any objections to this?

We've been using it for several weeks now and it's not caused any observed problems.

Thanks.

Mike.

#2 lore raw
Quoted 40 lines · Mike Crowe
Quoted 29 lines · Mike Crowe

If we specify neither -system-pcre nor -qt-pcre then qtbase will first see if it can find the pcre library in the system and fall back to compiling its own if that's not possible.

Unfortunately, this means that if qtbase-native happens to be built on a machine with system pcre available then the resulting binaries such as bin/qt5/uic in sstate files won't work correctly on machines that don't have pcre available. Even ignoring that, it doesn't help for packages to build differently depending on how the build system is configured.

We could depend on pcre-native and pass -system-pcre, but this doesn't work by default because qtbase actually requires pcre16 which is an optional (via PACKAGECONFIG) feature of pcre so the default there would need to be changed too.

So, let's make qtbase-native match the default of qtbase by passing -qt-pcre in order to ensure that qtbase-native is always built with its own pcre implementation.

---
 recipes-qt/qt5/qtbase-native_git.bb | 1 +
 1 file changed, 1 insertion(+)
recipes-qt/qt5/qtbase-native_git.bb +0 -0
index 54a0b78..0951ede 100644

recipes-qt/qt5/qtbase-native_git.bb PACKAGECONFIG_CONFARGS = " \ · line 52

Quoted 7 lines
recipes-qt/qt5/qtbase-native_git.bb +1 -0
@@ -46,6 +46,7 @@ PACKAGECONFIG_CONFARGS = " \
     -sysroot ${STAGING_DIR_NATIVE} \
     -no-gcc-sysroot \
     -system-zlib \
+    -qt-pcre \
     -no-libjpeg \
     -no-libpng \
     -no-gif \

Does anyone have any objections to this?

Quoted 2 lines

We've been using it for several weeks now and it's not caused any observed problems.

It's already merged:
https://github.com/meta-qt5/meta-qt5/commit/743b3b93e17f5382fd1f9f4e0d2932501c8a3c78

Quoted 9 lines

Thanks.

Mike.

Signature · 4 lines
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]