Skip to content

Commit d90dcf6

Browse files
Merge pull request #1182 from antedebaas/rpm-spec-fix
Rpm spec fix
2 parents f3d6f9a + 1d46d4f commit d90dcf6

File tree

1 file changed

+69
-38
lines changed

1 file changed

+69
-38
lines changed

os-build/linux-rpm/sozu.spec

Lines changed: 69 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
# For more documentation, See:
2-
# - https://developer.fedoraproject.org/deployment/rpm/about.html
3-
# - https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd
4-
51
%global sozu_user sozu
62

73
Summary: A lightweight, fast, always-up reverse proxy server.
@@ -19,26 +15,21 @@ BuildRequires: m4
1915
BuildRequires: selinux-policy-devel
2016
BuildRequires: systemd
2117
BuildRequires: protobuf
22-
# BuildRequires: rust
18+
BuildRequires: rust
19+
BuildRequires: cargo
20+
BuildRequires: protobuf-compiler
21+
BuildRequires: gcc
22+
2323
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
2424

2525
%description
2626
%{summary}
2727

2828
%prep
29-
30-
%if "%{_build_mode}" == "RELEASE"
3129
%setup -n %{name}-%{version}
32-
%else
33-
%setup -q
34-
%endif
3530

3631
%build
37-
%if "%{_build_mode}" == "RELEASE"
38-
cargo build --release -p sozu --locked
39-
%else
40-
cargo build -p sozu --locked
41-
%endif
32+
cargo build --release
4233

4334
%install
4435
rm -rf %{buildroot}
@@ -51,57 +42,95 @@ cp os-build/systemd/%{name}@.service %{buildroot}%{_unitdir}/%{name}@.service
5142

5243
#service binary file
5344
mkdir -p %{buildroot}%{_bindir}/
54-
%if "%{_build_mode}" == "RELEASE"
5545
cp -p target/release/%{name} %{buildroot}%{_bindir}/
56-
%else
57-
cp -p target/debug/%{name} %{buildroot}%{_bindir}/
58-
%endif
5946

6047
# server assets
6148
mkdir -p %{buildroot}%{_datadir}/sozu/{pki,html}
6249
cp -p lib/assets/{certificate.pem,key.pem,certificate_chain.pem} %{buildroot}%{_datadir}/%{name}/pki
63-
cp -p lib/assets/{404.html,503.html} %{buildroot}%{_datadir}/%{name}/html
50+
cp -p command/assets/custom_404.html %{buildroot}%{_datadir}/%{name}/html/404.html
51+
cp -p command/assets/custom_503.html %{buildroot}%{_datadir}/%{name}/html/503.html
6452

6553
#service running directory
66-
mkdir -p %{buildroot}%{_localstatedir}/var/lib/%{name}
67-
touch %{buildroot}%{_localstatedir}/var/lib/%{name}/state.json
54+
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}
55+
touch %{buildroot}%{_sharedstatedir}/%{name}/state.json
6856

