From: "Pacho Ramos" <pacho@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/libgphoto2/
Date: Tue, 9 Jul 2024 18:39:08 +0000 (UTC) [thread overview]
Message-ID: <1720550324.bbad92ec847597037513ade0f8168bc8ae391cd7.pacho@gentoo> (raw)
commit: bbad92ec847597037513ade0f8168bc8ae391cd7
Author: Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 6 10:08:27 2024 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Tue Jul 9 18:38:44 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bbad92ec
media-libs/libgphoto2: Fix USE and IUSE handling
Closes: https://bugs.gentoo.org/935491
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/37456
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
media-libs/libgphoto2/libgphoto2-2.5.31-r2.ebuild | 216 ++++++++++++++++++++++
1 file changed, 216 insertions(+)
diff --git a/media-libs/libgphoto2/libgphoto2-2.5.31-r2.ebuild b/media-libs/libgphoto2/libgphoto2-2.5.31-r2.ebuild
new file mode 100644
index 000000000000..6d7e138870e8
--- /dev/null
+++ b/media-libs/libgphoto2/libgphoto2-2.5.31-r2.ebuild
@@ -0,0 +1,216 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# TODO
+# 1. Track upstream bug --disable-docs does not work.
+# https://sourceforge.net/p/gphoto/bugs/643/
+
+EAPI=8
+inherit autotools multilib-minimal udev
+
+DESCRIPTION="Library that implements support for numerous digital cameras"
+HOMEPAGE="http://www.gphoto.org/"
+SRC_URI="https://downloads.sourceforge.net/gphoto/${P}.tar.xz"
+
+LICENSE="GPL-2"
+
+# FIXME: should we also bump for libgphoto2_port.so soname version?
+SLOT="0/6" # libgphoto2.so soname version
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+# By default, drivers for all supported cameras will be compiled.
+# If you want to only compile for specific camera(s), set CAMERAS
+# environment to a space-separated list (no commas) of drivers that
+# you want to build.
+IUSE_CAMERAS=(
+ adc65 agfa_cl20 aox ax203
+ barbie
+ canon casio_qv clicksmart310
+ digigr8 digita dimagev dimera3500 directory
+ enigma13
+ fuji
+ gsmart300
+ hp215
+ iclick
+ jamcam jd11 jl2005a jl2005c
+ kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 konica konica_qm150
+ largan lg_gsm
+ mars mustek
+ panasonic_coolshot panasonic_l859 panasonic_dc1000 panasonic_dc1580
+ pccam300 pccam600 pentax polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ptp2
+ ricoh ricoh_g3
+ samsung sierra sipix_blink2 sipix_web2 smal sonix sony_dscf1 sony_dscf55
+ soundvision spca50x sq905 st2205 stv0674 stv0680 sx330z
+ toshiba_pdrm11 topfield tp6801
+)
+
+IUSE="doc examples exif gd jpeg nls serial ${IUSE_CAMERAS[@]/#/+cameras_}"
+REQUIRED_USE="|| ( ${IUSE_CAMERAS[@]/#/cameras_} )"
+
+# libgphoto2 actually links to libltdl
+RDEPEND="
+ acct-group/plugdev
+ >=dev-libs/libxml2-2.9.1-r4:2[${MULTILIB_USEDEP}]
+ net-misc/curl[${MULTILIB_USEDEP}]
+ dev-libs/libltdl:0[${MULTILIB_USEDEP}]
+ >=virtual/libusb-1-r1:1[${MULTILIB_USEDEP}]
+ cameras_ax203? ( >=media-libs/gd-2.0.35-r4:=[${MULTILIB_USEDEP}] )
+ cameras_st2205? ( >=media-libs/gd-2.0.35-r4:=[${MULTILIB_USEDEP}] )
+ exif? ( >=media-libs/libexif-0.6.21-r1[${MULTILIB_USEDEP}] )
+ gd? ( >=media-libs/gd-2.0.35-r4:=[jpeg=,${MULTILIB_USEDEP}] )
+ jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
+ serial? ( >=dev-libs/lockdev-1.0.3.1.2-r2[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-build/gtk-doc-am
+ app-alternatives/lex
+ >=sys-devel/gettext-0.19.1
+ virtual/pkgconfig
+ doc? ( app-text/doxygen )
+"
+
+MULTILIB_CHOST_TOOLS=(
+ /usr/bin/gphoto2-port-config
+ /usr/bin/gphoto2-config
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.5.31-c99.patch
+)
+
+src_prepare() {
+ default
+
+ # Handle examples ourselves
+ sed 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+ || die "examples sed failed"
+
+ eautoreconf # For configure.ac patching
+}
+
+multilib_src_configure() {
+ local myconf
+ use doc || myconf=( ac_cv_path_DOXYGEN=no )
+
+ # Upstream doesn't default to --enable-option-checking due having another
+ # configure in libgphoto2_port/ that also needs to be checked on every bump
+ #
+ # Serial port uses either lockdev or ttylock, but we don't have ttylock
+ # --with-doc-dir needed to prevent duplicate docs installation, bug #586842
+ ECONF_SOURCE=${S} \
+ econf \
+ --cache-file="${BUILD_DIR}"/config.cache \
+ --with-doc-dir="${EPREFIX}"/usr/share/doc/${PF} \
+ --disable-docs \
+ --disable-gp2ddb \
+ $(use_enable nls) \
+ $(use_with exif libexif auto) \
+ $(use_with gd) \
+ $(use_with jpeg) \
+ $(use_enable serial) \
+ $(use_enable serial lockdev) \
+ --with-libusb=no \
+ --with-libusb-1.0=auto \
+ --disable-ttylock \
+ --with-camlibs=${cameras} \
+ --with-hotplug-doc-dir="${EPREFIX}"/usr/share/doc/${PF}/hotplug \
+ --with-rpmbuild=$(type -P true) \
+ udevscriptdir="$(get_udevdir)" \
+ "${myconf[@]}"
+}
+
+src_configure() {
+ local cameras
+ local cam
+ local cam_warn=no
+ for cam in "${IUSE_CAMERAS[@]}"; do
+ if use "cameras_${cam}"; then
+ cameras+=",${cam}"
+ else
+ cam_warn=yes
+ fi
+ done
+
+ if [ "${cam_warn}" = "yes" ]; then
+ [ -z "${cameras}" ] || cameras="${cameras:1}"
+ einfo "Enabled camera drivers: ${cameras:-none}"
+ einfo "Upstream will not support you if you do not compile all camera drivers first"
+ else
+ cameras="all"
+ einfo "Enabled camera drivers: all"
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_compile() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ doxygen doc/Doxyfile || die "Documentation generation failed"
+ fi
+}
+
+multilib_src_install_all() {
+ find "${ED}" -name '*.la' -delete || die
+
+ einstalldocs
+ dodoc TESTERS MAINTAINERS
+
+ if use examples; then
+ docinto examples
+ dodoc examples/README examples/*.c examples/*.h
+ fi
+
+ # FIXME: fixup autoconf bug #????
+ if ! use doc && [ -d "${ED}/usr/share/doc/${PF}/apidocs.html" ]; then
+ rm -fr "${ED}/usr/share/doc/${PF}/apidocs.html"
+ fi
+ # end fixup
+
+ local udev_rules cam_list
+ udev_rules="$(get_udevdir)/rules.d/70-libgphoto2.rules"
+ cam_list="/usr/$(get_libdir)/libgphoto2/print-camera-list"
+
+ if [ -x "${ED}"/${cam_list} ]; then
+ # Let print-camera-list find libgphoto2.so
+ export LD_LIBRARY_PATH="${ED}/usr/$(get_libdir)"
+ # Let libgphoto2 find its camera-modules
+ export CAMLIBS="${ED}/usr/$(get_libdir)/libgphoto2/${PV}"
+
+ einfo "Generating UDEV-rules ..."
+ mkdir -p "${ED}"/${udev_rules%/*}
+ echo -e "# do not edit this file, it will be overwritten on update\n#" \
+ > "${ED}"/${udev_rules}
+ "${ED}"${cam_list} udev-rules version 201 group plugdev >> "${ED}"/${udev_rules} \
+ || die "failed to create udev-rules"
+ else
+ eerror "Unable to find print-camera-list"
+ eerror "and therefore unable to generate hotplug usermap."
+ eerror "You will have to manually generate it by running:"
+ eerror " ${cam_list} udev-rules version 201 group plugdev > ${udev_rules}"
+ fi
+
+}
+
+pkg_postinst() {
+ if ! has_version "sys-auth/consolekit[acl]" \
+ && ! has_version "sys-apps/systemd[acl]" \
+ && ! has_version "sys-auth/elogind[acl]" ; then
+ elog "Don't forget to add yourself to the plugdev group "
+ elog "if you want to be able to access your camera."
+ fi
+
+ local old_udev_rules="${EROOT}"/etc/udev/rules.d/99-libgphoto2.rules
+ if [[ -f ${old_udev_rules} ]]; then
+ rm -f "${old_udev_rules}"
+ fi
+
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
next reply other threads:[~2024-07-09 18:39 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-09 18:39 Pacho Ramos [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-10-04 17:37 [gentoo-commits] repo/gentoo:master commit in: media-libs/libgphoto2/ Andreas Sturmlechner
2024-09-24 15:03 Arthur Zamarin
2024-09-23 12:09 Ulrich Müller
2024-09-23 8:18 Arthur Zamarin
2024-09-23 7:13 Arthur Zamarin
2024-09-23 6:02 Arthur Zamarin
2024-09-23 6:02 Arthur Zamarin
2024-09-23 0:32 Sam James
2024-09-23 0:32 Sam James
2024-04-13 10:37 Mart Raudsepp
2024-04-09 22:46 Sam James
2024-04-07 10:11 Arthur Zamarin
2024-04-07 9:14 Arthur Zamarin
2024-04-07 7:25 Arthur Zamarin
2024-04-06 21:07 Arthur Zamarin
2024-02-17 20:30 Mart Raudsepp
2023-12-04 12:42 Sam James
2023-11-18 16:46 Sam James
2023-09-04 16:24 Matt Turner
2023-09-04 16:13 Matt Turner
2022-10-01 23:09 Sam James
2022-08-15 19:13 Arthur Zamarin
2022-08-15 19:13 Arthur Zamarin
2022-08-15 17:43 Arthur Zamarin
2022-08-15 17:04 Arthur Zamarin
2022-07-29 2:59 Sam James
2022-07-03 21:04 Matt Turner
2022-05-31 9:24 Jakov Smolić
2022-05-28 5:38 Sam James
2022-05-28 5:05 Sam James
2022-05-26 9:44 Pacho Ramos
2022-03-15 20:54 Matt Turner
2022-03-11 18:26 Matt Turner
2022-03-09 15:39 Sam James
2022-03-09 12:49 Sam James
2022-03-08 12:32 Sam James
2022-03-08 9:35 Sam James
2022-01-11 4:19 Georgy Yakovlev
2021-05-29 15:27 Sam James
2021-05-29 0:03 Yixun Lan
2021-05-28 19:20 Sam James
2021-05-28 19:18 Sam James
2021-05-28 19:11 Sam James
2021-05-28 15:57 David Seifert
2021-04-19 2:39 Matt Turner
2021-04-13 16:12 Matt Turner
2021-04-13 15:00 Sam James
2021-04-12 23:11 Sam James
2021-04-12 16:02 Sam James
2021-04-01 16:44 Thomas Deutschmann
2021-03-16 18:10 Sergei Trofimovich
2021-03-12 8:01 Mikle Kolyada
2020-11-11 17:11 Matt Turner
2020-01-11 20:01 Mart Raudsepp
2020-01-11 20:01 Mart Raudsepp
2019-09-13 12:58 Michał Górny
2019-07-26 22:21 Aaron Bauman
2019-07-03 7:11 Agostino Sarubbo
2019-06-27 12:35 Agostino Sarubbo
2019-06-17 19:40 Sergei Trofimovich
2019-06-17 10:07 Mikle Kolyada
2019-06-05 20:22 Andreas Sturmlechner
2019-05-23 13:02 Mikle Kolyada
2019-05-03 13:42 Mikle Kolyada
2019-03-16 22:55 Sergei Trofimovich
2019-03-16 14:01 Mikle Kolyada
2019-03-10 22:17 Sergei Trofimovich
2019-03-10 15:21 Mikle Kolyada
2019-03-09 19:18 Thomas Deutschmann
2019-03-03 15:06 Mart Raudsepp
2019-01-29 13:43 Mikle Kolyada
2019-01-16 22:36 Mart Raudsepp
2019-01-16 7:15 Sergei Trofimovich
2018-12-08 15:41 Gilles Dartiguelongue
2018-11-24 13:36 Sergei Trofimovich
2018-08-19 22:52 Patrice Clement
2018-05-29 12:29 Mikle Kolyada
2018-05-14 16:03 Tobias Klausmann
2018-05-04 20:46 Markus Meier
2018-04-28 17:05 Sergei Trofimovich
2018-04-28 16:36 Sergei Trofimovich
2018-04-26 22:32 Aaron Bauman
2018-04-26 17:15 Thomas Deutschmann
2018-01-23 8:24 Gilles Dartiguelongue
2018-01-20 18:05 Mart Raudsepp
2017-12-06 22:34 Sergei Trofimovich
2017-11-19 15:14 Markus Meier
2017-11-19 12:19 Sergei Trofimovich
2017-11-13 22:37 Sergei Trofimovich
2017-11-12 11:35 Sergei Trofimovich
2017-11-02 21:16 Thomas Deutschmann
2017-11-01 7:25 Sergei Trofimovich
2017-10-30 22:26 Mart Raudsepp
2017-09-26 22:47 Manuel Rüger
2017-08-27 17:57 Gilles Dartiguelongue
2017-06-27 17:05 Alexis Ballier
2017-03-16 13:24 Jeroen Roovers
2017-02-24 14:07 Agostino Sarubbo
2017-02-21 9:16 Tobias Klausmann
2017-02-18 14:44 Agostino Sarubbo
2017-02-17 10:56 Agostino Sarubbo
2017-02-15 20:38 Mart Raudsepp
2017-01-29 19:14 Fabian Groffen
2017-01-22 13:46 Pacho Ramos
2016-12-05 13:52 Pacho Ramos
2016-07-30 20:37 Pacho Ramos
2016-07-30 11:18 Jeroen Roovers
2016-07-30 9:34 Jeroen Roovers
2016-06-07 7:03 Tobias Klausmann
2016-05-29 12:42 Pacho Ramos
2016-03-06 20:12 Mikle Kolyada
2016-02-28 16:32 Pacho Ramos
2016-01-04 23:14 Gilles Dartiguelongue
2015-11-16 14:08 Agostino Sarubbo
2015-11-12 11:07 Agostino Sarubbo
2015-10-18 11:29 Mikle Kolyada
2015-09-28 4:44 Jeroen Roovers
2015-09-20 6:11 Jeroen Roovers
2015-09-16 8:43 Tobias Klausmann
2015-09-05 17:17 Pacho Ramos
2015-09-05 17:17 Pacho Ramos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1720550324.bbad92ec847597037513ade0f8168bc8ae391cd7.pacho@gentoo \
--to=pacho@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox