Commit graph

228 commits

Author SHA1 Message Date
Marko Mäkelä
3f9f5ca48e MDEV-33447: libpmem is not available in RHEL 8
Because the Red Hat Enterprise Linux 8 core repository does not include
libpmem, let us implement the necessary subset ourselves.

pmem_persist(): Implement for 64-bit x86, ARM, POWER, RISC-V, Loongarch
in a way that should be compatible with the https://github.com/pmem/pmdk/
implementation of pmem_persist().

The CMake option WITH_INNODB_PMEM can be used for enabling or disabling
this interface at compile time. By default, it is enabled on all applicable
systems that are covered by our CI system.

Note: libpmem had not been previously enabled for Loongarch in our
Debian packaging. It was enabled for RISC-V, but we will not enable it
by default on RISC-V or Loongarch because we lack CI coverage.

The generated code for x86_64 was reviewed and tested on two
Intel implementations: one that only supports clflush, and
another that supports both clflushopt and clwb.

The generated machine code was also reviewed on https://godbolt.org
using various compiler versions. Godbolt helpfully includes an option
to compile to binary code and display the encoding, which was
useful on POWER.

Reviewed by: Vladislav Vaintroub
2024-04-19 10:54:08 +03:00
Marko Mäkelä
64cce8d5bf Merge 10.6 into 10.11 2024-02-14 16:12:53 +02:00
Daniel Black
c0f6c4bd40 MDEV-28419 subsequent runs of debian/autobake-deb.sh are not idempotent
While a -f debian/mariadb-plugin-columnstore.install idempotent check
existed, the tying of the install file to the control file has some
weaknesses.

Used sed as an alternative to replace the debian/control
mariadb-plugin-columnstore package defination and replace it with the
one from the columnstore submodule.
2024-02-13 14:01:46 +11:00
Daniel Black
bc2f155019 Deb autobake: ready with noble (Ubuntu 24.04)
Still not ready to support mariadb-plugin-rocks by distro.

pmem (despite its EOL on Intel) and liburing are available on Noble
(24.04). Its unclear why they where disabled in lunar/jammy. Too
unstable to change now so introduce to 24.04 and see how it goes
during testing.
2024-01-23 10:09:00 +11:00
Marko Mäkelä
90d968dab9 Merge 10.6 into 10.11 2023-11-20 10:08:19 +02:00
Tuukka Pasanen
c11610f590 MDEV-32689: Remove Ubuntu Bionic
Commit Removed Ubuntu Bionic from
debian/autobake-debs.sh as it's not used
anymore to build official MariaDB images
2023-11-14 14:02:22 +00:00
Daniel Black
649fdd9d0b deb autobake - add trixie 2023-08-14 17:11:38 +10:00
Marko Mäkelä
4ee040420a MariaDB 10.11.3 release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEF39AEP5WyjM2MAMF8WVvJMdM0dgFAmRbiYAACgkQ8WVvJMdM
 0djHZxAA2jdls7mAksXc9cSmV01ktyLSn5wTVNfhst88svqQnziiNGiuZ67hpXaa
 vQz5KgNm/5/5rz0SxgDB4dJGT+XcGyKEmt/3Adt1qGLic8VgDE+j2Cke3Xcr5oqT
 iulHLJppUv//kM+fNKh7q3DD51OXwzqtcmkHHbJmeYK9QTCj2PPUxk5k5PIkb9ej
 /IO1cgIuGWuapoT9IcM+9xBQhsIfqJ6v2Ut8XvSW9KzMh+2bwzkkPNksowfWMgxB
 SCqZU6iM5/iOh22rF1YYEnxQRZB9U8QIxjjs+eSdJJWMz0YCnoFdoAThuCvafdWS
 YfgvF52q8n+TLrAr3a5lpetKqqCprh1w7EJXMHqRM8eE/qHwhkfYMQ3HB3iyK+Iv
 IS6rGcDYGGH5io0p1V97ZnrY6mjFcl8dJWi8wd/ux3lpAUwV1sx+mnIrLW+vLOY5
 tCAUWhkWgCz8DvMIXgRXRdJKX8d5KxXwbC714hIb8+WG8WXptnznNUCjA8+A7uHs
 d0tH2z3rhM7mH0RUIkOjzbxZ9N9jCFTLyhCIA//m7AeVZMt49jMryeXwkRoqepyr
 DUp9QJ9AF0q5JZMGpmT/GBGdJbAFeDomUzicvMQGvW9Tkk0MmxFG+KDt2sw8YthW
 +ko7S+Tt3vw7FbdSe+J5FwAiYvLPF2ReJuJE8L5Iwxpu0yOdkrI=
 =stnO
 -----END PGP SIGNATURE-----

