diff options
author | Sam James <sam@gentoo.org> | 2022-10-10 22:36:05 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-10-10 22:36:28 +0100 |
commit | 9f829fb9b30d3bd85375fe57279d835abd21869d (patch) | |
tree | 92e02afdebe8b8dca94e71b8465fce98d40de7b6 /dev-libs/libical | |
parent | sys-fs/cryptmount: add 6.1.0 (diff) | |
download | gentoo-9f829fb9b30d3bd85375fe57279d835abd21869d.tar.gz gentoo-9f829fb9b30d3bd85375fe57279d835abd21869d.tar.bz2 gentoo-9f829fb9b30d3bd85375fe57279d835abd21869d.zip |
dev-libs/libical: backport parsing regression fix; backport F_S=3 fix
Closes: https://bugs.gentoo.org/876625
Closes: https://bugs.gentoo.org/876622
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs/libical')
3 files changed, 198 insertions, 0 deletions
diff --git a/dev-libs/libical/files/libical-3.0.15-fortify-source-3.patch b/dev-libs/libical/files/libical-3.0.15-fortify-source-3.patch new file mode 100644 index 000000000000..830d646b74d0 --- /dev/null +++ b/dev-libs/libical/files/libical-3.0.15-fortify-source-3.patch @@ -0,0 +1,43 @@ +https://github.com/libical/libical/commit/d67034b31cebe0db3ca65342813336b123921a15 +https://github.com/libical/libical/issues/603 +https://bugs.gentoo.org/876625 + +From: Allen Winter <allen.winter@kdab.com> +Date: Fri, 7 Oct 2022 09:43:32 -0400 +Subject: [PATCH] fix problem found with gcc fortify builds + +fixes: #603 +--- a/src/libical/icaltz-util.c ++++ b/src/libical/icaltz-util.c +@@ -732,7 +732,7 @@ icalcomponent *icaltzutil_fetch_timezone(const char *location) + for (i = 0; i < num_trans; i++) { + int by_day = 0; + time_t start; +- enum icalrecurrencetype_weekday dow; ++ enum icalrecurrencetype_weekday dow = ICAL_NO_WEEKDAY; + + prev_idx = idx; + idx = trans_idx[i]; +--- a/src/libicalss/icalbdbset.c ++++ b/src/libicalss/icalbdbset.c +@@ -529,7 +529,7 @@ int icalbdbset_get_key(DBC *dbcp, DBT *key, DBT *data) + int icalbdbset_delete(DB *dbp, DBT *key) + { + DB_TXN *tid; +- int ret; ++ int ret = 0; + int done = 0; + int retry = 0; + +--- a/src/test/regression.c ++++ b/src/test/regression.c +@@ -2322,7 +2322,7 @@ void test_fblist() + char *strp = out_str; + + for (i = 0; foo[i] != -1; i++) { +- snprintf(strp, 79, "%1d", foo[i]); ++ snprintf(strp, 79-i, "%1d", foo[i]); + strp++; + } + str_is("Checking freebusy validity", out_str, "1121110"); + diff --git a/dev-libs/libical/files/libical-3.0.15-revert-bad-fuzz-fix.patch b/dev-libs/libical/files/libical-3.0.15-revert-bad-fuzz-fix.patch new file mode 100644 index 000000000000..e6f4d33ad286 --- /dev/null +++ b/dev-libs/libical/files/libical-3.0.15-revert-bad-fuzz-fix.patch @@ -0,0 +1,36 @@ +https://github.com/libical/libical/commit/eeccee80d0485bdd3951924b294a82e8bc39a5f8 +https://bugs.gentoo.org/876622 + +From: Allen Winter <allen.winter@kdab.com> +Date: Mon, 10 Oct 2022 14:58:29 -0400 +Subject: [PATCH] Revert "src/libical/icalparser.c - fix a fuzz issue for + integer overflow" + +This reverts commit ca3e2ad983771b90da259994b7a6d7de1fd1abdc. +--- a/src/libical/icalparser.c ++++ b/src/libical/icalparser.c +@@ -630,7 +630,6 @@ icalcomponent *icalparser_parse(icalparser *parser, + icalparser_line_gen_func line_gen_func) + { + char *line; +- unsigned int cnt = 0; + icalcomponent *c = 0; + icalcomponent *root = 0; + icalerrorstate es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR); +@@ -641,7 +640,6 @@ icalcomponent *icalparser_parse(icalparser *parser, + icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR, ICAL_ERROR_NONFATAL); + + do { +- cnt++; + line = icalparser_get_line(parser, line_gen_func); + + if ((c = icalparser_add_line(parser, line)) != 0) { +@@ -681,7 +679,7 @@ icalcomponent *icalparser_parse(icalparser *parser, + icalmemory_free_buffer(line); + cont = 1; + } +- } while (cont && cnt < TMP_BUF_SIZE); ++ } while (cont); + + icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR, es); + diff --git a/dev-libs/libical/libical-3.0.15-r1.ebuild b/dev-libs/libical/libical-3.0.15-r1.ebuild new file mode 100644 index 000000000000..f3c4f2d2e9b4 --- /dev/null +++ b/dev-libs/libical/libical-3.0.15-r1.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) +VALA_USE_DEPEND="vapigen" +inherit cmake python-any-r1 vala + +DESCRIPTION="Implementation of basic iCAL protocols" +HOMEPAGE="https://github.com/libical/libical" +SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz" + +LICENSE="|| ( MPL-2.0 LGPL-2.1 )" +SLOT="0/3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris" +IUSE="doc examples +glib +introspection static-libs test vala" + +REQUIRED_USE="introspection? ( glib ) vala? ( introspection )" + +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + dev-libs/icu:= + glib? ( dev-libs/glib:2 ) +" +DEPEND="${COMMON_DEPEND} + glib? ( dev-libs/libxml2:2 ) +" +RDEPEND="${COMMON_DEPEND} + sys-libs/timezone-data +" +BDEPEND=" + dev-lang/perl + virtual/pkgconfig + doc? ( + app-doc/doxygen[dot] + glib? ( dev-util/gtk-doc ) + ) + introspection? ( dev-libs/gobject-introspection ) + test? ( + ${PYTHON_DEPS} + glib? ( $(python_gen_any_dep 'dev-python/pygobject:3[${PYTHON_USEDEP}]') ) + ) + vala? ( $(vala_depend) ) +" + +DOCS=( + AUTHORS README.md ReleaseNotes.txt TEST THANKS TODO + doc/{AddingOrModifyingComponents.txt,UsingLibical.md} +) + +PATCHES=( + "${FILESDIR}/${PN}-3.0.4-tests.patch" + "${FILESDIR}/${PN}-3.0.11-pkgconfig-libdir.patch" + "${FILESDIR}/${P}-fortify-source-3.patch" + "${FILESDIR}/${P}-revert-bad-fuzz-fix.patch" +) + +python_check_deps() { + python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + use examples || cmake_comment_add_subdirectory examples + use vala && vala_setup +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_DISABLE_FIND_PACKAGE_BerkeleyDB=ON + -DICAL_BUILD_DOCS=$(usex doc) + -DICAL_GLIB=$(usex glib) + -DGOBJECT_INTROSPECTION=$(usex introspection) + -DSHARED_ONLY=$(usex !static-libs) + -DLIBICAL_BUILD_TESTING=$(usex test) + -DICAL_GLIB_VAPI=$(usex vala) + ) + if use vala; then + mycmakeargs+=( + -DVALAC="${VALAC}" + -DVAPIGEN="${VAPIGEN}" + ) + fi + cmake_src_configure +} + +src_compile() { + cmake_src_compile + + if use doc; then + cmake_src_compile docs + + HTML_DOCS=( "${BUILD_DIR}"/apidocs/html/. ) + fi +} + +src_test() { + local myctestargs=( + -E "(icalrecurtest|icalrecurtest-r)" # bug 660282 + ) + + cmake_src_test +} + +src_install() { + cmake_src_install + + if use examples; then + rm examples/CMakeLists.txt || die + dodoc -r examples + fi +} |