File lcd-daemon.spec of Package lcd-daemon
%if %{defined _project}
# define if building on openSUSE build service
%global build_on_obs 1
%global reconfigure_mode 0
%else
%define _project local
%global build_on_obs 0
%global reconfigure_mode 0
%global _hardened_build 1
%endif
%if %{defined nodebug}
%global debug_package %{nil}
%endif
%global _prefix /usr
%global mandir /usr/share/man
%global _libexecdir /usr/libexec
%if %build_on_obs == 1
%global packager Manvendra Bhangui <Manvendra Bhangui <lcd-daemon@indimail.org>>
%endif
%define see_base For a description of lcd-daemon visit https://github.com/mbhangui/lcd-daemon
%define servicedir /service
Name: lcd-daemon
Version: 1.0
Release: 1.1%{?dist}
Summary: LCD Daemon for Character LCD with Hitachi 44780 controller
License: LGPLv3+
Group: Applications/Multimedia
URL: https://github.com/mbhangui/lcd-daemon
BuildRequires: gcc gcc-c++ make autoconf automake libtool
BuildRequires: glibc glibc-devel libqmail-devel
# only for raspberry pi distributions
# TODO: need to find a variable name instead of raspberry_version
%if 0%{?raspbian_version}
BuildRequires: libwiringpi-devel libwiringpidev-devel
%endif
Source0: %{name}-%{version}.tar.gz
Requires: coreutils
%description
lcd-daemon is server application that accepts text from clients to be
printed on character LCD Display with Hitachi 44780 controller. It uses the
libwiringPi and libwiringPiDev library at
https://github.com/mbhangui/wiringPi
notify-daemon is server application that accepts text from clients to be
sent as desktop notifications
The libraries were originally written by Gordon Henderson. The version of
libwiringpi used here is an unofficial fork of wiringPi at
https://github.com/WiringPi/WiringPi.
%{see_base}
%prep
%setup -q
%build
./configure --prefix=%{_prefix} --sbindir=%{_prefix}/sbin --mandir=%{_prefix}/share/man --libexecdir=%{_prefix}/libexec
%install
%{__make} -s %{?_smp_mflags}
%{__make} -s DESTDIR=%{buildroot} install-strip
find %{buildroot}%{_mandir} -type f -exec gzip -q {} \;
%files
%defattr (-,root,root)
%doc LICENSE README.md
%dir %attr(755,root,root) %{_libexecdir}/%{name}
%{_prefix}/sbin/lcd-daemon
%{_prefix}/sbin/notify-daemon
%{_bindir}/pilcd
%{_bindir}/pinotify
%{_libexecdir}/%{name}/create_service
%ghost /var/log/svc/lcd-daemon
%docdir %{_mandir}
%{_mandir}/man1/pilcd.1.gz
%{_mandir}/man1/pinotify.1.gz
%{_mandir}/man8/lcd-daemon.8.gz
%{_mandir}/man8/notify-daemon.8.gz
%pretrans
if [ ! -x %{_prefix}/sbin/minisvc ] ; then
exit 0
fi
# stop lcd-daemon services before upgrade
if [ -d /run ] ; then
rundir=/run/svscan
elif [ -d /var/run ] ; then
rundir=/var/run/svscan
else
rundir=%{servicedir}
fi
%{_prefix}/bin/svstat %{servicedir}/lcd-daemon >/dev/null 2>&1
if [ $? -eq 0 ] ; then
%{__mkdir_p} ${rundir}/lcd-daemon
%{_prefix}/bin/svc -d %{servicedir}/lcd-daemon
touch ${rundir}/lcd-daemon/.down
fi
%post
argv1=$1
if [ $argv1 -eq 2 ] ; then # upgrade
if [ ! -x %{_prefix}/sbin/minisvc ] ; then
exit 0
fi
if [ -d /run ] ; then
rundir=/run/svscan
elif [ -d /var/run ] ; then
rundir=/var/run/svscan
else
rundir=%{servicedir}
fi
for j in lcd-daemon notify-desktop
do
%{_prefix}/sbin/minisvc --servicedir=%{servicedir} --refreshsvc="%{servicedir}/$j" --silent
%{_prefix}/bin/svok %{servicedir}/$j >/dev/null 2>&1
if [ $? -eq 0 -a -f ${rundir}/$j/.down ] ; then
%{_prefix}/bin/svc -u %{servicedir}/$j
fi
%{__rm} -f ${rundir}/$j/.down
done
exit 0
fi
if [ ! -x %{_prefix}/sbin/minisvc ] ; then
exit 0
fi
for j in lcd-daemon notify-desktop
do
# create lcd-daemon, notify-desktop service in down state
%{_libexecdir}/%{name}/create_service --servicedir=%{servicedir} --"$j"
%{_prefix}/sbin/minisvc --servicedir=%{servicedir} --service-name="$j" \
--export-variables=%{servicedir}/"$j"/variables/.variables --force --silent
touch %{servicedir}/"$j"/down
if [ -x /usr/bin/svps ] ; then
/usr/bin/svps -h >/dev/null 2>&1
fi
done
%preun
if [ ! -x %{_prefix}/sbin/minisvc ] ; then
exit 0
fi
if [ -x %{_prefix}/sbin/minisvc ] ; then
%{_prefix}/sbin/minisvc --rmsvc=%{servicedir}/lcd-daemon
%{_prefix}/sbin/minisvc --rmsvc=%{servicedir}/notify-desktop
sleep 5
fi
%changelog
* Mon May 19 2025 06:23:19 +0000 Manvendra Bhangui <lcd-daemon@indimail.org> 1.0-1.1%{?dist}
1. Added pilcd command, lcd-daemon server
- Created lcd daemon package
- First public release
- Specifying bits, cols, rows moved to lcd-daemon from pilcd
- lcd-daemon.c: Added startup, shutdown message
- configure.ac: corrected bugreport address
- lcd-daemon.c, pilcd.c, lcdPrint.c: interchanged rownum and scroll fields
- lcd-daemon.c: prevent row number to be greater than rows supported by LCD
- added notify-daemon.c, pinotify.c
- Added -T argument, DISPLAY_TIMEOUT env variable for the time in seconds
notify-send will display message.
- Fix gcc14 errors for lcd-daemon.c, notify-daemon.c, pilcd.c, pinotify.c,
substdio.h
- lcd-daemon.c, notify-daemon.c: Fixed argument type for get_octal()