Merge mariadb-10.11.3 into 10.11
2023-05-11 09:53:18 +03:00
Daniel Black
de8567559e deb: autobake - add mantic
lunar and manic don't need lsb-base any more.

Add a consistent style of fall though, and add_lsb_base_depends
is called once on the last fall through value.

Remove impish (EOL).
2023-05-08 18:14:41 +10:00
Oleksandr Byelkin
06d03dcdd3 Merge branch '10.10' into 10.11 2023-05-03 21:05:34 +02:00
Oleksandr Byelkin
13a294a2c9 Merge branch '10.9' into 10.10 2023-05-03 14:09:13 +02:00
Oleksandr Byelkin
cf56f2d7e8 Merge branch '10.8' into 10.9 2023-05-03 13:27:59 +02:00
Oleksandr Byelkin
f0f1f2de0e Merge branch '10.6' into 10.8 2023-05-03 11:33:57 +02:00
Tuukka Pasanen
5f3a4beb9d MDEV-31045: Update debian/rules to be in sync to MariaDB LTS 10.6
To make sure that PMEM problem does not happen again sync
10.9 and up debian/rules to make sure that they are not making
anymore problems with autobake-debs.sh
2023-05-02 16:37:01 +10:00
Marko Mäkelä
7b17e0d4ac Merge 10.10 into 10.11 2023-04-27 14:03:24 +03:00
Marko Mäkelä
4f16e95310 Merge 10.9 into 10.10 2023-04-27 13:36:36 +03:00
Marko Mäkelä
436d8ef6b5 Merge 10.8 into 10.9 2023-04-27 10:03:26 +03:00
Marko Mäkelä
bbd261bb2e Merge 10.6 into 10.8 2023-04-27 09:53:56 +03:00
Tuukka Pasanen
c5e50c48bb MDEV-30837: Remove usage of AWK in autobake-debs.sh
AWK is used in autobake-debs.sh for printing information
about created DEB packages.

This can be rewrite with bash inner commands read and echo.
2023-04-27 15:09:01 +10:00
Marko Mäkelä
52f6f364d9 Merge 10.10 into 10.11 2023-04-26 18:31:50 +03:00
Marko Mäkelä
ce6616aa28 Merge 10.9 into 10.10 2023-04-26 18:31:03 +03:00
Marko Mäkelä
e3f6e1c92e Merge 10.8 into 10.9 2023-04-26 17:48:13 +03:00
Marko Mäkelä
3c25077899 Merge 10.6 into 10.8 2023-04-24 15:59:23 +03:00
Daniel Black
3b85e3dcc1 MDEV-30687: Make small facelifting to autobake-debs.sh (fix)
Appending to 'eatmydata' will obviously cause an executable that
doesn't exist. Use an array to create the entire executable.

Also while we are at it, check the fakeroot actually works before
using it.
2023-04-17 19:17:58 +10:00
Marko Mäkelä
656c2e18b1 Merge 10.10 into 10.11 2023-04-14 13:08:28 +03:00
Marko Mäkelä
a009280e60 Merge 10.9 into 10.10 2023-04-14 12:24:14 +03:00
Marko Mäkelä
44281b88f3 Merge 10.8 into 10.9 2023-04-14 11:32:36 +03:00
Marko Mäkelä
10147af9e5 Merge 10.6 into 10.8 2023-04-14 09:48:22 +03:00
Tuukka Pasanen
f2fde3f667 MDEV-30687: Make small facelifting to autobake-debs.sh
Currently autobake-debs.sh does not pass shellcheck
it fails making errors:

 * SC1091 when using shellcheck -x it needs to know where to
   find ./VERSION. As this is not needed we just specify it
   as /dev/null as mentioned in shellcheck documentation:
   https://www.shellcheck.net/wiki/SC1091

 * SC2086 make sure that there is no globbing or word splitting
   in dpkg-buidpackage string. This not big problem or about to happen
   but now extra parameter parsing is more Bash compliant with
   using array.
   Change BUILDPACKAGE_PREPEND to BUILDPACKAGE_DPKGCMD which holds
   'eatmydata' if it's available and needed 'dpkg-buildpackage'
   https://www.shellcheck.net/wiki/SC2086

