media-libs/libgphoto2: Version bump to 2.5.28

Signed-off-by: Matt Turner <mattst88@gentoo.org>
This commit is contained in:
Matt Turner
2022-01-10 13:09:22 -08:00
parent 97504825a8
commit 79866cccaa
3 changed files with 412 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST libgphoto2-2.5.27.tar.bz2 7540660 BLAKE2B 6fa2d54497e2162b8e9a4be17a8fe74c6e13ccf15d8fe873649c4285188d86e45cbe8359572bcfd252f1abce28ac327d3333fcb62ad958e6f992c9e11fff4fb1 SHA512 7cc82977e62034c539c7e62bff62ee61a299d3adb0c42e88b8e5521e75eedbc22437b9520af8a4bbd7dc0639ce5a8a10b1f5e5e8075e9b73a566da9061c958f8
DIST libgphoto2-2.5.28.tar.bz2 7399434 BLAKE2B 3feed613fd84cbea6109afa2ce643ad8be9b3df14cf332cbd93a8260d7082756f5278578b4052a289b954751a82a2f62583ea327ce96255bd653912130319bfc SHA512 5898d35a991361a6cc6824cb88aab79326b59e4080b5e885e1619667d11c4a92d24a1d3fbdbd6af49696508ace1eba1b17bf2f406c72dc9ad69bcf019bc86eec

View File

@@ -0,0 +1,197 @@
From 613b00785932198ba09d510e2b1aab5aa62e66e4 Mon Sep 17 00:00:00 2001
From: Hans Ulrich Niedermann <hun@n-dimensional.de>
Date: Mon, 10 Jan 2022 00:24:06 +0100
Subject: [PATCH] configure: Allow --with-jpeg=yes argument again
Allow the --with-jpeg=yes configure argument again. This
was broken by commit ea00220b6f44a00c2efa792c538f1804ebe183c2.
The GP_LIBJPEG macro in the configure script now handles the following cases:
--with-jpeg=no
--without-jpeg
Do not use libjpeg. Do not autodetect it either.
--with-jpeg
--with-jpeg=yes
Autodetect libjpeg. If not found, abort.
<no argument given>
--with-jpeg=auto
--with-jpeg=autodetect
Autodetect libjpeg. If found, use it.
However, it does *NOT* handle
--with-jpeg=/path/to/somewhere
at this time. Set LIBJPEG_CFLAGS and/or LIBJPEG_LIBS
instead to specify which libjpeg to compile with and
link against.
This mostly matches the behaviour from before commit
ea00220b6f44a00c2efa792c538f1804ebe183c2, which was
--with-jpeg=no
--without-jpeg
Do not use libjpeg. Do not autodetect it either.
--with-jpeg
--with-jpeg=yes
--with-jpeg=<any value other than "no">
Autodetect libjpeg. If found, use it. Otherwise, silently
ignore the user's wish to build with libjpeg.
<no argument given>
Autodetect libjpeg. If found, use it.
If someone is running configure with --with-jpeg=yes and
libjpeg cannot be used, we can assume that building without
using libjpeg is not the outcome the user expects.
Fixes: https://github.com/gphoto/libgphoto2/issues/759
Closes: https://github.com/gphoto/libgphoto2/pull/760
---
libgphoto2_port/gphoto-m4/gp-libjpeg.m4 | 99 +++++++++++++++++++------
1 file changed, 76 insertions(+), 23 deletions(-)
diff --git a/libgphoto2_port/gphoto-m4/gp-libjpeg.m4 b/libgphoto2_port/gphoto-m4/gp-libjpeg.m4
index e707408d1..a60a15f03 100644
--- a/libgphoto2_port/gphoto-m4/gp-libjpeg.m4
+++ b/libgphoto2_port/gphoto-m4/gp-libjpeg.m4
@@ -2,9 +2,14 @@ dnl ####################################################################
dnl GP_LIBJPEG
dnl ####################################################################
dnl
+dnl Define the libjpeg related compile and linker flags depending on
+dnl configure arguments and availability on the system.
+dnl
dnl * If --without-jpeg or --with-jpeg=no is given, build without
dnl libjpeg support.
-dnl * If not explicitly disabled by --without-jpeg, autodetect libjpeg.
+dnl
+dnl * If --with-jpeg=auto or --with-jpeg=autodetect is given,
+dnl autodetect libjpeg:
dnl * If any of LIBJPEG_(CFLAGS|LIBS) is explicitly given, try
dnl compile+link using that.
dnl * If compile+link works, use that.
@@ -18,28 +23,87 @@ dnl * If libjpeg.pc has not been found, try default location.
dnl * If compile+link works, use that.
dnl * If compile+link fails, build without libjpeg.
dnl
+dnl * If --with-jpeg or --with-jpeg=yes is given, autodetect as
+dnl described above, but abort with an error message if libjpeg
+dnl could not be found.
+dnl
+dnl * If neither --with-jpeg nor --without-jpeg are explicitly given,
+dnl run the above autodetect sequence.
+dnl
AC_DEFUN([GP_LIBJPEG], [dnl
dnl
AC_MSG_CHECKING([whether to build with libjpeg])
AC_ARG_WITH([jpeg],
[AS_HELP_STRING([--without-jpeg],
- [Build without libjpeg (default: with libjpeg)])],
- [dnl just keep the with-jpeg however it is given
- AS_VAR_IF([with_jpeg], [no], [], [dnl
- AC_MSG_ERROR([
-Unhandled value given to --with-jpeg / --without-jpeg: '$with_jpeg'
-])
- ])
-], [dnl
- with_jpeg=autodetect
+ [Build without libjpeg (default: autodetect)])],
+ [dnl Normalize --with-jpeg=ARG argument value
+ AS_CASE([$with_jpeg],
+ [autodetect], [with_jpeg=auto],
+ )
+], [dnl Default value
+ with_jpeg=auto
])
+dnl
AC_MSG_RESULT([$with_jpeg])
dnl
-AS_VAR_IF([with_jpeg], [no], [dnl Not using libjpeg, so no checks are needed
+AS_CASE([$with_jpeg],
+[no], [
# libjpeg explictly disabled from command line
GP_CONFIG_MSG([JPEG mangling support],
[no (disabled by --without-jpeg)])
-], [dnl
+],
+[auto|yes], [
+ GP_LIBJPEG_AUTODETECT
+
+ AS_VAR_IF([have_libjpeg], [no], [dnl
+ AS_VAR_IF([with_jpeg], [yes], [dnl
+ AC_MSG_ERROR([
+libjpeg has been requested explicitly (--with-jpeg=yes), but could not be
+found and made to work.
+])
+ ], [dnl
+ GP_CONFIG_MSG([JPEG mangling support],
+ [${have_libjpeg} (could not find working libjpeg)])
+ ])
+ ], [dnl
+ AC_DEFINE([HAVE_LIBJPEG], [1],
+ [define if building with libjpeg])
+ GP_CONFIG_MSG([JPEG mangling support],
+ [${have_libjpeg}])
+ ])
+],
+[AC_MSG_ERROR([
+Unhandled value given to --with-jpeg: ${with_jpeg}
+
+To allow the auto-detection of libjpeg, set up the pkg-config related
+environment variables (PKG_CONFIG, PKG_CONFIG_PATH, PKG_CONFIG_LIBDIR)
+or have libjpeg installed in the standard location to include from and
+link to.
+
+To force specific compile and link flags for libjpeg, set the
+environment variables LIBJPEG_CFLAGS and $LIBJPEG_LIBS accordingly.
+])
+])
+])dnl
+dnl
+dnl
+dnl ####################################################################
+dnl GP_LIBJPEG_AUTODETECT
+dnl
+dnl Do the actual autodetection of libjpeg, setting
+dnl
+dnl have_libjpeg=yes
+dnl If libjpeg has been found and can be both compiled with and
+dnl linked against.
+dnl
+dnl have_libjpeg=no
+dnl If libjpeg has not been found or cannot be compiled with or
+dnl cannot be linked against.
+dnl
+dnl Used once: By GP_LIBJPEG to make the GP_LIBJPEG code more readable.
+dnl ####################################################################
+dnl
+AC_DEFUN([GP_LIBJPEG_AUTODETECT], [dnl
have_libjpeg=no
AC_MSG_CHECKING([for libjpeg via variables])
@@ -78,17 +142,6 @@ libjpeg not found despite LIBJPEG_CFLAGS and/or LIBJPEG_LIBS being set.
])
])
])
-
- AS_VAR_IF([have_libjpeg], [no], [dnl
- GP_CONFIG_MSG([JPEG mangling support],
- [${have_libjpeg} (requires libjpeg)])
- ], [dnl
- AC_DEFINE([HAVE_LIBJPEG], [1],
- [define if building with libjpeg])
- GP_CONFIG_MSG([JPEG mangling support],
- [${have_libjpeg}])
- ])
-])
])dnl
dnl
dnl
--
2.34.1

