Skip to content

Commit 5ef39ae

Browse files
author
Andrei Zavada
committed
improvements in rpm packaging
* add gcc-c++ to BuildRequires; * embrace systemd.
1 parent 6b6c380 commit 5ef39ae

File tree

6 files changed

+62
-182
lines changed

6 files changed

+62
-182
lines changed

rel/files/riak

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ function delete_pid_file {
2828
rm -f $PID_DIR/riak.pid
2929
}
3030

31+
# prevents centos8 su from contacting pam and printing the "Last logged in" message
32+
if [ "`cat /etc/redhat-release 2>&1`" = "CentOS Stream release 8" ]; then
33+
SU="su --session-command"
34+
else
35+
SU=su
36+
fi
37+
3138
function maybe_su {
3239
if [[ $EUID -ne 0 ]]; then
3340
NODETOOL_NODE_PREFIX=${NODETOOL_NODE_PREFIX} PIPE_DIR=${PIPE_DIR} $*
@@ -39,7 +46,7 @@ function maybe_su {
3946
NODETOOL_NODE_PREFIX=${NODETOOL_NODE_PREFIX} PIPE_DIR=$PIPE_DIR $*
4047
EOF
4148
chmod +x $f
42-
su - riak $f
49+
$SU - riak $f
4350
fi
4451
}
4552

rel/pkg/deb/vars.config

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,6 @@
4747
{cuttlefish, "on"}.
4848
{cuttlefish_conf, "riak.conf"}.
4949

50-
%%
51-
%% yokozuna
52-
%%
53-
{yz_solr_port, 8093}.
54-
{yz_solr_jmx_port, 8985}.
55-
5650
%% lager
5751
{console_log_default, file}.
5852

rel/pkg/rpm/init.script

Lines changed: 0 additions & 149 deletions
This file was deleted.

rel/pkg/rpm/riak.service

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[Unit]
2+
Description=Riak KV Database
3+
4+
[Service]
5+
User=riak
6+
ExecStart=/usr/sbin/riak start
7+
ExecStop=/usr/sbin/riak stop
8+
Type=forking
9+
PIDFile=/run/riak/riak.pid
10+
EnvironmentFile=-/etc/default/riak
11+
RuntimeDirectory=riak
12+
13+
[Install]
14+
WantedBy=multi-user.target

rel/pkg/rpm/specfile

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,22 @@
2121
Name: riak
2222
Version: %{_version}
2323
Release: %{_release}%{?dist}
24-
License: "Apacke 2.0"
24+
License: "Apache 2.0"
2525
Group: Development/Libraries
2626
Source: %{_tarname}
2727
URL: "https://riak.com"
2828
Vendor: "Riak"
2929
Packager: "Riak Package Maint" <"[email protected]">
3030
BuildRoot: %{_tmppath}/%{name}-%{_revision}-%{release}-root
3131
Summary: "Riak is a distributed data store"
32-
Obsoletes: riak
32+
BuildRequires: systemd systemd-rpm-macros gcc-c++ pam-devel
33+
Requires(post): systemd
34+
Requires(preun): systemd
35+
Requires(postun): systemd
3336

3437
%description
3538
"Riak is a distributed data store"
3639

37-
%define init_script %{_sysconfdir}/init.d/riak
3840
%define debug_package %{nil}
3941
%define __prelink_undo_cmd /bin/cat prelink library
4042

@@ -60,26 +62,35 @@ cat > rpm.vars.config <<EOF
6062
{platform_log_dir, "%{platform_log_dir}"}.
6163
EOF
6264

65+
%define _build_id_links none
66+
6367
%build
6468
make rel-rpm
6569

6670
%install
67-
%define relpath %{_builddir}/%{buildsubdir}/_build/rpm/rel/riak
71+
%define relpath %{_builddir}/%{buildsubdir}/rel/riak
6872
%define buildroot_lib %{buildroot}%{_libdir}/riak
6973
%define buildroot_etc %{buildroot}%{_sysconfdir}/riak
7074
%define buildroot_bin %{buildroot_lib}/bin
71-
72-
mkdir -p %{buildroot_etc}
73-
mkdir -p %{buildroot_lib}
74-
mkdir -p %{buildroot_bin}
75-
mkdir -p %{buildroot}%{_sbindir}
76-
mkdir -p %{buildroot}%{_localstatedir}/lib/riak
77-
mkdir -p %{buildroot}%{_localstatedir}/log/riak
75+
%define buildroot_sbin %{buildroot}%{_sbindir}
76+
%define buildroot_unit %{buildroot}%{_unitdir}
77+
%define buildroot_run %{buildroot}%{_rundir}
78+
79+
mkdir -p \
80+
%{buildroot_etc} \
81+
%{buildroot_lib} \
82+
%{buildroot_bin} \
83+
%{buildroot_sbin} \
84+
%{buildroot_unit} \
85+
%{buildroot_run}/riak \
86+
%{buildroot}%{_localstatedir}/lib/riak \
87+
%{buildroot}%{_localstatedir}/log/riak
7888

7989
cp -R %{relpath}/lib %{buildroot_lib}
8090
cp -R %{relpath}/erts-* %{buildroot_lib}
8191
cp -R %{relpath}/releases %{buildroot_lib}
8292
cp -R %{relpath}/share %{buildroot_lib}
93+
cp rel/pkg/rpm/%{name}.service %{buildroot_unit}
8394

8495
if [ -d %{relpath}/bin ]; then \
8596
cd %{relpath}/bin
@@ -90,14 +101,15 @@ fi
90101
cp %{relpath}/usr/sbin/riak %{buildroot}%{_sbindir}
91102
cp %{relpath}/etc/riak.conf %{buildroot_etc}
92103
cp %{relpath}/etc/advanced.config %{buildroot_etc}
104+
for f in riak-admin riak-repl riak-debug; do
105+
cp %{relpath}/bin/$f %{buildroot}%{_sbindir}
106+
done
107+
cp %{relpath}/usr/bin/riak %{buildroot}%{_sbindir}
93108

94109
mkdir -p %{buildroot}%{_localstatedir}/lib/riak
95110
cp -R %{relpath}/data/* \
96111
%{buildroot}%{_localstatedir}/lib/riak
97112

98-
mkdir -p %{buildroot}%{_sysconfdir}/init.d
99-
install -m755 %{relpath}/etc/init.d/init.script %{buildroot}%{_sysconfdir}/init.d/riak
100-
101113
# Needed to work around check-rpaths which seems to be hardcoded into recent
102114
# RPM releases
103115
export QA_RPATHS=3
@@ -128,26 +140,32 @@ if [ `which selinuxenabled > /dev/null 2>&1` ] ; then
128140
selinuxenabled && find %{_localstatedir}/lib/riak -name "*.so" -exec chcon -t textrel_shlib_t {} \;
129141
fi
130142

143+
%systemd_post %{name}.service
144+
131145
%preun
132-
# Pre-uninstall script
146+
%systemd_preun %{name}.service
133147

134148
# Only on uninstall, not upgrades
135149
if [ "$1" = 0 ] ; then
136150
/sbin/service riak stop > /dev/null 2>&1
137151
fi
138152
exit 0
139153

154+
%postun
155+
%systemd_postun %{name}.service
140156

141157
# Man pages are optional and might be missing, read from file
142158
%files
159+
%defattr(-,root,root)
160+
%{_libdir}/*
161+
%{_unitdir}/%{name}.service
162+
%{_sbindir}/*
163+
143164
%defattr(-,riak,riak)
165+
%{_sysconfdir}/riak
144166
%{_localstatedir}/lib/riak
145167
%{_localstatedir}/log/riak
146-
%{_libdir}/*
147-
%defattr(-,root,root)
148-
%{_sysconfdir}/init.d/riak
149-
%dir %{_sysconfdir}/riak
150-
/usr/sbin/*
168+
151169
%config(noreplace) %{_sysconfdir}/riak/*
152170

153171
%clean

rel/pkg/rpm/vars.config

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*-
22
%% ex: ft=erlang ts=4 sw=4 et
33

4+
{rel_vsn, "3.0.9.1"}.
5+
46
%% Platform-specific installation paths
57
{platform_bin_dir, "/usr/lib64/riak/bin"}.
68
{platform_data_dir, "/var/lib/riak"}.
@@ -45,12 +47,6 @@
4547
{cuttlefish, "on"}.
4648
{cuttlefish_conf, "riak.conf"}.
4749

48-
%%
49-
%% yokozuna
50-
%%
51-
{yz_solr_port, 8093}.
52-
{yz_solr_jmx_port, 8985}.
53-
5450
%% lager
5551
{console_log_default, file}.
5652

0 commit comments

Comments
 (0)