Fix small script indentation problem.
2023-04-14 07:51:51 +08:00
Tuukka Pasanen
1e4eef5c17 MDEV-31045: Fix regression building on Ubuntu 18.04
Github PR #2424 regressed Ubuntu 18.04 building
other than x86_64 machines. Architecture that are
impacted are PPC64 and ARM64.
This was because of changes in debian/rules file
which caused removing dependency to package 'libpmem-dev'
and CMake which '-DWITH_PMEM' removing not working
correctly. Package libpmem-dev was removed but
it still required to have PMEM with CMake which.
Commit make change that -DWITH_PMEM is correctly removed
if it's not wanted.
2023-04-13 21:49:02 +08:00
Tuukka Pasanen
e68f0f0986 MDEV-30502: Change lsb-base to sysvinit-utils
Scripts of lsb-base package are moved to sysvinit-utils
in Debian 12.

Commit removes deprecated lsb-base as dependency.

It also make change autobake-debs.sh to
be sure that there is backward compatibility
with distro version that still use lsb-base:
 * Debian 10 and 11
 * Ubuntu 18.04, 20.04, 22.04 and 22.10
2023-04-01 23:25:23 -07:00
Marko Mäkelä
1fd0099839 Merge 10.10 into 10.11 2023-02-16 11:41:18 +02:00
Marko Mäkelä
0d55914d96 Merge 10.8 into 10.9 2023-02-16 10:25:34 +02:00
Marko Mäkelä
dbab3e8d90 Merge 10.6 into 10.8 2023-02-10 13:43:53 +02:00
Marko Mäkelä
6aec87544c Merge 10.5 into 10.6 2023-02-10 13:03:01 +02:00
Tuukka Pasanen
a9eb272f91 MDEV-30534: Remove EOL Debian version 9 (stretch) from autobake-deb.sh
Debian 9 has EOL July 6th, 2020. This commit cleans it up
from debian/autobake-deb.sh which is used to build official
versions of MariaDB
2023-02-08 15:31:59 +11:00
Daniel Black
f879ee9ca0 deb: add lunar 2023-01-13 20:27:15 +11:00
Otto Kekäläinen
70be59913c Deb: Misc fixes for 10.11 series
- Prefer Breaks+Replaces over Conflicts+Replaces in debian/control.

- Clean away conflict/break/replace with self as it either has no
  effect or harmfully prevents upgrades to self (packages from this
  source version).

- Remove references to mariadb-server-10.11 as the package names no
  longer have versions and thus such references are unnecessary cruft.

- Apply 'wrap-and-sort -av' and minor typo fixing.

- Extend Salsa-CI to test for upgrades from 10.9 and 10.10 to 10.11.

- Add minimal required new Lintian overrides so Salsa-CI would not
  fail on Lintian.
