diff --git a/.gitignore b/.gitignore index 586a489..e206406 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ lcdproc-0.5.3.tar.gz /lcdproc-0.5.4.tar.gz /lcdproc-0.5.6.tar.gz /lcdproc-0.5.7.tar.gz +/lcdproc-781b311.tar.gz +/lcdproc-5c21e8c.tar.gz diff --git a/0001-server-drivers-g15-Add-support-for-the-LCD-on-Logite.patch b/0001-server-drivers-g15-Add-support-for-the-LCD-on-Logite.patch new file mode 100644 index 0000000..870fc04 --- /dev/null +++ b/0001-server-drivers-g15-Add-support-for-the-LCD-on-Logite.patch @@ -0,0 +1,33 @@ +From 1c6be22c5eeea9a7f83192153b282b6002b89923 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 12 Apr 2021 22:44:06 +0200 +Subject: [PATCH] server/drivers/g15: Add support for the LCD on Logitech Z-10 + speakers + +The LCD on Logitech Z-10 speakers uses the exact same protocol as on +the g15 keyboards, add the USB-id + HID-descriptor header of the +USB-intf. for the LCD. + +Signed-off-by: Hans de Goede +--- + server/drivers/g15.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/server/drivers/g15.c b/server/drivers/g15.c +index 154e253..48f5fe5 100644 +--- a/server/drivers/g15.c ++++ b/server/drivers/g15.c +@@ -90,6 +90,10 @@ static const struct lib_hidraw_id hidraw_ids[] = { + { { BUS_USB, 0x046d, 0xc22e }, + { 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, + 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x07 } }, ++ /* Z-10 */ ++ { { BUS_USB, 0x046d, 0x0a07 }, ++ { 0x06, 0x00, 0xff, 0x09, 0x00, 0xa1, 0x01, 0x15, ++ 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x08 } }, + /* Terminator */ + {} + }; +-- +2.31.1 + diff --git a/90-lcdproc.rules b/90-lcdproc.rules new file mode 100644 index 0000000..e69e4a8 --- /dev/null +++ b/90-lcdproc.rules @@ -0,0 +1,57 @@ +# lcdproc udev rules + +ACTION!="add", GOTO="lcdproc_end" + +### 1. Check for USB LCD panels which we access directly through libusb ### + +# Till Harbaum's LCD2USB device +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c630", GOTO="lcdproc_lcd_found" + +### 2. Check for HID LCD panels accessed through their hidraw device ### + +# Logitech MX5000 keyboard Bluetooth and USB (BT receiver as HID-proxy) modes +DEVPATH=="*/0003:046D:B305.*/hidraw/hidraw*", GOTO="lcdproc_lcd_found" +DEVPATH=="*/0005:046D:B305.*/hidraw/hidraw*", GOTO="lcdproc_lcd_found" + +# Logitech MX5500 keyboard Bluetooth and USB (BT receiver as HID-proxy) modes +DEVPATH=="*/0003:046D:B30B.*/hidraw/hidraw*", GOTO="lcdproc_lcd_found" +DEVPATH=="*/0005:046D:B30B.*/hidraw/hidraw*", GOTO="lcdproc_lcd_found" + +# Logitech G15 gaming keyboard +DEVPATH=="*/0003:046D:C222.*/hidraw/hidraw*", GOTO="lcdproc_lcd_found" + +# Logitech G15 v2 gaming keyboard +DEVPATH=="*/0003:046D:C227.*/hidraw/hidraw*", GOTO="lcdproc_lcd_found" + +# Logitech G510 gaming keyboard, note we only want interface 1 +DEVPATH=="*/0003:046D:C22D.*/hidraw/hidraw*", ATTRS{bInterfaceNumber}=="01", GOTO="lcdproc_lcd_found" +DEVPATH=="*/0003:046D:C22E.*/hidraw/hidraw*", ATTRS{bInterfaceNumber}=="01", GOTO="lcdproc_lcd_found" + +# Logitech Z-10 speakers with G15 style LCD screen, note we only want interface 2 +DEVPATH=="*/0003:046D:0A07.*/hidraw/hidraw*", ATTRS{bInterfaceNumber}=="02", GOTO="lcdproc_lcd_found" + +### 3. Check for input devices for LCD menu buttons ### + +# Logitech G15, G15 v2 and G510 Gaming and LCD menu keys +SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="Logitech Gaming Keyboard Gaming Keys", GOTO="lcdproc_input_found" +# Logitech MX5000 keyboard connected over Bluetooth +SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="Logitech MX5000 Keyboard", GOTO="lcdproc_input_found" +# Logitech MX5000 keyboard connected through its receiver in USB HID proxy mode +SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="Logitech Wireless Keyboard PID:b305", GOTO="lcdproc_input_found" +# Logitech Z-10 speakers LCD menu keys +SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="Logitech Z-10 LCD Menu Keys", GOTO="lcdproc_input_found" + + +### Nothing found, leave ### +GOTO="lcdproc_end" + + +LABEL="lcdproc_lcd_found" +TAG+="systemd" +ENV{SYSTEMD_WANTS}+="lcdproc.target" + +LABEL="lcdproc_input_found" +# Grant rw permission to the lcdd group using acl(5), for both LCD and input devs +RUN+="/usr/bin/sh -c '/usr/bin/setfacl -m g:lcdd:rw %E{DEVNAME} 2>/dev/null || :'" + +LABEL="lcdproc_end" diff --git a/LCDd-hwdetect.service b/LCDd-hwdetect.service new file mode 100644 index 0000000..cfc0779 --- /dev/null +++ b/LCDd-hwdetect.service @@ -0,0 +1,9 @@ +[Unit] +Description=LCDd hardware detection Service +After=syslog.target +Before=LCDd.service +ConditionPathExists=!/etc/lcdproc/LCDd.conf + +[Service] +Type=oneshot +ExecStart=/usr/sbin/LCDd-hwdetect diff --git a/LCDd-hwdetect.sh b/LCDd-hwdetect.sh new file mode 100644 index 0000000..7869a9f --- /dev/null +++ b/LCDd-hwdetect.sh @@ -0,0 +1,179 @@ +#!/bin/bash + +lcd_device="" +extra_lcd_devices="" +lcd_driver="" +input_name="" + +add_device () { + if [ -z "$lcd_device" ]; then + lcd_device="$1" + lcd_driver="$2" + input_name="$3" + elif [ "$1" != "$lcd_device" ]; then + extra_lcd_devices="$extra_lcd_devices $1" + fi +} + +if [ -f /etc/lcdproc/LCDd.conf ]; then + echo "/etc/lcdproc/LCDd.conf already exists" + echo "If you want LCDd-hwdetect to create a new config move it out of the way" + exit 1 +fi + +# USB devices where we use raw USB access (through libusb) +if [ -d /sys/bus/hid/devices ]; then + for i in $(cat /sys/bus/usb/devices/*/modalias); do + case "$i" in + usb:v0403pC630d*) + add_device "lcd2usb" "hd44780" + ;; + esac + done +fi + +# HID devices +if [ -d /sys/bus/hid/devices ]; then + pushd /sys/bus/hid/devices > /dev/null + for i in $(ls); do + case "$i" in + # Logitech MX5000 connected through its receiver in USB HID proxy mode + 0003:046D:B305.*) + add_device "mx5000" "mx5000" "Logitech Wireless Keyboard PID:b305" + ;; + # Logitech MX5000 connected over bluetooth + 0005:046D:B305.*) + add_device "mx5000" "mx5000" "Logitech MX5000 Keyboard" + ;; + # Logitech MX5500 connected through its receiver in USB HID proxy mode + # Note the MX5500's LCD menu buttons are not accessible by the host + 0003:046D:B30B.*) + add_device "mx5500" "mx5000" + ;; + # Logitech MX5500 connected over bluetooth, no usable LCD menu btns + 0005:046D:B30B.*) + add_device "mx5500" "mx5000" + ;; + # Logitech G15 + 0003:046D:C222.*) + add_device "g15" "g15" "Logitech Gaming Keyboard Gaming Keys" + ;; + # Logitech G15 v2 + 0003:046D:C227.*) + add_device "g15-v2" "g15" "Logitech Gaming Keyboard Gaming Keys" + ;; + # Logitech G510 without a headset plugged in, without USB audio intf. + 0003:046D:C22D.*) + add_device "g510" "g15" "Logitech Gaming Keyboard Gaming Keys" + ;; + # Logitech G510 with a headset plugged, with extra USB audio intf. + 0003:046D:C22E.*) + add_device "g510" "g15" "Logitech Gaming Keyboard Gaming Keys" + ;; + # Logitech Z10 speakers + 0003:046D:0A07.*) + add_device "z-10" "g15" "Logitech Z-10 LCD Menu Keys" + ;; + esac + done + popd > /dev/null +fi + +if [ -z "$lcd_device" ]; then + echo "No known LCD devices detected" + exit 1 +fi + +echo "Detected $lcd_device LCD device" +if [ -n "$extra_lcd_devices" ]; then + echo "Detected extra LCD devices:$extra_lcd_devices" + echo "Multiple devices are not supported, these extra LCD devices will be ignored" +fi + +# Write LCDd.conf for the found device, also: +# Disable the server screen in the rotation of screens +# Disable the annoying blinking heartbeat by default +# Disable title scrolling (set the speed to 0) most keyboard LCDs have +# a low refresh rate making the scrolling look terrible +cat /etc/lcdproc/LCDd.conf.example | \ + sed -e "s/^Driver=curses/Driver=$lcd_driver/" \ + -e "s/#ServerScreen=no/ServerScreen=no/" \ + -e "s/#Heartbeat=open/Heartbeat=off/" \ + -e "s/#TitleSpeed=10/TitleSpeed=0/" > \ + /etc/lcdproc/LCDd.conf + +# Add input-device config if specified +# Also set prev / next screen to up/down since non of the supported devices +# has enough buttons to create mappings for both left and right +# And uncomment the LeftKey and RightKey assignments so that they work +# when they are available +if [ "$input_name" ]; then + sed -i -e "s|Driver=$lcd_driver|Driver=$lcd_driver\nDriver=linux_input|" \ + -e "s|PrevScreenKey=Left|PrevScreenKey=Up|" \ + -e "s|NextScreenKey=Right|NextScreenKey=Down|" \ + -e "s|# Device=/dev/input/event0|Device=\"$input_name\"|" \ + -e "s|#LeftKey=Left|LeftKey=Left|" \ + -e "s|#RightKey=Right|RightKey=Right|" \ + /etc/lcdproc/LCDd.conf +fi + +# Device specific config bits +case "$lcd_device" in + "lcd2usb") + # This assume a 16x2 display as the lcd2usb board is typically sold with + # this display on aliexpress / banggood. There are only 2 buttons making + # menu navigation impossible. We map button 1 to toggling auto-rotate on/off + # and button 2 to manually switching to the next screen + sed -i -e 's/ConnectionType=4bit/ConnectionType=lcd2usb/' \ + -e 's/Keypad=no/Keypad=yes/' \ + -e 's/#Contrast=0/Contrast=600/' \ + -e 's/Size=20x4/Size=16x2/g' \ + -e 's/KeyMatrix_4_1=Enter/# Button config for lcd2usb, not enough buttons for menu navigation/' \ + -e 's/KeyMatrix_4_2=Up/# so we only do screen rotation control/' \ + -e 's/KeyMatrix_4_3=Down/KeyDirect_1=Enter/' \ + -e 's/KeyMatrix_4_4=Escape/KeyDirect_2=Right/' \ + /etc/lcdproc/LCDd.conf + ;; + "g15"|"g15-2"|"g510"|"z-10") + sed -i -e "s/# specify a non-default key map/# Keymap for the G15's 5 LCD-menu buttons/" \ + -e 's/#key=1,Escape/key=0x2b8,Escape/' \ + -e 's/#key=28,Enter/key=0x2b9,Left/' \ + -e 's/#key=96,Enter/key=0x2ba,Up/' \ + -e 's/#key=105,Left/key=0x2bb,Down/' \ + -e 's/#key=106,Right/key=0x2bc,Enter/' \ + -e 's/#key=103,Up//' \ + -e 's/#key=108,Down//' \ + /etc/lcdproc/LCDd.conf + ;; + "mx5000") + sed -i -e "s/# specify a non-default key map/# Keymap for the MX5000's 4 LCD-menu buttons/" \ + -e 's/#key=1,Escape/key=0x2b8,Escape/' \ + -e 's/#key=28,Enter/key=0x2b9,Up/' \ + -e 's/#key=96,Enter/key=0x2ba,Down/' \ + -e 's/#key=105,Left/key=0x2bb,Enter/' \ + -e 's/#key=106,Right//' \ + -e 's/#key=103,Up//' \ + -e 's/#key=108,Down//' \ + /etc/lcdproc/LCDd.conf + ;; +esac + +echo "Wrote /etc/lcdproc/LCDd.conf for $lcd_device using $lcd_driver driver" + +# If there is no lcdproc.conf, generate one from the example file +if [ -f /etc/lcdproc/lcdproc.conf ]; then + exit 0 +fi + +install -p -m 644 /etc/lcdproc/lcdproc.conf.example /etc/lcdproc/lcdproc.conf + +# Device specific config bits +case "$lcd_device" in + "mx5000"|"mx5500") + # The mx5000 and mx5500 do not do vertical-bars, disable load screen + sed -i -e '73s/Active=True/Active=false/' \ + /etc/lcdproc/lcdproc.conf + ;; +esac + +echo "Wrote /etc/lcdproc/lcdproc.conf" diff --git a/LCDd.service b/LCDd.service index 582a5d8..b77d2e2 100644 --- a/LCDd.service +++ b/LCDd.service @@ -5,6 +5,8 @@ After=syslog.target [Service] Type=forking ExecStart=/usr/sbin/LCDd -c /etc/lcdproc/LCDd.conf +User=root +Group=lcdd [Install] WantedBy=multi-user.target diff --git a/lcdproc-0.5.6-gcc47.patch b/lcdproc-0.5.6-gcc47.patch deleted file mode 100644 index c7f9d92..0000000 --- a/lcdproc-0.5.6-gcc47.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up lcdproc-0.5.6/server/menuitem.c.gcc47 lcdproc-0.5.6/server/menuitem.c ---- lcdproc-0.5.6/server/menuitem.c.gcc47 2012-08-19 16:29:08.000000000 +0200 -+++ lcdproc-0.5.6/server/menuitem.c 2013-01-05 18:51:44.442172506 +0100 -@@ -25,6 +25,7 @@ - #include "widget.h" - #include "screen.h" - #include "menuitem.h" -+#include "menuscreens.h" - #include "menu.h" - #include "drivers.h" - diff --git a/lcdproc-conf.patch b/lcdproc-conf.patch new file mode 100644 index 0000000..520560a --- /dev/null +++ b/lcdproc-conf.patch @@ -0,0 +1,30 @@ +diff -up lcdproc-0.5.7/clients/lcdproc/lcdproc.conf~ lcdproc-0.5.7/clients/lcdproc/lcdproc.conf +--- lcdproc-0.5.7/clients/lcdproc/lcdproc.conf~ 2014-03-23 11:22:07.000000000 +0100 ++++ lcdproc-0.5.7/clients/lcdproc/lcdproc.conf 2019-06-02 12:44:40.366733461 +0200 +@@ -39,7 +39,7 @@ ShowInvisible=false + + [Iface] + # Show screen +-Active=True ++Active=false + + # Show stats for Interface0 + Interface0=eth0 +@@ -79,7 +79,7 @@ HighLoad=1.3 + + [TimeDate] + # Show screen +-Active=True ++Active=false + # time format [default: %H:%M:%S; legal: see strftime(3)] + TimeFormat="%H:%M:%S" + # date format [default: %x; legal: see strftime(3)] +@@ -130,7 +130,7 @@ Active=false + + [ProcSize] + # Show screen +-Active=false ++Active=True + + + [Disk] diff --git a/lcdproc-libftdi1.patch b/lcdproc-libftdi1.patch deleted file mode 100644 index 2481103..0000000 --- a/lcdproc-libftdi1.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- lcdproc-0.5.7/configure.ac.orig 2014-05-30 12:25:58.038476546 +0100 -+++ lcdproc-0.5.7/configure.ac 2014-05-30 12:28:59.544408030 +0100 -@@ -314,7 +314,7 @@ - - if test "$enable_libftdi" = "yes"; then - ifdef([PKG_CHECK_MODULES], -- [PKG_CHECK_MODULES(LIBFTDI, libftdi >= 0.8, -+ [PKG_CHECK_MODULES(LIBFTDI, libftdi1 >= 1.0, - [AC_DEFINE(HAVE_LIBFTDI, [1], [Define to 1 if you have libftdi])], - [ enable_libftdi=no ])], - [AC_MSG_WARN([pkg-config not (fully) installed; drivers requiring libftdi may not be built])]) diff --git a/lcdproc.rpmlintrc b/lcdproc.rpmlintrc new file mode 100644 index 0000000..f76d24f --- /dev/null +++ b/lcdproc.rpmlintrc @@ -0,0 +1,3 @@ +addFilter("conffile-without-noreplace-flag") +addFilter("no-manual-page-for-binary") +addFilter("incorrect-fsf-address") diff --git a/lcdproc.spec b/lcdproc.spec index a466163..9318cb5 100644 --- a/lcdproc.spec +++ b/lcdproc.spec @@ -1,20 +1,33 @@ -%global _hardened_build 1 +%global commit 5c21e8c75fbab53574275c8007f5af746e333144 +%global commitdate 20210209 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) -Summary: LCDproc displays real-time system information on a 20x4 backlit LCD +Summary: Display real-time system information on a 20x4 back-lit LCD Name: lcdproc -Version: 0.5.7 -Release: 11%{?dist} -License: GPLv2 -URL: http://lcdproc.omnipotent.net -Group: System Environment/Libraries -Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz +Version: 0.5.9 +Release: 26.%{commitdate}git%{shortcommit}%{?dist} +# Automatically converted from old format: GPLv2 - review is highly recommended. +License: GPL-2.0-only +URL: http://lcdproc.org +Source0: https://github.com/%{name}/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz Source1: lcdproc.service -Source2: LCDd.service -Patch0: lcdproc-0.5.6-gcc47.patch -Patch1: lcdproc-libftdi1.patch +Source2: lcdproc.target +Source3: LCDd.service +Source4: LCDd-hwdetect.service +Source5: LCDd-hwdetect.sh +Source6: 90-lcdproc.rules +Source7: lcdproc.sysusers +Patch1: 0001-server-drivers-g15-Add-support-for-the-LCD-on-Logite.patch +# lcdconf.conf tweaks: +# 1. Enable ProcSize, this is quite useful to have +# 2. Disable TimeDate, its info is duplicate with the MiniClock and it is ugly +# 3. Disable network interface screen by default, since Fedora uses predictable +# network interface names, having a simple default like Interface0=eth0 does +# not work +Patch99: lcdproc-conf.patch BuildRequires: perl-generators -BuildRequires: systemd +BuildRequires: systemd-rpm-macros BuildRequires: doxygen BuildRequires: graphviz @@ -22,7 +35,7 @@ BuildRequires: freetype-devel %ifnarch s390 s390x BuildRequires: libhid-devel %endif -BuildRequires: libusb-devel +BuildRequires: libusb1-devel BuildRequires: lirc-devel BuildRequires: ncurses-devel BuildRequires: openldap-devel @@ -31,79 +44,96 @@ BuildRequires: docbook-dtds BuildRequires: libX11-devel BuildRequires: libXext-devel BuildRequires: libftdi-devel -%ifarch %{ix86} x86_64 -BuildRequires: svgalib-devel -%endif -# For libftdi1 -BuildRequires: libtool autoconf automake +BuildRequires: libg15render-devel +BuildRequires: mx5000tools-devel +BuildRequires: libtool autoconf automake +BuildRequires: gcc make %{?systemd_requires} %description -LCDproc is a client/server suite inclduding drivers for all +LCDproc is a client/server suite including drivers for all kinds of nifty LCD displays. The server supports several serial devices: Matrix Orbital, Crystal Fontz, Bayrad, LB216, -LCDM001 (kernelconcepts.de), Wirz-SLI and PIC-an-LCD; and some +LCDM001 (http://kernelconcepts.de), Wirz-SLI and PIC-an-LCD; and some devices connected to the LPT port: HD44780, STV5730, T6963, SED1520 and SED1330. Various clients are available that display -things like CPU load, system load, memory usage, uptime, and a lot more. +things like CPU load, system load, memory usage, up-time, and a lot more. See also http://lcdproc.omnipotent.net. %prep -%setup -q -%patch0 -p1 -b .gcc47 -%patch1 -p1 -b .ftdi -chmod 644 server/drivers/timing.h - +%autosetup -p1 -n %{name}-%{commit} +# Fixup DriverPath sed -i -e 's|server/drivers|%{_libdir}/lcdproc|' LCDd.conf touch -r TODO LCDd.conf %build +# This package has a configure test which uses ASMs, but does not link the +# resultant .o files. As such the ASM test is always successful in a LTO +# build. We can force code generation with the -ffat-lto-objects to make +# the test work as expected. +# +# -ffat-lto-objects is the default for F33, but will not be for F34, so we +# make it explicit here. +%define _lto_cflags -flto=auto -ffat-lto-objects + autoreconf -vif %configure \ --sysconfdir=%{_sysconfdir}/%{name} \ --enable-libusb \ --enable-drivers=all \ - --enable-permissive-menu-goto \ --enable-lcdproc-menus \ --enable-stat-nfs \ --enable-stat-smbfs \ --with-lcdport=13666 \ --with-pidfile-dir=/run - -make %{?_smp_mflags} +%make_build %install -rm -rf __doc -make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" -make install-html-guides DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" +%make_install INSTALL="install -p" +# remove non useful (and not "lcd" prefixed) perl example scripts +rm $RPM_BUILD_ROOT%{_bindir}/fortune.pl +rm $RPM_BUILD_ROOT%{_bindir}/iosock.pl +rm $RPM_BUILD_ROOT%{_bindir}/tail.pl +rm $RPM_BUILD_ROOT%{_bindir}/x11amp.pl -# Fix docs -mkdir -p __doc/developer-guide -mkdir -p __doc/user-guide -install -pm 0644 $RPM_BUILD_ROOT%{_datadir}/doc/lcdproc/user-guide/* __doc/user-guide -install -pm 0644 $RPM_BUILD_ROOT%{_datadir}/doc/lcdproc/developer-guide/* __doc/developer-guide -rm -rf $RPM_BUILD_ROOT%{_datadir}/doc +# docs +make install-html-guides DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" +rm $RPM_BUILD_ROOT%{_docdir}/%{name}/*-guide/*.proc +install -pm 0644 CREDITS.md ChangeLog.md README.md \ + $RPM_BUILD_ROOT%{_docdir}/%{name} # init install -d $RPM_BUILD_ROOT%{_unitdir} +install -d $RPM_BUILD_ROOT%{_unitdir}/lcdproc.target.wants +install -d $RPM_BUILD_ROOT%{_udevrulesdir} +install -d $RPM_BUILD_ROOT%{_sysusersdir} install -pm 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir} install -pm 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_unitdir} +install -pm 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir} +install -pm 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_unitdir} +install -pm 0755 %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir}/LCDd-hwdetect +install -pm 0644 %{SOURCE6} $RPM_BUILD_ROOT%{_udevrulesdir} +install -pm 0644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysusersdir}/lcdproc.conf +for i in lcdproc.service LCDd.service LCDd-hwdetect.service; do + ln -s ../$i $RPM_BUILD_ROOT%{_unitdir}/lcdproc.target.wants +done #Disable default configuration #Thoses are only provided as an example since ncurses isn't a suitable default configuration. for f in LCDd.conf lcdproc.conf ; do -mv $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/${f} \ - $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/${f}.example -touch $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/${f} + mv $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/${f} \ + $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/${f}.example done + + %post %systemd_post LCDd.service lcdproc.service @@ -113,26 +143,128 @@ done %postun -%systemd_postun LCDd.service lcdproc.service - +%systemd_postun_with_restart LCDd.service lcdproc.service %files -%doc README* INSTALL COPYING CREDITS TODO ChangeLog -%doc __doc/* +%doc %{_docdir}/%{name} +%license COPYING %{_bindir}/* -%dir %{_libdir}/lcdproc -%{_libdir}/lcdproc/* %{_sbindir}/* +%{_libdir}/lcdproc/ %{_mandir}/man?/* %dir %{_sysconfdir}/%{name} -%ghost %{_sysconfdir}/%{name}/*.conf +%config %{_sysconfdir}/%{name}/*.conf %config %{_sysconfdir}/%{name}/*.conf.example -%{_unitdir}/LCDd.service -%{_unitdir}/lcdproc.service +%{_unitdir}/* +%{_udevrulesdir}/90-%{name}.rules +%{_sysusersdir}/lcdproc.conf %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 0.5.9-26.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 0.5.9-25.20210209git5c21e8c +- Drop call to %sysusers_create_compat + +* Fri Jan 17 2025 Fedora Release Engineering - 0.5.9-24.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Jul 29 2024 Miroslav Suchý - 0.5.9-23.20210209git5c21e8c +- convert license to SPDX + +* Thu Jul 18 2024 Fedora Release Engineering - 0.5.9-22.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 0.5.9-21.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 0.5.9-20.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 0.5.9-19.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 0.5.9-18.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 0.5.9-17.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 0.5.9-16.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 0.5.9-15.20210209git5c21e8c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Apr 15 2021 Hans de Goede - 0.5.9-14.20210209git5c21e8c +- Sync with latest upstream git +- Add support for LCD found on Logitech Z-10 speakers, + inc. autodetect by udev + automatic LCDd.conf generation by LCDd-hwdetect +- Fix Logitech G15 family devices requiring a manual restart of LCDd + after a unplug + replug +- Drop ghosting of /etc/lcdproc/*.conf files, these may contain user + modifications, so they should not be removed on package removal +- This also fixes lcdexec.conf and lcdvc.conf not being packaged + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 0.5.9-13.20190625git781b311 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Tue Jan 26 2021 Fedora Release Engineering - 0.5.9-12.20190625git781b311 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Nov 24 21:06:08 GMT 2020 Peter Robinson - 0.5.9-11.20190625git781b311 +- Build with libusb1 + +* Thu Aug 20 2020 Jeff Law - 0.5.9-10.20190625git781b311 +- Re-enable LTO + +* Tue Jul 28 2020 Fedora Release Engineering - 0.5.9-9.20190625git781b311 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 14 2020 Jeff Law - 0.5.9-8.20190625git781b311 +- Disable LTO + +* Fri Mar 20 2020 Hans de Goede - 0.5.9-7.20190625git781b311 +- Drop svgalib support, svgalib is being dropped from the distro (rhbz#1814816) + +* Mon Feb 24 2020 Than Ngo - 0.5.9-6.git +- Fixed FTBFS against gcc10 + +* Wed Jan 29 2020 Fedora Release Engineering - 0.5.9-5.20190625git781b311 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Oct 4 2019 Hans de Goede - 0.5.9-4.20190625git781b311 +- Replace Group=lcdd statement in LCDd.service with Group=nobody, LCDd does not + need a special group and it breaks starting LCDd (rhbz#1742994) + +* Thu Oct 3 2019 Hans de Goede - 0.5.9-3.20190625git781b311 +- The patch adding the keycodes for LCD menu buttons on Logitech keyboards was + still pending upstream. The final version of the patch has changed the codes, + update LCDd-hwdetect.sh to use the new codes when writing out LCDd.conf + +* Thu Jul 25 2019 Fedora Release Engineering - 0.5.9-2.20190625git781b311 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jul 04 2019 Hans de Goede - 0.5.9-1.20190625git781b311 +- Update to upstream 0.5.9 release + latest improvements from git +- Add support for Logitech MX5000, MX5500, G15, G15 V2 and G510 keyboards +- Add LCDd-hwdetect script automatically generating LCDd.conf for + USB gaming keyboards with LCD panels and LCD2USB devices +- Add udev-rules to call LCDd-hwdetect when there is no existing LCDd.conf + and to make LCDd and lcdproc hw-activated when using supported USB devices + +* Fri Feb 01 2019 Fedora Release Engineering - 0.5.7-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 0.5.7-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 0.5.7-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Mon Aug 07 2017 Igor Gnatenko - 0.5.7-11 - Remove unneeded BuildRequires: pth-devel diff --git a/lcdproc.sysusers b/lcdproc.sysusers new file mode 100644 index 0000000..7213bda --- /dev/null +++ b/lcdproc.sysusers @@ -0,0 +1 @@ +g lcdd - diff --git a/lcdproc.target b/lcdproc.target new file mode 100644 index 0000000..4001109 --- /dev/null +++ b/lcdproc.target @@ -0,0 +1,3 @@ +[Unit] +Description=lcdproc Target +StopWhenUnneeded=yes diff --git a/sources b/sources index e9b3d6c..7d495a3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2f8e064233ef1d03e98c0b426595750d lcdproc-0.5.7.tar.gz +SHA512 (lcdproc-5c21e8c.tar.gz) = cc0f6622bfc76382306d1419b76e9d9d16740722bc29568559f4b022e0747a2edb3fece8d3f3d5871972b778290bc6178bd2de3919b6eae019505551e91f93cb