From 402664f58d3b076a3715ddf0fdb6bb49c70c57b4 Mon Sep 17 00:00:00 2001 From: Smoked Cheese Date: Mon, 15 Jan 2018 14:23:33 +0300 Subject: update rpm spec and use variables in cmake instead of hardcoded paths (#624) --- other/rpm/Makefile | 32 ++++++++++ other/rpm/tox-bootstrapd.service | 17 ++++++ other/rpm/toxcore.spec.in | 126 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 175 insertions(+) create mode 100644 other/rpm/Makefile create mode 100644 other/rpm/tox-bootstrapd.service create mode 100644 other/rpm/toxcore.spec.in (limited to 'other/rpm') diff --git a/other/rpm/Makefile b/other/rpm/Makefile new file mode 100644 index 00000000..5e164717 --- /dev/null +++ b/other/rpm/Makefile @@ -0,0 +1,32 @@ +PROJECT_NAME = toxcore +PROJECT_FULL_NAME = c-$(PROJECT_NAME) +PROJECT_VERSION = $(shell git describe | sed -e 's/^v//' -e 's/-/_/g') +PROJECT_COMMIT_ID = $(shell git rev-parse HEAD) +PROJECT_COMMIT_ID_SHORT = $(shell git rev-parse --short HEAD) +PROJECT_GIT_ROOT = $(shell git rev-parse --show-toplevel) + +all: + @echo available targets: spec srpm clean + +spec: toxcore.spec + +toxcore.spec: + sed -r \ + -e 's#@PROJECT_NAME@#$(PROJECT_NAME)#g' \ + -e 's#@PROJECT_VERSION@#$(PROJECT_VERSION)#' \ + -e 's#^(%define commit )0$$#\1$(PROJECT_COMMIT_ID)#' \ + toxcore.spec.in > toxcore.spec + +$(PROJECT_FULL_NAME)-$(PROJECT_COMMIT_ID_SHORT).tar.gz: + ( \ + cd $(PROJECT_GIT_ROOT); \ + git archive --prefix '$(PROJECT_FULL_NAME)-$(PROJECT_COMMIT_ID_SHORT)/' -o other/rpm/$(PROJECT_FULL_NAME)-$(PROJECT_COMMIT_ID_SHORT).tar.gz $(PROJECT_COMMIT_ID) \ + ) + +srpm: toxcore.spec $(PROJECT_FULL_NAME)-$(PROJECT_COMMIT_ID_SHORT).tar.gz + rpmbuild --define "_sourcedir ." --define "_srcrpmdir ." -bs toxcore.spec + +clean: + rm -f toxcore.spec *.tar.gz *.rpm + +.PHONY = clean srpm spec diff --git a/other/rpm/tox-bootstrapd.service b/other/rpm/tox-bootstrapd.service new file mode 100644 index 00000000..227c4497 --- /dev/null +++ b/other/rpm/tox-bootstrapd.service @@ -0,0 +1,17 @@ +[Unit] +Description=Tox DHT Bootstrap Daemon +After=network.target + +[Service] +Type=forking +RuntimeDirectory=tox-bootstrapd +RuntimeDirectoryMode=750 +PIDFile=/var/run/tox-bootstrapd/tox-bootstrapd.pid +WorkingDirectory=/var/lib/tox-bootstrapd +ExecStart=/usr/bin/tox-bootstrapd --config /etc/tox-bootstrapd.conf +User=tox-bootstrapd +Group=tox-bootstrapd +#CapabilityBoundingSet=CAP_NET_BIND_SERVICE + +[Install] +WantedBy=multi-user.target diff --git a/other/rpm/toxcore.spec.in b/other/rpm/toxcore.spec.in new file mode 100644 index 00000000..4c5132ce --- /dev/null +++ b/other/rpm/toxcore.spec.in @@ -0,0 +1,126 @@ +%define full_name c-@PROJECT_NAME@ +%define commit 0 +%if "${commit}" != "0" +%define shortcommit %(c=%{commit}; echo ${c:0:7}) +%endif + +Name: @PROJECT_NAME@ +Version: @PROJECT_VERSION@ +Release: 1%{?dist} +Summary: All-in-one secure communication platform + +License: GPLv3 +URL: https://github.com/TokTok/%{full_name} +%if "%{commit}" == "0" +Source0: https://github.com/TokTok/%{full_name}/archive/v%{version}.tar.gz +%else +Source0: https://github.com/TokTok/%{full_name}/archive/%{commit}/%{full_name}-%{shortcommit}.tar.gz +%endif + +BuildRequires: cmake +BuildRequires: libvpx-devel +BuildRequires: opus-devel +BuildRequires: libsodium-devel +BuildRequires: libconfig-devel +BuildRequires: systemd-units + +%description +With the rise of governmental monitoring programs, Tox, a FOSS initiative, aims +to be an easy to use, all-in-one communication platform that ensures their users +full privacy and secure message delivery. + +%package devel +Summary: Development files for @PROJECT_NAME@ +Requires: %{name} = %{version}-%{release} + +%description devel +Development package for @PROJECT_NAME@ + +%package static +Summary: @PROJECT_NAME@ static libraries +Requires: %{name}-devel = %{version}-%{release} + +%description static +@PROJECT_NAME@ static libraries + +%package -n tox-bootstrapd +Summary: Tox DHT bootstrap daemon. +Requires: %{name} = %{version}-%{release} +Requires(pre): shadow-utils +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +%description -n tox-bootstrapd +Tox DHT bootstrap daemon. + +%prep +%if "%{commit}" == "0" +%setup -q -n %{full_name}-%{version} +%else +%setup -q -n %{full_name}-%{commit} +%endif + +%build +%cmake +%{__make} %{?_smp_mflags} + +%install +%make_install +mkdir -p %{buildroot}%{_unitdir} +install -m 0644 other/rpm/tox-bootstrapd.service %{buildroot}%{_unitdir}/tox-bootstrapd.service +install -d "%{buildroot}%{_sharedstatedir}/tox-bootstrapd" +mkdir -p %{buildroot}%{_sysconfdir} +install -m 0644 other/bootstrap_daemon/tox-bootstrapd.conf %{buildroot}%{_sysconfdir}/tox-bootstrapd.conf + +%check +%{__make} %{?_smp_mflags} test + +%pre -n tox-bootstrapd +getent group tox-bootstrapd >/dev/null || groupadd -r tox-bootstrapd +getent passwd tox-bootstrapd >/dev/null || \ + useradd -r -g tox-bootstrapd -d /var/lib/tox-bootstrapd -s /sbin/nologin \ + -c "Account to run Tox's DHT bootstrap daemon" tox-bootstrapd + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%post -n tox-bootstrapd +%systemd_post tox-bootstrapd.service + +%postun -n tox-bootstrapd +%systemd_postun_with_restart tox-bootstrapd.service + +%preun -n tox-bootstrapd +%systemd_preun tox-bootstrapd.service + +%files +%defattr(-, root, root) +%doc COPYING README.md CHANGELOG.md +%{_libdir}/libtoxcore.so* + +%files devel +%defattr(-, root, root) +%{_includedir}/tox/ +%{_libdir}/pkgconfig/toxcore.pc + +%files static +%defattr(-, root, root) +%{_libdir}/libtoxcore.a + +%files -n tox-bootstrapd +%defattr(-, root, root) +%{_bindir}/tox-bootstrapd +%{_unitdir}/tox-bootstrapd.service +%{_sharedstatedir}/tox-bootstrapd +%attr(-,tox-bootstrapd,tox-bootstrapd) %{_sharedstatedir}/tox-bootstrapd/ +%config(noreplace) %{_sysconfdir}/tox-bootstrapd.conf + + +%changelog +* Sat Nov 25 2017 SmokedCheese - 0.0.0-2 +- Rewrite spec file + +* Tue Mar 3 2015 Sergey 'Jin' Bostandzhyan - 0.0.0-1 +- initial package -- cgit v1.2.3