mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
libcroco: drop recipe
libcroco has been deprecated and was archived by the gnome-project https://gitlab.gnome.org/Archive/libcroco (From OE-Core rev: d53c1aca794ce256b057d63a9a8eaae5bf71fae5) Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
57e3f6ff28
commit
3681db6bb3
@@ -320,7 +320,6 @@ RECIPE_MAINTAINER:pn-libcgroup = "Alexander Kanavin <alex.kanavin@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-libcheck = "Yi Zhao <yi.zhao@windriver.com>"
|
||||
RECIPE_MAINTAINER:pn-libcomps = "Alexander Kanavin <alex.kanavin@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-libconvert-asn1-perl = "Tim Orling <tim.orling@konsulko.com>"
|
||||
RECIPE_MAINTAINER:pn-libcroco = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-libdaemon = "Alexander Kanavin <alex.kanavin@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-libdazzle = "Alexander Kanavin <alex.kanavin@gmail.com>"
|
||||
RECIPE_MAINTAINER:pn-libdnf = "Alexander Kanavin <alex.kanavin@gmail.com>"
|
||||
|
||||
@@ -15,14 +15,9 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||
|
||||
---
|
||||
gettext-tools/gnulib-m4/libxml.m4 | 105 +----------------
|
||||
.../gnulib-local/lib/term-styled-ostream.oo.c | 12 +-
|
||||
libtextstyle/gnulib-local/m4/libcroco.m4 | 98 +++-------------
|
||||
libtextstyle/gnulib-local/m4/libglib.m4 | 106 +++---------------
|
||||
libtextstyle/gnulib-m4/libcroco.m4 | 98 +++-------------
|
||||
libtextstyle/gnulib-m4/libglib.m4 | 106 +++---------------
|
||||
libtextstyle/lib/term-styled-ostream.c | 12 +-
|
||||
libtextstyle/lib/term-styled-ostream.oo.c | 12 +-
|
||||
8 files changed, 79 insertions(+), 470 deletions(-)
|
||||
3 files changed, 79 insertions(+), 470 deletions(-)
|
||||
|
||||
diff --git a/gettext-tools/gnulib-m4/libxml.m4 b/gettext-tools/gnulib-m4/libxml.m4
|
||||
index 0340490..0355388 100644
|
||||
@@ -147,149 +142,6 @@ index 0340490..0355388 100644
|
||||
fi
|
||||
])
|
||||
AC_SUBST([LIBXML])
|
||||
diff --git a/libtextstyle/gnulib-local/lib/term-styled-ostream.oo.c b/libtextstyle/gnulib-local/lib/term-styled-ostream.oo.c
|
||||
index 2ff978f..5ffb17a 100644
|
||||
--- a/libtextstyle/gnulib-local/lib/term-styled-ostream.oo.c
|
||||
+++ b/libtextstyle/gnulib-local/lib/term-styled-ostream.oo.c
|
||||
@@ -22,15 +22,15 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
-#include <cr-om-parser.h>
|
||||
-#include <cr-sel-eng.h>
|
||||
-#include <cr-style.h>
|
||||
-#include <cr-rgb.h>
|
||||
+#include <libcroco/cr-om-parser.h>
|
||||
+#include <libcroco/cr-sel-eng.h>
|
||||
+#include <libcroco/cr-style.h>
|
||||
+#include <libcroco/cr-rgb.h>
|
||||
/* <cr-fonts.h> has a broken double-inclusion guard in libcroco-0.6.1. */
|
||||
#ifndef __CR_FONTS_H__
|
||||
-# include <cr-fonts.h>
|
||||
+# include <libcroco/cr-fonts.h>
|
||||
#endif
|
||||
-#include <cr-string.h>
|
||||
+#include <libcroco/cr-string.h>
|
||||
|
||||
#include "term-ostream.h"
|
||||
#include "mem-hash-map.h"
|
||||
diff --git a/libtextstyle/gnulib-local/m4/libcroco.m4 b/libtextstyle/gnulib-local/m4/libcroco.m4
|
||||
index 39e72b1..042915a 100644
|
||||
--- a/libtextstyle/gnulib-local/m4/libcroco.m4
|
||||
+++ b/libtextstyle/gnulib-local/m4/libcroco.m4
|
||||
@@ -6,97 +6,29 @@ dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
-dnl gl_LIBCROCO
|
||||
-dnl gives the user the option to decide whether to use the included or
|
||||
-dnl an external libcroco.
|
||||
-dnl gl_LIBCROCO(FORCE-INCLUDED)
|
||||
-dnl forces the use of the included or an external libcroco.
|
||||
AC_DEFUN([gl_LIBCROCO],
|
||||
[
|
||||
- ifelse([$1], [yes], , [
|
||||
- dnl libcroco depends on libglib.
|
||||
- AC_REQUIRE([gl_LIBGLIB])
|
||||
- ])
|
||||
+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
+ dnl libcroco depends on libglib.
|
||||
+ AC_REQUIRE([gl_LIBGLIB])
|
||||
|
||||
- ifelse([$1], , [
|
||||
- AC_MSG_CHECKING([whether included libcroco is requested])
|
||||
- AC_ARG_WITH([included-libcroco],
|
||||
- [ --with-included-libcroco use the libcroco included here],
|
||||
- [gl_cv_libcroco_force_included=$withval],
|
||||
- [gl_cv_libcroco_force_included=no])
|
||||
- AC_MSG_RESULT([$gl_cv_libcroco_force_included])
|
||||
- ], [gl_cv_libcroco_force_included=$1])
|
||||
+ AC_MSG_CHECKING([whether included libcroco is requested])
|
||||
+ AC_ARG_WITH([included-libcroco],
|
||||
+ [ --with-included-libcroco use the libcroco included here],
|
||||
+ [gl_cv_libcroco_force_included=$withval],
|
||||
+ [gl_cv_libcroco_force_included=no])
|
||||
+ AC_MSG_RESULT([$gl_cv_libcroco_force_included])
|
||||
|
||||
gl_cv_libcroco_use_included="$gl_cv_libcroco_force_included"
|
||||
LIBCROCO=
|
||||
LTLIBCROCO=
|
||||
INCCROCO=
|
||||
- ifelse([$1], [yes], , [
|
||||
- if test "$gl_cv_libcroco_use_included" != yes; then
|
||||
- dnl Figure out whether we can use a preinstalled libcroco-0.6, or have to
|
||||
- dnl use the included one.
|
||||
- AC_CACHE_VAL([gl_cv_libcroco], [
|
||||
- gl_cv_libcroco=no
|
||||
- gl_cv_LIBCROCO=
|
||||
- gl_cv_LTLIBCROCO=
|
||||
- gl_cv_INCCROCO=
|
||||
- gl_save_LIBS="$LIBS"
|
||||
- dnl Search for libcroco and define LIBCROCO_0_6, LTLIBCROCO_0_6 and
|
||||
- dnl INCCROCO_0_6 accordingly.
|
||||
- dnl Don't use croco-0.6-config nor pkg-config, since it doesn't work when
|
||||
- dnl cross-compiling or when the C compiler in use is different from the
|
||||
- dnl one that built the library.
|
||||
- AC_LIB_LINKFLAGS_BODY([croco-0.6], [glib-2.0])
|
||||
- LIBS="$gl_save_LIBS $LIBCROCO_0_6"
|
||||
- AC_LINK_IFELSE(
|
||||
- [AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
|
||||
- [[const char *version = LIBCROCO_VERSION; return !version;]])],
|
||||
- [gl_cv_libcroco=yes
|
||||
- gl_cv_LIBCROCO="$LIBCROCO_0_6"
|
||||
- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
|
||||
- ])
|
||||
- if test "$gl_cv_libcroco" != yes; then
|
||||
- gl_save_CPPFLAGS="$CPPFLAGS"
|
||||
- CPPFLAGS="$CPPFLAGS $INCCROCO_0_6"
|
||||
- AC_LINK_IFELSE(
|
||||
- [AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
|
||||
- [[const char *version = LIBCROCO_VERSION; return !version;]])],
|
||||
- [gl_cv_libcroco=yes
|
||||
- gl_cv_LIBCROCO="$LIBCROCO_0_6"
|
||||
- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
|
||||
- gl_cv_INCCROCO="$INCCROCO_0_6"
|
||||
- ])
|
||||
- if test "$gl_cv_libcroco" != yes; then
|
||||
- dnl Often the include files are installed in
|
||||
- dnl /usr/include/libcroco-0.6/libcroco.
|
||||
- AC_LINK_IFELSE(
|
||||
- [AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
|
||||
- [[const char *version = LIBCROCO_VERSION; return !version;]])],
|
||||
- [gl_ABSOLUTE_HEADER([libcroco-0.6/libcroco/libcroco-config.h])
|
||||
- libcroco_include_dir=`echo "$gl_cv_absolute_libcroco_0_6_libcroco_libcroco_config_h" | sed -e 's,.libcroco-config\.h$,,'`
|
||||
- if test -d "$libcroco_include_dir"; then
|
||||
- gl_cv_libcroco=yes
|
||||
- gl_cv_LIBCROCO="$LIBCROCO_0_6"
|
||||
- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
|
||||
- gl_cv_INCCROCO="-I$libcroco_include_dir"
|
||||
- fi
|
||||
- ])
|
||||
- fi
|
||||
- CPPFLAGS="$gl_save_CPPFLAGS"
|
||||
- fi
|
||||
- LIBS="$gl_save_LIBS"
|
||||
- ])
|
||||
- AC_MSG_CHECKING([for libcroco])
|
||||
- AC_MSG_RESULT([$gl_cv_libcroco])
|
||||
- if test $gl_cv_libcroco = yes; then
|
||||
- LIBCROCO="$gl_cv_LIBCROCO"
|
||||
- LTLIBCROCO="$gl_cv_LTLIBCROCO"
|
||||
- INCCROCO="$gl_cv_INCCROCO"
|
||||
- else
|
||||
- gl_cv_libcroco_use_included=yes
|
||||
- fi
|
||||
- fi
|
||||
- ])
|
||||
+ if test "$gl_cv_libcroco_use_included" != yes; then
|
||||
+ PKG_CHECK_MODULES([CROCO], [libcroco-0.6])
|
||||
+ LIBCROCO=$CROCO_LIBS
|
||||
+ LTLIBCROCO=$CROCO_LIBS
|
||||
+ INCCROCO=$CROCO_CFLAGS
|
||||
+ fi
|
||||
AC_SUBST([LIBCROCO])
|
||||
AC_SUBST([LTLIBCROCO])
|
||||
AC_SUBST([INCCROCO])
|
||||
diff --git a/libtextstyle/gnulib-local/m4/libglib.m4 b/libtextstyle/gnulib-local/m4/libglib.m4
|
||||
index 7ee5029..bb1e5e4 100644
|
||||
--- a/libtextstyle/gnulib-local/m4/libglib.m4
|
||||
@@ -414,123 +266,6 @@ index 7ee5029..bb1e5e4 100644
|
||||
AC_SUBST([LIBGLIB])
|
||||
AC_SUBST([LTLIBGLIB])
|
||||
AC_SUBST([INCGLIB])
|
||||
diff --git a/libtextstyle/gnulib-m4/libcroco.m4 b/libtextstyle/gnulib-m4/libcroco.m4
|
||||
index 39e72b1..042915a 100644
|
||||
--- a/libtextstyle/gnulib-m4/libcroco.m4
|
||||
+++ b/libtextstyle/gnulib-m4/libcroco.m4
|
||||
@@ -6,97 +6,29 @@ dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
-dnl gl_LIBCROCO
|
||||
-dnl gives the user the option to decide whether to use the included or
|
||||
-dnl an external libcroco.
|
||||
-dnl gl_LIBCROCO(FORCE-INCLUDED)
|
||||
-dnl forces the use of the included or an external libcroco.
|
||||
AC_DEFUN([gl_LIBCROCO],
|
||||
[
|
||||
- ifelse([$1], [yes], , [
|
||||
- dnl libcroco depends on libglib.
|
||||
- AC_REQUIRE([gl_LIBGLIB])
|
||||
- ])
|
||||
+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
+ dnl libcroco depends on libglib.
|
||||
+ AC_REQUIRE([gl_LIBGLIB])
|
||||
|
||||
- ifelse([$1], , [
|
||||
- AC_MSG_CHECKING([whether included libcroco is requested])
|
||||
- AC_ARG_WITH([included-libcroco],
|
||||
- [ --with-included-libcroco use the libcroco included here],
|
||||
- [gl_cv_libcroco_force_included=$withval],
|
||||
- [gl_cv_libcroco_force_included=no])
|
||||
- AC_MSG_RESULT([$gl_cv_libcroco_force_included])
|
||||
- ], [gl_cv_libcroco_force_included=$1])
|
||||
+ AC_MSG_CHECKING([whether included libcroco is requested])
|
||||
+ AC_ARG_WITH([included-libcroco],
|
||||
+ [ --with-included-libcroco use the libcroco included here],
|
||||
+ [gl_cv_libcroco_force_included=$withval],
|
||||
+ [gl_cv_libcroco_force_included=no])
|
||||
+ AC_MSG_RESULT([$gl_cv_libcroco_force_included])
|
||||
|
||||
gl_cv_libcroco_use_included="$gl_cv_libcroco_force_included"
|
||||
LIBCROCO=
|
||||
LTLIBCROCO=
|
||||
INCCROCO=
|
||||
- ifelse([$1], [yes], , [
|
||||
- if test "$gl_cv_libcroco_use_included" != yes; then
|
||||
- dnl Figure out whether we can use a preinstalled libcroco-0.6, or have to
|
||||
- dnl use the included one.
|
||||
- AC_CACHE_VAL([gl_cv_libcroco], [
|
||||
- gl_cv_libcroco=no
|
||||
- gl_cv_LIBCROCO=
|
||||
- gl_cv_LTLIBCROCO=
|
||||
- gl_cv_INCCROCO=
|
||||
- gl_save_LIBS="$LIBS"
|
||||
- dnl Search for libcroco and define LIBCROCO_0_6, LTLIBCROCO_0_6 and
|
||||
- dnl INCCROCO_0_6 accordingly.
|
||||
- dnl Don't use croco-0.6-config nor pkg-config, since it doesn't work when
|
||||
- dnl cross-compiling or when the C compiler in use is different from the
|
||||
- dnl one that built the library.
|
||||
- AC_LIB_LINKFLAGS_BODY([croco-0.6], [glib-2.0])
|
||||
- LIBS="$gl_save_LIBS $LIBCROCO_0_6"
|
||||
- AC_LINK_IFELSE(
|
||||
- [AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
|
||||
- [[const char *version = LIBCROCO_VERSION; return !version;]])],
|
||||
- [gl_cv_libcroco=yes
|
||||
- gl_cv_LIBCROCO="$LIBCROCO_0_6"
|
||||
- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
|
||||
- ])
|
||||
- if test "$gl_cv_libcroco" != yes; then
|
||||
- gl_save_CPPFLAGS="$CPPFLAGS"
|
||||
- CPPFLAGS="$CPPFLAGS $INCCROCO_0_6"
|
||||
- AC_LINK_IFELSE(
|
||||
- [AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
|
||||
- [[const char *version = LIBCROCO_VERSION; return !version;]])],
|
||||
- [gl_cv_libcroco=yes
|
||||
- gl_cv_LIBCROCO="$LIBCROCO_0_6"
|
||||
- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
|
||||
- gl_cv_INCCROCO="$INCCROCO_0_6"
|
||||
- ])
|
||||
- if test "$gl_cv_libcroco" != yes; then
|
||||
- dnl Often the include files are installed in
|
||||
- dnl /usr/include/libcroco-0.6/libcroco.
|
||||
- AC_LINK_IFELSE(
|
||||
- [AC_LANG_PROGRAM([[#include <libcroco-config.h>]],
|
||||
- [[const char *version = LIBCROCO_VERSION; return !version;]])],
|
||||
- [gl_ABSOLUTE_HEADER([libcroco-0.6/libcroco/libcroco-config.h])
|
||||
- libcroco_include_dir=`echo "$gl_cv_absolute_libcroco_0_6_libcroco_libcroco_config_h" | sed -e 's,.libcroco-config\.h$,,'`
|
||||
- if test -d "$libcroco_include_dir"; then
|
||||
- gl_cv_libcroco=yes
|
||||
- gl_cv_LIBCROCO="$LIBCROCO_0_6"
|
||||
- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
|
||||
- gl_cv_INCCROCO="-I$libcroco_include_dir"
|
||||
- fi
|
||||
- ])
|
||||
- fi
|
||||
- CPPFLAGS="$gl_save_CPPFLAGS"
|
||||
- fi
|
||||
- LIBS="$gl_save_LIBS"
|
||||
- ])
|
||||
- AC_MSG_CHECKING([for libcroco])
|
||||
- AC_MSG_RESULT([$gl_cv_libcroco])
|
||||
- if test $gl_cv_libcroco = yes; then
|
||||
- LIBCROCO="$gl_cv_LIBCROCO"
|
||||
- LTLIBCROCO="$gl_cv_LTLIBCROCO"
|
||||
- INCCROCO="$gl_cv_INCCROCO"
|
||||
- else
|
||||
- gl_cv_libcroco_use_included=yes
|
||||
- fi
|
||||
- fi
|
||||
- ])
|
||||
+ if test "$gl_cv_libcroco_use_included" != yes; then
|
||||
+ PKG_CHECK_MODULES([CROCO], [libcroco-0.6])
|
||||
+ LIBCROCO=$CROCO_LIBS
|
||||
+ LTLIBCROCO=$CROCO_LIBS
|
||||
+ INCCROCO=$CROCO_CFLAGS
|
||||
+ fi
|
||||
AC_SUBST([LIBCROCO])
|
||||
AC_SUBST([LTLIBCROCO])
|
||||
AC_SUBST([INCCROCO])
|
||||
diff --git a/libtextstyle/gnulib-m4/libglib.m4 b/libtextstyle/gnulib-m4/libglib.m4
|
||||
index 7ee5029..bb1e5e4 100644
|
||||
--- a/libtextstyle/gnulib-m4/libglib.m4
|
||||
@@ -655,55 +390,3 @@ index 7ee5029..bb1e5e4 100644
|
||||
AC_SUBST([LIBGLIB])
|
||||
AC_SUBST([LTLIBGLIB])
|
||||
AC_SUBST([INCGLIB])
|
||||
diff --git a/libtextstyle/lib/term-styled-ostream.c b/libtextstyle/lib/term-styled-ostream.c
|
||||
index 5484800..16793fa 100644
|
||||
--- a/libtextstyle/lib/term-styled-ostream.c
|
||||
+++ b/libtextstyle/lib/term-styled-ostream.c
|
||||
@@ -28,15 +28,15 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
-#include <cr-om-parser.h>
|
||||
-#include <cr-sel-eng.h>
|
||||
-#include <cr-style.h>
|
||||
-#include <cr-rgb.h>
|
||||
+#include <libcroco/cr-om-parser.h>
|
||||
+#include <libcroco/cr-sel-eng.h>
|
||||
+#include <libcroco/cr-style.h>
|
||||
+#include <libcroco/cr-rgb.h>
|
||||
/* <cr-fonts.h> has a broken double-inclusion guard in libcroco-0.6.1. */
|
||||
#ifndef __CR_FONTS_H__
|
||||
-# include <cr-fonts.h>
|
||||
+# include <libcroco/cr-fonts.h>
|
||||
#endif
|
||||
-#include <cr-string.h>
|
||||
+#include <libcroco/cr-string.h>
|
||||
|
||||
#include "term-ostream.h"
|
||||
#include "mem-hash-map.h"
|
||||
diff --git a/libtextstyle/lib/term-styled-ostream.oo.c b/libtextstyle/lib/term-styled-ostream.oo.c
|
||||
index 2ff978f..5ffb17a 100644
|
||||
--- a/libtextstyle/lib/term-styled-ostream.oo.c
|
||||
+++ b/libtextstyle/lib/term-styled-ostream.oo.c
|
||||
@@ -22,15 +22,15 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
-#include <cr-om-parser.h>
|
||||
-#include <cr-sel-eng.h>
|
||||
-#include <cr-style.h>
|
||||
-#include <cr-rgb.h>
|
||||
+#include <libcroco/cr-om-parser.h>
|
||||
+#include <libcroco/cr-sel-eng.h>
|
||||
+#include <libcroco/cr-style.h>
|
||||
+#include <libcroco/cr-rgb.h>
|
||||
/* <cr-fonts.h> has a broken double-inclusion guard in libcroco-0.6.1. */
|
||||
#ifndef __CR_FONTS_H__
|
||||
-# include <cr-fonts.h>
|
||||
+# include <libcroco/cr-fonts.h>
|
||||
#endif
|
||||
-#include <cr-string.h>
|
||||
+#include <libcroco/cr-string.h>
|
||||
|
||||
#include "term-ostream.h"
|
||||
#include "mem-hash-map.h"
|
||||
|
||||
@@ -10,8 +10,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
|
||||
# without libxml in PACKAGECONFIG vendor copy of the lib will be used
|
||||
LICENSE:append = " ${@bb.utils.contains('PACKAGECONFIG', 'libxml', '', '& MIT', d)}"
|
||||
LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'libxml', '', 'file://libtextstyle/lib/libxml/COPYING;md5=2044417e2e5006b65a8b9067b683fcf1', d)}"
|
||||
# without croco in PACKAGECONFIG vendor copy of the lib will be used
|
||||
LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'croco', '', 'file://libtextstyle/lib/libcroco/libcroco.h;md5=424013a9ed5401aa58cf83f3188c6865;beginline=10;endline=28', d)}"
|
||||
# without glib in PACKAGECONFIG vendor copy of the lib will be used
|
||||
LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'glib', '', 'file://libtextstyle/lib/glib/ghash.c;md5=e3159f5ac38dfe77af5cc0ee104dab2d;beginline=10;endline=27', d)}"
|
||||
|
||||
@@ -44,6 +42,7 @@ EXTRA_OECONF += "--without-lispdir \
|
||||
--without-emacs \
|
||||
--without-cvs \
|
||||
--without-git \
|
||||
--without-included-libcroco \
|
||||
--cache-file=${B}/config.cache \
|
||||
"
|
||||
EXTRA_OECONF:append:class-target = " \
|
||||
@@ -54,11 +53,10 @@ EXTRA_OECONF:append:class-target = " \
|
||||
gt_cv_locale_de=de_DE.ISO-8859-1 \
|
||||
"
|
||||
|
||||
PACKAGECONFIG ??= "croco glib libxml"
|
||||
PACKAGECONFIG ??= "glib libxml"
|
||||
PACKAGECONFIG:class-native = ""
|
||||
PACKAGECONFIG:class-nativesdk = ""
|
||||
|
||||
PACKAGECONFIG[croco] = "--without-included-libcroco,--with-included-libcroco,libcroco"
|
||||
PACKAGECONFIG[glib] = "--without-included-glib,--with-included-glib,glib-2.0"
|
||||
PACKAGECONFIG[libxml] = "--without-included-libxml,--with-included-libxml,libxml2"
|
||||
# Need paths here to avoid host contamination but this can cause RPATH warnings
|
||||
|
||||
@@ -1,192 +0,0 @@
|
||||
From fdf78a4877afa987ba646a8779b513f258e6d04c Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@gnome.org>
|
||||
Date: Fri, 31 Jul 2020 15:21:53 -0500
|
||||
Subject: [PATCH] libcroco: Limit recursion in block and any productions
|
||||
|
||||
(CVE-2020-12825)
|
||||
|
||||
If we don't have any limits, we can recurse forever and overflow the
|
||||
stack.
|
||||
|
||||
Fixes #8
|
||||
This is per https://gitlab.gnome.org/Archive/libcroco/-/issues/8
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1404
|
||||
|
||||
CVE: CVE-2020-12825
|
||||
Upstream-Status: Backport [https://gitlab.gnome.org/Archive/libcroco/-/commit/6eb257e5c731c691eb137fca94e916ca73941a5a]
|
||||
Comment: No refreshing changes done.
|
||||
Signed-off-by: Saloni Jain <Saloni.Jain@kpit.com>
|
||||
|
||||
---
|
||||
src/cr-parser.c | 44 +++++++++++++++++++++++++++++---------------
|
||||
1 file changed, 29 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/cr-parser.c b/src/cr-parser.c
|
||||
index 18c9a01..f4a62e3 100644
|
||||
--- a/src/cr-parser.c
|
||||
+++ b/src/cr-parser.c
|
||||
@@ -136,6 +136,8 @@ struct _CRParserPriv {
|
||||
|
||||
#define CHARS_TAB_SIZE 12
|
||||
|
||||
+#define RECURSIVE_CALLERS_LIMIT 100
|
||||
+
|
||||
/**
|
||||
* IS_NUM:
|
||||
*@a_char: the char to test.
|
||||
@@ -344,9 +346,11 @@ static enum CRStatus cr_parser_parse_selector_core (CRParser * a_this);
|
||||
|
||||
static enum CRStatus cr_parser_parse_declaration_core (CRParser * a_this);
|
||||
|
||||
-static enum CRStatus cr_parser_parse_any_core (CRParser * a_this);
|
||||
+static enum CRStatus cr_parser_parse_any_core (CRParser * a_this,
|
||||
+ guint n_calls);
|
||||
|
||||
-static enum CRStatus cr_parser_parse_block_core (CRParser * a_this);
|
||||
+static enum CRStatus cr_parser_parse_block_core (CRParser * a_this,
|
||||
+ guint n_calls);
|
||||
|
||||
static enum CRStatus cr_parser_parse_value_core (CRParser * a_this);
|
||||
|
||||
@@ -784,7 +788,7 @@ cr_parser_parse_atrule_core (CRParser * a_this)
|
||||
cr_parser_try_to_skip_spaces_and_comments (a_this);
|
||||
|
||||
do {
|
||||
- status = cr_parser_parse_any_core (a_this);
|
||||
+ status = cr_parser_parse_any_core (a_this, 0);
|
||||
} while (status == CR_OK);
|
||||
|
||||
status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr,
|
||||
@@ -795,7 +799,7 @@ cr_parser_parse_atrule_core (CRParser * a_this)
|
||||
cr_tknzr_unget_token (PRIVATE (a_this)->tknzr,
|
||||
token);
|
||||
token = NULL;
|
||||
- status = cr_parser_parse_block_core (a_this);
|
||||
+ status = cr_parser_parse_block_core (a_this, 0);
|
||||
CHECK_PARSING_STATUS (status,
|
||||
FALSE);
|
||||
goto done;
|
||||
@@ -930,11 +934,11 @@ cr_parser_parse_selector_core (CRParser * a_this)
|
||||
|
||||
RECORD_INITIAL_POS (a_this, &init_pos);
|
||||
|
||||
- status = cr_parser_parse_any_core (a_this);
|
||||
+ status = cr_parser_parse_any_core (a_this, 0);
|
||||
CHECK_PARSING_STATUS (status, FALSE);
|
||||
|
||||
do {
|
||||
- status = cr_parser_parse_any_core (a_this);
|
||||
+ status = cr_parser_parse_any_core (a_this, 0);
|
||||
|
||||
} while (status == CR_OK);
|
||||
|
||||
@@ -956,10 +960,12 @@ cr_parser_parse_selector_core (CRParser * a_this)
|
||||
*in chapter 4.1 of the css2 spec.
|
||||
*block ::= '{' S* [ any | block | ATKEYWORD S* | ';' ]* '}' S*;
|
||||
*@param a_this the current instance of #CRParser.
|
||||
+ *@param n_calls used to limit recursion depth
|
||||
*FIXME: code this function.
|
||||
*/
|
||||
static enum CRStatus
|
||||
-cr_parser_parse_block_core (CRParser * a_this)
|
||||
+cr_parser_parse_block_core (CRParser * a_this,
|
||||
+ guint n_calls)
|
||||
{
|
||||
CRToken *token = NULL;
|
||||
CRInputPos init_pos;
|
||||
@@ -967,6 +973,9 @@ cr_parser_parse_block_core (CRParser * a_this)
|
||||
|
||||
g_return_val_if_fail (a_this && PRIVATE (a_this), CR_BAD_PARAM_ERROR);
|
||||
|
||||
+ if (n_calls > RECURSIVE_CALLERS_LIMIT)
|
||||
+ return CR_ERROR;
|
||||
+
|
||||
RECORD_INITIAL_POS (a_this, &init_pos);
|
||||
|
||||
status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, &token);
|
||||
@@ -996,13 +1005,13 @@ cr_parser_parse_block_core (CRParser * a_this)
|
||||
} else if (token->type == CBO_TK) {
|
||||
cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token);
|
||||
token = NULL;
|
||||
- status = cr_parser_parse_block_core (a_this);
|
||||
+ status = cr_parser_parse_block_core (a_this, n_calls + 1);
|
||||
CHECK_PARSING_STATUS (status, FALSE);
|
||||
goto parse_block_content;
|
||||
} else {
|
||||
cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token);
|
||||
token = NULL;
|
||||
- status = cr_parser_parse_any_core (a_this);
|
||||
+ status = cr_parser_parse_any_core (a_this, n_calls + 1);
|
||||
CHECK_PARSING_STATUS (status, FALSE);
|
||||
goto parse_block_content;
|
||||
}
|
||||
@@ -1109,7 +1118,7 @@ cr_parser_parse_value_core (CRParser * a_this)
|
||||
status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr,
|
||||
token);
|
||||
token = NULL;
|
||||
- status = cr_parser_parse_block_core (a_this);
|
||||
+ status = cr_parser_parse_block_core (a_this, 0);
|
||||
CHECK_PARSING_STATUS (status, FALSE);
|
||||
ref++;
|
||||
goto continue_parsing;
|
||||
@@ -1123,7 +1132,7 @@ cr_parser_parse_value_core (CRParser * a_this)
|
||||
status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr,
|
||||
token);
|
||||
token = NULL;
|
||||
- status = cr_parser_parse_any_core (a_this);
|
||||
+ status = cr_parser_parse_any_core (a_this, 0);
|
||||
if (status == CR_OK) {
|
||||
ref++;
|
||||
goto continue_parsing;
|
||||
@@ -1162,10 +1171,12 @@ cr_parser_parse_value_core (CRParser * a_this)
|
||||
* | FUNCTION | DASHMATCH | '(' any* ')' | '[' any* ']' ] S*;
|
||||
*
|
||||
*@param a_this the current instance of #CRParser.
|
||||
+ *@param n_calls used to limit recursion depth
|
||||
*@return CR_OK upon successfull completion, an error code otherwise.
|
||||
*/
|
||||
static enum CRStatus
|
||||
-cr_parser_parse_any_core (CRParser * a_this)
|
||||
+cr_parser_parse_any_core (CRParser * a_this,
|
||||
+ guint n_calls)
|
||||
{
|
||||
CRToken *token1 = NULL,
|
||||
*token2 = NULL;
|
||||
@@ -1174,6 +1185,9 @@ cr_parser_parse_any_core (CRParser * a_this)
|
||||
|
||||
g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR);
|
||||
|
||||
+ if (n_calls > RECURSIVE_CALLERS_LIMIT)
|
||||
+ return CR_ERROR;
|
||||
+
|
||||
RECORD_INITIAL_POS (a_this, &init_pos);
|
||||
|
||||
status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, &token1);
|
||||
@@ -1212,7 +1226,7 @@ cr_parser_parse_any_core (CRParser * a_this)
|
||||
*We consider parameter as being an "any*" production.
|
||||
*/
|
||||
do {
|
||||
- status = cr_parser_parse_any_core (a_this);
|
||||
+ status = cr_parser_parse_any_core (a_this, n_calls + 1);
|
||||
} while (status == CR_OK);
|
||||
|
||||
ENSURE_PARSING_COND (status == CR_PARSING_ERROR);
|
||||
@@ -1237,7 +1251,7 @@ cr_parser_parse_any_core (CRParser * a_this)
|
||||
}
|
||||
|
||||
do {
|
||||
- status = cr_parser_parse_any_core (a_this);
|
||||
+ status = cr_parser_parse_any_core (a_this, n_calls + 1);
|
||||
} while (status == CR_OK);
|
||||
|
||||
ENSURE_PARSING_COND (status == CR_PARSING_ERROR);
|
||||
@@ -1265,7 +1279,7 @@ cr_parser_parse_any_core (CRParser * a_this)
|
||||
}
|
||||
|
||||
do {
|
||||
- status = cr_parser_parse_any_core (a_this);
|
||||
+ status = cr_parser_parse_any_core (a_this, n_calls + 1);
|
||||
} while (status == CR_OK);
|
||||
|
||||
ENSURE_PARSING_COND (status == CR_PARSING_ERROR);
|
||||
@@ -1,26 +0,0 @@
|
||||
SUMMARY = "Cascading Style Sheet (CSS) parsing and manipulation toolkit"
|
||||
DESCRIPTION = "The Libcroco project is an effort to build a generic \
|
||||
Cascading Style Sheet (CSS) parsing and manipulation toolkit that can be \
|
||||
used by GNOME applications in need of CSS support."
|
||||
HOMEPAGE = "http://www.gnome.org/"
|
||||
BUGTRACKER = "https://bugzilla.gnome.org/"
|
||||
|
||||
LICENSE = "LGPL-2.0-only & LGPL-2.1-only"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
|
||||
file://src/cr-rgb.c;endline=22;md5=31d5f0944d556c8589d04ea6055fcc66 \
|
||||
file://tests/cr-test-utils.c;endline=21;md5=2382c27934cae1d3792fcb17a6142c4e"
|
||||
|
||||
SECTION = "x11/utils"
|
||||
DEPENDS = "glib-2.0 libxml2 zlib"
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
EXTRA_OECONF += "--enable-Bsymbolic=auto"
|
||||
|
||||
BINCONFIG = "${bindir}/croco-0.6-config"
|
||||
|
||||
inherit gnomebase gtk-doc binconfig-disabled
|
||||
|
||||
SRC_URI[archive.md5sum] = "c80c5a8385011a0260dce6bd0da93dce"
|
||||
SRC_URI[archive.sha256sum] = "767ec234ae7aa684695b3a735548224888132e063f92db585759b422570621d4"
|
||||
|
||||
SRC_URI +="file://CVE-2020-12825.patch \
|
||||
"
|
||||
Reference in New Issue
Block a user