]> git.pld-linux.org Git - packages/lizardfs.git/blob - lizardfs.spec
- fix building with spdlog 1.x
[packages/lizardfs.git] / lizardfs.spec
1 # TODO:
2 # - systemd service files to metalogger, cgiserver packages
3 # - Fix cgiserver
4 # - fix judy lib usage on x32 arch
5
6 Summary:        Open Source Distributed File System
7 Summary(pl.UTF-8):      Rozporoszony system plików Open Source
8 Name:           lizardfs
9 Version:        3.12.0
10 Release:        1
11 License:        GPL v3
12 Group:          Applications
13 Source0:        https://github.com/lizardfs/lizardfs/archive/v%{version}/%{name}-%{version}.tar.gz
14 # Source0-md5:  e584aa9534f900ca04d40a4772e01302
15 Source1:        %{name}-master.service
16 Source2:        %{name}-chunkserver.service
17 Patch0:         system-spdlog.patch
18 Patch1:         x32.patch
19 Patch2:         0001-Add-missing-header.patch
20 Patch3:         spdlog-1.patch
21 URL:            https://github.com/lizardfs/lizardfs
22 BuildRequires:  /usr/bin/a2x
23 BuildRequires:  asciidoc
24 BuildRequires:  boost-devel
25 BuildRequires:  cmake >= 3.4.0
26 BuildRequires:  crcutil-devel >= 1.0
27 BuildRequires:  db5.3-devel
28 BuildRequires:  docbook-dtd45-xml
29 %ifarch x32
30 BuildConflicts: judy-devel
31 %else
32 BuildRequires:  judy-devel
33 %endif
34 BuildRequires:  libfuse-devel
35 BuildRequires:  pkgconfig
36 BuildRequires:  rpmbuild(macros) >= 1.647
37 BuildRequires:  spdlog-devel >= 1.12-2
38 BuildRequires:  zlib-devel
39 Requires(post,preun,postun):    systemd-units >= 38
40 Requires(postun):       /usr/sbin/groupdel
41 Requires(postun):       /usr/sbin/userdel
42 Requires(pre):  /bin/id
43 Requires(pre):  /usr/bin/getgid
44 Requires(pre):  /usr/sbin/groupadd
45 Requires(pre):  /usr/sbin/useradd
46 Requires:       systemd-units >= 0.38
47 Provides:       group(mfs)
48 Provides:       user(mfs)
49 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50
51 %description
52 LizardFS is a highly reliable, scalable and efficient distributed file
53 system. It spreads data over a number of physical servers, making it
54 visible to an end user as a single file system.
55
56 %description -l pl.UTF-8
57 LizardFS is jest niezawodnym, skalowalnym i efektywnym rozproszonym
58 systemem plików. Rozkłada dane na rózne fizyczne serwery, dająć
59 użytkownikowi końcowemu widok pojedynczego systemu plików.
60
61 %package master
62 Summary:        Master/shadow metadata server
63 Group:          Applications
64 Requires:       %{name} = %{version}-%{release}
65
66 %description master
67 Master/shadow metadata server
68
69 %package chunkserver
70 Summary:        Chunk server
71 Group:          Applications
72 Requires:       %{name} = %{version}-%{release}
73
74 %description chunkserver
75 Chunk server
76
77 %package metalogger
78 Summary:        Metalogger
79 Group:          Applications
80 Requires:       %{name} = %{version}-%{release}
81
82 %description metalogger
83 Metalogger
84
85 %package cgiserver
86 Summary:        CGI server
87 Group:          Applications
88 Requires:       %{name} = %{version}-%{release}
89
90 %description cgiserver
91 CGI server
92
93 %prep
94 %setup -q
95 %patch0 -p1
96 %patch1 -p1
97 %patch2 -p1
98 %patch3 -p1
99
100 %{__rm} -r external/crcutil-1.0
101
102
103 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python2(\s|$),#!%{__python}\1,' \
104       src/cgi/chart.cgi.in \
105       src/cgi/lizardfs-cgiserver.py.in \
106       src/cgi/mfs.cgi.in \
107       src/cgi/cgiserv.py.in
108
109 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\1,' \
110       src/master/mfsrestoremaster.in \
111       src/tools/mfstools.sh
112
113 %build
114 install -d build
115 cd build
116 %cmake ../   \
117           -DBUILD_SHARED_LIBS=FALSE \
118           -DCMAKE_INSTALL_PREFIX:PATH=/  \
119           -DENABLE_DEBIAN_PATHS=TRUE
120 %{__make}
121
122 %install
123 rm -rf $RPM_BUILD_ROOT
124 %{__make} -C build install \
125         DESTDIR=$RPM_BUILD_ROOT
126
127 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{systemdunitdir}}
128 install -d $RPM_BUILD_ROOT/var/lib/%{name}
129 cp -p $RPM_BUILD_ROOT/var/lib/mfs/metadata.mfs.empty $RPM_BUILD_ROOT%{_sysconfdir}/mfs/
130 install -d $RPM_BUILD_ROOT/var/lib/%{name}/master
131 install -d $RPM_BUILD_ROOT/var/lib/%{name}/chunkserver
132 mv $RPM_BUILD_ROOT/var/lib/mfs/metadata.mfs.empty $RPM_BUILD_ROOT/var/lib/%{name}/master/metadata.mfs
133
134 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}-master.service
135 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}-chunkserver.service
136
137 %clean
138 rm -rf $RPM_BUILD_ROOT
139
140 %pre
141 # NOTE: Using same user/group (mfs) as for MooseFS from mfs.spec
142 %groupadd -g 282 mfs
143 %useradd -u 282 -d /var/lib/%{name} -g mfs -c "MooseFS/LizardFS Daemon" mfs
144
145 %postun
146 if [ "$1" = "0" ]; then
147         %userremove mfs
148         %groupremove mfs
149 fi
150
151 %post master
152 %systemd_post %{name}-master.service
153
154 %preun master
155 %systemd_preun %{name}-master.service
156
157 %postun master
158 %systemd_reload
159
160 %post chunkserver
161 %systemd_post %{name}-chunkserver.service
162
163 %preun chunkserver
164 %systemd_preun %{name}-chunkserver.service
165
166 %postun chunkserver
167 %systemd_reload
168
169 %files
170 %defattr(644,root,root,755)
171 %doc doc COPYING README.md UPGRADE NEWS INSTALL
172 %dir %{_sysconfdir}/mfs
173 %dir %attr(750,root,root) /var/lib/%{name}
174 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/globaliolimits.cfg.dist
175 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/iolimits.cfg.dist
176 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/mfsexports.cfg.dist
177 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/mfsgoals.cfg.dist
178 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/mfsmount.cfg.dist
179 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/mfstopology.cfg.dist
180 %attr(755,root,root) %{_bindir}/lizardfs-admin
181 %attr(755,root,root) %{_bindir}/lizardfs-probe
182 %attr(755,root,root) %{_bindir}/lizardfs
183 %attr(755,root,root) %{_bindir}/mfsappendchunks
184 %attr(755,root,root) %{_bindir}/mfscheckfile
185 %attr(755,root,root) %{_bindir}/mfsdeleattr
186 %attr(755,root,root) %{_bindir}/mfsdirinfo
187 %attr(755,root,root) %{_bindir}/mfsfileinfo
188 %attr(755,root,root) %{_bindir}/mfsfilerepair
189 %attr(755,root,root) %{_bindir}/mfsgeteattr
190 %attr(755,root,root) %{_bindir}/mfsgetgoal
191 %attr(755,root,root) %{_bindir}/mfsgettrashtime
192 %attr(755,root,root) %{_bindir}/mfsmakesnapshot
193 %attr(755,root,root) %{_bindir}/mfsmount
194 %attr(755,root,root) %{_bindir}/mfsrepquota
195 %attr(755,root,root) %{_bindir}/mfsrgetgoal
196 %attr(755,root,root) %{_bindir}/mfsrgettrashtime
197 %attr(755,root,root) %{_bindir}/mfsrsetgoal
198 %attr(755,root,root) %{_bindir}/mfsrsettrashtime
199 %attr(755,root,root) %{_bindir}/mfsseteattr
200 %attr(755,root,root) %{_bindir}/mfssetgoal
201 %attr(755,root,root) %{_bindir}/mfssetquota
202 %attr(755,root,root) %{_bindir}/mfssettrashtime
203 %attr(755,root,root) %{_bindir}/mfstools.sh
204 %attr(755,root,root) %{_sbindir}/mfsmetadump
205 %attr(755,root,root) %{_sbindir}/mfsmetarestore
206 %attr(755,root,root) %{_sbindir}/mfsrestoremaster
207 %{_mandir}/man1/mfs*.1*
208 %{_mandir}/man1/lizardfs-*.1*
209 %{_mandir}/man1/lizardfs.1*
210 %{_mandir}/man5/globaliolimits.cfg.5*
211 %{_mandir}/man5/iolimits.cfg.5*
212 %{_mandir}/man5/mfs*.cfg.5*
213 %{_mandir}/man7/lizardfs.7*
214 %{_mandir}/man7/mfs.7
215 %{_mandir}/man7/moosefs.7
216 %{_mandir}/man8/lizardfs-admin.8*
217 %{_mandir}/man8/lizardfs-cgiserver.8*
218 %{_mandir}/man8/lizardfs-probe.8
219 %{_mandir}/man8/mfs*.8*
220 /etc/bash_completion.d/lizardfs
221
222
223 %files master
224 %defattr(644,root,root,755)
225 %attr(755,root,root) %{_sbindir}/mfsmaster
226 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/mfsmaster.cfg.dist
227 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/metadata.mfs.empty
228 %dir %attr(750,mfs,mfs) /var/lib/%{name}/master
229 %config(noreplace) %verify(not md5 mtime size) /var/lib/%{name}/master/metadata.mfs
230 %{systemdunitdir}/%{name}-master.service
231
232 %files chunkserver
233 %defattr(644,root,root,755)
234 %attr(755,root,root) %{_sbindir}/mfschunkserver
235 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/mfschunkserver.cfg.dist
236 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/mfshdd.cfg.dist
237 %dir %attr(750,mfs,mfs) /var/lib/%{name}/chunkserver
238 %{systemdunitdir}/%{name}-chunkserver.service
239
240 %files metalogger
241 %defattr(644,root,root,755)
242 %attr(755,root,root) %{_sbindir}/mfsmetalogger
243 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mfs/mfsmetalogger.cfg.dist
244 # %dir %attr(750,mfs,mfs) /var/lib/%{name}/metalogger
245
246 %files cgiserver
247 %defattr(644,root,root,755)
248 %attr(755,root,root) %{_sbindir}/lizardfs-cgiserver
249 %attr(755,root,root) %{_sbindir}/mfscgiserv
250 %{_datadir}/mfscgi/
This page took 0.120149 seconds and 3 git commands to generate.