6957
# selinux
7058
cd os-build/selinux
7159
make -f /usr/share/selinux/devel/Makefile
7260
bzip2 -z %{name}.pp
73-
7461
mkdir -p %{buildroot}%{_datadir}/selinux/packages
7562
cp -p %{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages
63+
cd ../../
64+
65+
# runtime directory
66+
mkdir -p %{buildroot}%{_rundir}/%{name}
67+
68+
# Install license and documentation
69+
install -d %{buildroot}%{_licensedir}/%{name}
70+
install -m 644 LICENSE %{buildroot}%{_licensedir}/%{name}/LICENSE
71+
72+
install -d %{buildroot}%{_docdir}/%{name}
73+
install -m 644 README.md %{buildroot}%{_docdir}/%{name}/
74+
install -m 644 CHANGELOG.md %{buildroot}%{_docdir}/%{name}/
75+
install -m 644 CONTRIBUTING.md %{buildroot}%{_docdir}/%{name}/
76+
install -m 644 RELEASE.md %{buildroot}%{_docdir}/%{name}/
77+
install -d %{buildroot}%{_docdir}/%{name}/doc
78+
install -m 644 doc/architecture.md %{buildroot}%{_docdir}/%{name}/doc
79+
install -m 644 doc/configure.md %{buildroot}%{_docdir}/%{name}/doc
80+
install -m 644 doc/configure_cli.md %{buildroot}%{_docdir}/%{name}/doc
81+
install -m 644 doc/debugging_strategies.md %{buildroot}%{_docdir}/%{name}/doc
82+
install -m 644 doc/design_motivation.md %{buildroot}%{_docdir}/%{name}/doc
83+
install -m 644 doc/getting_started.md %{buildroot}%{_docdir}/%{name}/doc
84+
install -m 644 doc/how_to_use.md %{buildroot}%{_docdir}/%{name}/doc
85+
install -m 644 doc/lexicon.md %{buildroot}%{_docdir}/%{name}/doc
86+
install -m 644 doc/lifetime_of_a_session.md %{buildroot}%{_docdir}/%{name}/doc
87+
install -m 644 doc/recipes.md %{buildroot}%{_docdir}/%{name}/doc
88+
install -m 644 doc/README.md %{buildroot}%{_docdir}/%{name}/doc
89+
install -m 644 doc/tools_libraries.md %{buildroot}%{_docdir}/%{name}/doc
90+
install -m 644 doc/why_you_should_use.md %{buildroot}%{_docdir}/%{name}/doc
7691

7792
%clean
7893
rm -rf %{buildroot}
7994

8095
%post
8196
semodule -i %{_datadir}/selinux/packages/%{name}.pp.bz2
82-
83-
# selinux initial set file types
84-
chcon -t %{name}_unit_file_t %{_localstatedir}/run/%{name}/%{name}.service
85-
chcon -t %{name}_unit_file_t %{_localstatedir}/run/%{name}/%{name}@.service
97+
chcon -t %{name}_unit_file_t %{_unitdir}/%{name}.service
98+
chcon -t %{name}_unit_file_t %{_unitdir}/%{name}@.service
8699
chcon -t %{name}_exec_t %{_bindir}/%{name}*
87-
chcon -R -t %{name}_var_run_t %{_localstatedir}/var/lib/%{name}/
88-
89-
%postun
90-
semodule -r %{name}
100+
chcon -R -t %{name}_var_run_t %{_sharedstatedir}/%{name}/
101+
chcon -R -t %{name}_var_run_t %{_rundir}/%{name}/
91102

92103
%files
93104
%defattr(-,root,root,-)
94105
%config(noreplace) %{_sysconfdir}/%{name}/config.toml
95106
%{_bindir}/%{name}
96-
%{_localstatedir}/run/%{name}
97-
%{_localstatedir}/var/lib/%{name}
107+
%{_rundir}/%{name}
108+
%{_sharedstatedir}/%{name}
98109
%{_datadir}/%{name}
99110
%{_datadir}/selinux/packages/%{name}.pp.bz2
100111
%{_unitdir}/%{name}.service
101112
%{_unitdir}/%{name}@.service
102113

103-
%doc CHANGELOG.md CONTRIBUTING.md README.md RELEASE.md doc/architecture.md doc/configure.md doc/configure_cli.md doc/debugging_strategies.md doc/design_motivation.md doc/getting_started.md doc/how_to_use.md doc/lexicon.md doc/lifetime_of_a_session.md doc/managing_workers.md doc/recipes.md doc/tools_libraries.md doc/why_you_should_use.md
104-
%license LICENSE
114+
%doc
115+
%doc %{_docdir}/%{name}/README.md
116+
%doc %{_docdir}/%{name}/CHANGELOG.md
117+
%doc %{_docdir}/%{name}/CONTRIBUTING.md
118+
%doc %{_docdir}/%{name}/RELEASE.md
119+
%doc %{_docdir}/%{name}/doc/architecture.md
120+
%doc %{_docdir}/%{name}/doc/configure.md
121+
%doc %{_docdir}/%{name}/doc/configure_cli.md
122+
%doc %{_docdir}/%{name}/doc/debugging_strategies.md
123+
%doc %{_docdir}/%{name}/doc/design_motivation.md
124+
%doc %{_docdir}/%{name}/doc/getting_started.md
125+
%doc %{_docdir}/%{name}/doc/how_to_use.md
126+
%doc %{_docdir}/%{name}/doc/lexicon.md
127+
%doc %{_docdir}/%{name}/doc/lifetime_of_a_session.md
128+
%doc %{_docdir}/%{name}/doc/recipes.md
129+
%doc %{_docdir}/%{name}/doc/README.md
130+
%doc %{_docdir}/%{name}/doc/tools_libraries.md
131+
%doc %{_docdir}/%{name}/doc/why_you_should_use.md
132+
133+
%license %{_licensedir}/%{name}/LICENSE
105134

106135
%changelog
107136
* Wed Oct 29 2025 Florentin Dubois <florentin.dubois@clever-cloud.com>
@@ -114,11 +143,11 @@ semodule -r %{name}
114143
- release 1.0.4
115144
* Wed Jul 17 2024 Emmanuel Bosquet <bjokac@gmail.com>
116145
- release 1.0.3
117-
* Wed may 29 2024 Florentin Dubois <florentin.dubois@clever-cloud.com>
146+
* Wed May 29 2024 Florentin Dubois <florentin.dubois@clever-cloud.com>
118147
- release 1.0.1
119148
* Tue Apr 16 2024 Florentin Dubois <florentin.dubois@clever-cloud.com>
120149
- release 1.0.0
121-
* Fri Apr 5 2024 Florentin Dubois <florentin.dubois@clever-cloud.com>
150+
* Fri Apr 05 2024 Florentin Dubois <florentin.dubois@clever-cloud.com>
122151
- release 1.0.0-rc.2
123152
* Tue Mar 19 2024 Florentin Dubois <florentin.dubois@clever-cloud.com>
124153
- release 1.0.0-rc.1
@@ -131,4 +160,6 @@ semodule -r %{name}
131160
* Mon Jan 23 2023 Florentin Dubois <florentin.dubois@clever-cloud.com>
132161
- Update packaging
133162
* Sat Jul 31 2021 Igal Alkon <igal.alkon@versatile.ai>
134-
* Mon May 15 2017 Philip Woolford <woolford.philip@gmail.com> 0.1-1
163+
- 0.13.0-1
164+
* Mon May 15 2017 Philip Woolford <woolford.philip@gmail.com>
165+
- 0.1-1

0 commit comments

Comments
 (0)