commit d2ab6481c29537a5bc387e2183f2f8e0e4cd2a76 Author: Jakub Bogusz <qbo...@pld-linux.org> Date: Wed Feb 14 22:11:17 2018 +0100
- new yard2tools-lirc.patch | 29 +++++ yard2tools-lircd_094.patch | 278 +++++++++++++++++++++++++++++++++++++++++++++ yard2tools.spec | 116 +++++++++++++++++++ 3 files changed, 423 insertions(+) --- diff --git a/yard2tools.spec b/yard2tools.spec new file mode 100644 index 0000000..b77bef0 --- /dev/null +++ b/yard2tools.spec @@ -0,0 +1,116 @@ +# +# Conditional build: +%bcond_without lirc # LIRC driver +# +Summary: Infra-red remote control support for Y.A.R.D.2 hardware +Summary(pl.UTF-8): Obsługa pilotów na podczerwień Y.A.R.D.2 +Name: yard2tools +Version: 1.2.5 +Release: 1 +License: GPL v2+ +Group: Applications/System +Source0: https://launchpad.net/~yard2team/+archive/ubuntu/test/+files/%{name}_%{version}.orig.tar.gz +# Source0-md5: 91427839a1aad9bab65a163b1cbec951 +# from git://git.assembla.com/yard2srvd.git (master on 20171026) +Patch0: %{name}-lircd_094.patch +Patch1: %{name}-lirc.patch +URL: https://app.assembla.com/spaces/yard2srvd/git/source +BuildRequires: libbsd-devel +BuildRequires: libusb-compat-devel +%{?with_lirc:BuildRequires: lirc-devel >= 0.9.4} +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) + +%description +This package provides the daemon and some utilities to support +infra-red remote controls with the Y.A.R.D.2 type of hardware under +Linux. + +%description -l pl.UTF-8 +Ten pakiet zawiera demona i narzędzia do obsługi pilotów na +podczerwień typu Y.A.R.D.2 pod Linuksem. + +%package vdr +Summary: Infra-red remote control support for Y.A.R.D.2 hardware in VDR +Summary(pl.UTF-8): Obsługa pilotów na podczerwień Y.A.R.D.2 w programie VDR +Group: Applications +Requires: %{name} = %{version}-%{release} +Requires: vdr + +%description vdr +Infra-red remote control support for Y.A.R.D.2 hardware in VDR. + +%description vdr -l pl.UTF-8 +Obsługa pilotów na podczerwień Y.A.R.D.2 w programie VDR. + +%package -n lirc-plugin-yard2 +Summary: Y.A.R.D.2 driver for LIRC +Summary(pl.UTF-8): Sterownik do sprzętu Y.A.R.D.2 dla LIRC-a +Group: Libraries +Requires: lirc >= 0.9.4 + +%description -n lirc-plugin-yard2 +Y.A.R.D.2 driver for LIRC. + +%description -n lirc-plugin-yard2 -l pl.UTF-8 +Sterownik do sprzętu Y.A.R.D.2 dla LIRC-a. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 + +%{__rm} inih/extra/*.a + +%build +%configure +%{__make} + +%if %{with lirc} +%{__make} -C lirc/lircd_094 \ + CC="%{__cc}" \ + CFLAGS="%{rpmcflags} -fPIC" \ + LDFLAGS="%{rpmldflags}" +%endif + +%install +rm -rf $RPM_BUILD_ROOT + +%{__make} install \ + DESTDIR=$RPM_BUILD_ROOT + +%if %{with lirc} +%{__make} -C lirc/lircd_094 install \ + DESTDIR=$RPM_BUILD_ROOT +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(644,root,root,755) +%doc Readme.txt ChangeLog +%attr(755,root,root) %{_bindir}/lirctest +%attr(755,root,root) %{_bindir}/yard2config +%attr(755,root,root) %{_bindir}/yard2flash +%attr(755,root,root) %{_bindir}/yard2lcdtest +%attr(755,root,root) %{_bindir}/yard2record +%attr(755,root,root) %{_bindir}/yard2srvd +%attr(755,root,root) %{_bindir}/yard2wakeup +%dir %{_sysconfdir}/yard2 +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/yard2/yard2tools.cfg +%{systemdunitdir}/yard2.service +/lib/udev/rules.d/60-usb-yard2.rules + +%files vdr +%defattr(644,root,root,755) +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vdr/vdr-addon-yard2wakeup.conf +%dir %{_datadir}/vdr +%dir %{_datadir}/vdr/shutdown-hooks +%{_datadir}/vdr/shutdown-hooks/S90.yard2-wakeup + +%if %{with lirc} +%files -n lirc-plugin-yard2 +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/lirc/plugins/yard2.so +%{_datadir}/lirc/configs/yard2.conf +%endif diff --git a/yard2tools-lirc.patch b/yard2tools-lirc.patch new file mode 100644 index 0000000..38d904d --- /dev/null +++ b/yard2tools-lirc.patch @@ -0,0 +1,29 @@ +--- yard2tools-1.2.5/lirc/lircd_094/Makefile.orig 2018-02-13 18:45:03.058497511 +0100 ++++ yard2tools-1.2.5/lirc/lircd_094/Makefile 2018-02-13 21:50:11.445037342 +0100 +@@ -18,18 +18,19 @@ + CONFIGDIR ?= $(shell pkg-config --variable=configdir lirc-driver) + PLUGINDOCS ?= $(shell pkg-config --variable=plugindocs lirc-driver) + +-include $(PLUGINDOCS)/plugindocs.mk +- + $(driver).o: $(driver).c + + $(driver).so: $(driver).o +- gcc --shared -fpic $(LDFLAGS) -o $@ $< ++ $(CC) --shared -fPIC $(LDFLAGS) -o $@ $< + + install: $(driver).so +- install $< $(PLUGINDIR) +- install $(driver).conf $(CONFIGDIR) +- install $(driver).html $(PLUGINDOCS) +- $(MAKE) update ++ install -d $(DESTDIR)$(PLUGINDIR) $(DESTDIR)$(CONFIGDIR) $(DESTDIR)$(PLUGINDOCS) ++ install $< $(DESTDIR)$(PLUGINDIR) ++ install $(driver).conf $(DESTDIR)$(CONFIGDIR) ++ -install $(driver).html $(DESTDIR)$(PLUGINDOCS) ++ ++post-install-doc: ++ $(MAKE) -C $(PLUGINDOCS) update + + clean: + rm -f *.o *.so diff --git a/yard2tools-lircd_094.patch b/yard2tools-lircd_094.patch new file mode 100644 index 0000000..4bed835 --- /dev/null +++ b/yard2tools-lircd_094.patch @@ -0,0 +1,278 @@ +--- yard2srvd/lirc/lircd_094.orig/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ yard2srvd/lirc/lircd_094/Makefile 2018-02-12 18:11:05.472840644 +0100 +@@ -0,0 +1,35 @@ ++# ++# Template for building a lirc userspace driver out of tree. ++# Requires that lirc is installed in system locations, in ++# particular that the /usr/lib[64]/pkgconfig/lirc-driver.pc ++# is in place (/usr/local/lib/pkgconfig/... is also OK). ++# The required file plugindocs.mk might live in a -doc ++# package which then is needed. ++# ++ ++ ++driver = yard2 ++ ++all: $(driver).so ++ ++CFLAGS += $(shell pkg-config --cflags lirc-driver) ++LDFLAGS += $(shell pkg-config --libs lirc-driver) ++PLUGINDIR ?= $(shell pkg-config --variable=plugindir lirc-driver) ++CONFIGDIR ?= $(shell pkg-config --variable=configdir lirc-driver) ++PLUGINDOCS ?= $(shell pkg-config --variable=plugindocs lirc-driver) ++ ++include $(PLUGINDOCS)/plugindocs.mk ++ ++$(driver).o: $(driver).c ++ ++$(driver).so: $(driver).o ++ gcc --shared -fpic $(LDFLAGS) -o $@ $< ++ ++install: $(driver).so ++ install $< $(PLUGINDIR) ++ install $(driver).conf $(CONFIGDIR) ++ install $(driver).html $(PLUGINDOCS) ++ $(MAKE) update ++ ++clean: ++ rm -f *.o *.so +--- yard2srvd/lirc/lircd_094.orig/yard2.c 1970-01-01 01:00:00.000000000 +0100 ++++ yard2srvd/lirc/lircd_094/yard2.c 2018-02-12 18:11:05.472840644 +0100 +@@ -0,0 +1,216 @@ ++/*************************************************************************** ++* Copyright (C) 2009 by M. Feser * ++* Modified to work with Y.A.R.D.2 USB * ++* (c) Copyright 2012 R. Geigenberger / Frank Kohlmann * ++* * ++* This driver is for YARD2 USB IR Receiver * ++* * ++* This program is free software; you can redistribute it and/or modify * ++* it under the terms of the GNU General Public License as published by * ++* the Free Software Foundation; either version 2 of the License, or * ++* (at your option) any later version. * ++* * ++* This program is distributed in the hope that it will be useful, * ++* but WITHOUT ANY WARRANTY; without even the implied warranty of * ++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * ++* GNU General Public License for more details. * ++* * ++* You should have received a copy of the GNU General Public License * ++* along with this program; if not, write to the * ++* Free Software Foundation, Inc., * ++* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ++***************************************************************************/ ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <errno.h> ++#include <fcntl.h> ++#include <unistd.h> ++#include <limits.h> ++#include <signal.h> ++#include <sys/socket.h> ++#include <sys/un.h> ++#include <sys/stat.h> ++#include <sys/types.h> ++#include <sys/ioctl.h> ++ ++#include "lirc_driver.h" ++ ++#ifndef MSG_NOSIGNAL ++// MSG_NOSIGNAL is not defined in MacOSX. (Is this even needed ++// since lircd.c sets SIGPIPE to SIG_IGN?) ++#define MSG_NOSIGNAL 0 ++#endif ++ ++/* Defines */ ++#define YARDSRV_SOCK_PATH "/tmp/yardsrv_sock" ++#define SRVCMD_IRREG 0xEE ++#define SRVCMD_IRUNREG 0xDD ++#define SRVRES_SUCCESS 0x00 ++#define SRVRES_ERROR 0xFF ++#define IRCODE_NUM_BYTES 6 ++#define IRCODE_NUM_BITS (IRCODE_NUM_BYTES * 8) ++ ++#define SYS_IR_REC 0x80 ++#define SYS_IR_SEND 0x81 ++ ++#define YARD2_URL "https://www.assembla.com/code/yard2srvd/git/nodes" ++ ++static const logchannel_t logchannel = LOG_DRIVER; ++ ++typedef unsigned char YARD_IRCODE[6]; ++ ++/* Variables */ ++static struct timeval start, end, last; ++static ir_code code; //64bit int ++ ++/* Export function */ ++static int yard2_decode(struct ir_remote* remote, struct decode_ctx_t* ctx); ++static int yard2_init(void); ++static int yard2_deinit(void); ++static char* yard2_rec(struct ir_remote* remotes); ++static int yard2_send(struct ir_remote* remote, struct ir_ncode* icode); ++ ++const struct driver hw_yard2 = { ++ .name = "yard2", ++ .device = "", ++ .features = LIRC_CAN_REC_LIRCCODE | LIRC_CAN_SEND_LIRCCODE, ++ .send_mode = LIRC_MODE_PULSE, ++ .rec_mode = LIRC_MODE_LIRCCODE, ++ .code_length = IRCODE_NUM_BYTES, ++ .init_func = yard2_init, ++ .deinit_func = yard2_deinit, ++ .send_func = yard2_send, ++ .rec_func = yard2_rec, ++ .decode_func = yard2_decode, ++ .drvctl_func = default_drvctl, ++ .readdata = NULL, ++ .api_version = 3, ++ .driver_version = "0.9.3", ++ .open_func = default_open, ++ .close_func = default_close, ++ .driver_version = "0.9.3", ++ .info = "Driver for the yard2 DIY assembly kit." \ ++ "See: " YARD2_URL, ++ .device_hint = "/tmp/yardsrv_sock", ++}; ++const struct driver* hardwares[] = { &hw_yard2, (const struct driver*)NULL }; ++ ++/* Implementation */ ++ ++static int yard2_decode(struct ir_remote* remote, struct decode_ctx_t* ctx) ++{ ++ if (!map_code(remote, ctx, 0, 0, IRCODE_NUM_BITS, code, 0, 0)) ++ return 0; ++ map_gap(remote, ctx, &start, &last, 0); // FIXME: Check 0 vs signal_length ++ return 1; ++} ++ ++static int yard2_init(void) ++{ ++ struct sockaddr_un srvAddr; ++ int srvAddrLen; ++ ++ // Establish connection to YARD server ++ bzero((char*)&srvAddr, sizeof(srvAddr)); ++ srvAddr.sun_family = AF_UNIX; ++ strcpy(srvAddr.sun_path, YARDSRV_SOCK_PATH); ++ srvAddrLen = strlen(srvAddr.sun_path) + sizeof(srvAddr.sun_family); ++ ++ drv.fd = socket(AF_UNIX, SOCK_STREAM, 0); ++ if (drv.fd < 0) { ++ log_error("yard2: Can't create socket !"); ++ return 0; ++ } ++ ++ if (connect(drv.fd, (struct sockaddr*)&srvAddr, srvAddrLen) < 0) { ++ log_error("yard2: Can't connect to yardsrv !"); ++ return 0; ++ } ++ ++/* not used in yard2 ++ * // Register IR code notification ++ * if ( !yard_sendSrvCmd(SRVCMD_IRREG) ) ++ * { ++ * log_error("yard2: Can't register IR code notification !"); ++ * return 0; ++ * } ++ */ ++ return 1; ++} ++ ++static int yard2_deinit(void) ++{ ++ // Unregister IR code notification ++ // not used in yard2 yard_sendSrvCmd(SRVCMD_IRUNREG); ++ ++ close(drv.fd); ++ drv.fd = -1; ++ return 1; ++} ++ ++static int yard2_send(struct ir_remote* remote, struct ir_ncode* icode) ++{ ++ unsigned long long sendir; ++ unsigned char buffer[8]; ++ ++ //Error check ++ if (drv.fd < 0) ++ return 0; ++ ++ sendir = icode->code; ++ log_trace("SEND IR-Code: %llx", sendir); ++ ++ buffer[0] = 0x81; //Send IR command ID ++ buffer[1] = 255 - buffer[0]; ++ // example 0715000c0000 ++ buffer[2] = (sendir & 0x0000FF0000000000) >> 40; ++ buffer[3] = (sendir & 0x000000FF00000000) >> 32; ++ buffer[4] = (sendir & 0x00000000FF000000) >> 24; ++ buffer[5] = (sendir & 0x0000000000FF0000) >> 16; ++ buffer[6] = (sendir & 0x000000000000FF00) >> 8; ++ buffer[7] = (sendir & 0x00000000000000FF); ++ ++ send(drv.fd, buffer, 8, MSG_NOSIGNAL); ++ return 1; ++} ++ ++static char* yard2_rec(struct ir_remote* remotes) ++{ ++ YARD_IRCODE yardIrCode; ++ char* m; ++ int byteCnt; ++ int i; ++ ++ // Error check ++ if (drv.fd < 0) ++ return 0; ++ ++ last = end; ++ gettimeofday(&start, NULL); ++ ++ // Receive IR code from YARD server ++ byteCnt = read(drv.fd, ++ (unsigned char*)&yardIrCode, sizeof(YARD_IRCODE)); ++ log_trace("yard2: received %d bytes !", byteCnt); ++ if (byteCnt < sizeof(YARD_IRCODE)) { ++ log_error("yard2: Expected %d bytes - received %d bytes !", ++ sizeof(YARD_IRCODE), byteCnt); ++ return NULL; ++ } ++ ++ gettimeofday(&end, NULL); ++ ++ // Extract IR code bytes ++ code = 0; ++ for (i = 0; i < IRCODE_NUM_BYTES; i++) { ++ code <<= 8; ++ code |= yardIrCode[i]; //.abIrData[i]; // ++ } ++ log_trace("Receive IR-Code: %llx", (unsigned long long)code); ++ m = decode_all(remotes); ++ return m; ++} +--- yard2srvd/lirc/lircd_094.orig/yard2.conf 1970-01-01 01:00:00.000000000 +0100 ++++ yard2srvd/lirc/lircd_094/yard2.conf 2018-02-12 18:11:05.472840644 +0100 +@@ -0,0 +1,18 @@ ++# This is a lirc configuration for a capture device. ++# See README for more. ++ ++config: ++ driver: yard2 ++ id: yard2 ++ label: YARD2 USB IR Receiver ++ menu: usb ++ lircd_conf: yard2/lircd.conf.yard2 ++ supports: lirccode ++ product_driver: 04d8:f57f ++ note: This device supports multiple IR protocols RC5, RC6, ... ++ and can be used with almost all remote controls. ++ It's a DIY assembly kit. ++ ++ You need to install the yard2srvd daemon ++ https://www.assembla.com/code/yard2srvd/git/nodes ++ For more information read Readme.txt of yard2srvd ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/yard2tools.git/commitdiff/d2ab6481c29537a5bc387e2183f2f8e0e4cd2a76 _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit