summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-06-05 23:05:17 +0100
committerSam James <sam@gentoo.org>2022-06-05 23:06:27 +0100
commitab4399b6f0f8414aa93ee706331a40baa120f9c1 (patch)
treee8673a3edc8f992cc339fa46f52a0bd49d42d5fb /app-misc/lirc
parentsys-kernel/linux-headers: add 5.18 patch for lirc build breakage (diff)
downloadgentoo-ab4399b6f0f8414aa93ee706331a40baa120f9c1.tar.gz
gentoo-ab4399b6f0f8414aa93ee706331a40baa120f9c1.tar.bz2
gentoo-ab4399b6f0f8414aa93ee706331a40baa120f9c1.zip
app-misc/lirc: add 0.10.1_p7 (use Debian patches)
Upstream is apparently mostly unmaintained and someone might be looking to fork it from the kernel side, but let's pick up the Debian patches for now. May or may not fix the Python build issue which I can't reproduce, but it brings us into a better state. Bug: https://bugs.gentoo.org/847886 Bug: https://bugs.gentoo.org/849788 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-misc/lirc')
-rw-r--r--app-misc/lirc/Manifest1
-rw-r--r--app-misc/lirc/lirc-0.10.1_p7.ebuild180
2 files changed, 181 insertions, 0 deletions
diff --git a/app-misc/lirc/Manifest b/app-misc/lirc/Manifest
index 0c62fff01aa6..a094fcac0030 100644
--- a/app-misc/lirc/Manifest
+++ b/app-misc/lirc/Manifest
@@ -1 +1,2 @@
DIST lirc-0.10.1.tar.bz2 2523226 BLAKE2B 47b7ee87de8f64f7f829af519c0d296a85cf91790148927e850965177d4984bb994a0ad122cb59c3db508813d0824ffec45126e794abd08174a052361cea53e5 SHA512 31c0b6ee169b302b99994a2a3fa0ebcae0e01cb83c02fe02acf1de5ba8cf77a091a0221c7d8104448c30930adafe654cd08afb7d0df6b5b7ec2d47df26e5df9d
+DIST lirc_0.10.1-7.debian.tar.xz 39392 BLAKE2B cb7527bb33a1d724fea487ca468f98f406c8af894b185580dd285ed46ee0d7f6eeb5c2d66ae09c917d580485568f6510ef968283c56511dc9b4281c77fcc4563 SHA512 9bcd7dc2d30647ab807a65036c02d4adc425af288046d8f0b9bee2f38389f39be21103e4980684827e736b4b76a05688ae870f0871bc50213de429c35b70211e
diff --git a/app-misc/lirc/lirc-0.10.1_p7.ebuild b/app-misc/lirc/lirc-0.10.1_p7.ebuild
new file mode 100644
index 000000000000..d610775c2fc6
--- /dev/null
+++ b/app-misc/lirc/lirc-0.10.1_p7.ebuild
@@ -0,0 +1,180 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit linux-info python-single-r1 xdg-utils
+
+DESCRIPTION="decode and send infra-red signals of many commonly used remote controls"
+HOMEPAGE="https://www.lirc.org/"
+
+LIRC_DRIVER_DEVICE="/dev/lirc0"
+
+MY_P=${PN}-${PV/_/-}
+S="${WORKDIR}/${MY_P}"
+
+if [[ ${PV} == *_pre* ]] ; then
+ SRC_URI="https://www.lirc.org/software/snapshots/${MY_P}.tar.bz2"
+elif [[ ${PV} == *_p* ]] ; then
+ inherit autotools
+ SRC_URI="mirror://sourceforge/lirc/${PN}-$(ver_cut 1-3).tar.bz2"
+ SRC_URI+=" mirror://debian/pool/main/l/${PN}/${PN}_$(ver_cut 1-3)-$(ver_cut 5-).debian.tar.xz"
+ S="${WORKDIR}"/${PN}-$(ver_cut 1-3)
+else
+ SRC_URI="mirror://sourceforge/lirc/${MY_P}.tar.bz2"
+fi
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ppc ppc64 ~riscv x86"
+IUSE="audio +devinput doc ftdi gtk inputlirc static-libs systemd +uinput usb X"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ gtk? ( X )
+"
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ audio? (
+ >media-libs/portaudio-18
+ media-libs/alsa-lib
+ )
+ $(python_gen_cond_dep '
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ ')
+ ftdi? ( dev-embedded/libftdi:0 )
+ systemd? ( sys-apps/systemd )
+ usb? ( virtual/libusb:0 )
+ X? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-libs/libxslt
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ doc? ( app-doc/doxygen )
+ sys-apps/kmod
+ sys-kernel/linux-headers
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ gtk? (
+ x11-libs/vte[introspection]
+ $(python_gen_cond_dep '
+ dev-python/pygobject[${PYTHON_USEDEP}]
+ ')
+ )
+ inputlirc? ( app-misc/inputlircd )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.10.1-unsafe-load.patch"
+ "${FILESDIR}/${PN}-0.10.1-runtimedirectory.patch"
+)
+
+MAKEOPTS+=" -j1"
+
+pkg_setup() {
+ use uinput && CONFIG_CHECK="~INPUT_UINPUT"
+ python-single-r1_pkg_setup
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ if [[ -d "${WORKDIR}"/debian/patches ]] ; then
+ eapply $(sed -e 's:^:../debian/patches/:' ../debian/patches/series || die)
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ xdg_environment_reset
+ econf \
+ --localstatedir="${EPREFIX}/var" \
+ $(use_enable static-libs static) \
+ $(use_enable devinput) \
+ $(use_enable uinput) \
+ $(use_with X x)
+}
+
+src_install() {
+ default
+
+ if use !gtk ; then
+ # lirc-setup requires gtk
+ rm "${ED}"/usr/bin/lirc-setup || die
+ fi
+
+ newinitd "${FILESDIR}"/lircd-0.8.6-r2 lircd
+ newinitd "${FILESDIR}"/lircmd-0.9.4a-r2 lircmd
+ newconfd "${FILESDIR}"/lircd.conf.4 lircd
+ newconfd "${FILESDIR}"/lircmd-0.10.0.conf lircmd
+
+ insinto /etc/modprobe.d/
+ newins "${FILESDIR}"/modprobed.lirc lirc.conf
+
+ newinitd "${FILESDIR}"/irexec-initd-0.9.4a-r2 irexec
+ newconfd "${FILESDIR}"/irexec-confd irexec
+
+ keepdir /etc/lirc
+ if [[ -e "${ED}"/etc/lirc/lircd.conf ]]; then
+ newdoc "${ED}"/etc/lirc/lircd.conf lircd.conf.example
+ fi
+
+ find "${ED}" -name '*.la' -delete || die
+
+ # Avoid QA notice
+ rm -d "${ED}"/var/run/lirc || die
+ rm -d "${ED}"/var/run || die
+}
+
+pkg_preinst() {
+ local dir="${EROOT}/etc/modprobe.d"
+ if [[ -a "${dir}"/lirc && ! -a "${dir}"/lirc.conf ]]; then
+ elog "Renaming ${dir}/lirc to lirc.conf"
+ mv -f "${dir}/lirc" "${dir}/lirc.conf" || die
+ fi
+
+ # copy the first file that can be found
+ if [[ -f "${EROOT}"/etc/lirc/lircd.conf ]]; then
+ cp "${EROOT}"/etc/lirc/lircd.conf "${T}"/lircd.conf || die
+ elif [[ -f "${EROOT}"/etc/lircd.conf ]]; then
+ cp "${EROOT}"/etc/lircd.conf "${T}"/lircd.conf || die
+ MOVE_OLD_LIRCD_CONF=1
+ elif [[ -f "${ED}"/etc/lirc/lircd.conf ]]; then
+ cp "${ED}"/etc/lirc/lircd.conf "${T}"/lircd.conf || die
+ fi
+
+ # stop portage from touching the config file
+ if [[ -e "${ED}"/etc/lirc/lircd.conf ]]; then
+ rm -f "${ED}"/etc/lirc/lircd.conf || die
+ fi
+}
+
+pkg_postinst() {
+ # copy config file to new location
+ # without portage knowing about it
+ # so it will not delete it on unmerge or ever touch it again
+ if [[ -e "${T}"/lircd.conf ]]; then
+ cp "${T}"/lircd.conf "${EROOT}"/etc/lirc/lircd.conf || die
+ if [[ "$MOVE_OLD_LIRCD_CONF" = "1" ]]; then
+ elog "Moved /etc/lircd.conf to /etc/lirc/lircd.conf"
+ rm -f "${EROOT}"/etc/lircd.conf || die
+ fi
+ fi
+
+ einfo "The new default location for lircd.conf is inside of"
+ einfo "${EROOT}/etc/lirc/ directory"
+}