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