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