mirror of https://github.com/wb2osz/direwolf.git
Merge pull request #268 from mdomsch/systemd
Add rpm spec and systemd files
This commit is contained in:
commit
b99f9f33c2
|
@ -0,0 +1,175 @@
|
|||
%global shorttag 0d2c175c
|
||||
Name: direwolf
|
||||
Version: 1.6
|
||||
Release: 0.4.20200419git%{shorttag}%{?dist}
|
||||
Summary: Sound Card-based AX.25 TNC
|
||||
|
||||
License: GPLv2+
|
||||
URL: https://github.com/wb2osz/direwolf/
|
||||
Source0: https://github.com/wb2osz/direwolf/archive/%{version}/%{name}-%{version}.tar.gz
|
||||
#Source0: https://github.com/wb2osz/direwolf/archive/%{version}/%{name}-%{shorttag}.tar.gz
|
||||
|
||||
BuildRequires: gcc gcc-c++
|
||||
BuildRequires: cmake
|
||||
BuildRequires: glibc-devel
|
||||
BuildRequires: alsa-lib-devel
|
||||
BuildRequires: gpsd-devel
|
||||
BuildRequires: hamlib-devel
|
||||
BuildRequires: systemd systemd-devel
|
||||
Requires: ax25-tools ax25-apps
|
||||
Requires(pre): shadow-utils
|
||||
|
||||
|
||||
%description
|
||||
Dire Wolf is a modern software replacement for the old 1980's style
|
||||
TNC built with special hardware. Without any additional software, it
|
||||
can perform as an APRS GPS Tracker, Digipeater, Internet Gateway
|
||||
(IGate), APRStt gateway. It can also be used as a virtual TNC for
|
||||
other applications such as APRSIS32, UI-View32, Xastir, APRS-TW, YAAC,
|
||||
UISS, Linux AX25, SARTrack, Winlink Express, BPQ32, Outpost PM, and many
|
||||
others.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{version}
|
||||
|
||||
|
||||
%build
|
||||
%cmake -DUNITTEST=1 -DENABLE_GENERIC=1 .
|
||||
|
||||
|
||||
%check
|
||||
ctest -V %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
%make_install
|
||||
|
||||
# Install service file
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_unitdir}
|
||||
cp %{_builddir}/%{buildsubdir}/systemd/%{name}.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}.service
|
||||
|
||||
# Install service config file
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
|
||||
cp %{_builddir}/%{buildsubdir}/systemd/%{name}.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}
|
||||
|
||||
# Install logrotate config file
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d
|
||||
cp %{_builddir}/%{buildsubdir}/systemd/%{name}.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}
|
||||
|
||||
# copy config file
|
||||
cp ${RPM_BUILD_ROOT}%{_pkgdocdir}/conf/%{name}.conf ${RPM_BUILD_ROOT}/%{_sysconfdir}/%{name}.conf
|
||||
|
||||
# Make log directory
|
||||
mkdir -m 0755 -p ${RPM_BUILD_ROOT}/var/log/%{name}
|
||||
|
||||
# Move udev rules to system dir
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_udevrulesdir}
|
||||
mv ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d/99-direwolf-cmedia.rules ${RPM_BUILD_ROOT}%{_udevrulesdir}/99-direwolf-cmedia.rules
|
||||
|
||||
# Copy doc pngs
|
||||
cp direwolf-block-diagram.png ${RPM_BUILD_ROOT}%{_pkgdocdir}/direwolf-block-diagram.png
|
||||
cp tnc-test-cd-results.png ${RPM_BUILD_ROOT}%{_pkgdocdir}/tnc-test-cd-results.png
|
||||
|
||||
# remove extraneous files
|
||||
# This is not a desktop application, per the guidelines. Running it in a terminal
|
||||
# does not make it a desktop application.
|
||||
rm ${RPM_BUILD_ROOT}/usr/share/applications/direwolf.desktop
|
||||
rm ${RPM_BUILD_ROOT}%{_datadir}/pixmaps/direwolf_icon.png
|
||||
rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/CHANGES.md
|
||||
rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/LICENSE
|
||||
rm ${RPM_BUILD_ROOT}%{_pkgdocdir}/README.md
|
||||
|
||||
# remove Windows external library directories
|
||||
rm -r ${RPM_BUILD_ROOT}%{_pkgdocdir}/external
|
||||
|
||||
# Move Telemetry Toolkit sample scripts into docs
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_pkgdocdir}/telem/
|
||||
mv ${RPM_BUILD_ROOT}%{_bindir}/telem* ${RPM_BUILD_ROOT}%{_pkgdocdir}/telem/
|
||||
chmod 0644 ${RPM_BUILD_ROOT}%{_pkgdocdir}/telem/*
|
||||
|
||||
|
||||
%package -n %{name}-doc
|
||||
Summary: Documentation for Dire Wolf
|
||||
BuildArch: noarch
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description -n %{name}-doc
|
||||
Dire Wolf is a modern software replacement for the old 1980's style
|
||||
TNC built with special hardware. Without any additional software, it
|
||||
can perform as an APRS GPS Tracker, Digipeater, Internet Gateway
|
||||
(IGate), APRStt gateway. It can also be used as a virtual TNC for
|
||||
other applications such as APRSIS32, UI-View32, Xastir, APRS-TW, YAAC,
|
||||
UISS, Linux AX25, SARTrack, RMS Express, BPQ32, Outpost PM, and many
|
||||
others.
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%{_udevrulesdir}/99-direwolf-cmedia.rules
|
||||
%{_bindir}/*
|
||||
%{_mandir}/man1/*
|
||||
%{_datadir}/%{name}/*
|
||||
%dir %{_pkgdocdir}
|
||||
%{_pkgdocdir}/conf/*
|
||||
%{_pkgdocdir}/scripts/*
|
||||
%{_pkgdocdir}/telem/*
|
||||
%{_unitdir}/%{name}.service
|
||||
%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/sysconfig/%{name}
|
||||
%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/%{name}.conf
|
||||
%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}
|
||||
%dir %attr(0755, %{name}, %{name}) /var/log/%{name}
|
||||
|
||||
%files -n %{name}-doc
|
||||
%{_pkgdocdir}/*.pdf
|
||||
%{_pkgdocdir}/*.png
|
||||
|
||||
# At install, create a user in group audio (so can open sound card device files)
|
||||
# and in group dialout (so can open serial device files)
|
||||
%pre
|
||||
getent group direwolf >/dev/null || groupadd -r direwolf
|
||||
getent passwd direwolf >/dev/null || \
|
||||
useradd -r -g audio -G audio,dialout -d %{_datadir}/%{name} -s /sbin/nologin \
|
||||
-c "Direwolf Sound Card-based AX.25 TNC" direwolf
|
||||
exit 0
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Apr 20 2020 Matt Domsch <matt@domsch.com> - 1.6-0.3
|
||||
- drop unneeded BR libax25-devel
|
||||
|
||||
* Mon Apr 20 2020 Matt Domsch <matt@domsch.com> - 1.6-0.2
|
||||
- write stdout/err to /var/log/direwolf, logrotate 30 days.
|
||||
- run ctest
|
||||
- remove CPU instruction tests, leave architecture choice up to the distro
|
||||
|
||||
* Sun Apr 19 2020 Matt Domsch <matt@domsch.com> - 1.6-0.1
|
||||
- upstream 1.6 prerelease
|
||||
- drop obsolete patches, use cmake
|
||||
- add systemd startup, direwolf user
|
||||
|
||||
* Tue Mar 31 2020 Richard Shaw <hobbes1069@gmail.com> - 1.5-6
|
||||
- Rebuild for hamlib 4.
|
||||
|
||||
* Thu Feb 20 2020 Matt Domsch <matt@domcsh.com> - 1.5-5
|
||||
- Remove unneeded dependency on python2-devel (#1805225)
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Wed Jul 03 2019 Björn Esser <besser82@fedoraproject.org> - 1.5-2
|
||||
- Rebuild (gpsd)
|
||||
|
||||
* Sun Feb 17 2019 Matt Domsch <matt@domsch.com> - 1.5-1
|
||||
- Upgrade to released version 1.5
|
||||
- Apply upstream patch for newer gpsd API
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-0.2.beta4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Aug 27 2018 Matt Domsch <matt@domsch.com> - 1.5-0.1.beta4
|
||||
- Fedora Packaging Guidelines, based on spec by David Ranch
|
||||
Moved Telemetry Toolkit examples into examples/ docs.
|
|
@ -0,0 +1,20 @@
|
|||
/var/log/direwolf/stdout /var/log/direwolf/stderr {
|
||||
missingok
|
||||
rotate 30
|
||||
daily
|
||||
copytruncate
|
||||
notifempty
|
||||
compress
|
||||
delaycompress
|
||||
dateext
|
||||
dateyesterday
|
||||
}
|
||||
|
||||
/var/log/direwolf/*.log {
|
||||
missingok
|
||||
daily
|
||||
rotate 30
|
||||
minage 7
|
||||
maxage 30
|
||||
compress
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
[Unit]
|
||||
Description=Direwolf Sound Card-based AX.25 TNC
|
||||
After=sound.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=/etc/sysconfig/direwolf
|
||||
User=direwolf
|
||||
# You may want to set the audio levels of your radio-connected soundcard
|
||||
# prior to starting direwolf. To do so, copy this file to /etc/systemd/system/
|
||||
# and edit the ExecStartPre line to point to your preferred method of
|
||||
# doing so. Then run systemctl daemon-reload so systemd uses your updated
|
||||
# copy of this service file.
|
||||
#ExecStartPre=/some/script.sh
|
||||
ExecStart=/bin/bash -ce "exec /usr/bin/direwolf $DIREWOLF_ARGS >>/var/log/direwolf/stdout 2>>/var/log/direwolf/stderr"
|
||||
Restart=always
|
||||
StandardOutput=null
|
||||
StandardError=null
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/var/log/direwolf
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
DefaultInstance=1
|
|
@ -0,0 +1,2 @@
|
|||
# Set direwolf command line arguments here
|
||||
DIREWOLF_ARGS="-l /var/log/direwolf -c /etc/direwolf.conf"
|
Loading…
Reference in New Issue