diff --git a/.gitignore b/.gitignore index e206406..945d27f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,2 @@ lcdproc-0.5.2.tar.gz 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 deleted file mode 100644 index 870fc04..0000000 --- a/0001-server-drivers-g15-Add-support-for-the-LCD-on-Logite.patch +++ /dev/null @@ -1,33 +0,0 @@ -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 deleted file mode 100644 index e69e4a8..0000000 --- a/90-lcdproc.rules +++ /dev/null @@ -1,57 +0,0 @@ -# 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 deleted file mode 100644 index cfc0779..0000000 --- a/LCDd-hwdetect.service +++ /dev/null @@ -1,9 +0,0 @@ -[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 deleted file mode 100644 index 7869a9f..0000000 --- a/LCDd-hwdetect.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/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 deleted file mode 100644 index b77d2e2..0000000 --- a/LCDd.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=LCDd Service -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.2-novalidate.patch b/lcdproc-0.5.2-novalidate.patch new file mode 100644 index 0000000..4223683 --- /dev/null +++ b/lcdproc-0.5.2-novalidate.patch @@ -0,0 +1,22 @@ +diff -up lcdproc-0.5.2/docs/lcdproc-dev/Makefile.am.novalidate lcdproc-0.5.2/docs/lcdproc-dev/Makefile.am +--- lcdproc-0.5.2/docs/lcdproc-dev/Makefile.am.novalidate 2007-04-14 16:39:53.000000000 +0200 ++++ lcdproc-0.5.2/docs/lcdproc-dev/Makefile.am 2009-04-14 15:28:01.000000000 +0200 +@@ -18,6 +18,6 @@ developerguidedir = $(DESTDIR)$(htmldir) + + install-html-developerguide: $(xmlto) lcdproc-dev.docbook + $(mkinstalldirs) $(developerguidedir) +- $(xmlto) html -o $(developerguidedir) lcdproc-dev.docbook ++ $(xmlto) html -o $(developerguidedir) --skip-validation lcdproc-dev.docbook + + ## EOF +diff -up lcdproc-0.5.2/docs/lcdproc-user/Makefile.am.novalidate lcdproc-0.5.2/docs/lcdproc-user/Makefile.am +--- lcdproc-0.5.2/docs/lcdproc-user/Makefile.am.novalidate 2009-04-14 15:32:24.000000000 +0200 ++++ lcdproc-0.5.2/docs/lcdproc-user/Makefile.am 2009-04-14 15:32:44.000000000 +0200 +@@ -21,6 +21,6 @@ userguidedir = $(DESTDIR)$(htmldir)/user + + install-html-userguide: $(xmlto) lcdproc-user.docbook + $(mkinstalldirs) $(userguidedir) +- $(xmlto) html -o $(userguidedir) lcdproc-user.docbook ++ $(xmlto) html -o $(userguidedir) --skip-validation lcdproc-user.docbook + + ## EOF diff --git a/lcdproc-0.5.3-initscripts.patch b/lcdproc-0.5.3-initscripts.patch new file mode 100644 index 0000000..ac68427 --- /dev/null +++ b/lcdproc-0.5.3-initscripts.patch @@ -0,0 +1,305 @@ +Index: lcdproc-0.5.3/scripts/init-LCDd.rpm.in +=================================================================== +--- lcdproc-0.5.3.orig/scripts/init-LCDd.rpm.in ++++ lcdproc-0.5.3/scripts/init-LCDd.rpm.in +@@ -1,5 +1,5 @@ + #!/bin/sh +-# This is the LCDd init-script for RPM based (RedHat, Mandrake) systems ++# This is the LCDd init-script for RPM based (Red Hat, Mandrake) systems + # + # Copyright (C) 2001 Rene Wagner + # 2001 Guillaume Filion +@@ -19,25 +19,53 @@ + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + # + # +-# chkconfig: 345 70 21 ++# chkconfig: - 70 21 + # description: LCDd(8) is the LCDproc server used for displaying text and other data to LCDs. \ + # Apart from the main client lcdproc(1) there are various clients. \ + # See http://lcdproc.omnipotent.net for details. + # processname: LCDd + # pidfile: /var/run/LCDd.pid + # config: @sysconfdir@/LCDd.conf ++# ++### BEGIN INIT INFO ++# Provides: LCDd ++# Required-Start: $syslog $local_fs $network $remote_fs ++# Required-Stop: $syslog $local_fs $network $remote_fs ++# Should-Start: udev ++# Default-Start: ++# Default-Stop: S 0 1 6 ++# Short-Description: LCDproc Server Daemon ++# Description: init script for LCDd, the display ++# server daemon in the LCDproc suite ++### END INIT INFO ++ ++prog=LCDd ++lockfile=/var/lock/subsys/$prog ++configfile=@sysconfdir@/$prog.conf ++ ++# load LSB 3.x init functions ++if [ -e /lib/lsb/init-functions ]; then ++ . /lib/lsb/init-functions ++fi + + # Source function library. +-. /etc/rc.d/init.d/functions ++if [ -e /etc/rc.d/init.d/functions ]; then ++ . /etc/rc.d/init.d/functions ++fi + + # Source networking configuration. +-. /etc/sysconfig/network ++if [ -e /etc/sysconfig/network ]; then ++ . /etc/sysconfig/network ++fi + + # Check that networking is up. + if [ ${NETWORKING} = "no" ]; then + exit 0 + fi + ++# check that non-default config file exists. ++[ -f $configfile ] || exit 6 ++ + RETVAL=0 + + prefix=@prefix@ +@@ -46,41 +74,49 @@ bindir=@bindir@ + sbindir=@sbindir@ + etc=@sysconfdir@ + +-LCDd=${sbindir}/LCDd +-configfile=${etc}/LCDd.conf +- +-[ -x ${LCDd} ] || exit 0 ++[ -x ${sbindir}/${prog} ] || exit 0 + + start() { +- echo -n "Starting up LCDd: " +- daemon ${LCDd} -c ${configfile} +- ++ echo -n "Starting ${prog} service: " ++ daemon ${prog} -c ${configfile} + RETVAL=$? +- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/LCDd + echo ++ [ $RETVAL -eq 0 ] && touch ${lockfile} || \ ++ RETVAL=1 ++ return $RETVAL + } + + stop() { +- echo -n "Shutting down LCDd: " +- killproc LCDd ++ echo -n "Shutting down ${prog} service: " ++ killproc ${prog} + RETVAL=$? +- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/LCDd + echo ++ [ $RETVAL -eq 0 ] && rm -f ${lockfile} ++ return $RETVAL + } + +-dostatus() { +- status LCDd ++reload() { ++ echo -n $"Reloading ${prog} conig file: " ++ killproc ${prog} -HUP + RETVAL=$? ++ echo ++ return $RETVAL ++} ++ ++dostatus() { ++ status ${prog} ++ return $? + } + + restart() { + stop + start +- RETVAL=$? ++ return $? + } + + condrestart() { +- [ -e /var/lock/subsys/LCDd ] && restart || : ++ [ -f ${lockfile} ] && restart || : ++ return $? + } + + # See how we were called. +@@ -94,15 +130,18 @@ case "$1" in + status) + dostatus + ;; +- restart) ++ restart|force-reload) + restart + ;; +- condrestart) ++ try-restart|condrestart) + condrestart + ;; ++ reload) ++ reload ++ ;; + *) +- echo "Usage: $0 {start|stop|status|restart|condrestart}" +- exit 1 ++ echo "Usage: $0 {start|stop|status|restart|condrestart|reload}" ++ exit 2 + esac + + exit $RETVAL +Index: lcdproc-0.5.3/scripts/init-lcdproc.rpm.in +=================================================================== +--- lcdproc-0.5.3.orig/scripts/init-lcdproc.rpm.in ++++ lcdproc-0.5.3/scripts/init-lcdproc.rpm.in +@@ -19,68 +19,104 @@ + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + # + # +-# chkconfig: 345 71 20 ++# chkconfig: - 71 20 + # description: LCDd(8) is the LCDproc server used for displaying text and other data to LCDs. \ + # Apart from the main client lcdproc(1) there are various clients. \ + # See http://lcdproc.omnipotent.net for details. + # processname: lcdproc + # pidfile: /var/run/lcdproc.pid +-# config: /etc/sysconfig/lcdproc ++# config: @sysconfdir@/lcdproc.conf ++# ++### BEGIN INIT INFO ++# Provides: lcdproc ++# Required-Start: $syslog $local_fs $network $remote_fs ++# Required-Stop: $syslog $local_fs $network $remote_fs ++# Should-Start: LCDd ++# Default-Start: ++# Default-Stop: S 0 1 6 ++# Short-Description: LCDproc system status information viewer ++# Description: LSB init script for lcdproc, the system ++# status information viewer in the LCDproc suite ++### END INIT INFO ++ ++prog=lcdproc ++lockfile=/var/lock/subsys/$prog ++configfile=@sysconfdir@/$prog.conf ++RETVAL=0 ++ ++# load LSB 3.x init functions ++if [ -e /lib/lsb/init-functions ]; then ++ . /lib/lsb/init-functions ++fi + + # Source function library. +-. /etc/rc.d/init.d/functions ++if [ -e /etc/rc.d/init.d/functions ]; then ++ . /etc/rc.d/init.d/functions ++fi + + # Source networking configuration. +-. /etc/sysconfig/network ++if [ -e /etc/sysconfig/network ]; then ++ . /etc/sysconfig/network ++fi + + # Check that networking is up. + if [ ${NETWORKING} = "no" ]; then + exit 0 + fi + +-RETVAL=0 +- + prefix=@prefix@ + exec_prefix=@exec_prefix@ + bindir=@bindir@ + sbindir=@sbindir@ + etc=@sysconfdir@ + +-lcdproc=${bindir}/lcdproc ++[ -x ${bindir}/${prog} ] || exit 0 + +-[ -x ${lcdproc} ] || exit 0 ++# check that non-default config file exists. ++ [ -f $configfile ] || exit 6 + + + start() { +- echo -n "Starting up lcdproc: " +- daemon ${lcdproc} $SCREENS +- ++ echo -n "Starting ${prog} service: " ++ daemon ${prog} -c ${configfile} + RETVAL=$? +- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/lcdproc + echo ++ [ $RETVAL -eq 0 ] && touch ${lockfile} || \ ++ RETVAL=1 ++ return $RETVAL + } + + stop() { +- echo -n "Shutting down lcdproc: " +- killproc lcdproc ++ echo -n "Shutting down ${prog} service: " ++ killproc ${prog} + RETVAL=$? +- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/lcdproc + echo ++ [ $RETVAL -eq 0 ] && rm -f ${lockfile} ++ return $RETVAL + } + +-dostatus() { +- status lcdproc ++reload() { ++ echo -n $"Reloading ${prog} config file: " ++ killproc ${prog} -HUP + RETVAL=$? ++ echo ++ return $RETVAL ++} ++ ++dostatus() { ++ status ${prog} ++ return $? + } + + restart() { + stop + start +- RETVAL=$? ++ return $? + } + + condrestart() { +- [ -e /var/lock/subsys/lcdproc ] && restart || : ++ [ -f ${lockfile} ] && restart || : ++ return $? + } + + # See how we were called. +@@ -94,14 +130,17 @@ case "$1" in + status) + dostatus + ;; +- restart) ++ restart|force-reload) + restart + ;; +- condrestart) ++ try-restart|condrestart) + condrestart + ;; ++ reload) ++ reload ++ ;; + *) +- echo "Usage: $0 {start|stop|status|restart|condrestart}" ++ echo "Usage: $0 {start|stop|status|restart|condrestart|reload}" + exit 1 + esac + diff --git a/lcdproc-conf.patch b/lcdproc-conf.patch deleted file mode 100644 index 520560a..0000000 --- a/lcdproc-conf.patch +++ /dev/null @@ -1,30 +0,0 @@ -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.rpmlintrc b/lcdproc.rpmlintrc deleted file mode 100644 index f76d24f..0000000 --- a/lcdproc.rpmlintrc +++ /dev/null @@ -1,3 +0,0 @@ -addFilter("conffile-without-noreplace-flag") -addFilter("no-manual-page-for-binary") -addFilter("incorrect-fsf-address") diff --git a/lcdproc.service b/lcdproc.service deleted file mode 100644 index 1b59679..0000000 --- a/lcdproc.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=lcdproc Service -After=syslog.target LCDd.service - -[Service] -Type=forking -PIDFile=/run/lcdproc.pid -ExecStart=/usr/bin/lcdproc -c /etc/lcdproc/lcdproc.conf - -[Install] -WantedBy=multi-user.target diff --git a/lcdproc.spec b/lcdproc.spec index 9318cb5..759e3c7 100644 --- a/lcdproc.spec +++ b/lcdproc.spec @@ -1,349 +1,142 @@ -%global commit 5c21e8c75fbab53574275c8007f5af746e333144 -%global commitdate 20210209 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) - -Summary: Display real-time system information on a 20x4 back-lit LCD +Summary: LCDproc displays real-time system information on a 20x4 backlit LCD Name: lcdproc -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: 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 +Version: 0.5.3 +Release: 5%{?dist} +License: GPLv2 +URL: http://lcdproc.omnipotent.net +Group: System Environment/Libraries +Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz +Patch0: lcdproc-0.5.3-initscripts.patch +Patch1: lcdproc-0.5.2-novalidate.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: perl-generators -BuildRequires: systemd-rpm-macros BuildRequires: doxygen BuildRequires: graphviz -BuildRequires: freetype-devel -%ifnarch s390 s390x -BuildRequires: libhid-devel -%endif -BuildRequires: libusb1-devel +BuildRequires: libusb-devel BuildRequires: lirc-devel BuildRequires: ncurses-devel BuildRequires: openldap-devel +BuildRequires: pth-devel BuildRequires: xmlto +%if 0%{?fedora} > 9 BuildRequires: docbook-dtds +%endif +BuildRequires: xosd-devel BuildRequires: libX11-devel BuildRequires: libXext-devel BuildRequires: libftdi-devel -BuildRequires: libg15render-devel -BuildRequires: mx5000tools-devel -BuildRequires: libtool autoconf automake -BuildRequires: gcc make -%{?systemd_requires} +%ifarch %{ix86} x86_64 +BuildRequires: svgalib-devel +%endif + +Requires(post): /sbin/chkconfig +Requires(postun): /sbin/chkconfig %description -LCDproc is a client/server suite including drivers for all +LCDproc is a client/server suite inclduding drivers for all kinds of nifty LCD displays. The server supports several serial devices: Matrix Orbital, Crystal Fontz, Bayrad, LB216, -LCDM001 (http://kernelconcepts.de), Wirz-SLI and PIC-an-LCD; and some +LCDM001 (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, up-time, and a lot more. +things like CPU load, system load, memory usage, uptime, and a lot more. See also http://lcdproc.omnipotent.net. %prep -%autosetup -p1 -n %{name}-%{commit} -# Fixup DriverPath +%setup -q +%patch0 -p1 -b .initscripts +%patch1 -p1 -b .novalidate +chmod 644 server/drivers/timing.h + 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} \ + --sysconfdir=%{_sysconfdir}/sysconfig/%{name} \ --enable-libusb \ + --enable-ldap \ --enable-drivers=all \ + --enable-permissive-menu-goto \ --enable-lcdproc-menus \ --enable-stat-nfs \ --enable-stat-smbfs \ - --with-lcdport=13666 \ - --with-pidfile-dir=/run -%make_build + --with-lcdport=13666 + +make %{?_smp_mflags} %install -%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 - -# docs +rm -rf $RPM_BUILD_ROOT __doc +make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" 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} + +# 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 # 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 +install -d $RPM_BUILD_ROOT%{_initrddir} +install -pm 0755 scripts/init-LCDd.rpm $RPM_BUILD_ROOT%{_initrddir}/LCDd +install -pm 0755 scripts/init-lcdproc.rpm $RPM_BUILD_ROOT%{_initrddir}/lcdproc #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 +mv $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}/${f} \ + $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}/${f}.example +touch $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}/${f} done %post -%systemd_post LCDd.service lcdproc.service +if [ $1 -eq 1 ]; then +# Add init script but don't start it + /sbin/chkconfig --add LCDd + /sbin/chkconfig --add lcdproc ||: +fi %preun -%systemd_preun LCDd.service lcdproc.service +if [ $1 -eq 0 ]; then +# Disable driver on final removal + %{_initrddir}/lcdproc stop &>/dev/null + %{_initrddir}/LCDd stop &>/dev/null + /sbin/chkconfig --del lcdproc + /sbin/chkconfig --del LCDd ||: +fi -%postun -%systemd_postun_with_restart LCDd.service lcdproc.service - +%clean +rm -rf $RPM_BUILD_ROOT __doc %files -%doc %{_docdir}/%{name} -%license COPYING +%defattr(-,root,root,-) +%doc README* INSTALL COPYING CREDITS TODO ChangeLog +%doc __doc/* %{_bindir}/* +%dir %{_libdir}/lcdproc +%{_libdir}/lcdproc/* %{_sbindir}/* -%{_libdir}/lcdproc/ %{_mandir}/man?/* -%dir %{_sysconfdir}/%{name} -%config %{_sysconfdir}/%{name}/*.conf -%config %{_sysconfdir}/%{name}/*.conf.example -%{_unitdir}/* -%{_udevrulesdir}/90-%{name}.rules -%{_sysusersdir}/lcdproc.conf +%dir %{_sysconfdir}/sysconfig/%{name} +%ghost %{_sysconfdir}/sysconfig/%{name}/*.conf +%config %{_sysconfdir}/sysconfig/%{name}/*.conf.example +%{_initrddir}/LCDd +%{_initrddir}/lcdproc %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 - -* Thu Aug 03 2017 Fedora Release Engineering - 0.5.7-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 0.5.7-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Feb 10 2017 Fedora Release Engineering - 0.5.7-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Sep 29 2016 Nicolas Chauvet - 0.5.7-7 -- Remove ControlGroup from services - rhbz#1324015 - -* Thu Feb 04 2016 Fedora Release Engineering - 0.5.7-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jun 17 2015 Fedora Release Engineering - 0.5.7-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat Oct 04 2014 Dan Horák - 0.5.7-4 -- update BR, libusbx-devel is brought in by libftdi-devel - -* Sun Aug 17 2014 Fedora Release Engineering - 0.5.7-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 0.5.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Fri May 30 2014 Peter Robinson 0.5.7-1 -- Update to 0.5.7 -- Build against libusbx and libftdi 1 -- Cleanup spec - -* Sat Aug 03 2013 Fedora Release Engineering - 0.5.6-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Jul 17 2013 Petr Pisar - 0.5.6-5 -- Perl 5.18 rebuild - -* Sat Apr 27 2013 Nicolas Chauvet - 0.5.6-4 -- Enable hardened build rhbz#955453 - -* Thu Feb 14 2013 Fedora Release Engineering - 0.5.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Mon Jan 07 2013 Dan Horák - 0.5.6-2 -- update BR for s390(x) - -* Wed Jan 02 2013 Nicolas Chauvet - 0.5.6-1 -- Update to 0.5.6 - -* Wed Aug 29 2012 Nicolas Chauvet - 0.5.5-6 -- Add systemd macro - rbz#850181 - -* Sun Jul 22 2012 Nicolas Chauvet - 0.5.5-5 -- Fix for rhbz#821270 - -* Thu Jul 19 2012 Fedora Release Engineering - 0.5.5-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Mon Feb 13 2012 Nicolas Chauvet - 0.5.5-3 -- Convert to native systemd units - -* Fri Jan 13 2012 Fedora Release Engineering - 0.5.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Nov 29 2011 Nicolas Chauvet - 0.5.5-1 -- Update to 5.5 -- Fix path of functions -- Disable xosd and svga - -* Wed Mar 30 2011 Nicolas Chauvet - 0.5.4-1 -- Update to 0.5.4 - -* Mon Feb 07 2011 Fedora Release Engineering - 0.5.3-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - * Sun Apr 18 2010 Nicolas Chauvet - 0.5.3-5 - Remove Uneeded BR - rhbz#572621 - Rebuild for libftdi update - rhbz#581601 diff --git a/lcdproc.sysusers b/lcdproc.sysusers deleted file mode 100644 index 7213bda..0000000 --- a/lcdproc.sysusers +++ /dev/null @@ -1 +0,0 @@ -g lcdd - diff --git a/lcdproc.target b/lcdproc.target deleted file mode 100644 index 4001109..0000000 --- a/lcdproc.target +++ /dev/null @@ -1,3 +0,0 @@ -[Unit] -Description=lcdproc Target -StopWhenUnneeded=yes diff --git a/sources b/sources index 7d495a3..540f1dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (lcdproc-5c21e8c.tar.gz) = cc0f6622bfc76382306d1419b76e9d9d16740722bc29568559f4b022e0747a2edb3fece8d3f3d5871972b778290bc6178bd2de3919b6eae019505551e91f93cb +fe9a7c9d8f2c5e76250ce2ea8f644921 lcdproc-0.5.3.tar.gz