2023-01-06 19:20:00 +11:00
Marko Mäkelä
b35a048ece Merge 10.8 into 10.9 2022-11-21 10:25:38 +02:00
Marko Mäkelä
d5332086d7 Merge 10.6 into 10.7 2022-11-17 09:19:32 +02:00
Otto Kekäläinen
f4adf35474
Misc Debian/Salsa-CI fixes (#2299)
* Deb: Handle codename 'n/a' from Debian Sid properly and autobake-deb cleanup

This fixes autobake-deb.sh builds on Sid which was visible as 4 failing
build steps on Salsa-CI.

- In Sid the LSBNAME might evaluate to 'n/a', so accept it as 'Sid' to
  fix builds that failed with error:

    Error - unknown release codename n/a

- Refactor list to have Ubuntu versions first, then Debian, and as last
  the special case of Debian Sid

- Fix minor syntax issues detected by Shellcheck

Also remove useless DEB_HOST_ARCH_CPU check from debian/rules:
* It was never in effect as the 'sed' in autobake-deb.sh cleared it anyway
* The variable name was wrong and always empty
* If variable would have been correct, logic was still reversed

- Define 3h timeout as the default 1h timeout on Gitlab.com (and others)
  is usually not enough for initial (uncached) MariaDB builds.

- Replace Buster to Bookworm/Sid upgrade testing with upgrade inside Buster
  testing as direct upgrades from Stretch to Bullseye and Buster to Bookworm
  are no longer possible due to:

    Bug#993755: libcrypt.so.1: cannot open shared object file when
    upgrading from Stretch to Sid (https://bugs.debian.org/993755)

- Stop ignoring MariaDB.org 10.6 to this version upgrade testing failures
  to reveal bug MDEV-28640. Originally this step was failing as the uring
  dependencies in upstream builders lagged behind and there was nothing
  that needed work, only time time to resolve. Now there is an actual bug
  in packaging that should be visible as a CI failure.

- Stop testing for 'service mysql status' on systems that upgraded from
  MySQL 8.0 to MariaDB.org vended 10.6. Due to some unidentified debian/control
  changes in 10.6 on upstream the upgrade is no longer compatible in
  a way that would maintain the init.d script with name 'mysql'.

- Fix typos where mergers had changed occurrences of 10.5 to 10.6 while
  they intentionally need to be exactly 10.5, otherwise the meaning
  changes.

- Align autopkgtest code with downstream official Debian packaging one.
  This is change is safe on a stable branch because is only affects builds
  and testing, not any actual usage of MariaDB 10.6.

- Standardize on using capitalized 'YES' in CMake build options
  (instead of 'yes' or mixed case)

- Add some comments to better document debian/rules

- Fix typo in Lintian overrides

Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/mariadb-10.6/+bug/1970634
MariaDB ticket: https://jira.mariadb.org/browse/MDEV-25633

When built with LTO on Ubuntu, MariaDB does not catch an exception when
the uring initialization fails due to a low RLIMIT_MEMLOCK value.

This commit amends the commit 0609b34555
to be identical to the one done downstream in Debian:
8d20ca979c

This way both the inline comments and 'git blame' for this section will
show properly why this is needed, and the fix is one that is fully tested
on Debian and Ubuntu.

Also having this section fully identical in upstream MariaDB and downstream
Debian will make the packaging maintenance easier as 'diff` runs on this
file will not flag this as a difference anymore.

In MDEV-28640 the init script failed to stop/start the MariaDB server
due to missing mysqladmin on the system. This was however very hard to
spot from the console output.

Add an explicit check for the binary the script depends on, and fail
verbosely if the dependency is missing.
2022-11-11 07:51:34 +00:00
Nayuta Yanagisawa
87d82dd83f Merge 10.8 into 10.9 2022-09-09 05:06:34 +09:00
Nayuta Yanagisawa
3133435134 Merge 10.6 into 10.7 2022-09-08 21:54:45 +09:00
Vladislav Vaintroub
7d63f21693 Merge branch '10.5' into 10.6
# Conflicts:
#	sql/sql_connect.cc
#	sql/threadpool_common.cc
2022-09-07 16:39:30 +02:00
Daniel Black
dd092bc6eb
Deb: add kinetic to autobake (#2250) 2022-09-07 10:58:55 +01:00
Marko Mäkelä
404d4820af Merge 10.8 into 10.9 2022-06-28 10:59:01 +03:00
Marko Mäkelä
ac0af4ec4a Merge 10.6 into 10.7 2022-06-28 08:34:12 +03:00
Marko Mäkelä
87bd79b1e7 Merge 10.5 into 10.6 2022-06-27 10:59:31 +03:00
Marko Mäkelä
ea847cbeaf Merge 10.4 into 10.5 2022-06-27 10:51:20 +03:00
Tuukka Pasanen
c168e16782 MDEV-28628: Change current Debian package revision scheme
Current Debian package revision scheme when using
debian/autobake-deb.sh script is:
  '1:VERSION+maria~LSBNAME'

For example if VERSION can be like 10.6.8 and LSBNAME is
buster then version and revision is:
  '1:10.6.8+maria~buster'
Which can lead to problem as distro code names can be lexical unordered.

For example Debian LSBNAME's can be:
  Codename Buster is Debian version 10
  Codename Bookworm is Debian version 11

This happens because in ASCII table
Buster first two digits are 'Bu' and they are in hex 0x42 and 0x75
and Bookworm first digits 'Bo' are they are in hex 0x42 and 0x6F
When apt is upgrading it  means that:
  1:10.6.8+maria~buster is bigger than 1:10.6.8+maria~bookworm
and that leads to problems in dist-upgrade process

To solve problem revision format is changed to:
  '1:VERSION+maria~(deb|ubu)LSBVERSION'

Example for Debian 11 is now:
  1:10.6.8+maria~deb11

and for Ubuntu 22.04 is now:
  1:10.6.8+maria~ubu2204

There are new Variables
 * VERSION which contains whole version string
 * LSBVERSION which contains LSB version of distro
 * LSBID which contains LSB ID (Debian or Ubuntu)
added to debian/autobake-deb.sh.

Also CODENAME is change to LSBNAME as it's more declaritive
2022-06-14 10:44:15 +10:00