From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 05BF015838C for ; Tue, 30 Jan 2024 05:10:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 542BEE2A53; Tue, 30 Jan 2024 05:10:43 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 38B92E2A53 for ; Tue, 30 Jan 2024 05:10:43 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3C40B3430C4 for ; Tue, 30 Jan 2024 05:10:42 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 225BF14BE for ; Tue, 30 Jan 2024 05:10:39 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1706591391.02c6e8f75e84190fe4d806aae1146c2534b51ba8.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/folks/, dev-libs/folks/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-libs/folks/files/folks-0.15.6-implicit-decl.patch dev-libs/folks/folks-0.15.6-r1.ebuild X-VCS-Directories: dev-libs/folks/files/ dev-libs/folks/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 02c6e8f75e84190fe4d806aae1146c2534b51ba8 X-VCS-Branch: master Date: Tue, 30 Jan 2024 05:10:39 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 3f5f56f0-cbb7-4b9b-9218-e896c671fce1 X-Archives-Hash: ca43486245d9be9d51ce0eff252e3b4a commit: 02c6e8f75e84190fe4d806aae1146c2534b51ba8 Author: Eli Schwartz gmail com> AuthorDate: Mon Jan 15 19:46:03 2024 +0000 Commit: Sam James gentoo org> CommitDate: Tue Jan 30 05:09:51 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=02c6e8f7 dev-libs/folks: Apply MR to fix broken implicit-function-declaration Modern C porting makes this an error. https://gitlab.gnome.org/GNOME/folks/-/merge_requests/68 Closes: https://bugs.gentoo.org/920098 Signed-off-by: Eli Schwartz gmail.com> Signed-off-by: Sam James gentoo.org> .../folks/files/folks-0.15.6-implicit-decl.patch | 61 ++++++++++++ dev-libs/folks/folks-0.15.6-r1.ebuild | 102 +++++++++++++++++++++ 2 files changed, 163 insertions(+) diff --git a/dev-libs/folks/files/folks-0.15.6-implicit-decl.patch b/dev-libs/folks/files/folks-0.15.6-implicit-decl.patch new file mode 100644 index 000000000000..f61d655343e4 --- /dev/null +++ b/dev-libs/folks/files/folks-0.15.6-implicit-decl.patch @@ -0,0 +1,61 @@ +From 127bacf86b7ef639c37dd07afc0bf848c005c3c2 Mon Sep 17 00:00:00 2001 +From: Mohammed Anas +Date: Sun, 14 Jan 2024 03:27:31 +0000 +Subject: [PATCH] build: add missing API declaration -include to dummy and EDS + backends + +In 7a9c8133468c1f8eb7fbb0e68a6a7e061b9452fb, the original +`-include redeclare-internal-api.h` was added for autotools. It is +necessary due to vala internals that require guaranteeing a private +ABI's prototype is available when compiling folks, even though vala +doesn't generate that prototype. + +During the port to meson, this `-include` was dropped. + +Without it, `-Werror=implicit-function-declaration` will cause folks to +fail to compile. Implicit function declarations are a terrible feature +-- they were part of c89, but c99 removed them without a deprecation +because they were too dangerous to use, notable in a language that +doesn't like to remove features even *with* a deprecation. + +For over two decades, compilers have, by default, allowed this invalid C +anyways, on the grounds that it commonly existed, but modern compilers +are finally starting to enforce this. It will become a fatal error by +default in gcc 14, and clang 16. + +Folks got this right all the way back in 2013; it disappeared by +accident. Let's restore it as originally intended. +--- +Upstream: https://gitlab.gnome.org/GNOME/folks/-/merge_requests/68 + + backends/dummy/lib/meson.build | 1 + + backends/eds/lib/meson.build | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/backends/dummy/lib/meson.build b/backends/dummy/lib/meson.build +index 32448f35..eacc0e7a 100644 +--- a/backends/dummy/lib/meson.build ++++ b/backends/dummy/lib/meson.build +@@ -23,6 +23,7 @@ dummy_backendlib_vala_flags = [ + + dummy_backendlib_c_flags = [ + '-include', 'config.h', ++ '-include', 'folks/redeclare-internal-api.h', + '-DBACKEND_NAME="@0@"'.format(dummy_backend_name), + '-DG_LOG_DOMAIN="@0@"'.format(dummy_backend_name), + ] +diff --git a/backends/eds/lib/meson.build b/backends/eds/lib/meson.build +index 3e3db84c..68d803b3 100644 +--- a/backends/eds/lib/meson.build ++++ b/backends/eds/lib/meson.build +@@ -40,6 +40,7 @@ endif + + eds_backendlib_c_flags = [ + '-include', 'config.h', ++ '-include', 'folks/redeclare-internal-api.h', + '-DBACKEND_NAME="@0@"'.format(eds_backend_name), + '-DG_LOG_DOMAIN="@0@"'.format(eds_backend_name), + ] +-- +GitLab + diff --git a/dev-libs/folks/folks-0.15.6-r1.ebuild b/dev-libs/folks/folks-0.15.6-r1.ebuild new file mode 100644 index 000000000000..a01a4476a16d --- /dev/null +++ b/dev-libs/folks/folks-0.15.6-r1.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{9..11} ) + +inherit gnome.org gnome2-utils meson python-any-r1 vala xdg + +DESCRIPTION="Library for aggregating people from multiple sources" +HOMEPAGE="https://wiki.gnome.org/Projects/Folks https://gitlab.gnome.org/GNOME/folks" + +LICENSE="LGPL-2.1+" +SLOT="0/26" # subslot = libfolks soname version +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x86-linux" + +IUSE="bluetooth eds telepathy test utils" +REQUIRED_USE="bluetooth? ( eds )" +RESTRICT="!test? ( test )" + +DEPEND=" + >=dev-libs/glib-2.58:2 + >=dev-libs/libgee-0.10:0.8[introspection] + >=dev-libs/gobject-introspection-1.54:= + telepathy? ( + >=net-libs/telepathy-glib-0.19.9 + dev-libs/dbus-glib + ) + eds? ( >=gnome-extra/evolution-data-server-3.38:= ) + dev-libs/libxml2:2 + utils? ( sys-libs/readline:0= ) +" +# telepathy-mission-control needed at runtime; it is used by the telepathy +# backend via telepathy-glib's AccountManager binding. +RDEPEND="${DEPEND} + bluetooth? ( >=net-wireless/bluez-5[obex] ) + telepathy? ( net-im/telepathy-mission-control ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig + $(vala_depend) + telepathy? ( net-libs/telepathy-glib[vala] ) + eds? ( gnome-extra/evolution-data-server[vala] ) + test? ( + sys-apps/dbus + bluetooth? ( + $(python_gen_any_dep ' + dev-python/python-dbusmock[${PYTHON_USEDEP}] + ') + ) + ) +" + +PATCHES=( + # implicit function declaration (Modern C porting): + # - https://bugs.gentoo.org/920098 + # - https://gitlab.gnome.org/GNOME/folks/-/merge_requests/68 + "${FILESDIR}"/folks-0.15.6-implicit-decl.patch +) + +python_check_deps() { + if use test && use bluetooth; then + python_has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]" + fi +} + +src_prepare() { + default + vala_setup + xdg_environment_reset +} + +src_configure() { + local emesonargs=( + $(meson_use bluetooth bluez_backend) + $(meson_use eds eds_backend) + $(meson_use eds ofono_backend) + $(meson_use telepathy telepathy_backend) + -Dzeitgeist=false # last rited package + -Dimport_tool=true + $(meson_use utils inspect_tool) + $(meson_use test tests) + -Dinstalled_tests=false + -Ddocs=false # Needs find_program sedding to specific version; only dev docs, don't bother + ) + meson_src_configure +} + +src_test() { + dbus-run-session meson test -C "${BUILD_DIR}" -t 5 +} + +pkg_postinst() { + xdg_pkg_postinst + gnome2_schemas_update +} + +pkg_postrm() { + xdg_pkg_postrm + gnome2_schemas_update +}