blob: fcb347a2e5115b3178a9b217677a06c29918945f [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001DESCRIPTION = "LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls."
Patrick Williams213cb262021-08-07 19:21:33 -05002DESCRIPTION:append:lirc = " This package contains the lirc daemon, libraries and tools."
3DESCRIPTION:append:lirc-exec = " This package contains a daemon that runs programs on IR signals."
4DESCRIPTION:append:lirc-remotes = " This package contains some config files for remotes."
5DESCRIPTION:append:lirc-nslu2example = " This package contains a working config for RC5 remotes and a modified NSLU2."
Andrew Geissler82c905d2020-04-13 13:39:40 -05006HOMEPAGE = "http://www.lirc.org"
7SECTION = "console/network"
Andrew Geissler9aee5002022-03-30 16:27:02 +00008LICENSE = "GPL-2.0-only"
Andrew Geissler7f40b712020-05-15 14:09:53 -05009DEPENDS = "libxslt-native alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19 python3-pyyaml python3-setuptools-native"
Andrew Geissler82c905d2020-04-13 13:39:40 -050010
11LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
12
13SRC_URI = "http://prdownloads.sourceforge.net/lirc/lirc-${PV}.tar.bz2 \
Andrew Geissler517393d2023-01-13 08:55:19 -060014 file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
15 file://fix_build_errors.patch \
16 file://0001-mplay-Fix-build-with-musl.patch \
17 file://lircd.service \
18 file://lircd.init \
19 file://lircexec.init \
20 file://lircd.conf \
21 file://lirc_options.conf \
22 file://lirc.tmpfiles \
23 file://0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch \
Andrew Geisslerfc113ea2023-03-31 09:59:46 -050024 file://0001-Unbolt-ubuntu-hack.patch \
Andrew Geissler517393d2023-01-13 08:55:19 -060025 "
Patrick Williams2194f502022-10-16 14:26:09 -050026SRC_URI[sha256sum] = "3d44ec8274881cf262f160805641f0827ffcc20ade0d85e7e6f3b90e0d3d222a"
Andrew Geissler82c905d2020-04-13 13:39:40 -050027
28SYSTEMD_PACKAGES = "lirc lirc-exec"
Patrick Williams213cb262021-08-07 19:21:33 -050029SYSTEMD_SERVICE:${PN} = "lircd.service lircmd.service lircd-setup.service lircd-uinput.service"
30SYSTEMD_SERVICE:${PN}-exec = "irexec.service"
31SYSTEMD_AUTO_ENABLE:lirc = "enable"
32SYSTEMD_AUTO_ENABLE:lirc-exec = "enable"
Andrew Geissler82c905d2020-04-13 13:39:40 -050033
Andrew Geissler595f6302022-01-24 19:11:47 +000034inherit autotools pkgconfig systemd python3native setuptools3-base
Andrew Geissler82c905d2020-04-13 13:39:40 -050035
36PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd"
37PACKAGECONFIG[x11] = "--with-x,--with-x=no,libx11,"
38
39PACKAGECONFIG ?= " \
40 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)} \
41 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', '', d)} \
42"
43CACHED_CONFIGUREVARS = "HAVE_WORKING_POLL=yes"
44
45#EXTRA_OEMAKE = 'SUBDIRS="lib daemons tools"'
Andrew Geissler7f40b712020-05-15 14:09:53 -050046
47# Ensure python-pkg/VERSION exists
Patrick Williams213cb262021-08-07 19:21:33 -050048do_configure:append() {
Andrew Geissler7f40b712020-05-15 14:09:53 -050049 cp ${S}/VERSION ${S}/python-pkg/
50}
51
52# Create PYTHON_TARBALL which LIRC needs for install-nodist_pkgdataDATA
Patrick Williams213cb262021-08-07 19:21:33 -050053do_install:prepend() {
Patrick Williams8e7b46e2023-05-01 14:19:06 -050054 rm -rf ${S}/python-pkg/dist/
55 mkdir ${S}/python-pkg/dist/
56 tar --exclude='${S}/python-pkg/*' -czf ${S}/python-pkg/dist/${BP}.tar.gz ${S}
Andrew Geissler7f40b712020-05-15 14:09:53 -050057}
58
59# In code, path to python is a variable that is replaced with path to native version of it
60# during the configure stage, e.g ../recipe-sysroot-native/usr/bin/python3-native/python3.
61# Replace it with #!/usr/bin/env python3
Patrick Williams213cb262021-08-07 19:21:33 -050062do_install:append() {
Andrew Geissler7f40b712020-05-15 14:09:53 -050063 sed -i '1c#!/usr/bin/env python3' ${D}${bindir}/lirc-setup \
64 ${D}${PYTHON_SITEPACKAGES_DIR}/lirc-setup/lirc-setup \
65 ${D}${bindir}/irtext2udp \
66 ${D}${bindir}/lirc-init-db \
67 ${D}${bindir}/irdb-get \
68 ${D}${bindir}/pronto2lirc \
69 ${D}${sbindir}/lircd-setup
70
Andrew Geissler82c905d2020-04-13 13:39:40 -050071 install -m 0755 -d ${D}${sysconfdir}
72 install -m 0755 -d ${D}${sysconfdir}/lirc
Andrew Geissler82c905d2020-04-13 13:39:40 -050073 install -m 0644 ${WORKDIR}/lircd.conf ${D}${sysconfdir}/lirc/
74 install -m 0644 ${WORKDIR}/lirc_options.conf ${D}${sysconfdir}/lirc/
Patrick Williams03907ee2022-05-01 06:28:52 -050075 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
76 install -m 0755 -d ${D}${systemd_unitdir}/system ${D}${libdir}/tmpfiles.d
77 install -m 0644 ${WORKDIR}/lircd.service ${D}${systemd_unitdir}/system/
78 install -m 0755 ${WORKDIR}/lircexec.init ${D}${systemd_unitdir}/system/
79 install -m 0644 ${WORKDIR}/lirc.tmpfiles ${D}${libdir}/tmpfiles.d/lirc.conf
80 else
81 rm -rf ${D}/lib
82 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -050083 rm -rf ${D}${libdir}/lirc/plugins/*.la
84 rmdir ${D}/var/run/lirc ${D}/var/run
85 chown -R root:root ${D}${datadir}/lirc/contrib
86}
87
88PACKAGES =+ "${PN}-contrib ${PN}-exec ${PN}-plugins ${PN}-python"
89
Patrick Williams213cb262021-08-07 19:21:33 -050090RDEPENDS:${PN} = "bash python3"
91RDEPENDS:${PN}-exec = "${PN}"
92RDEPENDS:${PN}-python = "python3-shell python3-pyyaml python3-datetime python3-netclient python3-stringold"
Andrew Geissler82c905d2020-04-13 13:39:40 -050093
Patrick Williams213cb262021-08-07 19:21:33 -050094RRECOMMENDS:${PN} = "${PN}-exec ${PN}-plugins"
Andrew Geissler82c905d2020-04-13 13:39:40 -050095
Patrick Williams213cb262021-08-07 19:21:33 -050096FILES:${PN}-plugins = "${libdir}/lirc/plugins/*.so ${datadir}/lirc/configs"
97FILES:${PN}-contrib = "${datadir}/lirc/contrib"
98FILES:${PN}-exec = "${bindir}/irexec ${sysconfdir}/lircexec ${systemd_unitdir}/system/irexec.service"
99FILES:${PN} += "${systemd_unitdir}/system/lircexec.init"
100FILES:${PN} += "${systemd_unitdir}/system/lircd.service"
101FILES:${PN} += "${systemd_unitdir}/system/lircd.socket"
102FILES:${PN} += "${libdir}/tmpfiles.d/lirc.conf"
103FILES:${PN}-dbg += "${libdir}/lirc/plugins/.debug"
104FILES:${PN}-python += "${bindir}/irdb-get ${bindir}/irtext2udp ${bindir}/lircd-setup ${bindir}/pronto2lirc ${libdir}/python*/site-packages"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500105
106INITSCRIPT_PACKAGES = "lirc lirc-exec"
Patrick Williams213cb262021-08-07 19:21:33 -0500107INITSCRIPT_NAME:lirc-exec = "lircexec"
108INITSCRIPT_PARAMS:lirc-exec = "defaults 21"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500109
110# this is for distributions that don't use udev
Patrick Williams213cb262021-08-07 19:21:33 -0500111pkg_postinst:${PN}:append() {
Andrew Geissler82c905d2020-04-13 13:39:40 -0500112 if [ ! -c $D/dev/lirc -a ! -f /sbin/udevd ]; then mknod $D/dev/lirc c 61 0; fi
113}
114
115SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"