All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] libical: add PACKAGECONFIG glib and enable it by default
@ 2019-10-19 13:06 Andreas Müller
  2019-10-25  7:38 ` Andreas Müller
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Müller @ 2019-10-19 13:06 UTC (permalink / raw)
  To: openembedded-core, ross.burton

* As long as there is no solution upstream [1] build src-generator native and
  adjust cmake file to find it
* libical-glib is a mandatory dependency for evolution-data-server >= 3.34

[1] https://github.com/libical/libical/issues/394

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
 ...-our-hand-build-native-src-generator.patch | 33 +++++++++++++++++++
 meta/recipes-support/libical/libical_3.0.6.bb | 24 +++++++++-----
 2 files changed, 49 insertions(+), 8 deletions(-)
 create mode 100644 meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch

diff --git a/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch b/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch
new file mode 100644
index 0000000000..73f83ef481
--- /dev/null
+++ b/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch
@@ -0,0 +1,33 @@
+From e33bc310238bba1690f2c71ad333e10b9e422ea9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 19 Oct 2019 14:23:06 +0200
+Subject: [PATCH] Use our hand-build native src-generator
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/libical-glib/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/libical-glib/CMakeLists.txt b/src/libical-glib/CMakeLists.txt
+index f3704e6..ce9db16 100644
+--- a/src/libical-glib/CMakeLists.txt
++++ b/src/libical-glib/CMakeLists.txt
+@@ -63,8 +63,8 @@ endforeach()
+ 
+ add_custom_command (
+   OUTPUT ${LIBICAL_GLIB_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/libical-glib-private.h ${CMAKE_CURRENT_BINARY_DIR}/i-cal-forward-declarations.h
+-  COMMAND ${EXECUTABLE_OUTPUT_PATH}/src-generator "${CMAKE_CURRENT_SOURCE_DIR}/tools" "${CMAKE_CURRENT_SOURCE_DIR}/api"
+-  DEPENDS ${EXECUTABLE_OUTPUT_PATH}/src-generator ${xml_files}
++  COMMAND ${CMAKE_BINARY_DIR}/src-generator "${CMAKE_CURRENT_SOURCE_DIR}/tools" "${CMAKE_CURRENT_SOURCE_DIR}/api"
++  DEPENDS ${CMAKE_BINARY_DIR}/src-generator ${xml_files}
+ )
+ 
+ configure_file(
+-- 
+2.21.0
+
diff --git a/meta/recipes-support/libical/libical_3.0.6.bb b/meta/recipes-support/libical/libical_3.0.6.bb
index 032f3655e9..f9be898a12 100644
--- a/meta/recipes-support/libical/libical_3.0.6.bb
+++ b/meta/recipes-support/libical/libical_3.0.6.bb
@@ -7,27 +7,35 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \
                     file://LICENSE.MPL2.txt;md5=9741c346eef56131163e13b9db1241b3"
 SECTION = "libs"
 
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
-
+SRC_URI = " \
+    https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
+    file://0001-Use-our-hand-build-native-src-generator.patch \
+"
 SRC_URI[md5sum] = "463a59244c6767b8e67b29379405e297"
 SRC_URI[sha256sum] = "5c8a21c2b732ece4a33e5c862970b4f35a8548bbcda50de5695f6fc211ac4d97"
 UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
 
 inherit cmake pkgconfig
 
-PACKAGECONFIG ??= "icu"
+do_compile_prepend() {
+	# As long as https://github.com/libical/libical/issues/394 is open build native src-generator manually
+	NATIVE_CFLAGS="${BUILD_CFLAGS} `pkg-config-native --cflags glib-2.0` `pkg-config-native --cflags libxml-2.0`"
+	NATIVE_LDFLAGS="${BUILD_LDFLAGS} `pkg-config-native --libs glib-2.0` `pkg-config-native --libs libxml-2.0`"
+	${BUILD_CC} $NATIVE_CFLAGS ${S}/src/libical-glib/tools/generator.c ${S}/src/libical-glib/tools/xml-parser.c -o ${B}/src-generator $NATIVE_LDFLAGS
+}
+
+PACKAGECONFIG ??= "icu glib"
 PACKAGECONFIG[bdb] = ",-DCMAKE_DISABLE_FIND_PACKAGE_BDB=True,db"
+PACKAGECONFIG[glib] = "-DICAL_GLIB=True,-DICAL_GLIB=False,glib-2.0-native libxml2-native glib-2.0 libxml2"
 # ICU is used for RSCALE (RFC7529) support
 PACKAGECONFIG[icu] = ",-DCMAKE_DISABLE_FIND_PACKAGE_ICU=True,icu"
 
 # No need to use perl-native, the host perl is sufficient.
 EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
+# doc build fails with linker error (??) for libical-glib so disable it
+EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
 
-# The glib library can't be cross-compiled, disable for now.
-# https://github.com/libical/libical/issues/394
-EXTRA_OECMAKE += "-DICAL_GLIB=false"
-
-do_install_append_class-target () {
+do_install_append () {
     # Remove build host references
     sed -i \
        -e 's,${STAGING_LIBDIR},${libdir},g' \
-- 
2.21.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] libical: add PACKAGECONFIG glib and enable it by default
  2019-10-19 13:06 [PATCH] libical: add PACKAGECONFIG glib and enable it by default Andreas Müller
@ 2019-10-25  7:38 ` Andreas Müller
  2019-10-28 16:38   ` Ross Burton
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Müller @ 2019-10-25  7:38 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer, Burton, Ross

On Sat, Oct 19, 2019 at 3:06 PM Andreas Müller <schnitzeltony@gmail.com> wrote:
>
> * As long as there is no solution upstream [1] build src-generator native and
>   adjust cmake file to find it
> * libical-glib is a mandatory dependency for evolution-data-server >= 3.34
>
> [1] https://github.com/libical/libical/issues/394
>
> Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Haven't tested but it might not apply no more after patch adding
DESCRIPTION & HOMEPAGE in gnome recipes. Before I go and rebase I want
to ask (seems motivation to apply this is limited): Does this has a
chance of being accepted. If not:

* Why - it is meant as temporary solution
* What way would be accepted to get libical-glib building?

Cheers

Andreas


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] libical: add PACKAGECONFIG glib and enable it by default
  2019-10-25  7:38 ` Andreas Müller
@ 2019-10-28 16:38   ` Ross Burton
  0 siblings, 0 replies; 3+ messages in thread
From: Ross Burton @ 2019-10-28 16:38 UTC (permalink / raw)
  To: Andreas Müller, Patches and discussions about the oe-core layer

On 25/10/2019 08:38, Andreas Müller wrote:
> On Sat, Oct 19, 2019 at 3:06 PM Andreas Müller <schnitzeltony@gmail.com> wrote:
>>
>> * As long as there is no solution upstream [1] build src-generator native and
>>    adjust cmake file to find it
>> * libical-glib is a mandatory dependency for evolution-data-server >= 3.34
>>
>> [1] https://github.com/libical/libical/issues/394
>>
>> Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
> Haven't tested but it might not apply no more after patch adding
> DESCRIPTION & HOMEPAGE in gnome recipes. Before I go and rebase I want
> to ask (seems motivation to apply this is limited): Does this has a
> chance of being accepted. If not:
> 
> * Why - it is meant as temporary solution
> * What way would be accepted to get libical-glib building?

Looks good to me and merges fine here.  Upstream is told they're broken, 
so unless we find someone who understands cmake enough to fix the build 
properly we can hang on to this minor hack.

Ross


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-10-28 16:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-19 13:06 [PATCH] libical: add PACKAGECONFIG glib and enable it by default Andreas Müller
2019-10-25  7:38 ` Andreas Müller
2019-10-28 16:38   ` Ross Burton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.