diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/lirc')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/lirc/default.nix | 97 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/lirc/linux-headers-5.18.patch | 35 |
2 files changed, 132 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/lirc/default.nix b/nixpkgs/pkgs/development/libraries/lirc/default.nix new file mode 100644 index 000000000000..80c9d1f1d810 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/lirc/default.nix @@ -0,0 +1,97 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, autoreconfHook +, pkg-config +, help2man +, python3 +, linuxHeaders + +, alsa-lib +, libxslt +, systemd +, libusb-compat-0_1 +, libftdi1 +, libICE +, libSM +, libX11 +}: + +let + pythonEnv = python3.pythonOnBuildForHost.withPackages (p: with p; [ pyyaml setuptools ]); +in +stdenv.mkDerivation rec { + pname = "lirc"; + version = "0.10.2"; + + src = fetchurl { + url = "mirror://sourceforge/lirc/${pname}-${version}.tar.bz2"; + sha256 = "sha256-PUTsgnSIHPJi8WCAVkHwgn/8wgreDYXn5vO5Dg09Iio="; + }; + + patches = [ + # Fix installation of Python bindings + (fetchpatch { + url = "https://sourceforge.net/p/lirc/tickets/339/attachment/0001-Fix-Python-bindings.patch"; + sha256 = "088a39x8c1qd81qwvbiqd6crb2lk777wmrs8rdh1ga06lglyvbly"; + }) + + # Add a workaround for linux-headers-5.18 until upstream adapts: + # https://sourceforge.net/p/lirc/git/merge-requests/45/ + ./linux-headers-5.18.patch + ]; + + postPatch = '' + patchShebangs . + + # fix overriding PYTHONPATH + sed -i 's,^PYTHONPATH *= *,PYTHONPATH := $(PYTHONPATH):,' \ + Makefile.in + sed -i 's,PYTHONPATH=,PYTHONPATH=$(PYTHONPATH):,' \ + doc/Makefile.in + + # Pull fix for new pyyaml pending upstream inclusion + # https://sourceforge.net/p/lirc/git/merge-requests/39/ + substituteInPlace python-pkg/lirc/database.py --replace 'yaml.load(' 'yaml.safe_load(' + + # cant import '/build/lirc-0.10.1/python-pkg/lirc/_client.so' while cross-compiling to check the version + substituteInPlace python-pkg/setup.py \ + --replace "VERSION='0.0.0'" "VERSION='${version}'" + ''; + + preConfigure = '' + export PKGCONFIG="$PKG_CONFIG" + ''; + + strictDeps = true; + + nativeBuildInputs = [ autoreconfHook help2man libxslt pythonEnv pkg-config ]; + + buildInputs = [ alsa-lib systemd libusb-compat-0_1 libftdi1 libICE libSM libX11 ]; + + DEVINPUT_HEADER = "${linuxHeaders}/include/linux/input-event-codes.h"; + + configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-systemdsystemunitdir=$(out)/lib/systemd/system" + "--enable-uinput" # explicit activation because build env has no uinput + "--enable-devinput" # explicit activation because build env has no /dev/input + "--with-lockdir=/run/lirc/lock" # /run/lock is not writable for 'lirc' user + "PYTHON=${pythonEnv.interpreter}" + ]; + + installFlags = [ + "sysconfdir=$out/etc" + "localstatedir=$TMPDIR" + ]; + + meta = with lib; { + description = "Allows to receive and send infrared signals"; + homepage = "https://www.lirc.org/"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/lirc/linux-headers-5.18.patch b/nixpkgs/pkgs/development/libraries/lirc/linux-headers-5.18.patch new file mode 100644 index 000000000000..733c423b7a83 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/lirc/linux-headers-5.18.patch @@ -0,0 +1,35 @@ +--- a/daemons/lircd.cpp ++++ b/daemons/lircd.cpp +@@ -110,6 +110,17 @@ int clock_gettime(int clk_id, struct timespec *t){ + #endif + #define WHITE_SPACE " \t" + ++/* Defines removed in linux-headers-5.18: ++ https://sourceforge.net/p/lirc/git/merge-requests/45/ ++ */ ++#ifndef LIRC_CAN_SET_REC_FILTER ++# define LIRC_CAN_SET_REC_FILTER 0x08000000 ++#endif ++ ++#ifndef LIRC_CAN_NOTIFY_DECODE ++# define LIRC_CAN_NOTIFY_DECODE 0x01000000 ++#endif ++ + static const logchannel_t logchannel = LOG_APP; + + /** How long we sleep while waiting for busy write sockets. */ +--- a/tools/lirc-lsplugins.cpp ++++ b/tools/lirc-lsplugins.cpp +@@ -21,6 +21,12 @@ + #include "config.h" + #include "lirc_private.h" + ++/* Defines removed in linux-headers-5.18: ++ https://sourceforge.net/p/lirc/git/merge-requests/45/ ++ */ ++#ifndef LIRC_CAN_NOTIFY_DECODE ++# define LIRC_CAN_NOTIFY_DECODE 0x01000000 ++#endif + + #define USAGE \ + "\nSynopsis:\n" \ |