Skip to content

Create meson build system #1213

Create meson build system

Create meson build system #1213

Workflow file for this run

name: Checks
on:
push:
branches:
- main
- branch-*
paths-ignore:
- "CONTRIBUTORS"
- "NEWS"
- "README.md"
pull_request:
branches:
- main
- branch-*
types:
- opened
- synchronize
- reopened
paths-ignore:
- "CONTRIBUTORS"
- "NEWS"
- "README.md"
env:
APT_PACKAGES: |
autoconf \
automake \
docbook-xsl \
libacl1-dev \
libavahi-client-dev \
libcrack2-dev \
libdb-dev \
libdbus-1-dev \
libdbus-glib-1-dev \
libevent-dev \
libgcrypt-dev \
libglib2.0-dev \
libkrb5-dev \
libldap2-dev \
libmysqlclient-dev \
libpam0g-dev \
libssl-dev \
libtalloc-dev \
libtool \
libtool-bin \
libtracker-sparql-3.0-dev \
libwrap0-dev \
systemtap-sdt-dev \
tcpd \
tracker \
xsltproc
jobs:
build-ubuntu:
name: Ubuntu
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --assume-yes --no-install-recommends ${{ env.APT_PACKAGES }}
- name: Bootstrap
run: ./bootstrap
- name: Configure
run: |
./configure \
--enable-krbV-uam \
--enable-pgp-uam \
--with-cracklib \
--with-docbook=/usr/share/xml/docbook/stylesheet/docbook-xsl \
--with-tracker-pkgconfig-version=3.0
- name: Generate man pages
run: make html
- name: Build
run: make -j $(nproc) all
- name: Run tests
run: make check
- name: Run distribution tests
run: make distcheck
build-debian:
name: Debian
runs-on: ubuntu-22.04
container:
image: debian:oldstable
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
apt-get update
apt-get install --assume-yes --no-install-recommends \
autoconf \
automake \
default-libmysqlclient-dev \
libacl1-dev \
libavahi-client-dev \
libcrack2-dev \
libdb-dev \
libdbus-1-dev \
libdbus-glib-1-dev \
libevent-dev \
libgcrypt-dev \
libglib2.0-dev \
libkrb5-dev \
libldap2-dev \
libltdl-dev \
libpam0g-dev \
libssl-dev \
libtalloc-dev \
libtool \
libtool-bin \
libtracker-miner-2.0-dev \
libtracker-sparql-2.0-dev \
libwrap0-dev \
make \
systemtap-sdt-dev \
tcpd \
tracker
- name: Bootstrap
run: ./bootstrap
- name: Configure
run: |
./configure \
--disable-dependency-tracking \
--enable-krbV-uam \
--enable-pgp-uam \
--with-cracklib \
--with-tracker-pkgconfig-version=2.0
- name: Build
run: make -j $(nproc) all
- name: Run tests
run: make check
build-fedora:
name: Fedora
runs-on: ubuntu-22.04
container:
image: fedora:rawhide
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
dnf -y install \
automake \
avahi-devel \
cracklib-devel \
dbus-devel \
dbus-glib-devel \
glib2-devel \
krb5-devel \
libacl-devel \
libdb-devel \
libgcrypt-devel \
libtalloc-devel \
libtool \
openldap-devel \
openssl-devel \
pam-devel \
systemtap-sdt-devel \
tracker-devel
- name: Bootstrap
run: ./bootstrap
- name: Configure
run: |
./configure \
--enable-krbV-uam \
--enable-pgp-uam \
--with-cracklib \
--with-init-style=redhat-systemd \
--with-tracker-pkgconfig-version=3.0
- name: Build
run: make -j $(nproc)
- name: Run tests
run: make check
build-macos:
name: macOS
runs-on: macos-13
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: brew install automake libressl mysql talloc krb5 berkeley-db
- name: Bootstrap
run: ./bootstrap
- name: Configure
run: |
./configure \
--enable-krbV-uam \
--enable-pgp-uam \
--with-bdb=/usr/local/opt/berkeley-db \
--with-ssl-dir=/usr/local/opt/libressl
- name: Build
run: make -j $(nproc) all
- name: Run tests
run: make check
build-omnios:
name: "OmniOS"
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Build on VM"
uses: vmactions/[email protected]
with:
copyback: false
prepare: |
pkg install \
build-essential \
libtool \
pkg-config
curl -O https://pkgsrc.smartos.org/packages/SmartOS/bootstrap/bootstrap-trunk-x86_64-20230910.tar.gz
tar -zxpf bootstrap-trunk-x86_64-20230910.tar.gz -C /
echo "export PATH="/opt/local/sbin:/opt/local/bin:$PATH"" >> .profile
source .profile
/opt/local/bin/pkgin -y install \
avahi \
db5 \
gnome-tracker \
libevent \
libgcrypt \
talloc
run: |
./bootstrap
./configure \
--enable-pgp-uam \
--with-init-style=solaris \
--with-bdb=/opt/local \
--with-libgcrypt-dir=/opt/local \
--with-tracker-pkgconfig-version=3.0 \
MAKE=gmake \
PKG_CONFIG_PATH=/opt/local/lib/pkgconfig
gmake -j $(nproc)
build-freebsd:
name: "FreeBSD"
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Build on VM"
uses: vmactions/[email protected]
with:
copyback: false
prepare: |
pkg install -y \
autoconf \
automake \
avahi \
bison \
db5 \
flex \
gmake \
libevent \
libgcrypt \
libressl \
libtool \
pkgconf \
talloc \
tracker3
run: |
./bootstrap
./configure \
--enable-krbV-uam \
--enable-pgp-uam \
--with-ssl-dir=/usr/local \
--with-tracker-pkgconfig-version=3.0 \
MAKE=gmake \
PKG_CONFIG_PATH=/usr/local/libdata/pkgconfig
gmake -j $(nproc)
build-openbsd:
name: "OpenBSD"
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Build on VM"
uses: vmactions/[email protected]
with:
copyback: false
prepare: |
pkg_add -I \
autoconf-2.71 \
automake-1.16.5 \
avahi \
bison \
dbus-glib \
flex \
gcc-11.2.0p9 \
gmake \
pkgconf \
libevent \
libgcrypt \
libtalloc \
libtool \
tracker3 \
wget
wget https://download.oracle.com/berkeley-db/db-5.3.28.tar.gz
tar -xvzf db-5.3.28.tar.gz
cd db-5.3.28/build_unix
../dist/configure
make -j2
make install
run: |
export AUTOCONF_VERSION=2.71
export AUTOMAKE_VERSION=1.16
autoreconf -fi
./configure \
--with-bdb=/usr/local/BerkeleyDB.5.3 \
--with-tracker-pkgconfig-version=3.0 \
MAKE=gmake \
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
gmake -j $(nproc)
build-netbsd:
name: "NetBSD"
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Build on VM"
uses: vmactions/[email protected]
with:
copyback: false
prepare: |
pkg_add \
autoconf \
automake \
avahi \
bison \
db5 \
dbus-glib \
flex \
gcc13 \
gmake \
gnome-tracker \
libevent \
libgcrypt \
libressl \
libtool \
pkg-config \
talloc
run: |
./bootstrap
./configure \
--enable-krbV-uam \
--enable-pgp-uam \
--with-bdb=/usr/pkg \
--with-libgcrypt-dir=/usr/pkg \
--with-tracker-pkgconfig-version=3.0 \
MAKE=gmake \
PKG_CONFIG_PATH=/usr/pkg/lib/pkgconfig
gmake -j $(nproc)
build-dflybsd:
name: "DragonflyBSD"
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Build on VM"
uses: vmactions/dragonflybsd-vm@v1
with:
copyback: false
prepare: |
pkg install -y \
autoconf \
automake \
avahi \
db5 \
gmake \
libevent \
libgcrypt \
libtool \
pkgconf \
talloc \
tracker3
run: |
./bootstrap
./configure \
--with-ssl-dir=/usr/local \
--with-tracker-pkgconfig-version=3.0 \
LDFLAGS=-L/usr/local/lib \
MAKE=gmake
gmake -j2
build-solaris:
name: "Solaris"
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Build on VM"
uses: vmactions/[email protected]
with:
copyback: false
prepare: |
pkg install \
autoconf \
automake \
libtool \
pkg-config \
gcc \
libevent \
libgcrypt
wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.gz --no-check-certificate
wget https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz --no-check-certificate
tar xvf autoconf-2.71.tar.gz
tar xvf automake-1.16.5.tar.gz
cd autoconf-2.71
./configure --prefix=/usr
make
make install
cd ../automake-1.16.5
./configure --prefix=/usr
make
make install
cd ..
run: |
./bootstrap
./configure \
--enable-krbV-uam \
--enable-pgp-uam \
--without-afpstats \
MAKE=gmake \
PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig
gmake -j $(nproc)
static_analysis:
name: Static Analysis
runs-on: ubuntu-22.04
env:
# Directory where build-wrapper output will be placed
BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory
if: ${{ !github.event.pull_request.head.repo.fork }} # Run only if not originating from a fork
steps:
- uses: actions/checkout@v4
with:
# Shallow clones should be disabled for a better relevancy of analysis
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --assume-yes --no-install-recommends ${{ env.APT_PACKAGES }}
- name: Install sonar-scanner and build-wrapper
uses: SonarSource/sonarcloud-github-c-cpp@v2
- name: Run build-wrapper
run: |
mkdir -p ${{ env.BUILD_WRAPPER_OUT_DIR }}
./bootstrap
./configure \
--enable-krbV-uam \
--enable-pgp-uam \
--with-tracker-pkgconfig-version=3.0
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} make -j $(nproc) all
- name: Run sonar-scanner
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: |
sonar-scanner --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}"