[MDEV-27965] mariadb-10.7 missing dependency on libfmt Created: 2022-03-01  Updated: 2022-03-25  Resolved: 2022-03-25

Status: Closed
Project: MariaDB Server
Component/s: Packaging
Affects Version/s: 10.7
Fix Version/s: 10.7.4, 10.8.3, 10.9.1

Type: Bug Priority: Minor
Reporter: Daniel Black Assignee: Tuukka Pasanen
Resolution: Fixed Votes: 0
Labels: None


 Description   

Per ba7287df61b6efa7278b343f12bd745547f43aea libfmt needs to be >=7.0

In https://github.com/MariaDB/mariadb.org-tools/blob/master/buildbot.mariadb.org/ci_build_images/debian.Dockerfile

remove from focal/bionic

and buster



 Comments   
Comment by Tuukka Pasanen [ 2022-03-21 ]

Do you want this to be added to Debian control file or fixed on Buildbot?

Comment by Tuukka Pasanen [ 2022-03-22 ]

Libfmt is added to debian/control and it builds on Salsa-CI

Comment by Daniel Black [ 2022-03-23 ]

serg is it too late to change the debian 10.7 dependency to include libftmt >= 7.0 since it was statically compiling it anyway? For those that don't have that version, I guess we'll leave WITH_LIBFMT=auto to pull it down.

If is too late, we'll just change the autobake.sh to specify -DWITH_LIBFMT=bundled during the 10.7 build and add the dependency to 10.8+ per PR.

Comment by Sergei Golubchik [ 2022-03-23 ]

what are you trying to fix? unused build dependency? How would -DWITH_LIBFMT=bundled fix it?

Comment by Daniel Black [ 2022-03-23 ]
  • Using the distro provided libfmt version when it is there and suitable.
  • Making the debian/control ready for when downstream picks it up without them complaining of a QA violation bundling packages that are distro included.

Both are easy to do 10.8+ as they aren't GA yet. Doing it 10.7 would keep it consistent.

10.7 is use as the bb reference for packages - that I'm doing a temporary hack around so that it doesn't results in instant failures on merging the dependency https://github.com/MariaDB/mariadb.org-tools/pull/122/commits/0b16a4a15dd59a3c1760a65faf5df3c57bb75453

Comment by Daniel Black [ 2022-03-25 ]

With 13b97880bd8f6901225a1f8d6ff2eb6ba9303ceb, libfmt is now a debian dependency in 10.7+.

If we want to hide the debian dependency in 10.7 and only include it later we could with the following. I don't think its worth it as we aren't adding new functionality, just using a different existing library to implement it.

patch to fix 10.7 to bundled

$ git diff
diff --git a/debian/autobake-deb.sh b/debian/autobake-deb.sh
index b6273fd94a0..396d3b7a9c2 100755
--- a/debian/autobake-deb.sh
+++ b/debian/autobake-deb.sh
@@ -72,6 +72,7 @@ disable_libfmt()
 {
   # 0.7+ required
   sed '/libfmt-dev/d' -i debian/control
+  sed 's/-DWITH_LIBFMT=auto/-DWITH_LIBFMT=bundled/' -i debian/rules
 }
 
 architecture=$(dpkg-architecture -q DEB_BUILD_ARCH)
diff --git a/debian/rules b/debian/rules
index 89fcb465fb7..9a979728d11 100755
--- a/debian/rules
+++ b/debian/rules
@@ -103,6 +103,7 @@ endif
            -DCONC_DEFAULT_CHARSET=utf8mb4 \
            -DPLUGIN_AWS_KEY_MANAGEMENT=NO \
                        -DPLUGIN_COLUMNSTORE=NO \
+           -DWITH_LIBFMT=auto \
            -DIGNORE_AIO_CHECK=YES \
            -DWITH_URING=yes \
            -DDEB=$(DEB_VENDOR)

Generated at Thu Feb 08 09:56:59 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.