1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
#!/usr/bin/make -f
#export DH_VERBOSE=1
DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
DBGPKGS := $(shell sed -n -e 's/Package: \(.*\)-dbg/\1/p' debian/control)
VARIANTS := pgsql mysql sqlite3
######################################################################
DBC := usr/share/dbconfig-common/data/
CONF_ALL = \
--enable-smartalloc \
--with-python \
--with-tcp-wrappers \
--with-openssl \
--with-libiconv-prefix=/usr/include \
--with-readline=/usr/include/readline \
--disable-conio \
--with-libintl-prefix=/usr/include \
--docdir=\$${prefix}/share/doc/bacula-common \
--htmldir=\$${prefix}/share/doc/bacula-common/html \
--libdir=\$${prefix}/lib/bacula \
--enable-batch-insert \
--enable-ipv6 \
--with-dir-password=XXX_DIRPASSWORD_XXX \
--with-fd-password=XXX_FDPASSWORD_XXX \
--with-sd-password=XXX_SDPASSWORD_XXX \
--with-mon-dir-password=XXX_MONDIRPASSWORD_XXX \
--with-mon-fd-password=XXX_MONFDPASSWORD_XXX \
--with-mon-sd-password=XXX_MONSDPASSWORD_XXX \
--with-db-name=XXX_DBNAME_XXX \
--with-db-user=XXX_DBUSER_XXX \
--with-db-password=XXX_DBPASSWORD_XXX \
--config-cache \
--with-archivedir=/nonexistant/path/to/file/archive/dir \
--sysconfdir=/etc/bacula \
--with-scriptdir=/etc/bacula/scripts \
--sharedstatedir=/var/lib/bacula \
--localstatedir=/var/lib/bacula \
--with-logdir=/var/log/bacula \
--with-pid-dir=/var/run/bacula \
--with-smtp-host=localhost \
--with-working-dir=/var/lib/bacula \
--with-subsys-dir=/var/lock \
--with-dump-email=root \
--with-job-email=root \
--with-systemd=/lib/systemd/system \
--with-mysql --with-postgresql --with-sqlite3 \
--enable-bat --enable-tray-monitor --enable-bwx-console --with-x
ifeq ($(DEB_HOST_ARCH_OS),kfreebsd)
CONF_ALL += --disable-acl --disable-xattr
endif
LONGNAME_mysql = mysql
LONGNAME_pgsql = postgresql
LONGNAME_sqlite3 = sqlite3
###########################################################################
# Macro for generate file for specified database from specified template
# args: 1 -- template file
# 2 -- db type
define template-subst
sed -e 's/XX_DB_XX/$(2)/' -e 's/XX_DBLONGNAME_XX/$(LONGNAME_$(2))/' '$(1)' >'$(patsubst %.in,%,$(subst -db.,-$(2).,$(1)))';
endef
# Macro for cleanup file generated for specified database from specified template
# args: 1 -- template file
# 2 -- db type
define template-cleanup
rm -f '$(patsubst %.in,%,$(subst -db.,-$(2).,$(1)))';
endef
# Macro for generate from all templates files for specified database
# args: 1 -- db type
define db-templates-subst
$(foreach template,$(wildcard debian/*-db.*.in),$(call template-subst,$(template),$(1)))
endef
# Macro for cleanup all files generated for specified database from templates
# args: 1 -- db type
define db-templates-cleanup
$(foreach template,$(wildcard debian/*-db.*.in),$(call template-cleanup,$(template),$(1)))
endef
%:
dh $@ --with autotools_dev
override_dh_shlibdeps:
# Handle shlibs for the database packages specially so they get
# the deps on the correct libraries.
dh_shlibdeps -pbacula-sd-mysql -Lbacula-common-mysql
dh_shlibdeps -pbacula-director-mysql -Lbacula-common-mysql
dh_shlibdeps -pbacula-sd-sqlite3 -Lbacula-common-sqlite3
dh_shlibdeps -pbacula-director-sqlite3 -Lbacula-common-sqlite3
dh_shlibdeps -pbacula-sd-pgsql -Lbacula-common-pgsql
dh_shlibdeps -pbacula-director-pgsql -Lbacula-common-pgsql
# Now build all other shlibdeps.
dh_shlibdeps -a -Nbacula-sd-mysql -Nbacula-director-mysql \
-Nbacula-sd-sqlite3 -Nbacula-director-sqlite3 \
-Nbacula-sd-pgsql -Nbacula-director-pgsql
override_dh_installinit:
dh_installinit -pbacula-sd -- defaults 90 10
dh_installinit -pbacula-fd -- defaults 91 9
dh_installinit -pbacula-director-common --name=bacula-director --no-start -- defaults 92 8
override_dh_install:
chmod 755 debian/additions/postinst-common
chmod 755 debian/scripts/install-dbconfig
dh_install
chmod 755 debian/bacula-common/usr/lib/bacula/btraceback
######### dbconfig-common stuff
# Sometimes the latest release doesn't have a copy of the data in updatedb.
# Manually install those. CHECK THIS FOR EACH NEW RELEASE!
#
# lenny -> squeeze is 10 -> 12
$(foreach db,$(VARIANTS),$(shell debian/scripts/install-dbconfig $(db) 3.0.0 11)) # 3.0.0 upgrade 10 to 11
$(foreach db,$(VARIANTS),$(shell debian/scripts/install-dbconfig $(db) 5.0.0 12)) # 5.0.0 upgrade 11 to 12
$(foreach db,$(VARIANTS),$(shell debian/scripts/install-dbconfig $(db) 5.2.0)) # 5.2.0 upgrade 12 to 14
$(foreach db,$(VARIANTS),$(shell debian/scripts/install-dbconfig $(db)))
# dh_install can not rename files, so doing here
mv debian/bacula-traymonitor/usr/share/pixmaps/generic.xpm \
debian/bacula-traymonitor/usr/share/pixmaps/bacula-tray-monitor.xpm
# fix database type in some scripts
$(foreach db,$(VARIANTS),sed -i \
-e "s/XX_DB_XX/$(db)/" \
-e "s/XX_DBLONGNAME_XX/$(LONGNAME_$(db))/" \
debian/bacula-director-$(db)/etc/bacula/scripts/make_catalog_backup \
debian/bacula-director-$(db)/etc/bacula/scripts/make_catalog_backup.pl;)
override_dh_installdocs:
dh_installdocs -pbacula --link-doc=bacula-common
for pkg in $(DBGPKGS); do \
dh_installdocs -p$$pkg-dbg --link-doc=$$pkg; \
done
dh_installdocs -Nbacula
override_dh_auto_configure:
$(foreach db,$(VARIANTS),$(call db-templates-subst,$(db)))
autoconf -I autoconf/ -o configure autoconf/configure.in
dh_auto_configure -- $(CONF_ALL)
override_dh_auto_build:
dh_auto_build --parallel
override_dh_strip:
for pkg in $(DBGPKGS); do \
dh_strip -p$$pkg --dbg-package=$$pkg-dbg; \
done
dh_strip
override_dh_makeshlibs:
dh_makeshlibs -n -Xbpipe-fd.so
override_dh_clean:
$(foreach db,$(VARIANTS),$(call db-templates-cleanup,$(db)))
dh_autotools-dev_restoreconfig
dh_clean
override_dh_fixperms:
dh_fixperms
chmod -x debian/bacula-sd/etc/bacula/scripts/mtx-changer.conf
chmod -x debian/bacula-common/usr/share/doc/bacula-common/examples/nagios/check_bacula/README
chmod +x debian/bacula-director-*/etc/bacula/scripts/make_catalog_backup_awk
override_dh_auto_test:
|