summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-03-17 22:39:16 +0000
committerSam James <sam@gentoo.org>2023-03-17 23:56:11 +0000
commit81f044d7b5f70314f72ec500664d240877ea2242 (patch)
tree5923448d7486f9e9bb7ddd1bc44639078671885e /media-gfx/gphoto2
parentapp-emulation/wine-vanilla: add 8.4 (diff)
downloadgentoo-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.patch77
-rw-r--r--media-gfx/gphoto2/gphoto2-2.5.28-r1.ebuild54
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)
+}