]> git.pld-linux.org Git - packages/mongodb.git/blame_incremental - mongodb.spec
- fix building with boost 1.73
[packages/mongodb.git] / mongodb.spec
... / ...
CommitLineData
1# TODO:
2# - add support for sharding server (init scripts, systemd units, sample config)
3# - \> escape not liked?
4# Sep 11 00:20:18 blodnatt systemd[1]: [/lib/systemd/system/mongod@.service:8] Invalid escape sequences in command line: "/bin/sh -c "if grep -q '^[ \t]*fork\>' /etc/mongod/%i.conf ; then echo there must be no 'fork' in /etc/mongod/%i.conf >&2 ; exit 1 ; fi""
5# TODO
6#
7Summary: MongoDB client shell and tools
8Summary(pl.UTF-8): Powłoka kliencka i narzędzia dla bazy danych MongoDB
9Name: mongodb
10Version: 2.2.4
11Release: 12
12License: AGPL v3
13Group: Applications/Databases
14Source0: http://downloads.mongodb.org/src/%{name}-src-r%{version}.tar.gz
15# Source0-md5: 033354c543c053f5d539b573ac8c28b0
16Source1: %{name}.logrotate
17Source2: %{name}.init
18Source3: mongod-default.conf
19Source4: mongod@.service
20Patch0: %{name}-cflags.patch
21Patch1: %{name}-system-libs.patch
22Patch2: boost-1.50.patch
23Patch3: %{name}-install.patch
24Patch4: %{name}-shared.patch
25Patch5: gcc4.patch
26Patch6: no-Werror.patch
27Patch7: gcc6.patch
28Patch8: %{name}-pcap.patch
29Patch9: boost-1.73.patch
30URL: http://www.mongodb.org/
31BuildRequires: boost-devel >= 1.50
32BuildRequires: libpcap-devel
33BuildRequires: libstdc++-devel >= 6:4.0
34%ifarch %{x8664}
35BuildRequires: libtcmalloc-devel
36%endif
37BuildRequires: pcre-cxx-devel
38BuildRequires: pcre-devel >= 8.30
39BuildRequires: readline-devel
40BuildRequires: rpmbuild(macros) >= 1.644
41BuildRequires: scons >= 1.2
42BuildRequires: sed >= 4.0
43BuildRequires: snappy-devel
44BuildRequires: v8-devel
45Requires: %{name}-libs = %{version}-%{release}
46# matching v8-devel
47ExclusiveArch: %{ix86} %{x8664} arm mips
48BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49
50%description
51Mongo (from "huMONGOus") is a schema-free document-oriented database.
52It features dynamic profileable queries, full indexing, replication
53and fail-over support, efficient storage of large binary data objects,
54and auto-sharding.
55
56This package provides the mongo shell, import/export tools, and other
57client utilities.
58
59%description -l pl.UTF-8
60Mongo (od "huMONGOus") to baza danych zorientowana na dokumenty
61pozbawione schematu. Obsługuje dynamicznie profilowane zapytania,
62pełne indeksowanie, replikację i fail-over, wydajne składowanie dużych
63obiektów danych binarnych oraz automatyczne dzielenie.
64
65Ten pakiet zawiera powłokę mongo, narzędzia do eksportu/importu danych
66oraz inne narzędzia klienckie.
67
68%package libs
69Summary: MongoDB client library
70Summary(pl.UTF-8): Biblioteka kliencka MongoDB
71Group: Libraries
72
73%description libs
74Mongo (from "huMONGOus") is a schema-free document-oriented database.
75
76This package provides the mongo client library.
77
78%description libs -l pl.UTF-8
79Mongo (od "huMONGOus") to baza danych zorientowana na dokumenty
80pozbawione schematu.
81
82Ten pakiet zawiera bibliotekę kliencką mongo.
83
84%package devel
85Summary: Header files for MongoDB client library
86Summary(pl.UTF-8): Pliki nagłówkowe biblioteki klienckiej MongoDB
87Group: Development/Libraries
88Requires: %{name}-libs = %{version}-%{release}
89
90%description devel
91Mongo (from "huMONGOus") is a schema-free document-oriented database.
92
93This package provides the header files needed to develop MongoDB
94client software.
95
96%description devel -l pl.UTF-8
97Mongo (od "huMONGOus") to baza danych zorientowana na dokumenty
98pozbawione schematu.
99
100Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia
101oprogramowania klienckiego dla MongoDB.
102
103%package static
104Summary: Static MongoDB client library
105Summary(pl.UTF-8): Statyczna biblioteka kliencka MongoDB
106Group: Development/Libraries
107Requires: %{name}-devel = %{version}-%{release}
108
109%description static
110Mongo (from "huMONGOus") is a schema-free document-oriented database.
111
112This package provides the MongoDB static client library.
113
114%description static -l pl.UTF-8
115Mongo (od "huMONGOus") to baza danych zorientowana na dokumenty
116pozbawione schematu.
117
118Ten pakiet zawiera statyczną bibliotekę kliencką MongoDB.
119
120%package server
121Summary: MongoDB server, sharding server, and support scripts
122Summary(pl.UTF-8): Serwer MongoDB, serwer dzielący oraz skrypty pomocnicze
123Group: Applications/Databases
124Requires: %{name} = %{version}-%{release}
125Requires: systemd-units >= 38
126Requires(post,preun): /sbin/chkconfig
127Requires(postun): /usr/sbin/groupdel
128Requires(postun): /usr/sbin/userdel
129Requires(pre): /bin/id
130Requires(pre): /usr/bin/getgid
131Requires(pre): /usr/sbin/groupadd
132Requires(pre): /usr/sbin/useradd
133Requires: rc-scripts
134Provides: group(mongod)
135Provides: user(mongod)
136Conflicts: logrotate < 3.8.0
137
138%description server
139Mongo (from "huMONGOus") is a schema-free document-oriented database.
140
141This package provides the mongo server software, mongo sharding server
142software, default configuration files, and init.d scripts.
143
144%description server -l pl.UTF-8
145Mongo (od "huMONGOus") to baza danych zorientowana na dokumenty
146pozbawione schematu.
147
148Ten pakiet zawiera serwer mongo, serwer dzielący, pliki domyślnej
149konfiguracji oraz skrypty init.d.
150
151%prep
152%setup -q -n %{name}-src-r%{version}
153%patch0 -p1
154%patch1 -p1
155%patch2 -p1
156%patch3 -p1
157%patch4 -p1
158%patch5 -p1
159%patch6 -p1
160%patch7 -p1
161%patch8 -p1
162%patch9 -p1
163
164# Fix permissions
165find -type f -executable | xargs chmod a-x
166
167# force system pcre/js/snappy
168%{__rm} -r src/third_party/{js-1.7,pcre-8.30,snappy,boost}
169
170%build
171%scons \
172 CPPFLAGS="%{rpmcppflags} -DXP_UNIX" \
173 --use-system-all=yes \
174 --extralib=pcrecpp,pcre,snappy \
175 --prefix=$RPM_BUILD_ROOT%{_prefix} \
176 --full=all \
177 --sharedclient \
178 --usev8 \
179 --cxx=%{__cxx}
180
181%install
182rm -rf $RPM_BUILD_ROOT
183install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_mandir}/man1} \
184 $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mongod} \
185 $RPM_BUILD_ROOT%{_var}/{lib,log{,/archive}}/mongodb \
186 $RPM_BUILD_ROOT%{systemdunitdir}
187
188# XXX: scons is so great, recompiles everything here!
189%scons install \
190 CPPFLAGS="%{rpmcppflags} -DXP_UNIX" \
191 --use-system-all=yes \
192 --extralib=pcrecpp,pcre,snappy \
193 --prefix=$RPM_BUILD_ROOT%{_prefix} \
194 --full=all \
195 --sharedclient \
196 --usev8 \
197 --cxx=%{__cxx}
198
199cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/mongod
200install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mongod
201cp -p rpm/mongod.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/mongod
202cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/mongod/default.conf
203cp -p debian/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
204
205# mask out the LSB service
206ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/mongod.service
207cp -p %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/mongod@.service
208
209touch $RPM_BUILD_ROOT%{_var}/log/mongodb/mongod.log
210
211# for some reason these are installed twice, remove unwanted copies
212for f in $RPM_BUILD_ROOT%{_includedir}/mongo/*; do
213 rm -r "$RPM_BUILD_ROOT%{_includedir}/$(basename $f)" || :
214done
215
216%ifarch %{x8664}
217chmod -R a+rX $RPM_BUILD_ROOT/usr/lib
218%{__rm} -r $RPM_BUILD_ROOT/usr/lib
219%endif
220
221%clean
222rm -rf $RPM_BUILD_ROOT
223
224%post libs -p /sbin/ldconfig
225%postun libs -p /sbin/ldconfig
226
227%pre server
228%groupadd -g 258 -r mongod
229%useradd -u 258 -r -g mongod -d %{_var}/lib/mongodb -s /bin/false -c "MongoDB Database Server" mongod
230
231%post server
232/sbin/chkconfig --add mongod
233%service mongod restart
234# our systemd macros cannot handle template (multi-instance) units yet
235export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog
236/bin/systemd_booted && /bin/systemctl --quiet daemon-reload || :
237if [ $1 -eq 1 ]; then
238 /bin/systemctl --quiet enable mongod@.service || :
239 /bin/systemd_booted && echo 'Run "/bin/systemctl start mongod@default.service" to start mongod.' || :
240else
241 /bin/systemd_booted && /bin/systemctl --quiet try-restart mongod@default.service || :
242fi
243
244%preun server
245if [ "$1" = "0" ]; then
246 %service -q mongod stop
247 /sbin/chkconfig --del mongod
248 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog
249 /bin/systemd_booted && /bin/systemctl --quiet stop mongod@default.service || :
250 /bin/systemctl --quiet disable mongod@.service || :
251fi
252
253%postun server
254if [ "$1" = "0" ]; then
255 %userremove mongod
256 %groupremove mongod
257fi
258%systemd_reload
259
260%triggerpostun server -- %{name}-server < 2.0.6-3
261if [ -f %{_sysconfdir}/mongod.conf.rpmsave ] ; then
262 cp -f %{_sysconfdir}/mongod/default.conf{,.rpmnew} || :
263 echo "Moving %{_sysconfdir}/mongod.conf to %{_sysconfdir}/mongod/default.conf"
264 mv -f %{_sysconfdir}/mongod.conf.rpmsave %{_sysconfdir}/mongod/default.conf
265 %service mongod restart
266fi
267
268%files
269%defattr(644,root,root,755)
270%doc README GNU-AGPL-3.0.txt
271%attr(755,root,root) %{_bindir}/bsondump
272%attr(755,root,root) %{_bindir}/mongo
273%attr(755,root,root) %{_bindir}/mongodump
274%attr(755,root,root) %{_bindir}/mongoexport
275%attr(755,root,root) %{_bindir}/mongofiles
276%attr(755,root,root) %{_bindir}/mongoimport
277%attr(755,root,root) %{_bindir}/mongooplog
278%attr(755,root,root) %{_bindir}/mongoperf
279%attr(755,root,root) %{_bindir}/mongorestore
280%attr(755,root,root) %{_bindir}/mongosniff
281%attr(755,root,root) %{_bindir}/mongostat
282%attr(755,root,root) %{_bindir}/mongotop
283%{_mandir}/man1/bsondump.1*
284%{_mandir}/man1/mongo.1*
285%{_mandir}/man1/mongodump.1*
286%{_mandir}/man1/mongoexport.1*
287%{_mandir}/man1/mongofiles.1*
288%{_mandir}/man1/mongoimport.1*
289%{_mandir}/man1/mongosniff.1*
290%{_mandir}/man1/mongostat.1*
291%{_mandir}/man1/mongorestore.1*
292
293%files libs
294%defattr(644,root,root,755)
295%attr(755,root,root) %{_libdir}/libmongoclient.so
296
297%files devel
298%defattr(644,root,root,755)
299%{_includedir}/mongo
300
301%files static
302%defattr(644,root,root,755)
303%{_libdir}/libmongoclient.a
304
305%files server
306%defattr(644,root,root,755)
307%dir %{_sysconfdir}/mongod
308%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mongod/default.conf
309%attr(754,root,root) /etc/rc.d/init.d/mongod
310%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mongod
311%config(noreplace) /etc/logrotate.d/mongod
312%{systemdunitdir}/mongod.service
313%{systemdunitdir}/mongod@.service
314%attr(755,root,root) %{_bindir}/mongod
315%attr(755,root,root) %{_bindir}/mongos
316%{_mandir}/man1/mongod.1*
317%{_mandir}/man1/mongos.1*
318%attr(755,mongod,mongod) %dir %{_var}/lib/mongodb
319%attr(775,root,mongod) %dir %{_var}/log/mongodb
320%attr(775,root,mongod) %dir %{_var}/log/archive/mongodb
321%attr(640,mongod,mongod) %config(noreplace) %verify(not md5 mtime size) %{_var}/log/mongodb/mongod.log
This page took 0.080793 seconds and 4 git commands to generate.