Remove Autotools build system #3008
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" | |
- "COPYING" | |
- "COPYRIGHT" | |
- "Dockerfile" | |
- "INSTALL.md" | |
- "NEWS" | |
- "README.md" | |
pull_request: | |
branches: | |
- main | |
- branch-* | |
types: | |
- opened | |
- synchronize | |
- reopened | |
paths-ignore: | |
- "CONTRIBUTORS" | |
- "COPYING" | |
- "COPYRIGHT" | |
- "Dockerfile" | |
- "INSTALL.md" | |
- "NEWS" | |
- "README.md" | |
env: | |
APT_PACKAGES: | | |
bison \ | |
docbook-xsl \ | |
flex \ | |
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 \ | |
libtalloc-dev \ | |
libtirpc-dev \ | |
libtracker-sparql-3.0-dev \ | |
libwolfssl-dev \ | |
libwrap0-dev \ | |
meson \ | |
nettle-dev \ | |
ninja-build \ | |
quota \ | |
systemtap-sdt-dev \ | |
tcpd \ | |
tracker \ | |
tracker-miner-fs \ | |
xsltproc | |
jobs: | |
build-alpine: | |
name: Alpine Linux | |
runs-on: ubuntu-22.04 | |
container: | |
image: alpine:latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
apk add \ | |
acl-dev \ | |
avahi-compat-libdns_sd \ | |
avahi-dev \ | |
bison \ | |
build-base \ | |
cracklib \ | |
cracklib-dev \ | |
cracklib-words \ | |
curl \ | |
db-dev \ | |
dbus-dev \ | |
dbus-glib-dev \ | |
flex \ | |
gcc \ | |
krb5-dev \ | |
libevent-dev \ | |
libgcrypt-dev \ | |
libtirpc-dev \ | |
libtool \ | |
libtracker \ | |
linux-pam-dev \ | |
meson \ | |
nettle-dev \ | |
ninja \ | |
openldap-dev \ | |
openrc \ | |
pkgconfig \ | |
rpcsvc-proto-dev \ | |
talloc-dev \ | |
tracker \ | |
tracker-dev \ | |
tracker-miners | |
- name: Configure | |
run: | | |
meson setup build \ | |
-Dwith-tests=true \ | |
-Dwith-init-style=openrc | |
- name: Build | |
run: meson compile -C build | |
- name: Run tests | |
run: cd build && meson test | |
- name: Install | |
run: meson install -C build | |
- name: Uninstall | |
run: ninja -C build uninstall | |
build-archlinux: | |
name: Arch Linux | |
runs-on: ubuntu-22.04 | |
container: | |
image: archlinux:latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
pacman -Sy --noconfirm \ | |
cracklib \ | |
db \ | |
gcc \ | |
meson \ | |
nettle \ | |
ninja \ | |
pkgconfig \ | |
rpcsvc-proto | |
- name: Configure | |
run: | | |
meson setup build \ | |
-Dwith-init-hooks=false \ | |
-Dwith-init-style=systemd \ | |
-Dwith-tests=true | |
- name: Build | |
run: meson compile -C build | |
- name: Install | |
run: meson install -C build | |
- name: Uninstall | |
run: ninja -C build uninstall | |
build-debian: | |
name: Debian Linux | |
runs-on: ubuntu-22.04 | |
container: | |
image: debian:latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
apt-get update | |
apt-get install --assume-yes --no-install-recommends \ | |
bison \ | |
default-libmysqlclient-dev \ | |
file \ | |
flex \ | |
gcc \ | |
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 \ | |
libpam0g-dev \ | |
libtalloc-dev \ | |
libtirpc-dev \ | |
libtracker-sparql-3.0-dev \ | |
libwolfssl-dev \ | |
libwrap0-dev \ | |
meson \ | |
nettle-dev \ | |
ninja-build \ | |
quota \ | |
systemtap-sdt-dev \ | |
tcpd \ | |
tracker \ | |
tracker-miner-fs | |
- name: Configure | |
run: | | |
meson setup build \ | |
-Dwith-tests=true \ | |
-Dwith-init-hooks=false \ | |
-Dwith-pkgconfdir-path=/etc/netatalk | |
- name: Build | |
run: meson compile -C build | |
- name: Run tests | |
run: cd build && meson test | |
- name: Install | |
run: meson install -C build | |
- name: Uninstall | |
run: ninja -C build uninstall | |
build-fedora: | |
name: Fedora Linux | |
runs-on: ubuntu-22.04 | |
container: | |
image: fedora:latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
dnf --setopt=install_weak_deps=False --assumeyes install \ | |
avahi-devel \ | |
bison \ | |
chkconfig \ | |
cracklib-devel \ | |
dbus-devel \ | |
dbus-glib-devel \ | |
flex \ | |
glib2-devel \ | |
krb5-devel \ | |
libacl-devel \ | |
libdb-devel \ | |
libgcrypt-devel \ | |
libtalloc-devel \ | |
meson \ | |
nettle-devel \ | |
ninja-build \ | |
openldap-devel \ | |
openssl-devel \ | |
pam-devel \ | |
perl \ | |
quota-devel \ | |
systemd \ | |
systemtap-sdt-devel \ | |
tracker \ | |
tracker-devel | |
- name: Configure | |
run: | | |
meson setup build \ | |
-Dwith-tests=true \ | |
-Dwith-init-hooks=false \ | |
-Dwith-init-style=redhat-systemd | |
- name: Build | |
run: meson compile -C build | |
- name: Run tests | |
run: cd build && meson test | |
- name: Install | |
run: sudo meson install -C build | |
- name: Uninstall | |
run: sudo ninja -C build uninstall | |
build-opensuse: | |
name: openSUSE Linux | |
runs-on: ubuntu-22.04 | |
container: | |
image: opensuse/tumbleweed:latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
zypper in -y \ | |
file \ | |
gawk \ | |
gcc \ | |
meson \ | |
ninja \ | |
pkg-config \ | |
systemd \ | |
wget \ | |
bison \ | |
cracklib-devel \ | |
dbus-1-devel \ | |
flex \ | |
libacl-devel \ | |
libavahi-devel \ | |
libdb-4_8-devel \ | |
libevent-devel \ | |
libgcrypt-devel \ | |
libmariadb-devel \ | |
libnettle-devel \ | |
libtalloc-devel \ | |
libtdb-devel \ | |
libtracker-sparql-3_0-0 \ | |
openldap2-devel \ | |
pam-devel \ | |
systemtap-sdt-devel \ | |
tcpd-devel \ | |
tracker | |
- name: Configure | |
run: | | |
meson setup build \ | |
-Dwith-tests=true \ | |
-Dwith-init-hooks=false \ | |
-Dwith-init-style=suse-systemd | |
- name: Build | |
run: meson compile -C build | |
- name: Run tests | |
run: cd build && meson test | |
- name: Install | |
run: meson install -C build | |
- name: Uninstall | |
run: ninja -C build uninstall | |
build-ubuntu: | |
name: Ubuntu Linux | |
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: Configure | |
run: | | |
meson setup build \ | |
-Dwith-tests=true \ | |
-Dwith-manual=true \ | |
-Dwith-init-hooks=false | |
- name: Build and generate manual pages | |
run: meson compile -C build | |
- name: Run tests | |
run: cd build && meson test | |
- name: Run distribution tests | |
run: cd build && meson dist | |
- name: Install | |
run: sudo meson install -C build | |
- name: Start netatalk | |
run: sudo systemctl start netatalk && sleep 2 && asip-status localhost | |
- name: Stop netatalk | |
run: sudo systemctl stop netatalk | |
- name: Uninstall | |
run: sudo ninja -C build uninstall | |
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/[email protected] | |
with: | |
copyback: false | |
usesh: true | |
prepare: | | |
pkg install -y \ | |
avahi \ | |
bison \ | |
db5 \ | |
krb5-devel \ | |
libevent \ | |
libgcrypt \ | |
meson \ | |
nettle \ | |
openldap26-client \ | |
perl5 \ | |
pkgconf \ | |
py39-gdbm \ | |
py39-sqlite3 \ | |
py39-tkinter \ | |
talloc \ | |
tracker3 | |
run: | | |
set -e | |
meson setup build | |
meson compile -C build | |
meson install -C build | |
ninja -C build uninstall | |
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 \ | |
avahi \ | |
bison \ | |
db5 \ | |
flex \ | |
libevent \ | |
libgcrypt \ | |
libtool \ | |
meson \ | |
nettle \ | |
openldap26-client-2.6.8 \ | |
perl5 \ | |
pkgconf \ | |
talloc \ | |
tracker3 | |
run: | | |
set -e | |
meson setup build \ | |
-Dpkg_config_path=/usr/local/libdata/pkgconfig | |
meson compile -C build | |
meson install -C build | |
/etc/rc.d/netatalk start | |
sleep 2 | |
/usr/local/bin/asip-status localhost | |
/etc/rc.d/netatalk stop | |
/etc/rc.d/netatalk disable | |
ninja -C build uninstall | |
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/netbsd-vm@v1 | |
with: | |
release: "9.4" | |
copyback: false | |
prepare: | | |
pkg_add \ | |
avahi \ | |
bison \ | |
db5 \ | |
dbus-glib \ | |
flex \ | |
gcc13 \ | |
gnome-tracker \ | |
libevent \ | |
libgcrypt \ | |
meson \ | |
nettle \ | |
p5-Net-DBus \ | |
perl \ | |
pkg-config \ | |
talloc | |
run: | | |
set -e | |
meson setup build \ | |
-Dpkg_config_path=/usr/pkg/lib/pkgconfig \ | |
-Dwith-dtrace=false | |
meson compile -C build | |
meson install -C build | |
service netatalk onestart | |
sleep 2 | |
asip-status localhost | |
service netatalk onestop | |
ninja -C build uninstall | |
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/openbsd-vm@v1 | |
with: | |
copyback: false | |
prepare: | | |
pkg_add -I \ | |
avahi \ | |
bison \ | |
dbus-glib \ | |
db-4.6.21p7v0 \ | |
gcc-11.2.0p11 \ | |
libevent \ | |
libgcrypt \ | |
libnettle \ | |
libtalloc \ | |
meson \ | |
openldap-client-2.6.7v0 \ | |
openpam \ | |
pkgconf \ | |
tracker3 | |
run: | | |
set -e | |
meson setup build \ | |
-Dpkg_config_path=/usr/local/lib/pkgconfig | |
meson compile -C build | |
meson install -C build | |
rcctl -d start netatalk | |
sleep 2 | |
asip-status localhost | |
rcctl -d stop netatalk | |
rcctl -d disable netatalk | |
ninja -C build uninstall | |
build-macos: | |
name: macOS | |
runs-on: macos-latest | |
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 berkeley-db libtool meson mysql talloc | |
- name: Configure | |
run: | | |
meson setup build \ | |
-Dwith-tests=true | |
- name: Build | |
run: meson compile -C build | |
- name: Run tests | |
run: cd build && meson test | |
- name: Install | |
run: sudo meson install -C build | |
- name: Start netatalk | |
run: sudo netatalkd start && sleep 2 && asip-status localhost | |
- name: Stop netatalk | |
run: sudo netatalkd stop | |
- name: Uninstall | |
run: sudo ninja -C build uninstall | |
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 \ | |
pkg-config | |
curl -O https://pkgsrc.smartos.org/packages/SmartOS/bootstrap/bootstrap-trunk-x86_64-20240116.tar.gz | |
tar -zxpf bootstrap-trunk-x86_64-20240116.tar.gz -C / | |
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
pkgin -y install \ | |
avahi \ | |
dbus-glib \ | |
gnome-tracker \ | |
libevent \ | |
libgcrypt \ | |
meson \ | |
nettle \ | |
talloc | |
run: | | |
set -e | |
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
meson setup build \ | |
-Dpkg_config_path=/opt/local/lib/pkgconfig \ | |
-Dwith-ldap-path=/opt/local \ | |
-Dwith-pgp-uam=true | |
meson compile -C build | |
meson install -C build | |
svcadm enable svc:/network/netatalk:default | |
sleep 2 | |
/usr/local/bin/asip-status localhost | |
svcadm disable svc:/network/netatalk:default | |
ninja -C build uninstall | |
build-solaris: | |
if: false | |
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 \ | |
bison \ | |
flex \ | |
gcc \ | |
libevent \ | |
libgcrypt \ | |
pkg-config | |
pip install meson | |
run: | | |
set -e | |
meson setup build \ | |
-Dpkg_config_path=/usr/lib/amd64/pkgconfig \ | |
-Dwith-pgp-uam=true | |
meson compile -C build | |
meson install -C build | |
svcadm enable svc:/network/netatalk:default | |
sleep 2 | |
/usr/local/bin/asip-status localhost | |
svcadm disable svc:/network/netatalk:default | |
ninja -C build uninstall | |
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: | |
# Check out commit history for all branches and tags, 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 }} | |
meson setup build \ | |
-Dwith-krbV-uam=true \ | |
-Dwith-pgp-uam=true | |
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} meson compile -C build | |
- name: Run sonar-scanner | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
run: | | |
sonar-scanner --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" |