🔒 Repository is read-only – file editing is disabled.

recipes/utils/mariadb/PAGBUILD.yaml main

154 linii Raw ← Powrót
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
pkgname: mariadb
pkgver: '13.0.1'
pkgrel: '1'
pkgdesc: MariaDB is a fork and a replacement for the MySQL relational database management system.
url: 'https://www.mariadb.org/en/about/'
arch: x86_64
license:
- GPL-2.0-only
depends:
- shadow
makedepends:
- lzo
- cmake
- libevent
- boost
- libxml2
- cracklib
- pcre2
- ruby
- libaio
- openssl
- libxcrypt
source:
- 'https://repo.paganlinux.eu/sources/pagan-scripts-20260822.tar.gz'
- 'https://archive.mariadb.org/mariadb-${pkgver}/source/mariadb-${pkgver}.tar.gz'
sha256sums:
- 32e0aec88cc56a8afe0b2671debe47d19357792a6ffaffaf6e3db8a021a57072
- cc681a84cc24d2852b93c5bf5fe199084edd553ee72656e10d4b50ec476aa33c
hooks:
  post-install: |
    name=mariadb
    version=12.3.2
    release=1
    INFO="\033[1;36m"
    NORMAL="\033[0;39m"
    printf "${INFO} Create a /etc/mysql/my.cnf  by comparing it with /etc/mysql/my.cnf.example ${NORMAL}\n"
    printf "${INFO} Create a database if need by run the command: ${NORMAL}\n"
    printf "sudo  mysql_install_db --basedir=/usr --datadir=/srv/mysql --user=mysql\n"
    printf "sudo  chown -R mysql:mysql /srv/mysql\n"
    printf "${INFO} Secure MariaDB by running the command: ${NORMAL}\n"
    printf "sudo /usr/bin/mysql_secure_installation\n"
    printf "${INFO} Make sure the mysql service is running before ${NORMAL}\n"
  pre-install: "name=mariadb\nversion=12.3.2\nrelease=1\nINFO=\"\\033[1;36m\"\nNORMAL=\"\\033[0;39m\"\nif ! (getent group\
    \ mysql > /dev/null); then\n\tprintf \"${INFO}Creating mysql group${NORMAL}\\n\"\n\tgroupadd -g 40 mysql\nfi\nif ! (getent\
    \ passwd mysql > /dev/null); then\n\tprintf \"${INFO}Creating mysql user${NORMAL}\\n\"\n\tuseradd  -c 'MySQL Server' -d\
    \ /srv/mysql \\\n\t-g mysql -s /usr/bin/false -u 40 mysql\nfi\n"
build: |
  if ! (getent group mysql > /dev/null); then groupadd -g 40 mysql; fi
  if ! (getent passwd mysql > /dev/null); then useradd -c "MySQL Server" -d /srv/mysql -g mysql -s /usr/bin/false -u 40 mysql; fi

  # Oficjalny tarball release rozpakowuje się do mariadb-13.0.1
  cd ${pkgname}-${pkgver}

  sed -i "s@data/test@\${INSTALL_MYSQLTESTDIR}@g" sql/CMakeLists.txt
  if [ -f storage/columnstore/columnstore/cmake/boost.cmake ]; then
    sed -i 's/regex system/regex/' storage/columnstore/columnstore/cmake/boost.cmake
  fi

  mkdir build
  cd build
  # oficjalny tarball release zawiera submoduly (wsrep-lib, libmariadb)
  cmake -DCMAKE_BUILD_TYPE=Release         \
        -DCMAKE_INSTALL_PREFIX=/usr        \
        -DINSTALL_DOCDIR=share/doc/mariadb \
        -DINSTALL_DOCREADMEDIR=share/doc/mariadb \
        -DINSTALL_MANDIR=share/man         \
        -DINSTALL_MYSQLSHAREDIR=share/mysql \
        -DINSTALL_MYSQLTESTDIR=share/mysql/test \
        -DINSTALL_PLUGINDIR=lib/mysql/plugin \
        -DINSTALL_SBINDIR=bin              \
        -DINSTALL_SCRIPTDIR=bin            \
        -DINSTALL_SQLBENCHDIR=share/mysql/bench \
        -DINSTALL_SUPPORTFILESDIR=share/mysql \
        -DMYSQL_DATADIR=/srv/mysql         \
        -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \
        -DWITH_EXTRA_CHARSETS=complex      \
        -DWITH_EMBEDDED_SERVER=ON          \
        -DSKIP_TESTS=ON                    \
        -DWITH_SSL=system                  \
        -DTOKUDB_OK=0                      \
        .. 
  make
  make DESTDIR=${PKGDIR} install

  # Poprawione dowiązanie dla wersji mysql -> mariadb (względne)
  pushd ${PKGDIR}/usr/include/mysql
    ln -sf mariadb_version.h mysql_version.h
  popd

  install -v -dm 755 ${PKGDIR}/etc/mysql

  cat > ${PKGDIR}/etc/mysql/my.cnf.example << "EOF"
  # Begin /etc/mysql/my.cnf

  [client]
  port            = 3306
  socket          = /run/mysqld/mysqld.sock

  [mysqld]
  port            = 3306
  socket          = /run/mysqld/mysqld.sock
  datadir         = /srv/mysql
  skip-external-locking
  key_buffer_size = 16M
  max_allowed_packet = 1M
  sort_buffer_size = 512K
  net_buffer_length = 16K
  myisam_sort_buffer_size = 8M

  skip-networking
  server-id       = 1

  innodb_data_home_dir = /srv/mysql
  innodb_log_group_home_dir = /srv/mysql
  innodb_data_file_path = ibdata1:12M:autoextend
  innodb_buffer_pool_size = 128M
  innodb_log_file_size = 48M
  innodb_log_buffer_size = 16M
  innodb_flush_log_at_trx_commit = 1
  innodb_lock_wait_timeout = 50

  [mysqldump]
  quick
  max_allowed_packet = 16M

  [mysql]
  no-auto-rehash

  [isamchk]
  key_buffer = 20M
  sort_buffer_size = 20M
  read_buffer = 2M
  write_buffer = 2M

  [myisamchk]
  key_buffer_size = 20M
  sort_buffer_size = 20M
  read_buffer = 2M
  write_buffer = 2M

  [mysqlhotcopy]
  interactive-timeout

  # End /etc/mysql/my.cnf
  EOF

  # Cleanup
  rm -rf ${PKGDIR}/usr/share/mysql/test

  # Service
  cd ${SRCDIR}/pagan-scripts-20260822
  make DESTDIR=${PKGDIR} install-sysd-mysqld
package: |
  true