Hi Otto,

On Mon, Sep 28, 2020 at 10:24:16PM +0300, Otto Kekäläinen wrote:
> > While looking into it anyway, I was wondering why you are running cmake
> > directly instead of running it through dh_auto_configure. Can you shed
> > light on that question? Using dh_auto_configure would automatically pass
> > -DCMAKE_SYSTEM_NAME=..., which is required for cross compiling mariadb.
> 
> The cmake line has been manually defined in the debian/rules files
> since the beginning of time and mysql-5.0 packaging or something.
> There are so many customizations – I don't know if we can dismantle
> it.

Yeah, but that seems like "historical cruft" to me. I'm attaching a
patch that makes it use dh_auto_configure. Unfortunately, when I build
it with that patch, I get test suite failures about "debug_sync" being
unknown. I'm not sure whether that is caused by my build environment or
the change. Can you make that work?

For amd64, the generated cmake invocation becomes:

        install -d builddir
        cd builddir && cmake -DCMAKE_INSTALL_PREFIX=/usr 
-DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc 
-DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON 
-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON "-GUnix Makefiles" 
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu 
"-DCOMPILATION_COMMENT=Debian unstable " -DMYSQL_SERVER_SUFFIX=-1.1 
-DSYSTEM_TYPE=debian-linux-gnu -DBUILD_CONFIG=mysql_release -DWITH_SSL=bundled 
-DPLUGIN_TOKUDB=NO -DPLUGIN_CASSANDRA=NO -DPLUGIN_AWS_KEY_MANAGEMENT=NO 
-DPLUGIN_COLUMNSTORE=NO -DWITH_INNODB_SNAPPY=ON -DDEB=Debian ..

The stuff that comes before -DCOMPILATION_COMMENT=... is inserted by
debhelper.

Helmut
diff --minimal -Nru mariadb-10.5-10.5.5/debian/changelog 
mariadb-10.5-10.5.5/debian/changelog
--- mariadb-10.5-10.5.5/debian/changelog        2020-09-25 18:56:59.000000000 
+0200
+++ mariadb-10.5-10.5.5/debian/changelog        2020-09-28 22:22:58.000000000 
+0200
@@ -1,3 +1,10 @@
+mariadb-10.5 (1:10.5.5-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Use dh_auto_configure.
+
+ -- Helmut Grohne <hel...@subdivi.de>  Mon, 28 Sep 2020 22:22:58 +0200
+
 mariadb-10.5 (1:10.5.5-1) unstable; urgency=medium
 
   * New upstream version 10.5.5 (Closes: #968895)
diff --minimal -Nru mariadb-10.5-10.5.5/debian/rules 
mariadb-10.5-10.5.5/debian/rules
--- mariadb-10.5-10.5.5/debian/rules    2020-09-17 22:17:28.000000000 +0200
+++ mariadb-10.5-10.5.5/debian/rules    2020-09-28 22:22:57.000000000 +0200
@@ -22,9 +22,6 @@
 RELEASE := $(shell lsb_release -r -s) # Use changelog based DEB_DISTRIBUTION 
instead?
 TMP:=$(CURDIR)/debian/tmp
 
-CC := $(DEB_HOST_GNU_TYPE)-gcc
-CXX := $(DEB_HOST_GNU_TYPE)-g++
-
 # According to Debian Policy version 4.2.0 builds should be as verbose as
 # possible unless 'terse' is specifically passed.
 ifeq (,$(filter terse,$(DEB_BUILD_OPTIONS)))
@@ -94,18 +91,14 @@
        # Remove -DWITH_SSL=bundle if you want to use system OpenSSL, otherwise
        # the server will use YaSSL and Connector/C will use GnuTLS.
        # Don't build ColumnStore, not mature enough for Debian yet.
-       mkdir -p $(BUILDDIR) && cd $(BUILDDIR) && \
-       sh -c  
'PATH=$${MYSQL_BUILD_PATH:-"/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin"} \
-               CC=${CC} \
-               CXX=${CXX} \
-               NO_UPDATE_BUILD_VERSION=1 \
-           cmake -DCMAKE_INSTALL_PREFIX=/usr \
+       
PATH=$${MYSQL_BUILD_PATH:-"/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin"} \
+           NO_UPDATE_BUILD_VERSION=1 \
+           dh_auto_configure --builddirectory=$(BUILDDIR) -- \
            $(CMAKEFLAGS) \
            $(if $(filter 
$(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)),,-DIMPORT_EXECUTABLES=$(CURDIR)/builddir-native/import_executables.cmake)
 \
            -DCOMPILATION_COMMENT="$(DEB_VENDOR) $(RELEASE)" \
            -DMYSQL_SERVER_SUFFIX="-$(DEB_VERSION_REVISION)" \
            -DSYSTEM_TYPE="debian-$(DEB_HOST_GNU_SYSTEM)" \
-           -DCMAKE_SYSTEM_PROCESSOR=$(DEB_HOST_ARCH) \
            -DBUILD_CONFIG=mysql_release \
            -DWITH_SSL=bundled \
            -DPLUGIN_TOKUDB=NO \
@@ -113,7 +106,7 @@
            -DPLUGIN_AWS_KEY_MANAGEMENT=NO \
            -DPLUGIN_COLUMNSTORE=NO \
            -DWITH_INNODB_SNAPPY=ON \
-           -DDEB=$(DEB_VENDOR) ..'
+           -DDEB=$(DEB_VENDOR)
 
 # This is needed, otherwise 'make test' will run before binaries have been 
built
 override_dh_auto_build:

Reply via email to