diff mbox series

libcroco: drop recipe

Message ID 20231029164849.856435-1-f_l_k@t-online.de
State Accepted, archived
Commit d53c1aca794ce256b057d63a9a8eaae5bf71fae5
Headers show
Series libcroco: drop recipe | expand

Commit Message

Markus Volk Oct. 29, 2023, 4:48 p.m. UTC
libcroco has been deprecated and was archived by the gnome-project

https://gitlab.gnome.org/Archive/libcroco

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 meta/conf/distro/include/maintainers.inc      |   1 -
 .../gettext/gettext/use-pkgconfig.patch       | 319 +-----------------
 meta/recipes-core/gettext/gettext_0.22.bb     |   6 +-
 .../libcroco/files/CVE-2020-12825.patch       | 192 -----------
 .../libcroco/libcroco_0.6.13.bb               |  26 --
 5 files changed, 3 insertions(+), 541 deletions(-)
 delete mode 100644 meta/recipes-support/libcroco/files/CVE-2020-12825.patch
 delete mode 100644 meta/recipes-support/libcroco/libcroco_0.6.13.bb
diff mbox series

Patch

diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index b2579fc44c..35f8a72fa4 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -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>"
diff --git a/meta/recipes-core/gettext/gettext/use-pkgconfig.patch b/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
index c12e0d3b88..f1fb61de4e 100644
--- a/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
+++ b/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
@@ -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"
diff --git a/meta/recipes-core/gettext/gettext_0.22.bb b/meta/recipes-core/gettext/gettext_0.22.bb
index f5290ac0e4..75474c8c30 100644
--- a/meta/recipes-core/gettext/gettext_0.22.bb
+++ b/meta/recipes-core/gettext/gettext_0.22.bb
@@ -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
diff --git a/meta/recipes-support/libcroco/files/CVE-2020-12825.patch b/meta/recipes-support/libcroco/files/CVE-2020-12825.patch
deleted file mode 100644
index 42f92e3607..0000000000
--- a/meta/recipes-support/libcroco/files/CVE-2020-12825.patch
+++ /dev/null
@@ -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);
diff --git a/meta/recipes-support/libcroco/libcroco_0.6.13.bb b/meta/recipes-support/libcroco/libcroco_0.6.13.bb
deleted file mode 100644
index 419c962657..0000000000
--- a/meta/recipes-support/libcroco/libcroco_0.6.13.bb
+++ /dev/null
@@ -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 \
-"