Create meson build system #1213
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }}" |