[oe] [meta-oe][PATCH] glog: upgrade 0.3.4 -> 0.3.5

Martin Jansa martin.jansa at gmail.com
Mon Oct 15 11:11:12 UTC 2018


On Tue, Oct 09, 2018 at 11:52:36AM +0200, Vyacheslav Yurkov wrote:
> Well, two obvious reasons:
> - glog fixes between 0.3.4 and 0.3.5
> - cmake support, which simplifies dependency handling when SDK generation
> is involved (for example for libraries like ceres-solver)
> 
> I need to update my patch for finding libunwind, so I will send another
> version soon. The question I have now is that glog builds static library by
> default. What is the policy in that regard? Should a shared library be
> preferred by default?

I know I'm a bit late, but I have some questions about shared library.

The preferred default should IMHO be the same as with 0.3.4 version
which was shared library, but that's easy to add with small bbappend
having:
EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"

but unfortunately the SONAME in the library changed from:
objdump -x usr/lib/libglog.so.0.0.0 | grep SONAME
  SONAME               libglog.so.0
in 0.3.4 to:
objdump -x usr/lib/libglog.so.0.3.5  | grep SONAME
  SONAME               libglog.so.0.3.5

Which breaks all our prebuilt binaries which now correctly complain that
there isn't libglog.so.0 provider in dependencies:
QA Issue: /usr/lib/libfoo.so.1.2.3 contained in package libfoo requires libglog.so.0, but no providers found in RDEPENDS_libfoo

Which is quite unfortunate for minor upgrade. Did they really change the
ABI (and expect to change it in all future minor upgrades) or is this
change just unexpected side-effect of using cmake instead of autotools?

It looks the later, because if I build 0.3.5 version with autotools I
get:
objdump -x usr/lib/libglog.so.0.0.0 | grep SONAME
  SONAME               libglog.so.0

and there is patch for SOVERSION here as well:
https://github.com/google/or-tools/blob/master/patches/glog.patch

applied in master:
https://github.com/google/glog/blob/master/CMakeLists.txt#L493
https://github.com/google/glog/commit/6b6e38a7d53fe01f42ce34384cf4ba4c50e8cb65#diff-af3b638bc2a3e6c650974192a53c7291

patch coming with this change backported to make it possible again to
use the shared library.

