diff --git a/fedora/SPECS/echoip.spec b/fedora/SPECS/echoip.spec index 28c57a0..95005e9 100644 --- a/fedora/SPECS/echoip.spec +++ b/fedora/SPECS/echoip.spec @@ -1,29 +1,37 @@ # You can get the latest commit using this commands: # git pull # git log --oneline | head -n 1 | awk '{print $1}' -%define gitv 58fd8a6 -%define webd %{_var}/www +%define gitv 58fd8a6 +%define webd %{_var}/www +%define gopath $(pwd)/go +%define domain echoip.daniel-steiner.org +%define protocol https +%define port 443 + Name: echoip Version: 1.0 Release: 1.%{gitv}%{?dist} Summary: A simple service for looking up your IP address. - +%define debug_package %{nil} Group: Applications/System License: BSD 3-Clause license URL: https://github.com/mpolden/%{name} Source0: %name-%{version}.%{gitv}.tgz +Source1: %name.service BuildRequires: golang BuildRequires: go-compilers-golang-compiler BuildRequires: go-srpm-macros -Requires: httpd >=2.4.0 +BuildRequires: httpd-filesystem +Requires: httpd >= 2.4.0 Requires: httpd-filesystem +Requires: geoipupdate-cron +Requires: GeoIP %description A simple service for looking up your IP address. This is the code that powers https://ifconfig.co. - %prep %setup -q -n %{name}-%{version}.%{gitv} @@ -31,9 +39,9 @@ A simple service for looking up your IP address. This is the code that powers ht # save system PATH environment: SAVEPATH=$PATH # prepare go environment: -export GOPATH=$(pwd)/go -export GOPATH=$(go env GOPATH) -export PATH=$PATH:$(go env GOPATH)/bin +export GOPATH=%{gopath} +#export GOPATH=$(go env GOPATH) # it's the same like above line! +export PATH=$PATH:%{gopath}/bin # build go project: go get ./... # bash -c "diff --line-format='%L' <(echo -n) <(gofmt -d -s .)" @@ -44,17 +52,64 @@ go install ./... export PATH=$SAVEPATH %install -%__install -d go/bin/echoip %{buildroot}%{_bindir}%{name} -%__install -d /go/src/github.com/mpolden/echoip/index.html %{buildroot}%{_webd}%{name}/index.html +# modifying index.html file for required settings: +sed -i -e 's/.. .Host ../%{domain}/g' index.html +sed -i -e 's/http /%{protocol} /g' index.html +sed -i -e 's/8080/%{port}/g' index.html +sed -i -e 's/height="350"/height="600"/g' index.html +install -d -m 0770 %{buildroot}%{_rundir}/%{name} +install -D -m 0775 %{gopath}/bin/echoip %{buildroot}%{_bindir}/%{name} +install -D -m 0644 index.html %{buildroot}%{webd}/%{name}/index.html +install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service +%clean +[ "%{buildroot}" != "/" ] && [ -d "%{buildroot}" ] && rm -rf %{buildroot} +[ "%{_builddir}" != "/" ] && [ -d "%{_builddir}" ] && rm -rf %{_builddir}/* + +%pre +getent group %{name} > /dev/null || groupadd -r %{name} +getent passwd %{name} > /dev/null || \ + useradd -m -g %{name} -s /bin/bash \ + -c "Echo IP account" %{name} + +%post +%if 0%{?using_systemd} +%if 0%{?systemd_macro_scriptlet} +if [ $1 -eq 1 ]; then +%systemd_post %{name}.service +firewall-cmd --permanent --add-port=8080/tcp +fi +%firewalld_reload +%endif +%endif + +%preun +%if 0%{?using_systemd} +if [ $1 -eq 0 ]; then +systectl stop %{name}.service +fi +%endif + +%postun +%if 0%{?using_systemd} +%if 0%{?systemd_macro_scriptlet} +if [ $1 -eq 1 ]; then +%systemd_postun_with_restart %{name}.service +firewall-cmd --permanent --delete-port=8080/tcp +%firewalld_reload +fi +%endif +%endif %files %defattr(-,root,root,-) %doc README.md %license LICENSE -%{_bindir}%{name} -%{_webd}%{name}/index.html - +%{_bindir}/%{name} +%dir %attr(-,%{name},%{name}) %{webd}/%{name} +%attr(-,%{name},%{name}) %{webd}/%{name}/index.html +%{_unitdir}/%{name}.service +%dir %attr(-,%{name},%{name}) %{_rundir}/%{name} %changelog * Sat Jan 19 2019 Daniel Steiner