Bug#889625: poco: Please use mariadb directly, not mysql-defaults

2018-02-09 Thread Steve Langasek
Package: poco
Version: 1.8.0.1-1
Followup-For: Bug #889625
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu bionic ubuntu-patch

Control: retitle -1 Please fix support for MySQL

Hello,

Unfortunately, building against mariadb in distros that use MySQL as the
default has knock-on effects, because poco has reverse-dependencies that
depend on both poco and other mysql-using libraries.

The attached patch is better, fixing compatibility with current versions of
libmysqlclient.

Thanks for considering,
-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org
diff -Nru poco-1.8.0.1/debian/patches/MySQL-5.7-compatibility.patch 
poco-1.8.0.1/debian/patches/MySQL-5.7-compatibility.patch
--- poco-1.8.0.1/debian/patches/MySQL-5.7-compatibility.patch   1969-12-31 
16:00:00.0 -0800
+++ poco-1.8.0.1/debian/patches/MySQL-5.7-compatibility.patch   2018-02-09 
21:38:48.0 -0800
@@ -0,0 +1,17 @@
+Description: Find libmysqlclient instead of the obsolete libmysqlclient_r
+Author: Steve Langasek 
+Bug-Debian: https://bugs.debian.org/889625
+
+Index: poco-1.8.0.1/cmake/FindMySQL.cmake
+===
+--- poco-1.8.0.1.orig/cmake/FindMySQL.cmake
 poco-1.8.0.1/cmake/FindMySQL.cmake
+@@ -45,7 +45,7 @@
+${BINDIR32}/MySQL/lib
+$ENV{SystemDrive}/MySQL/*/lib/${libsuffixDist})
+ else (WIN32)
+-  find_library(MYSQL_LIB NAMES mysqlclient_r
++  find_library(MYSQL_LIB NAMES mysqlclient
+PATHS
+/usr/lib/mysql
+/usr/local/lib/mysql
diff -Nru poco-1.8.0.1/debian/patches/series poco-1.8.0.1/debian/patches/series
--- poco-1.8.0.1/debian/patches/series  2017-11-13 11:42:17.0 -0800
+++ poco-1.8.0.1/debian/patches/series  2018-02-09 21:33:32.0 -0800
@@ -5,3 +5,4 @@
 0006-fp-support-environments-without-hardware-floating-po.patch
 0007-Switch-FreeBSD-to-poll.patch
 0009-Link-against-dl-on-FreeBSD.patch
+MySQL-5.7-compatibility.patch


Bug#889625: poco: Please use mariadb directly, not mysql-defaults

2018-02-04 Thread Steve Langasek
Package: poco
Version: 1.8.0.1-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu bionic ubuntu-patch

Dear maintainers,

The latest version of poco is failing to build in Ubuntu, because it
build-depends on default-libmysqlclient-dev but is incompatible with the
current libmysqlclient-dev package, and Ubuntu's "default mysql" is MySQL
rather than MariaDB.

The attached patch has been uploaded to Ubuntu to fix the build by using
mariadb directly, since that is the implementation that poco is compatible
with.

The purpose of mysql-defaults is precisely to support derivatives making a
different choice for "default" mysql implementation, so if a package is not
compatible with both, it should depend directly on the one that it supports.

Please consider applying this patch in Debian.

Thanks,
-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org
diff -Nru poco-1.8.0.1/debian/control poco-1.8.0.1/debian/control
--- poco-1.8.0.1/debian/control 2017-11-11 10:58:56.0 -0800
+++ poco-1.8.0.1/debian/control 2018-02-04 22:09:19.0 -0800
@@ -5,7 +5,7 @@
 Build-Depends: debhelper (>= 10),
cmake,
libexpat1-dev,
-   default-libmysqlclient-dev,
+   libmariadbclient-dev-compat,
libpcre3-dev,
libsqlite3-dev,
libssl-dev,
@@ -20,7 +20,7 @@
 Package: libpoco-dev
 Section: libdevel
 Architecture: any
-Depends: ${misc:Depends}, libpococrypto50 (= ${binary:Version}), libpocodata50 
(= ${binary:Version}), libpocofoundation50 (= ${binary:Version}), libpocojson50 
(= ${binary:Version}), libpocodatamysql50 (= ${binary:Version}), 
libpocomongodb50 (= ${binary:Version}), libpoconet50 (= ${binary:Version}), 
libpoconetssl50 (= ${binary:Version}), libpocodataodbc50 (= ${binary:Version}), 
libpocodatasqlite50 (= ${binary:Version}), libpocoredis50 (= 
${binary:Version}), libpocoutil50 (= ${binary:Version}), libpocoxml50 (= 
${binary:Version}), libpocozip50 (= ${binary:Version}), libexpat1-dev, 
default-libmysqlclient-dev, libpcre3-dev, libsqlite3-dev, libssl-dev, zlib1g-dev
+Depends: ${misc:Depends}, libpococrypto50 (= ${binary:Version}), libpocodata50 
(= ${binary:Version}), libpocofoundation50 (= ${binary:Version}), libpocojson50 
(= ${binary:Version}), libpocodatamysql50 (= ${binary:Version}), 
libpocomongodb50 (= ${binary:Version}), libpoconet50 (= ${binary:Version}), 
libpoconetssl50 (= ${binary:Version}), libpocodataodbc50 (= ${binary:Version}), 
libpocodatasqlite50 (= ${binary:Version}), libpocoredis50 (= 
${binary:Version}), libpocoutil50 (= ${binary:Version}), libpocoxml50 (= 
${binary:Version}), libpocozip50 (= ${binary:Version}), libexpat1-dev, 
libmariadbclient-dev-compat, libpcre3-dev, libsqlite3-dev, libssl-dev, 
zlib1g-dev
 Description: C++ Portable Components (POCO) Development files
  The POCO C++ Libraries are a collection of open source C++ class libraries
  that simplify and accelerate the development of network-centric, portable