File _service:set_version:bantam.spec of Package bantam

#
# spec file for package bantam
#

Name:           bantam
Version:        1.0.0.0
Release:        0
Summary:        P2P digital currency
License:        MIT
Group:          Productivity/Networking/Other
Url:            https://%{name}.org/
Source0:        %{name}-%{version}.tar.gz
Source1:        bitcoind.service
Source2:        bitcoin.conf
Patch0:         %{name}-util.patch
ExcludeArch:    aarch64
BuildRequires:  boost-devel
BuildRequires:  libdb-4_8-devel
BuildRequires:  libminiupnpc-devel
BuildRequires:  qrencode-devel
%if 0%{?suse_version} && 0%{?suse_version} >= 1315
BuildRequires:  libopenssl-devel
BuildRequires:  libqt5-qtbase-devel
BuildRequires:  libqt5-qttools-devel
%else
BuildRequires:  libqt4-devel
%endif
BuildRequires:  update-desktop-files

%if ! %{defined _rundir}
%define _rundir %{_localstatedir}/run
%endif

%global qt4_version qt
%global qt5_version qt5

%if 0%{?suse_version} && 0%{?suse_version} >= 1315
%define qt_version %{qt5_version}
%define qt_version_obsolete %{qt4_version}
%define ___qmake qmake-%{qt_version}
%else
%define qt_version %{qt4_version}
%define qt_version_obsolete %{qt5_version}
%define ___qmake qmake
%endif

# set binary names
%define daemon_name %{name}d
%define display_name Bantam
%define gui_name %{name}-qt

# set ports
%define p2p_port 21772
%define rpc_port 21771

%define description_text The Bantam Project seeks to use the Blockchain to build track records of digital credit, or the lack thereof, for each holder of BNT. The Bantam Project will achieve this by accepting Bantam (BNT) as collateral for Bitcoin loans up to a maximum of 1 BTC, and tracking repayments thereby building a transparent database of verifiable user credit, which will further lubricate the wheels of crypto commerce and make it far simpler for individuals to obtain digital currency denominated loans.

%description
%{description_text}

%package %{qt_version}
Summary:        GUI for the %{display_name} crypto-currency
Obsoletes:      %{name}-%{qt_version_obsolete}

%description %{qt_version}
%{description_text}

This package provides %{display_name}-Qt, a GUI for %{display_name} based on Qt.

%package -n %{daemon_name}
Summary:        Headless daemon for %{name} crypto-currency
License:        MIT

%description -n %{daemon_name}
%{description_text}

This package provides %{daemon_name}, a headless %{name} daemon.

%package doc
Summary:        Documentation for %{name}
Group:          Documentation/Man
BuildArch:      noarch

%description doc
%{description_text}

%prep
%setup -q
%patch0
%{__chmod} 0755 src/leveldb/build_detect_platform
%{__mkdir_p} src/obj/zerocoin

# setup systemd service
%{__mkdir_p} contrib/init
%{__cp} -a %{S:1} contrib/init/%{daemon_name}.service
%{__sed} -i 's#^Description=Bitcoin.s distributed currency daemon$#Description=%{display_name} Daemon#g' contrib/init/%{daemon_name}.service
%{__sed} -i 's#^PIDFile=/var/lib/bitcoind/bitcoind.pid$#PIDFile=%{_rundir}/%{name}/%{daemon_name}.pid#g' contrib/init/%{daemon_name}.service
%{__sed} -i 's#^ExecStart=/usr/bin/bitcoind -daemon -pid=/var/lib/bitcoind/bitcoind.pid \\$#ExecStart=%{_bindir}/%{daemon_name} -daemon -pid=%{_rundir}/%{name}/%{daemon_name}.pid -conf=%{_sysconfdir}/%{name}.conf -datadir=%{_localstatedir}/lib/%{name} -disablewallet#g' contrib/init/%{daemon_name}.service
%{__sed} -i 's#^-conf=/etc/bitcoin/bitcoin.conf -datadir=/var/lib/bitcoind -disablewallet$#ExecReload=/bin/kill -HUP \$MAINPID#g' contrib/init/%{daemon_name}.service
%{__sed} -i 's#^User=bitcoin$#User=%{name}#g' contrib/init/%{daemon_name}.service
%{__sed} -i 's#^Group=bitcoin$#Group=%{name}#g' contrib/init/%{daemon_name}.service

