forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
gnome-extra/evolution-data-server: backport date parsing fix (strict …
…aliasing) Closes: https://bugs.gentoo.org/912720 Signed-off-by: Sam James <[email protected]>
- Loading branch information
1 parent
039927d
commit 2291736
Showing
2 changed files
with
182 additions
and
0 deletions.
There are no files selected for viewing
145 changes: 145 additions & 0 deletions
145
gnome-extra/evolution-data-server/evolution-data-server-3.48.4-r1.ebuild
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
# Copyright 1999-2023 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
inherit cmake db-use flag-o-matic gnome2 vala virtualx | ||
|
||
DESCRIPTION="Evolution groupware backend" | ||
HOMEPAGE="https://wiki.gnome.org/Apps/Evolution https://gitlab.gnome.org/GNOME/evolution-data-server" | ||
|
||
# Note: explicitly "|| ( LGPL-2 LGPL-3 )", not "LGPL-2+". | ||
LICENSE="|| ( LGPL-2 LGPL-3 ) BSD Sleepycat" | ||
SLOT="0/64-11-21-4-2-27-2-27-4-0" # subslot = libcamel-1.2/libebackend-1.2/libebook-1.2/libebook-contacts-1.2/libecal-2.0/libedata-book-1.2/libedata-cal-2.0/libedataserver-1.2/libedataserverui-1.2/libedataserverui4-1.0 soname version | ||
|
||
IUSE="berkdb +gnome-online-accounts +gtk gtk-doc +introspection ldap kerberos oauth vala +weather" | ||
REQUIRED_USE=" | ||
oauth? ( gtk ) | ||
vala? ( introspection ) | ||
" | ||
|
||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" | ||
|
||
# berkdb needed only for migrating old addressbook data from <3.13 versions, bug #519512 | ||
# glib-2.70 for build-time optional GPowerProfileMonitor | ||
RDEPEND=" | ||
>=app-crypt/libsecret-0.5[crypt] | ||
>=dev-db/sqlite-3.7.17:3 | ||
>=dev-libs/glib-2.70:2 | ||
>=dev-libs/libical-3.0.8:=[glib,introspection?] | ||
>=dev-libs/libxml2-2 | ||
>=dev-libs/nspr-4.4 | ||
>=dev-libs/nss-3.9 | ||
>=net-libs/libsoup-3.1.1:3.0 | ||
>=dev-libs/json-glib-1.0.4 | ||
dev-libs/icu:= | ||
sys-libs/zlib:= | ||
virtual/libiconv | ||
berkdb? ( >=sys-libs/db-4:= ) | ||
gtk? ( | ||
>=x11-libs/gtk+-3.20:3 | ||
>=gui-libs/gtk-4.4:4 | ||
>=media-libs/libcanberra-0.25[gtk3] | ||
oauth? ( | ||
>=net-libs/webkit-gtk-2.34.0:4.1 | ||
>=net-libs/webkit-gtk-2.39.90:6 | ||
) | ||
) | ||
gnome-online-accounts? ( >=net-libs/gnome-online-accounts-3.8:= ) | ||
introspection? ( >=dev-libs/gobject-introspection-0.9.12:= ) | ||
kerberos? ( virtual/krb5:= ) | ||
ldap? ( >=net-nds/openldap-2:= ) | ||
weather? ( >=dev-libs/libgweather-4.2.0:4= ) | ||
" | ||
DEPEND="${RDEPEND} | ||
vala? ( $(vala_depend) | ||
>=net-libs/libsoup-3.1.1:3.0[vala] | ||
dev-libs/libical[vala] | ||
) | ||
" | ||
BDEPEND=" | ||
dev-util/gdbus-codegen | ||
dev-util/glib-utils | ||
dev-util/gperf | ||
gtk-doc? ( >=dev-util/gtk-doc-1.14 | ||
app-text/docbook-xml-dtd:4.1.2 ) | ||
>=dev-util/intltool-0.35.5 | ||
>=sys-devel/gettext-0.18.3 | ||
virtual/pkgconfig | ||
" | ||
|
||
# Some tests fail due to missing locales. | ||
# Also, dbus tests are flaky, bugs #397975 #501834 | ||
# It looks like a nightmare to disable those for now. | ||
RESTRICT="!test? ( test )" | ||
|
||
# global scope PATCHES or DOCS array mustn't be used due to double default_src_prepare call | ||
src_prepare() { | ||
use vala && vala_setup | ||
cmake_src_prepare | ||
gnome2_src_prepare | ||
|
||
eapply "${FILESDIR}"/3.36.5-gtk-doc-1.32-compat.patch | ||
eapply "${FILESDIR}"/3.48.4-aliasing-fix.patch | ||
|
||
# Make CMakeLists versioned vala enabled | ||
sed -e "s;\(find_program(VALAC\) valac);\1 ${VALAC});" \ | ||
-e "s;\(find_program(VAPIGEN\) vapigen);\1 ${VAPIGEN});" \ | ||
-i "${S}"/CMakeLists.txt || die | ||
} | ||
|
||
src_configure() { | ||
# /usr/include/db.h is always db-1 on FreeBSD | ||
# so include the right dir in CPPFLAGS | ||
use berkdb && append-cppflags "-I$(db_includedir)" | ||
|
||
# phonenumber does not exist in tree | ||
local mycmakeargs=( | ||
-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc | ||
-DENABLE_GTK_DOC=$(usex gtk-doc) | ||
-DWITH_PRIVATE_DOCS=$(usex gtk-doc) | ||
-DENABLE_SCHEMAS_COMPILE=OFF | ||
-DENABLE_INTROSPECTION=$(usex introspection) | ||
-DWITH_KRB5=$(usex kerberos) | ||
-DWITH_KRB5_INCLUDES=$(usex kerberos "${EPREFIX}"/usr "") | ||
-DWITH_KRB5_LIBS=$(usex kerberos "${EPREFIX}"/usr/$(get_libdir) "") | ||
-DWITH_OPENLDAP=$(usex ldap) | ||
-DWITH_PHONENUMBER=OFF | ||
-DENABLE_SMIME=ON | ||
-DENABLE_GTK=$(usex gtk) | ||
-DENABLE_GTK4=$(usex gtk) | ||
-DENABLE_CANBERRA=$(usex gtk) | ||
-DENABLE_OAUTH2_WEBKITGTK=$(usex oauth) | ||
-DENABLE_OAUTH2_WEBKITGTK4=$(usex oauth) | ||
-DENABLE_EXAMPLES=OFF | ||
-DENABLE_GOA=$(usex gnome-online-accounts) | ||
-DWITH_LIBDB=$(usex berkdb "${EPREFIX}"/usr OFF) | ||
# ENABLE_BACKTRACES requires libdwarf ? | ||
-DENABLE_IPV6=ON | ||
-DENABLE_WEATHER=$(usex weather) | ||
-DENABLE_LARGEFILE=ON | ||
-DENABLE_VALA_BINDINGS=$(usex vala) | ||
) | ||
cmake_src_configure | ||
} | ||
|
||
src_compile() { | ||
cmake_src_compile | ||
} | ||
|
||
src_test() { | ||
virtx cmake_src_test | ||
} | ||
|
||
src_install() { | ||
cmake_src_install | ||
|
||
if use ldap; then | ||
insinto /etc/openldap/schema | ||
doins "${FILESDIR}"/calentry.schema | ||
dosym ../../../usr/share/${PN}/evolutionperson.schema /etc/openldap/schema/evolutionperson.schema | ||
fi | ||
} |
37 changes: 37 additions & 0 deletions
37
gnome-extra/evolution-data-server/files/3.48.4-aliasing-fix.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
https://bugs.gentoo.org/912720 | ||
https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/484 | ||
https://gitlab.gnome.org/GNOME/evolution/-/issues/2485 | ||
https://gitlab.gnome.org/GNOME/evolution-data-server/-/merge_requests/126 | ||
|
||
From 087226d29de3ef9070fb7436ca3dcc476cd9a9a5 Mon Sep 17 00:00:00 2001 | ||
From: Enrik Berkhan <[email protected]> | ||
Date: Thu, 6 Jul 2023 15:44:53 +0000 | ||
Subject: [PATCH] Camel MIME utils: fix aliasing issue in datetok | ||
|
||
Due to an aliasing issue, datetok() always returned NULL. | ||
|
||
With this change, the C aliasing rules will be respected. Further, next is no longer required to be the first element in struct _date_token. | ||
--- a/src/camel/camel-mime-utils.c | ||
+++ b/src/camel/camel-mime-utils.c | ||
@@ -4160,7 +4160,7 @@ struct _date_token { | ||
static struct _date_token * | ||
datetok (const gchar *date) | ||
{ | ||
- struct _date_token *tokens = NULL, *token, *tail = (struct _date_token *) &tokens; | ||
+ struct _date_token *tokens = NULL, *token, **tail = &tokens; | ||
const gchar *start, *end; | ||
guchar mask; | ||
|
||
@@ -4187,8 +4187,8 @@ datetok (const gchar *date) | ||
token->len = end - start; | ||
token->mask = mask; | ||
|
||
- tail->next = token; | ||
- tail = token; | ||
+ *tail = token; | ||
+ tail = &token->next; | ||
} | ||
|
||
if (*end) | ||
-- | ||
GitLab |