diff options
author | Sam James <sam@gentoo.org> | 2023-03-17 22:39:16 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-03-17 23:56:11 +0000 |
commit | 81f044d7b5f70314f72ec500664d240877ea2242 (patch) | |
tree | 5923448d7486f9e9bb7ddd1bc44639078671885e /media-gfx/gphoto2 | |
parent | app-emulation/wine-vanilla: add 8.4 (diff) | |
download | gentoo-81f044d7b5f70314f72ec500664d240877ea2242.tar.gz gentoo-81f044d7b5f70314f72ec500664d240877ea2242.tar.bz2 gentoo-81f044d7b5f70314f72ec500664d240877ea2242.zip |
media-gfx/gphoto2: fix build w/ clang 16
Closes: https://bugs.gentoo.org/896212
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-gfx/gphoto2')
-rw-r--r-- | media-gfx/gphoto2/files/gphoto2-2.5.28-clang-16.patch | 77 | ||||
-rw-r--r-- | media-gfx/gphoto2/gphoto2-2.5.28-r1.ebuild | 54 |
2 files changed, 131 insertions, 0 deletions
diff --git a/media-gfx/gphoto2/files/gphoto2-2.5.28-clang-16.patch b/media-gfx/gphoto2/files/gphoto2-2.5.28-clang-16.patch new file mode 100644 index 000000000000..e21d38b311e9 --- /dev/null +++ b/media-gfx/gphoto2/files/gphoto2-2.5.28-clang-16.patch @@ -0,0 +1,77 @@ +https://bugs.gentoo.org/896212 +https://github.com/gphoto/gphoto2/pull/569 +https://github.com/gphoto/gphoto2/commit/ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e +https://github.com/gphoto/gphoto2/commit/366930ccc1a261c3eb883da2bf3c655162ccd75f + +From ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 2 Sep 2022 12:59:46 -0700 +Subject: [PATCH] gphoto2: Use pthread_t abstract type for thead IDs + +This is not a plain old datatype in every libc, e.g. with musl this +would fail in type conversion + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/gphoto2/main.c ++++ b/gphoto2/main.c +@@ -1198,7 +1198,7 @@ thread_func (void *data) + pthread_cleanup_pop (1); + } + +-static unsigned int ++static pthread_t + start_timeout_func (Camera *camera, unsigned int timeout, + CameraTimeoutFunc func, void __unused__ *data) + { +@@ -1219,7 +1219,7 @@ start_timeout_func (Camera *camera, unsigned int timeout, + } + + static void +-stop_timeout_func (Camera __unused__ *camera, unsigned int id, ++stop_timeout_func (Camera __unused__ *camera, pthread_t id, + void __unused__ *data) + { + pthread_t tid = id; + + +From 366930ccc1a261c3eb883da2bf3c655162ccd75f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 1 Mar 2023 22:58:37 -0800 +Subject: [PATCH] Match prototypes of callbacks with libgphoto + +In https://github.com/gphoto/gphoto2/pull/535/commits/ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e +we tried to fix by using pthread_t but it also needs to make changes in +libgphoto and these changes can be invasive, therefore lets revert to +older types and to fix musl problem fix it via type casts + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/gphoto2/main.c ++++ b/gphoto2/main.c +@@ -1198,7 +1198,7 @@ thread_func (void *data) + pthread_cleanup_pop (1); + } + +-static pthread_t ++static unsigned int + start_timeout_func (Camera *camera, unsigned int timeout, + CameraTimeoutFunc func, void __unused__ *data) + { +@@ -1215,14 +1215,14 @@ start_timeout_func (Camera *camera, unsigned int timeout, + + pthread_create (&tid, NULL, thread_func, td); + +- return (tid); ++ return (unsigned int)tid; + } + + static void +-stop_timeout_func (Camera __unused__ *camera, pthread_t id, ++stop_timeout_func (Camera __unused__ *camera, unsigned int id, + void __unused__ *data) + { +- pthread_t tid = id; ++ pthread_t tid = (pthread_t)id; + + pthread_cancel (tid); + pthread_join (tid, NULL); + diff --git a/media-gfx/gphoto2/gphoto2-2.5.28-r1.ebuild b/media-gfx/gphoto2/gphoto2-2.5.28-r1.ebuild new file mode 100644 index 000000000000..451c24940a8e --- /dev/null +++ b/media-gfx/gphoto2/gphoto2-2.5.28-r1.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="Free, redistributable digital camera software application" +HOMEPAGE="http://www.gphoto.org/" +SRC_URI="mirror://sourceforge/gphoto/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +IUSE="aalib ncurses nls readline" + +# aalib -> needs libjpeg +RDEPEND=" + >=dev-libs/popt-1.6.1 + >=media-libs/libexif-0.6.9 + >=media-libs/libgphoto2-2.5.17:=[exif] + aalib? ( + media-libs/aalib + media-libs/libjpeg-turbo + ) + ncurses? ( dev-libs/cdk:= ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + nls? ( >=sys-devel/gettext-0.14.1 ) +" + +PATCHES=( + "${FILESDIR}"/${P}-clang-16.patch +) + +src_prepare() { + default + # Leave GCC debug builds under user control + sed -r '/(C|LD)FLAGS/ s/ -g( |")/\1/' \ + -i configure{.ac,} || die + eautoreconf +} + +src_configure() { + econf \ + $(use_with aalib) \ + $(use_with aalib jpeg) \ + $(use_with ncurses cdk) \ + $(use_enable nls) \ + $(use_with readline) +} |