]> git.pld-linux.org Git - packages/bacula.git/blob - bacula.spec
- user/group/config fixes
[packages/bacula.git] / bacula.spec
1 # TODO:
2 # - files section
3 # - rpm scripts
4 #
5 Summary:        Bacula - The Network Backup Solution
6 Name:           bacula
7 Version:        1.34.6
8 Release:        0.1
9 Epoch:          0
10 Group:          Networking/Utilities
11 License:        GPL v2
12 Source0:        http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
13 # Source0-md5:  9de593cb206df126a8e27774281c5bf6
14 Source1:        http://www.tux.org/pub/distributions/tinylinux/tomsrtbt/tomsrtbt-2.0.103.tar.gz
15 # Source1-md5:  d5ee50efb28986d564547d5da5de2483
16 Source2:        %{name}-manpages.tar.bz2
17 # Source2-md5:  e4dae86d6574b360e831efd3913e7f4c
18 Source10:       %{name}-dir.init
19 Source11:       %{name}-fd.init
20 Source12:       %{name}-sd.init
21 Source13:       %{name}.logrotate
22 Patch0:         %{name}-pidfile.patch
23 URL:            http://www.bacula.org/
24 BuildRequires:  mtx
25 BuildRequires:  wxGTK2-devel
26 BuildRequires:  openssl-devel
27 BuildRequires:  pkgconfig
28 BuildRequires:  ncurses-devel
29 BuildRequires:  readline-devel
30 BuildRequires:  sqlite2-devel
31 BuildRequires:  libwrap-devel
32 BuildRequires:  zlib-devel
33 BuildRequires:  acl-devel
34 BuildRequires:  libstdc++-devel
35 BuildRequires:  glibc-static
36 BuildRequires:  acl-static
37 BuildRequires:  libwrap-static
38 BuildRequires:  libstdc++-static
39 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
40
41 %define         _sysconfdir     /etc/%{name}
42 %define         _localstatedir  /var/lib/%{name}
43
44 %description
45 Bacula - It comes by night and sucks the vital essence from your
46 computers.
47
48 Bacula is a set of computer programs that permit you (or the system
49 administrator) to manage backup, recovery, and verification of
50 computer data across a network of computers of different kinds. In
51 technical terms, it is a network client/server based backup program.
52 Bacula is relatively easy to use and efficient, while offering many
53 advanced storage management features that make it easy to find and
54 recover lost or damaged files.
55
56 %package common
57 Summary:        Common files for bacula package
58 Group:          Networking/Utilities
59 Conflicts:      bacula-dir < %{epoch}:%{version}-%{release}
60 Conflicts:      bacula-fd < %{epoch}:%{version}-%{release}
61 Conflicts:      bacula-sd < %{epoch}:%{version}-%{release}
62 Conflicts:      bacula-console < %{epoch}:%{version}-%{release}
63
64 %description common
65 Bacula - It comes by night and sucks the vital essence from your
66 computers.
67
68 Bacula is a set of computer programs that permit you (or the system
69 administrator) to manage backup, recovery, and verification of
70 computer data across a network of computers of different kinds. In
71 technical terms, it is a network client/server based backup program.
72 Bacula is relatively easy to use and efficient, while offering many
73 advanced storage management features that make it easy to find and
74 recover lost or damaged files.
75
76 %package dir
77 Summary:        Bacula Director and Catalog services
78 Group:          Networking/Utilities
79 Prereq:         bacula-common = %{epoch}:%{version}-%{release}
80
81 %description dir
82 Bacula - It comes by night and sucks the vital essence from your
83 computers.
84
85 Bacula Director is the program that supervises all the backup,
86 restore, verify and archive operations. The system administrator uses
87 the Bacula Director to schedule backups and to recover files. Catalog
88 services are comprised of the software programs responsible for
89 maintaining the file indexes and volume databases for all files backed
90 up. The Catalog services permit the System Administrator or user to
91 quickly locate and restore any desired file, since it maintains a
92 record of all Volumes used, all Jobs run, and all Files saved. This
93 build requires sqlite to be installed separately as the catalog
94 database.
95
96 %package console
97 Summary:        Bacula Console
98 Group:          Networking/Utilities
99 Prereq:         bacula-common = %{epoch}:%{version}-%{release}
100
101 %description console
102 Bacula - It comes by night and sucks the vital essence from your
103 computers.
104
105 Bacula Console is the program that allows the administrator or user to
106 communicate with the Bacula Director. This is the text only console
107 interface.
108
109 %package console-wx
110 Summary:        Bacula wxWindows Console
111 Group:          Networking/Utilities
112 Prereq:         bacula-common = %{epoch}:%{version}-%{release}
113
114 %description console-wx
115 Bacula - It comes by night and sucks the vital essence from your
116 computers.
117
118 Bacula Console is the program that allows the administrator or user to
119 communicate with the Bacula Director. This is the wxWindows GUI
120 interface.
121
122 %package fd
123 Summary:        Bacula File services (Client)
124 Group:          Networking/Utilities
125 Prereq:         bacula-common = %{epoch}:%{version}-%{release}
126
127 %description fd
128 Bacula - It comes by night and sucks the vital essence from your
129 computers.
130
131 Bacula File services (or Client program) is the software program that
132 is installed on the machine to be backed up. It is specific to the
133 operating system on which it runs and is responsible for providing the
134 file attributes and data when requested by the Director. The File
135 services are also responsible for the file system dependent part of
136 restoring the file attributes and data during a recovery operation.
137 This program runs as a daemon on the machine to be backed up, and in
138 some of the documentation, the File daemon is referred to as the
139 Client (for example in Bacula configuration file).
140
141 %package sd
142 Summary:        Bacula Storage services
143 Group:          Networking/Utilities
144 Prereq:         bacula-common = %{epoch}:%{version}-%{release}
145
146 %description sd
147 Bacula - It comes by night and sucks the vital essence from your
148 computers.
149
150 Bacula Storage services consist of the software programs that perform
151 the storage and recovery of the file attributes and data to the
152 physical backup media or volumes. In other words, the Storage daemon
153 is responsible for reading and writing your tapes (or other storage
154 media, e.g. files). The Storage services runs as a daemon on the
155 machine that has the backup device (usually a tape drive).
156
157 %package rescue
158 Summary:        Bacula - The Network Backup Solution
159 Group:          Networking/Utilities
160 Requires:       coreutils
161 Requires:       util-linux
162 Requires:       bacula-fd
163
164 %description rescue
165 Bacula - It comes by night and sucks the vital essence from your
166 computers.
167
168 Bacula is a set of computer programs that permit you (or the system
169 administrator) to manage backup, recovery, and verification of
170 computer data across a network of computers of different kinds. In
171 technical terms, it is a network client/server based backup program.
172 Bacula is relatively easy to use and efficient, while offering many
173 advanced storage management features that make it easy to find and
174 recover lost or damaged files. Bacula source code has been released
175 under the GPL version 2 license.
176
177 This package installs scripts for disaster recovery and builds rescue
178 floppy disks for bare metal recovery. This package includes tomsrtbt
179 (http://www.toms.net/rb/, by Tom Oehser, Tom@Toms.NET) to provide a
180 tool to build a boot floppy disk.
181
182 To create a boot disk run "./getdiskinfo" from the
183 %{_sysconfdir}/rescue directory (this is done when the package is
184 first installed), then run "./install.s" from the
185 %{_sysconfdir}/rescue/tomsrtbt/ directory. To make the bacula rescue
186 disk run "./make_rescue_disk --copy-static-bacula
187 - --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
188   recreate the rescue information for this system run ./getdiskinfo
189   again.
190
191 %package updatedb
192 Summary:        Bacula - The Network Backup Solution
193 Group:          Networking/Utilities
194
195 %description updatedb
196 Bacula - It comes by night and sucks the vital essence from your
197 computers.
198
199 Bacula is a set of computer programs that permit you (or the system
200 administrator) to manage backup, recovery, and verification of
201 computer data across a network of computers of different kinds. In
202 technical terms, it is a network client/server based backup program.
203 Bacula is relatively easy to use and efficient, while offering many
204 advanced storage management features that make it easy to find and
205 recover lost or damaged files. Bacula source code has been released
206 under the GPL version 2 license.
207
208 This package installs scripts for updating older versions of the
209 bacula database.
210
211 %prep
212 %setup -q -a 1 -a 2
213 %patch0 -p1
214 sed -i -e 's#wx-config#wxgtk2-2.4-config#g' configure*
215 sed -i -e 's#-lreadline -ltermcap#-lreadline#g' configure*
216
217 %build
218 # patches for the bundled sqlite scripts
219 # patch the make_sqlite_tables script for installation bindir
220 patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch
221 # patch the create_sqlite_database script for installation bindir
222 patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch
223 # patch the make_catalog_backup script for installation bindir
224 patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
225 # patch the update_sqlite_tables script for installation bindir
226 patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
227
228 CPPFLAGS="-I%{_includedir}/ncurses -I%{_includedir}/readline"
229 %configure \
230         --with-scriptdir=%{_libexecdir}/%{name} \
231         --disable-gnome \
232         --disable-conio \
233         --enable-smartalloc \
234         --enable-wx-console \
235         --with-readline \
236         --with-tcp-wrappers \
237         --with-working-dir=%{_var}/lib/%{name} \
238         --with-dump-email="root@localhost" \
239         --with-job-email="root@localhost" \
240         --with-smtp-host=localhost \
241         --with-pid-dir=/var/run \
242         --with-subsys-dir=/var/lock/subsys \
243         --with-sqlite \
244         --enable-static-fd \
245         --with-dir-password="#FAKE#DIR#PASSWORD#PLD#" \
246         --with-fd-password="#FAKE#FD#PASSWORD#PLD#" \
247         --with-sd-password="#FAKE#SD#PASSWORD#PLD#"
248
249 %{__make}
250
251 %install
252 rm -rf $RPM_BUILD_ROOT
253
254 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,security/console.apps}
255 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rescue/tomsrtbt,updatedb}
256 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_mandir},%{_bindir}}
257
258 %{__make} install \
259         DESTDIR=$RPM_BUILD_ROOT
260
261 # static daemon
262 strip src/filed/static-bacula-fd
263 install src/filed/static-bacula-fd $RPM_BUILD_ROOT%{_sysconfdir}/rescue/bacula-fd
264
265 install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
266 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
267 install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
268 install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
269
270 install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
271
272 # install the rescue stuff, these are the rescue scripts
273 install rescue/linux/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
274 install rescue/linux/format_floppy $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
275 install rescue/linux/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
276 install rescue/linux/make_rescue_disk $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
277 install rescue/linux/restore_bacula $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
278 install rescue/linux/restore_etc $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
279 install rescue/linux/run_grub $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
280 install rescue/linux/run_lilo $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
281 install rescue/linux/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
282
283 # this is the tom's root boot disk
284 install tomsrtbt-*/* $RPM_BUILD_ROOT%{_sysconfdir}/rescue/tomsrtbt/
285
286 # install the updatedb scripts
287 install updatedb/* $RPM_BUILD_ROOT%{_sysconfdir}/updatedb/
288
289 # manual
290 cp -a man1 man8 $RPM_BUILD_ROOT%{_mandir}
291
292 install -d html-manual
293 cp -a doc/html-manual/*.{html,jpg,gif,css} html-manual/
294
295 # some file changes
296 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
297 rm -f $RPM_BUILD_ROOT%{_sbindir}/static-bacula-fd
298 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/gnome*
299 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
300
301 cat << EOF > $RPM_BUILD_ROOT/etc/security/console.apps/bconsole
302 USER=root
303 PROGRAM=%{_sbindir}/bconsole
304 SESSION=true
305 EOF
306 install scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/bconsole
307 ln -s consolehelper $RPM_BUILD_ROOT%{_bindir}/bconsole
308
309 cat << EOF > $RPM_BUILD_ROOT/etc/security/console.apps/wx-console
310 USER=root
311 PROGRAM=%{_sbindir}/wx-console
312 SESSION=true
313 EOF
314 cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/wx-console
315 ln -s consolehelper $RPM_BUILD_ROOT%{_bindir}/wx-console
316
317 %pre common
318 if [ -n "`getgid bacula`" ]; then
319         if [ "`getgid bacula`" != "136" ]; then
320                 echo "Error: group bacula doesn't have gid=136. Correct this before installing bacula." 1>&2
321                 exit 1
322         fi
323 else
324         /usr/sbin/groupadd -g 136 -r -f bacula
325 fi
326 if [ -n "`id -u bacula 2>/dev/null`" ]; then
327         if [ "`id -u bacula`" != "136" ]; then
328                 echo "Error: user bacula doesn't have uid=136. Correct this before installing bacula." 1>&2
329                 exit 1
330         fi
331 else
332         /usr/sbin/useradd -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula 1>&2
333 fi
334
335 %postun common
336 if [ "$1" = "0" ]; then
337         %userremove bacula
338         %groupremove bacula
339 fi
340
341 %post dir
342 umask 077
343 [ -s %{_localstatedir}/bacula.db ] && \
344         DB_VER=`echo "select * from Version;" | \
345                 %{_bindir}/sqlite %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
346 if [ -z "$DB_VER" ]; then
347 # grant privileges and create tables
348         %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
349         %{_libexecdir}/%{name}/create_bacula_database > dev/null
350         %{_libexecdir}/%{name}/make_bacula_tables > dev/null
351 elif [ "$DB_VER" -lt "7" ]; then
352         echo "Backing up bacula tables"
353         echo ".dump" | sqlite %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
354         type=sqlite
355         echo "Upgrading bacula tables"
356         if [ "$DB_VER" -lt "6" ]; then
357                 if [ "$DB_VER" -lt "5" ]; then
358                         %{_libexecdir}/%{name}/update_${type}_tables_4_to_5
359                 fi
360                 %{_libexecdir}/%{name}/update_${type}_tables_5_to_6
361         fi
362         %{_libexecdir}/%{name}/update_bacula_tables
363         echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
364 fi
365 chown -R bacula:bacula %{_localstatedir}
366 chmod -R u+rX,go-rwx %{_localstatedir}/*
367
368 /sbin/chkconfig --add bacula-dir
369 if [ -f /var/lock/subsys/bacula-dir ]; then
370         /etc/rc.d/init.d/bacula-dir restart 1>&2
371 else
372         echo "Run \"/etc/rc.d/init.d/bacula-dir start\" to start Bacula Director daemon."
373 fi
374
375 %preun dir
376 if [ "$1" = "0" ]; then
377         if [ -f /var/lock/subsys/bacula-dir ]; then
378                 /etc/rc.d/init.d/bacula-dir stop 1>&2
379         fi
380         /sbin/chkconfig --del bacula-dir
381 fi
382
383 %post fd
384 /sbin/chkconfig --add bacula-fd
385 if [ -f /var/lock/subsys/bacula-fd ]; then
386         /etc/rc.d/init.d/bacula-fd restart 1>&2
387 else
388         echo "Run \"/etc/rc.d/init.d/bacula-fd start\" to start Bacula File daemon."
389 fi
390
391 %preun fd
392 if [ "$1" = "0" ]; then
393         if [ -f /var/lock/subsys/bacula-fd ]; then
394                 /etc/rc.d/init.d/bacula-fd stop 1>&2
395         fi
396         /sbin/chkconfig --del bacula-fd
397 fi
398
399 %post sd
400 /sbin/chkconfig --add bacula-sd
401 if [ -f /var/lock/subsys/bacula-sd ]; then
402         /etc/rc.d/init.d/bacula-sd restart 1>&2
403 else
404         echo "Run \"/etc/rc.d/init.d/bacula-sd start\" to start Bacula Storage daemon."
405 fi
406
407 %preun sd
408 if [ "$1" = "0" ]; then
409         if [ -f /var/lock/subsys/bacula-sd ]; then
410                 /etc/rc.d/init.d/bacula-sd stop 1>&2
411         fi
412         /sbin/chkconfig --del bacula-sd
413 fi
414
415 %pre console
416 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
417         mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
418 fi
419
420 %post updatedb
421 echo "The database update scripts were installed to %{_sysconfdir}/updatedb"
422
423 %clean
424 rm -rf $RPM_BUILD_ROOT
425
426 %post rescue
427 # link our current installed conf file to the rescue directory
428 ln -s %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
429
430 # run getdiskinfo
431 echo "Creating rescue files for this system..."
432 cd %{_sysconfdir}/rescue
433 ./getdiskinfo
434
435 %preun rescue
436 # remove the files created after the initial rpm installation
437 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
438 rm -f %{_sysconfdir}/rescue/partition.*
439 rm -f %{_sysconfdir}/rescue/format.*
440 rm -f %{_sysconfdir}/rescue/mount_drives
441 rm -f %{_sysconfdir}/rescue/start_network
442 rm -f %{_sysconfdir}/rescue/sfdisk
443 rm -rf %{_sysconfdir}/rescue/diskinfo/*
444
445 %files common
446 %defattr(644,root,root,755)
447 %dir %{_sysconfdir}
448 %attr(755, root, root) %{_sbindir}/btraceback
449 %attr(755, root, root) %{_sbindir}/bsmtp
450 %dir %{_libexecdir}/%{name}
451 %{_libexecdir}/%{name}/btraceback.gdb
452 %attr(700, bacula, bacula) %dir %{_localstatedir}
453
454 %files dir
455 %defattr(644,root,root,755)
456 %doc ChangeLog CheckList ReleaseNotes kernstodo
457 %doc doc/*.pdf html-manual examples
458 %attr(600, root, root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bacula-dir.conf
459 %ghost %{_sysconfdir}/.pw.sed
460 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
461 %{_mandir}/man8/bacula-dir.8*
462 %{_mandir}/man1/dbcheck.1*
463 %defattr (755, root, root)
464 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
465 %attr(755,root,root) %{_sbindir}/bacula-dir
466 %attr(755,root,root) %{_sbindir}/dbcheck
467 %{_libexecdir}/%{name}/create_sqlite_database
468 %{_libexecdir}/%{name}/drop_sqlite_database
469 %{_libexecdir}/%{name}/drop_sqlite_tables
470 %{_libexecdir}/%{name}/grant_sqlite_privileges
471 %{_libexecdir}/%{name}/make_sqlite_tables
472 %{_libexecdir}/%{name}/update_sqlite_tables*
473 %{_libexecdir}/%{name}/create_bacula_database
474 %{_libexecdir}/%{name}/drop_bacula_database
475 %{_libexecdir}/%{name}/drop_bacula_tables
476 %{_libexecdir}/%{name}/grant_bacula_privileges
477 %{_libexecdir}/%{name}/make_bacula_tables
478 %{_libexecdir}/%{name}/update_bacula_tables
479 %{_libexecdir}/%{name}/make_catalog_backup
480 %{_libexecdir}/%{name}/delete_catalog_backup
481 %attr(644, root, root) %{_libexecdir}/%{name}/query.sql
482
483 %files fd
484 %defattr(644,root,root,755)
485 %attr(600, root, root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bacula-fd.conf
486 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
487 %attr(755,root,root) %{_sbindir}/bacula-fd
488 %attr(644, root, root) %{_mandir}/man8/bacula-fd.8*
489
490 %files sd
491 %defattr(644,root,root,755)
492 %dir %{_sysconfdir}
493 %attr(600, root, root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bacula-sd.conf
494 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
495 %attr(755,root,root) %{_sbindir}/bacula-sd
496 %attr(755,root,root) %{_sbindir}/bcopy
497 %attr(755,root,root) %{_sbindir}/bextract
498 %attr(755,root,root) %{_sbindir}/bls
499 %attr(755,root,root) %{_sbindir}/bscan
500 %attr(755,root,root) %{_sbindir}/btape
501 %{_libexecdir}/%{name}/mtx-changer
502 %defattr(644, root,root, 755)
503 %{_mandir}/man8/bacula-sd.8*
504 %{_mandir}/man1/bcopy.1*
505 %{_mandir}/man1/bextract.1*
506 %{_mandir}/man1/bls.1*
507 %{_mandir}/man1/bscan.1*
508 %{_mandir}/man1/btape.1*
509
510 %files console
511 %defattr(644,root,root,755)
512 %attr(600,root,root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bconsole.conf
513 %attr(755,root,root) %{_sbindir}/bconsole
514 %config(noreplace) /etc/security/console.apps/bconsole
515 %config(noreplace) /etc/pam.d/bconsole
516 %verify(link) %{_bindir}/bconsole
517 %{_mandir}/man1/bconsole.1*
518
519 %files console-wx
520 %defattr(644,root,root,755)
521 %{_pixmapsdir}/%{name}.png
522 %attr(600,root,root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/wx-console.conf
523 %attr(755,root,root) %{_sbindir}/wx-console
524 %config(noreplace) /etc/security/console.apps/wx-console
525 %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/wx-console
526 %verify(link) %{_bindir}/wx-console
527 %{_mandir}/man1/wx-console.1*
528
529 %files rescue
530 %defattr(644,root,root,755)
531 %{_sysconfdir}/rescue
532
533 %files updatedb
534 %defattr(644,root,root,755)
535 %{_sysconfdir}/updatedb
This page took 0.077588 seconds and 4 git commands to generate.