#!/usr/bin/make -f export DH_VERBOSE=1 export DEB_BUILD_HARDENING=1 PACKAGE=mariadb-10.2 include /usr/share/dpatch/dpatch.make TMP=$(CURDIR)/debian/tmp/ ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH) ARCH_OS = $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEBVERSION = $(shell dpkg-parsechangelog | awk '/^Version: / { print $$2 }' | sed 's/^.*-//' ) DEB_SOURCE_PACKAGE ?= $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':')) DEB_VERSION ?= $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ') DEB_NOEPOCH_VERSION ?= $(shell echo $(DEB_VERSION) | cut -d: -f2-) DEB_UPSTREAM_VERSION ?= $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//') DEB_UPSTREAM_VERSION_MAJOR_MINOR := $(shell echo $(DEB_UPSTREAM_VERSION) | sed -r -n 's/^([0-9]+\.[0-9]+).*/\1/p') DISTRIBUTION = $(shell lsb_release -i -s) RELEASE = $(shell lsb_release -r -s) MAKE_J = -j$(shell if [ -f /proc/cpuinfo ] ; then grep -c processor.* /proc/cpuinfo ; else echo 1 ; fi) ifeq (${MAKE_J}, -j0) MAKE_J = -j1 endif MAKE_TEST_TARGET=test-force ifneq ($(findstring fulltest,$(DEB_BUILD_OPTIONS)),) # make test-bt is the testsuite run by the MySQL build team # before a release, but it is long MAKE_TEST_TARGET=test-bt endif USE_ASSEMBLER=--enable-assembler ifneq (,$(filter $(ARCH), amd64 i386 ia64 s390)) TESTSUITE_FAIL_CMD=exit 1 else TESTSUITE_FAIL_CMD=true endif BUILDDIR = builddir builddir = $(BUILDDIR) # This causes seg11 crashes if LDAP is used for groups in /etc/nsswitch.conf # so it is disabled by default although, according to MySQL, it brings >10% # performance gain if enabled. See #299382. ifeq ($(STATIC_MYSQLD), 1) USE_STATIC_MYSQLD=--with-mysqld-ldflags=-all-static endif configure: patch configure-stamp configure-stamp: @echo "RULES.$@" dh_testdir ifneq ($(ARCH_OS),hurd) if [ ! -d /proc/self ]; then echo "/proc IS NEEDED" 1>&2; exit 1; fi endif ( test -d $(builddir) || mkdir $(builddir) ) && cd $(builddir) && \ sh -c 'PATH=$${MYSQL_BUILD_PATH:-"/usr/local/bin:/usr/bin:/bin"} \ CC=$${MYSQL_BUILD_CC:-gcc} \ CFLAGS=$${MYSQL_BUILD_CFLAGS:-"-O2 -fno-omit-frame-pointer -g -pipe -Wall -Wno-uninitialized"} \ CXX=$${MYSQL_BUILD_CXX:-g++} \ CXXFLAGS=$${MYSQL_BUILD_CXXFLAGS:-"-O2 -fno-omit-frame-pointer -g -pipe -Wall -Wno-uninitialized"} \ cmake .. \ -DMYSQL_SERVER_SUFFIX="-$(DEBVERSION)" \ -DBUILD_CONFIG=mysql_release \ -DCOMPILATION_COMMENT="mariadb.org binary distribution" \ -DSYSTEM_TYPE="debian-linux-gnu" \ -DDEB=ubuntu' touch $@ build: build-stamp build-stamp: configure @echo "RULES.$@" dh_testdir cd $(builddir) && $(MAKE) $(MAKE_J) $(AM_EXTRA_MAKEFLAGS) ifeq ($(findstring nocheck,$(DEB_BUILD_OPTIONS)),) if [ ! -f testsuite-stamp ] ; then \ cd $(builddir) && $(MAKE) $(MAKE_TEST_TARGET) || $(TESTSUITE_FAIL_CMD) ; \ fi endif touch testsuite-stamp touch build-stamp clean: clean-patched unpatch rm -rf debian/patched clean-patched: @echo "RULES.clean-patched" dh_testdir dh_testroot rm -f configure-stamp* rm -f build-stamp* rm -f testsuite-stamp # [ ! -f Makefile ] || $(MAKE) clean [ ! -d mysql-test/var ] || rm -rf mysql-test/var # rm -rf $(BUILDDIR) debconf-updatepo dh_clean -v install: build @echo "RULES.$@" dh_testdir dh_testroot dh_clean -k dh_installdirs # some self written manpages which hopefully # gets overwritten sooner or later with upstreams mkdir -p $(TMP)/usr/share/man/man1/ mkdir -p $(TMP)/usr/share/man/man8/ cp debian/additions/*.1 $(TMP)/usr/share/man/man1/ mkdir -p $(TMP)/etc/mysql/conf.d/ cp debian/additions/mysqld_safe_syslog.cnf $(TMP)/etc/mysql/conf.d/ # make install (trailing slash needed for innobase) cd $(builddir) && $(MAKE) install DESTDIR=$(TMP)/ # # After installing, remove rpath to make lintian happy. set +e; \ find ./debian/tmp/ -type f -print0 \ | xargs -0 --no-run-if-empty chrpath -k 2>/dev/null \ | fgrep RPATH= \ | cut -d: -f 1 \ | xargs --no-run-if-empty chrpath -d; \ set -e # libmysqlclient-dev: forgotten header file since 3.23.25? cp $(BUILDDIR)/include/my_config.h $(TMP)/usr/include/mysql/ cp include/my_dir.h $(TMP)/usr/include/mysql/ # mysql-common: We provide our own version of this package for # completeness, but we can use an existing version; mariadb-specic # stuff is in mariadb-common install -d $(TMP)/etc/mysql install -m 0644 debian/additions/my.cnf $(TMP)/etc/mysql/my.cnf # mariadb-common: MariaDB-specific config stuff. install -d $(TMP)/etc/mysql/conf.d install -m 0644 debian/additions/mariadb.cnf $(TMP)/etc/mysql/conf.d/mariadb.cnf # mariadb-client install -m 0755 debian/additions/mysqlreport $(TMP)/usr/bin/ install -m 0755 debian/additions/innotop/innotop $(TMP)/usr/bin/ install -m 0644 debian/additions/innotop/innotop.1 $(TMP)/usr/share/man/man1/ # mariadb-server install -m 0755 $(BUILDDIR)/scripts/mysqld_safe $(TMP)/usr/bin/mysqld_safe mkdir -p $(TMP)/usr/share/doc/mariadb-server-10.2/examples # We have a sane my.cnf, cruft not needed (remove my-*.cnf and config-*.cnf) # $(TMP)/usr/share/mysql/*cnf $(TMP)/usr/share/doc/mariadb-server-10.2/examples/ rm -vf $(TMP)/usr/share/mysql/my-*.cnf \ $(TMP)/usr/share/mysql/config-*.cnf \ $(TMP)/usr/share/mysql/mi_test_all* \ $(TMP)/usr/share/mysql/mysql-log-rotate \ $(TMP)/usr/share/mysql/mysql.server \ $(TMP)/usr/share/mysql/binary-configure nm -n $(BUILDDIR)/sql/mysqld |gzip -9 > $(TMP)/usr/share/doc/mariadb-server-10.2/mysqld.sym.gz install -m 0755 debian/additions/echo_stderr $(TMP)/usr/share/mysql/ install -m 0755 debian/additions/debian-start $(TMP)/etc/mysql/ install -m 0755 debian/additions/debian-start.inc.sh $(TMP)/usr/share/mysql/ install -m 0644 $(builddir)/Docs/INFO_SRC $(TMP)/usr/share/doc/mariadb-server-10.2/INFO_SRC install -m 0644 $(builddir)/Docs/INFO_BIN $(TMP)/usr/share/doc/mariadb-server-10.2/INFO_BIN # mariadb-test mv $(TMP)/usr/mysql-test $(TMP)/usr/share/mysql # For 5.0 -> 10.2 transition d=$(TMP)/usr/share/mysql-common/internal-use-only/; \ mkdir -p $$d; \ cp debian/mariadb-server-10.2.mysql.init $$d/_etc_init.d_mysql; \ cp debian/mariadb-server-10.2.mysql-server.logrotate $$d/_etc_logrotate.d_mysql-server; \ cp debian/additions/debian-start $$d/_etc_mysql_debian-start; # install AppArmor profile install -D -m 644 debian/apparmor-profile $(TMP)/etc/apparmor.d/usr.sbin.mysqld # install Apport hook install -D -m 644 debian/mariadb-server-10.2.py $(TMP)/usr/share/apport/package-hooks/source_mariadb-10.2.py autorm=debian/autorm-file; \ rm -f $$autorm; \ ignore=''; \ for p in $$MARIADB_OPTIONAL_DEBS; do \ p=mariadb-$$p; \ dh_movefiles --package=$$p || echo "../$$p*.deb" >> $$autorm; \ ignore="$$ignore --no-package=$$p"; \ done; \ sh -c "dh_movefiles $$ignore" # Build architecture-independent files here. binary-indep: build install @echo "RULES.binary-indep" dh_testdir -i dh_testroot -i dh_installdebconf -i dh_installdocs -i dh_installexamples -i dh_installmenu -i dh_installlogrotate -i dh_installinit -i dh_installcron -i dh_installman -i dh_installinfo -i dh_installlogcheck -i dh_installchangelogs -i dh_link -i dh_compress -i dh_fixperms -i dh_installdeb -i dh_perl -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i # Build architecture-dependent files here. binary-arch: build install @echo "RULES.binary-arch" dh_testdir dh_testroot dh_installdebconf -a dh_installdocs -a dh_installexamples -a dh_installmenu -a dh_installlogrotate -a --name mysql-server if [ -x /usr/bin/dh_systemd_enable -a -f debian/mariadb-server-10.2/lib/systemd/system/mariadb.service ]; then dh_systemd_enable -pmariadb-server-10.2 mariadb.service; fi if [ -x /usr/bin/dh_systemd_enable -a -f debian/mariadb-server-10.2/lib/systemd/system/mariadb@.service ]; then dh_systemd_enable --no-enable -pmariadb-server-10.2 mariadb@.service; fi # Start mysql in runlevel 19 before 20 where apache, proftpd etc gets # started which might depend on a running database server. dh_installinit -a --name=mysql -- defaults 19 21 if [ -x /usr/bin/dh_systemd_start -a -f debian/mariadb-server-10.2/lib/systemd/system/mariadb.service ]; then dh_systemd_start -pmariadb-server-10.2 --restart-after-upgrade mariadb.service; fi dh_installcron -a --name mysql-server dh_installman -a dh_installinfo -a dh_installlogcheck -a dh_installchangelogs -a dh_strip -a dh_link -a # .so muss nach .so.1.2.3 installier werden! dh_compress -a --exclude=INFO_BIN dh_fixperms -a dh_makeshlibs -a dh_makeshlibs -plibmariadbclient18 -V'libmariadbclient18 (>= 5.5.1-1)' dh_installdeb -a dh_perl -a dh_shlibdeps -a -l debian/libmariadbclient18/usr/lib -L libmariadbclient18 dh_gencontrol -a dh_md5sums -a dh_builddeb -a source diff: @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false binary: binary-indep binary-arch get-orig-source: @wget -nv -T10 -t3 \ -O /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz \ http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-$(DEB_UPSTREAM_VERSION_MAJOR_MINOR)/mysql-$(DEB_UPSTREAM_VERSION).tar.gz @tar xfz /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz -C /tmp @rm -rf /tmp/mysql-$(DEB_UPSTREAM_VERSION)/Docs @rm -rf /tmp/mysql-$(DEB_UPSTREAM_VERSION)/debian @mv /tmp/mysql-$(DEB_UPSTREAM_VERSION) /tmp/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig @cd /tmp ; tar czf $(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig @rm -f /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz @rm -rf /tmp/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig .PHONY: clean clean-patched configure build binary binary-indep binary-arch install patch unpatch # vim: ts=8