[bacula/f16] Rework building of all parts to reduce build time and to prepare for conditionals on RHEL
Simone Caronni
slaanesh at fedoraproject.org
Fri Dec 23 12:41:14 UTC 2011
commit d844af1df9d46ef93ce6e126c9942fb7f857979c
Author: Simone Caronni <negativo17 at gmail.com>
Date: Fri Dec 23 13:39:08 2011 +0100
Rework building of all parts to reduce build time and to prepare for conditionals on RHEL
bacula.spec | 139 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 89 insertions(+), 50 deletions(-)
---
diff --git a/bacula.spec b/bacula.spec
index 5c55baf..5a10cf4 100644
--- a/bacula.spec
+++ b/bacula.spec
@@ -10,16 +10,22 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: http://download.sourceforge.net/bacula/bacula-%{version}.tar.gz
Source1: http://download.sourceforge.net/bacula/bacula-docs-%{version}.tar.bz2
-Source4: bacula-wxconsole.desktop
-Source5: bacula-traymonitor.desktop
-Source6: bacula.logrotate
+Source2: bacula.logrotate
+Source3: bacula-checkconf
+Source4: bacula-fd.init
+Source5: bacula-dir.init
+Source6: bacula-sd.init
Source7: bacula-fd.service
Source8: bacula-dir.service
Source9: bacula-sd.service
+Source10: bacula-wxconsole.desktop
+Source11: bacula-traymonitor.desktop
Source12: bacula-bat.desktop
Source13: bacula-traymonitor.console_apps
Source14: bacula-wxconsole.console_apps
-Source15: bacula-checkconf
+Source15: bacula-fd.sysconfig
+Source16: bacula-dir.sysconfig
+Source17: bacula-sd.sysconfig
Patch1: bacula-config.patch
Patch3: bacula-pamd.patch
@@ -354,7 +360,9 @@ find -type f -name '*.c' | xargs chmod -x
find -type f -name '*.h' | xargs chmod -x
# We are building the source several times, each with a different storage backend
-mkdir bacula-mysql bacula-postgresql bacula-sqlite
+# and all the common files separated so we can also reduce compilation time
+# and build graphical consoles where allowed.
+mkdir bacula-mysql bacula-postgresql bacula-sqlite bacula-base
%build
# Shell function to configure and build a Bacula tree
@@ -362,7 +370,6 @@ build() {
cp -rl ../bacula-%{version}/* .
export CFLAGS="$RPM_OPT_FLAGS -I%{_includedir}/ncurses"
export CPPFLAGS="$RPM_OPT_FLAGS -I%{_includedir}/ncurses"
-export QMAKE=/usr/bin/qmake-qt4
%configure \
--sysconfdir=%{_sysconfdir}/bacula \
--with-dir-user=bacula \
@@ -385,16 +392,11 @@ export QMAKE=/usr/bin/qmake-qt4
--disable-conio \
--enable-readline \
--enable-largefile \
- --enable-bwx-console \
- --enable-tray-monitor \
- --enable-build-dird \
- --enable-build-stored \
--with-openssl \
--with-tcp-wrappers \
--with-python \
--enable-smartalloc \
--with-x \
- --enable-bat \
--disable-libtool \
$*
@@ -408,11 +410,14 @@ fi
}
-# Build sqlite director
-pushd bacula-sqlite
- build --with-sqlite3
-
-#Regen bat qt project file and build
+# Regen bat QT project file and build tools
+pushd bacula-base
+ export QMAKE=/usr/bin/qmake-qt4
+ build \
+ --enable-bat \
+ --enable-bwx-console \
+ --enable-tray-monitor \
+ --enable-client-only
pushd src
pushd qt-console
/usr/bin/qmake-qt4
@@ -421,14 +426,37 @@ pushd bacula-sqlite
popd
popd
+# Build sqlite director
+pushd bacula-sqlite
+ build \
+ --disable-bat \
+ --disable-bwx-console \
+ --disable-tray-monitor \
+ --enable-build-stored \
+ --enable-build-dird \
+ --with-sqlite3
+popd
+
# Build MySQL director
pushd bacula-mysql
- build --with-mysql
+ build \
+ --disable-bat \
+ --disable-bwx-console \
+ --disable-tray-monitor \
+ --enable-build-stored \
+ --enable-build-dird \
+ --with-mysql
popd
# Build PostgreSQL director
pushd bacula-postgresql
- build --with-postgresql
+ build \
+ --disable-bat \
+ --disable-bwx-console \
+ --disable-tray-monitor \
+ --enable-build-stored \
+ --enable-build-dird \
+ --with-postgresql
popd
# Build the docs
@@ -440,6 +468,32 @@ popd
%install
rm -rf %{buildroot}
+pushd bacula-base
+ make install DESTDIR=%{buildroot}
+ # Desktop Integration for the console apps and the traymonitor
+ mkdir -p %{buildroot}%{_bindir}
+ install -m 644 -D scripts/bacula.png %{buildroot}%{_datadir}/pixmaps/bacula.png
+ install -m 644 -D src/wx-console/wxwin16x16.xpm %{buildroot}%{_datadir}/pixmaps/wxwin16x16.xpm
+ install -m 644 -D scripts/wxconsole.pamd %{buildroot}%{_sysconfdir}/pam.d/bwxconsole
+ install -m 644 -D %{SOURCE14} %{buildroot}%{_sysconfdir}/security/console.apps/bwxconsole
+ install -m 644 -D scripts/bgnome-console.pamd %{buildroot}%{_sysconfdir}/pam.d/bat
+ install -m 644 -D scripts/bat.console_apps %{buildroot}%{_sysconfdir}/security/console.apps/bat
+ install -m 644 -D src/tray-monitor/generic.xpm %{buildroot}%{_datadir}/pixmaps/bacula-tray-monitor.xpm
+ install -m 644 -D src/qt-console/images/bat_icon.png %{buildroot}%{_datadir}/pixmaps/bat_icon.png
+ install -m 644 -D scripts/bgnome-console.pamd %{buildroot}%{_sysconfdir}/pam.d/bacula-tray-monitor
+ install -m 644 -D %{SOURCE13} %{buildroot}%{_sysconfdir}/security/console.apps/bacula-tray-monitor
+ install -m 644 -D src/qt-console/bat.conf %{buildroot}%{_sysconfdir}/bacula/bat.conf
+
+ ln -sf consolehelper %{buildroot}%{_bindir}/bwxconsole
+ ln -sf consolehelper %{buildroot}%{_bindir}/bat
+ ln -sf consolehelper %{buildroot}%{_bindir}/bacula-tray-monitor
+ install -m 755 src/qt-console/bat %{buildroot}%{_sbindir}
+
+ desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE10}
+ desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE11}
+ desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE12}
+popd
+
pushd bacula-sqlite
make install DESTDIR=%{buildroot}
mv %{buildroot}%{_sbindir}/bacula-dir %{buildroot}%{_sbindir}/bacula-dir.sqlite
@@ -493,45 +547,27 @@ rm -f %{buildroot}%{_libexecdir}/bacula/gconsole
mv %{buildroot}%{_sbindir}/bwx-console %{buildroot}%{_sbindir}/bwxconsole
mv %{buildroot}%{_sysconfdir}/bacula/bwx-console.conf %{buildroot}%{_sysconfdir}/bacula/bwxconsole.conf
-# Desktop Integration for the console apps and the traymonitor
-mkdir -p %{buildroot}%{_bindir}
-install -m 644 -D bacula-sqlite/scripts/bacula.png %{buildroot}%{_datadir}/pixmaps/bacula.png
-install -m 644 -D bacula-sqlite/src/wx-console/wxwin16x16.xpm %{buildroot}%{_datadir}/pixmaps/wxwin16x16.xpm
-install -m 644 -D bacula-sqlite/scripts/wxconsole.pamd %{buildroot}%{_sysconfdir}/pam.d/bwxconsole
-install -m 644 -D %{SOURCE14} %{buildroot}%{_sysconfdir}/security/console.apps/bwxconsole
-#bat.pamd is broken.
-install -m 644 -D bacula-sqlite/scripts/bgnome-console.pamd %{buildroot}%{_sysconfdir}/pam.d/bat
-install -m 644 -D bacula-sqlite/scripts/bat.console_apps %{buildroot}%{_sysconfdir}/security/console.apps/bat
-install -m 644 -D bacula-sqlite/src/tray-monitor/generic.xpm %{buildroot}%{_datadir}/pixmaps/bacula-tray-monitor.xpm
-install -m 644 -D bacula-sqlite/src/qt-console/images/bat_icon.png %{buildroot}%{_datadir}/pixmaps/bat_icon.png
-install -m 644 -D bacula-sqlite/scripts/bgnome-console.pamd %{buildroot}%{_sysconfdir}/pam.d/bacula-tray-monitor
-install -m 644 %{SOURCE13} %{buildroot}%{_sysconfdir}/security/console.apps/bacula-tray-monitor
-
-ln -sf consolehelper %{buildroot}%{_bindir}/bwxconsole
-ln -sf consolehelper %{buildroot}%{_bindir}/bat
-ln -sf consolehelper %{buildroot}%{_bindir}/bacula-tray-monitor
-install -m 755 bacula-sqlite/src/qt-console/bat %{buildroot}%{_sbindir}
-
-desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE4}
-desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE5}
-desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE12}
-
# logrotate
mkdir -p %{buildroot}%{_localstatedir}/log/bacula
-install -m 644 -D %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/bacula
+install -m 644 -D %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/bacula
# And logwatch
-install -m 755 -D bacula-sqlite/scripts/logwatch/bacula %{buildroot}%{_sysconfdir}/logwatch/scripts/services/bacula
-install -m 755 -D bacula-sqlite/scripts/logwatch/applybaculadate %{buildroot}%{_sysconfdir}/logwatch/scripts/shared/applybaculadate
-install -m 644 -D bacula-sqlite/scripts/logwatch/logfile.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
-install -m 644 -D bacula-sqlite/scripts/logwatch/services.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/services/bacula.conf
+install -m 755 -D bacula-base/scripts/logwatch/bacula %{buildroot}%{_sysconfdir}/logwatch/scripts/services/bacula
+install -m 755 -D bacula-base/scripts/logwatch/applybaculadate %{buildroot}%{_sysconfdir}/logwatch/scripts/shared/applybaculadate
+install -m 644 -D bacula-base/scripts/logwatch/logfile.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
+install -m 644 -D bacula-base/scripts/logwatch/services.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/services/bacula.conf
# Systemd unit files
mkdir -p ${buildroot}%{_unitdir}
install -m 755 -D %{SOURCE7} %{buildroot}%{_unitdir}/bacula-fd.service
install -m 755 -D %{SOURCE8} %{buildroot}%{_unitdir}/bacula-dir.service
install -m 755 -D %{SOURCE9} %{buildroot}%{_unitdir}/bacula-sd.service
-install -m 755 -D %{SOURCE15} %{buildroot}%{_sbindir}/bacula-checkconf
+install -m 755 -D %{SOURCE3} %{buildroot}%{_sbindir}/bacula-checkconf
+
+# Sysconfig
+install -m 644 -D %{SOURCE15} %{buildroot}%{_sysconfdir}/sysconfig/bacula-fd
+install -m 644 -D %{SOURCE16} %{buildroot}%{_sysconfdir}/sysconfig/bacula-dir
+install -m 644 -D %{SOURCE17} %{buildroot}%{_sysconfdir}/sysconfig/bacula-sd
# Wipe backup files from the multiple make install calls
rm -vf %{buildroot}%{_sysconfdir}/bacula/*.{new,old}
@@ -546,9 +582,6 @@ mv %{buildroot}%{_libexecdir}/bacula/query.sql %{buildroot}%{_sysconfdir}/bacula
# Nuke the scripts we do not need
rm -vf %{buildroot}%{_libexecdir}/bacula/{bacula,bacula-ctl-*,startmysql,stopmysql}
-# Install bat.conf
-install -m 644 bacula-sqlite/src/qt-console/bat.conf %{buildroot}%{_sysconfdir}/bacula/bat.conf
-
# Fix up some perms so rpmlint does not complain too much
chmod 755 %{buildroot}%{_sbindir}/*
chmod 755 %{buildroot}%{_libexecdir}/bacula/*
@@ -759,11 +792,13 @@ fi
%{_libexecdir}/bacula/btraceback.mdb
%{_sbindir}/bacula-checkconf
+
%files client
%defattr(-,root,root,-)
%{_sbindir}/bacula-fd
%{_unitdir}/bacula-fd.service
%config(noreplace) %{_sysconfdir}/bacula/bacula-fd.conf
+%config(noreplace) %{_sysconfdir}/sysconfig/bacula-fd
%{_mandir}/man8/bacula-fd.8*
@@ -803,6 +838,7 @@ fi
%defattr(-,root,root,-)
%doc bacula-%{version}/updatedb/
%attr(640,root,bacula) %config(noreplace) %{_sysconfdir}/bacula/bacula-dir.conf
+%config(noreplace) %{_sysconfdir}/sysconfig/bacula-dir
%config(noreplace) %{_sysconfdir}/bacula/query.sql
%config %{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
%config %{_sysconfdir}/logwatch/conf/services/bacula.conf
@@ -881,6 +917,7 @@ fi
%{_sbindir}/bls
%{_sbindir}/btape
%config(noreplace) %{_sysconfdir}/bacula/bacula-sd.conf
+%config(noreplace) %{_sysconfdir}/sysconfig/bacula-sd
%{_unitdir}/bacula-sd.service
%{_libexecdir}/bacula/disk-changer
%{_libexecdir}/bacula/dvd-handler
@@ -951,6 +988,8 @@ fi
- Change SQL query file patch.
- Add back sysconf files and remove redundant user/group in systemd
service files.
+- Move build of common parts around to reduce build time and to prepare
+ for nagios-plugins and conditionals for RHEL.
* Thu Dec 22 2011 Lukáš Nykrýn <lnykryn at redhat.com> - 5.0.3-14
- removed duplicity from logrotate file (#755970)
More information about the scm-commits
mailing list