# setup default config file
%{__mkdir_p} contrib/debian/examples
%{__cp} -a %{S:2} contrib/debian/examples/%{name}.conf
%{__sed} -i 's#Bitcoin-QT#%{gui_name}#g' contrib/debian/examples/%{name}.conf
%{__sed} -i 's#Bitcoin#%{name}#g' contrib/debian/examples/%{name}.conf

# setup firewall config
echo "## Name: %{display_name} Daemon" > %{name}.firewall
echo "## Description: Opens ports for %{daemon_name} in order to allow remote connections." >> %{name}.firewall
echo -e "\nTCP=\"%{p2p_port} %{rpc_port}\"" >> %{name}.firewall

# setup run folder
echo "d %{_rundir}/%{name} 0770 root %{name}" > rundir.conf

%build
%{___qmake} USE_QRCODE=1 USE_DBUS=1
%{__make} %{?_smp_mflags}
%{__mv} %{display_name}-qt %{gui_name}
%{__strip} -s %{gui_name}
%{__make} -C src -f makefile.unix %{?_smp_mflags}
%{__mv} src/%{display_name}d src/%{daemon_name}
%{__strip} -s src/%{daemon_name}

%install
%{__install} -dm 0755 %{buildroot}%{_bindir}
%{__install} -m 0755 %{gui_name} %{buildroot}%{_bindir}
%{__install} -m 0755 src/%{daemon_name} %{buildroot}%{_bindir}

# install daemon supplementary files
%{__install} -D -m 0644 contrib/debian/examples/%{name}.conf  %{buildroot}%{_sysconfdir}/%{name}.conf
%{__install} -D -m 0644 contrib/init/%{daemon_name}.service %{buildroot}%{_unitdir}/%{daemon_name}.service
%{__mkdir_p} %{buildroot}%{_localstatedir}/lib/%{name}
%{__install} -d -m 0755 %{buildroot}%{_sbindir}
%{__ln_s} %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{daemon_name}

# install firewall config file
%{__install} -D -m 644 %{name}.firewall %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{daemon_name}

# install desktop file
%{__install} -D -m 0644 src/qt/res/icons/Bantam.png %{buildroot}%{_datadir}/pixmaps/%{name}.png
%suse_update_desktop_file -c %{gui_name} %{display_name} "%{display_name} Wallet" %{gui_name} %{name} Office Finance

# install run folder configuration
%{__install} -D -m 0644 rundir.conf %{buildroot}/%{_tmpfilesdir}/%{name}_rundir.conf

# install documentation
%{__install} -d -m 0755 %{buildroot}%{_defaultdocdir}/%{name}
%{__install} -m 0644 -p -t %{buildroot}%{_defaultdocdir}/%{name} COPYING README.md
%{__cp} -a doc %{buildroot}%{_defaultdocdir}/%{name}/

%pre -n %{daemon_name}
getent group %{name} > /dev/null || groupadd -r %{name}
getent passwd %{name} > /dev/null || useradd -r -g %{name} -d %{_localstatedir}/lib/%{name} -s /sbin/nologin -c "%{name} daemon" %{name}
%service_add_pre %{daemon_name}.service

%preun -n %{daemon_name}
%service_del_preun %{daemon_name}.service

%post %{qt_version}
%desktop_database_post

%post -n %{daemon_name}
%service_add_post %{daemon_name}.service
%if 0%{?suse_version} <= 1320
systemd-tmpfiles --create %{_tmpfilesdir}/%{name}_rundir.conf >/dev/null 2>&1 || :
%else
%tmpfiles_create %{_tmpfilesdir}/%{name}_rundir.conf
%endif

%postun %{qt_version}
%desktop_database_postun

%postun -n %{daemon_name}
%service_del_postun %{daemon_name}.service

%files %{qt_version}
%defattr(-,root,root,-)
%attr(755,root,root) %{_bindir}/%{gui_name}
%{_datadir}/pixmaps/%{name}.png
%{_datadir}/applications/%{gui_name}.desktop

%files -n %{daemon_name}
%defattr(-,root,root,-)
%attr(755,root,root) %{_bindir}/%{daemon_name}
%{_sbindir}/rc%{daemon_name}
%{_unitdir}/%{daemon_name}.service
%config(noreplace) %{_sysconfdir}/%{name}.conf
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{daemon_name}
%dir %attr(700,%{name},%{name}) %{_localstatedir}/lib/%{name}
%ghost %{_rundir}/%{name}
%{_tmpfilesdir}/%{name}_rundir.conf

%files doc
%defattr(-,root,root,-)
%{_defaultdocdir}/%{name}/

%changelog
openSUSE Build Service is sponsored by