View File

@@ -0,0 +1,214 @@
# Copyright 1999-2022 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=7
inherit autotools multilib-minimal udev
DESCRIPTION="Library that implements support for numerous digital cameras"
HOMEPAGE="http://www.gphoto.org/"
SRC_URI="mirror://sourceforge/gphoto/${P}.tar.bz2"
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 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="doc examples exif gd jpeg nls serial"
# 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
"
for camera in ${IUSE_CAMERAS}; do
IUSE="${IUSE} +cameras_${camera}"
done
# libgphoto2 actually links to libltdl
RDEPEND="
acct-group/plugdev
>=dev-libs/libxml2-2.9.1-r4:2[${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? ( >=virtual/jpeg-0-r2:0[${MULTILIB_USEDEP}] )
serial? ( >=dev-libs/lockdev-1.0.3.1.2-r2[${MULTILIB_USEDEP}] )
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/gtk-doc-am
sys-devel/flex
>=sys-devel/gettext-0.14.1
virtual/pkgconfig
doc? ( app-doc/doxygen )
"
MULTILIB_CHOST_TOOLS=(
/usr/bin/gphoto2-port-config
/usr/bin/gphoto2-config
)
PATCHES=(
"${FILESDIR}"/${PV}-configure-Allow-with-jpeg-yes-argument-again.patch
)
pkg_pretend() {
if ! echo "${USE}" | grep "cameras_" > /dev/null 2>&1; then
einfo "No camera drivers will be built since you did not specify any."
fi
}
src_prepare() {
default
# Handle examples ourselves
sed 's/^\(SUBDIRS =.*\)examples\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
|| die "examples sed failed"
sed -e 's/sleep 2//' -i configure || die
eautoreconf # For configure.ac patching
}
multilib_src_configure() {
local myconf
use doc || myconf=( ac_cv_path_DOXYGEN=false )
# 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 \
--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="${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
}