> 
> Vyacheslav
> 
> On Mon, Oct 8, 2018 at 3:42 PM Khem Raj <raj.khem at gmail.com> wrote:
> 
> > On Mon, Oct 8, 2018 at 2:18 AM Vyacheslav Yurkov <uvv.mail at gmail.com>
> > wrote:
> > >
> > > Upgraded glog recipe to a new stable version in favor of cmake
> > configuration
> > > Old configure.ac patch is removed.
> > >
> > > Another cmake patch is added. When UNWIND_LIBRARY is used directly as a
> > public
> > > dependency then absolute path is stored in cmake config file.
> > > This is an issue when glog is used as part of generated SDK, which was
> > built
> > > on another machine. When SDK is installed on developer's machine,
> > > cmake config contains a full path to non-existent location.
> > > The solution is to find libunwind during configure stage and store target
> > > name as a dependency, not a full path
> > >
> > > Signed-off-by: Vyacheslav Yurkov <uvv.mail at gmail.com>
> > > ---
> > >  ...gure.ac-Allow-user-to-disable-gflags.patch | 35 -------------------
> > >  ...0001-find-libunwind-during-configure.patch | 30 ++++++++++++++++
> > >  .../glog/{glog_0.3.4.bb => glog_0.3.5.bb}     | 13 +++----
> > >  3 files changed, 37 insertions(+), 41 deletions(-)
> > >  delete mode 100644
> > meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
> > >  create mode 100644
> > meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch
> > >  rename meta-oe/recipes-support/glog/{glog_0.3.4.bb => glog_0.3.5.bb}
> > (55%)
> > >
> > > diff --git
> > a/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
> > b/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
> > > deleted file mode 100644
> > > index 596281ff6..000000000
> > > ---
> > a/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
> > > +++ /dev/null
> > > @@ -1,35 +0,0 @@
> > > -From 0fabde0515e180c53961c27346dd7a79cffa4c1f Mon Sep 17 00:00:00 2001
> > > -From: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
> > > -Date: Thu, 11 Aug 2016 11:49:36 +0200
> > > -Subject: [PATCH] configure.ac: Allow user to disable gflags
> > > -
> > > -Under some circumstances like cross-compilation, the user might not want
> > > -to enable support for gflags.
> > > -
> > > -This patch allows support for --without-gflags
> > > -
> > > -Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
> > > ----
> > > - configure.ac | 6 +++++-
> > > - 1 file changed, 5 insertions(+), 1 deletion(-)
> > > -
> > > -diff --git a/configure.ac b/configure.ac
> > > -index 7b4d21e7ae8a..eba5e5cda1ea 100644
> > > ---- a/configure.ac
> > > -+++ b/configure.ac
> > > -@@ -136,7 +136,11 @@ AC_ARG_WITH(gflags,
> > AS_HELP_STRING[--with-gflags=GFLAGS_DIR],
> > > -   CFLAGS="$CFLAGS $GFLAGS_CFLAGS"
> > > -   LIBS="$LIBS $GFLAGS_LIBS"
> > > - )
> > > --AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1,
> > ac_cv_have_libgflags=0)
> > > -+if test x"$with_gflags" = x"no"; then
> > > -+  ac_cv_have_libgflags=0
> > > -+else
> > > -+  AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1,
> > ac_cv_have_libgflags=0)
> > > -+fi
> > > - if test x"$ac_cv_have_libgflags" = x"1"; then
> > > -   AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags
> > library])
> > > -   if test x"$GFLAGS_LIBS" = x""; then
> > > ---
> > > -2.8.1
> > > -
> > > diff --git
> > a/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch
> > b/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch
> > > new file mode 100644
> > > index 000000000..33dc9d38a
> > > --- /dev/null
> > > +++
> > b/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch
> > > @@ -0,0 +1,30 @@
> > > +diff -ur git/CMakeLists.txt ../0.3.5-r0.unwind/git/CMakeLists.txt
> > > +--- git/CMakeLists.txt 2018-10-08 08:54:15.118989400 +0200
> > > ++++ ../0.3.5-r0.unwind/git/CMakeLists.txt      2018-10-05
> > 16:26:59.745922318 +0200
> > > +@@ -384,7 +384,9 @@
> > > + set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON)
> > > +
> > > + if (UNWIND_LIBRARY)
> > > +-  target_link_libraries (glog PUBLIC ${UNWIND_LIBRARY})
> > > ++  add_library(unwind SHARED IMPORTED)
> > > ++  set_target_properties(unwind PROPERTIES IMPORTED_LOCATION
> > ${UNWIND_LIBRARY})
> > > ++  target_link_libraries (glog PUBLIC unwind)
> > > + endif (UNWIND_LIBRARY)
> > > +
> > > + if (HAVE_PTHREAD)
> > > +diff -ur git/glog-config.cmake.in ../0.3.5-r0.unwind/git/
> > glog-config.cmake.in
> > > +--- git/glog-config.cmake.in   2018-10-08 08:54:15.122989699 +0200
> > > ++++ ../0.3.5-r0.unwind/git/glog-config.cmake.in        2018-10-08
> > 08:14:48.550745810 +0200
> > > +@@ -4,4 +4,12 @@
> > > +
> > > + @gflags_DEPENDENCY@
> > > +
> > > ++find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
> > > ++mark_as_advanced (UNWIND_LIBRARY)
> > > ++
> > > ++if (UNWIND_LIBRARY)
> > > ++  add_library(unwind SHARED IMPORTED)
> > > ++  set_target_properties(unwind PROPERTIES IMPORTED_LOCATION
> > ${UNWIND_LIBRARY})
> > > ++endif (UNWIND_LIBRARY)
> > > ++
> > > + include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
> > > diff --git a/meta-oe/recipes-support/glog/glog_0.3.4.bb
> > b/meta-oe/recipes-support/glog/glog_0.3.5.bb
> > > similarity index 55%
> > > rename from meta-oe/recipes-support/glog/glog_0.3.4.bb
> > > rename to meta-oe/recipes-support/glog/glog_0.3.5.bb
> > > index d7c1974c6..bf7df53f3 100644
> > > --- a/meta-oe/recipes-support/glog/glog_0.3.4.bb
> > > +++ b/meta-oe/recipes-support/glog/glog_0.3.5.bb
> > > @@ -9,15 +9,16 @@ LIC_FILES_CHKSUM =
> > "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
> > >  DEPENDS = "libunwind"
> > >
> > >  SRC_URI = " \
> > > -    git://github.com/google/glog.git \
> > > -    file://0001-configure.ac-Allow-user-to-disable-gflags.patch \
> > > +    git://github.com/google/glog.git;branch=v035 \
> > > +    file://0001-find-libunwind-during-configure.patch \
> > >  "
> > >
> > > -SRCREV = "d8cb47f77d1c31779f3ff890e1a5748483778d6a"
> > > +SRCREV = "a6a166db069520dbbd653c97c2e5b12e08a8bb26"
> > >
> > >  S = "${WORKDIR}/git"
> > >
> > > -PACKAGECONFIG ??= ""
> > > -PACKAGECONFIG[gflags] = ",--without-gflags,gflags,"
> > > +inherit cmake
> > >
> > > -inherit autotools pkgconfig
> > > +RDEPENDS_${PN}-dev = ""
> > > +RRECOMMENDS_${PN}-dev = "${PN}-staticdev"
> > > +RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
> >
> > why do we need the above change
> >
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20181015/c8649d6a/attachment-0002.sig>


More information about the Openembedded-devel mailing list