102 lines
3.3 KiB
RPMSpec
102 lines
3.3 KiB
RPMSpec
%global appname librespeedgo
|
|
%global debug_package %{nil}
|
|
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-.*[[:space:]].*$!!g')
|
|
|
|
Name: %{appname}
|
|
Version: %{hk_version}
|
|
Release: %{hk_build}%{?dist}
|
|
Summary: LibreSpeed go-backend server
|
|
|
|
Group: Applications/System
|
|
License: LGPL
|
|
URL: https://github.com/librespeed/speedtest-go
|
|
Source0: %{name}.tar.gz
|
|
Source1: %{name}.mainconfig
|
|
Source2: %{name}.service
|
|
Source3: %{name}.firewalld
|
|
|
|
AutoReq: no
|
|
AutoProv: no
|
|
BuildArch: x86_64
|
|
BuildRequires: golang >= 1.13
|
|
|
|
%description
|
|
Very lightweight speed test implemented in Javascript, using XMLHttpRequest and Web Workers.
|
|
|
|
%prep
|
|
curl -sL 'https://github.com/librespeed/speedtest-go/archive/refs/tags/v%{version}.tar.gz' -o %{_sourcedir}/%{name}.tar.gz
|
|
if [[ -d %{_builddir}/%{name} ]];then
|
|
chmod 777 -R %{_builddir}/%{name}
|
|
rm -rf %{_builddir}/%{name}
|
|
fi
|
|
mkdir %{_builddir}/%{name}
|
|
tar xf %{_sourcedir}/%{name}.tar.gz -C %{_builddir}/%{name} --strip-components 1
|
|
cd %{_builddir}/%{name}
|
|
cat << EOF >> %{name}.runtime
|
|
d /var/lib/librespeedgo 0750 librespeedgo librespeedgo
|
|
f /etc/librespeedgo/settings.toml 0640 root librespeedgo
|
|
f /var/lib/librespeedgo/speedtest.db 0640 librespeedgo librespeedgo
|
|
EOF
|
|
cp -a %{SOURCE1} %{SOURCE2} %{SOURCE3} ./
|
|
pushd %{_builddir}/%{name}/assets
|
|
sed -i "s/LibreSpeed Example/LibreSpeed/" *.html
|
|
popd
|
|
|
|
%build
|
|
pushd %{_builddir}/%{name}
|
|
%if 0%{?godir:1}
|
|
GOPATH=%{godir} go build -ldflags "-w -s" -trimpath -o %{name} main.go
|
|
%else
|
|
go build -ldflags "-w -s" -trimpath -o %{name} main.go
|
|
%endif
|
|
popd
|
|
|
|
%install
|
|
pushd %{_builddir}/%{name}
|
|
install -D %{name} %{buildroot}%{_bindir}/%{name}
|
|
install -Dm644 %{name}.runtime %{buildroot}%{_sysconfdir}/tmpfiles.d/%{name}.conf
|
|
install -Dm640 %{name}.mainconfig %{buildroot}%{_sysconfdir}/%{name}/settings.toml
|
|
install -Dm644 %{name}.service %{buildroot}%{_prefix}/lib/systemd/system/%{name}.service
|
|
install -Dm644 %{name}.firewalld %{buildroot}%{_prefix}/lib/firewalld/services/%{name}.xml
|
|
install -dm750 %{buildroot}/var/lib/%{name}
|
|
|
|
install -d %{buildroot}/%{_datadir}/%{name}
|
|
cp -r assets %{buildroot}/%{_datadir}/%{name}
|
|
install -m644 database/mysql/telemetry_mysql.sql %{buildroot}/%{_datadir}/%{name}
|
|
install -m644 database/postgresql/telemetry_postgresql.sql %{buildroot}/%{_datadir}/%{name}
|
|
popd
|
|
|
|
%files
|
|
%config(noreplace) %{_sysconfdir}/%{name}/settings.toml
|
|
%config(noreplace) %{_prefix}/lib/firewalld/services/%{name}.xml
|
|
%config %{_sysconfdir}/tmpfiles.d/%{name}.conf
|
|
%config %{_prefix}/lib/systemd/system/%{name}.service
|
|
%{_bindir}/%{name}
|
|
%{_datadir}/%{name}
|
|
/var/lib/%{name}
|
|
|
|
%post
|
|
if [ $1 == 1 ];then
|
|
if ! getent passwd %{name} > /dev/null; then
|
|
useradd -r -s /bin/false -m -d /var/lib/%{name} %{name}
|
|
fi
|
|
touch /var/lib/%{name}/speedtest.db
|
|
chown -R %{name}:%{name} /var/lib/%{name}
|
|
systemctl daemon-reload
|
|
elif [ $1 == 2 ];then
|
|
chown -R %{name}:%{name} /var/lib/%{name}
|
|
systemctl daemon-reload
|
|
if [ $(systemctl is-active --quiet %{name}.service) ];then
|
|
systemctl restart %{name}.service
|
|
fi
|
|
fi
|
|
|
|
%preun
|
|
if [ $1 == 0 ];then
|
|
if [ $(systemctl is-active --quiet %{name}.service) ];then
|
|
systemctl stop %{name}.service
|
|
fi
|
|
fi
|
|
|
|
%changelog
|