Skip to content

GitHub CI: Build on macOS with openldap libraries #4378

GitHub CI: Build on macOS with openldap libraries

GitHub CI: Build on macOS with openldap libraries #4378

Workflow file for this run

name: Builds
on:
push:
branches:
- main
- branch-*
paths-ignore:
- "**.md"
- "**/COPYING"
- "**/README*"
- "contrib/webmin_module/**"
- "CONTRIBUTORS"
- "COPYRIGHT"
- "Dockerfile*"
- "NEWS"
pull_request:
branches:
- main
- branch-*
types:
- opened
- synchronize
- reopened
paths-ignore:
- "**.md"
- "**/COPYING"
- "**/README*"
- "contrib/webmin_module/**"
- "CONTRIBUTORS"
- "COPYRIGHT"
- "Dockerfile*"
- "NEWS"
jobs:
build-alpine:
name: Alpine Linux
runs-on: ubuntu-latest
timeout-minutes: 9
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 \
cups \
cups-dev \
curl \
db-dev \
dbus-dev \
docbook-xsl \
flex \
gcc \
krb5-dev \
libevent-dev \
libgcrypt-dev \
libtirpc-dev \
libtracker \
libxslt \
linux-pam-dev \
mariadb-dev \
meson \
ninja \
openldap-dev \
openrc \
perl \
pkgconfig \
rpcsvc-proto-dev \
talloc-dev \
tracker \
tracker-dev \
tracker-miners \
unicode-character-database
- name: Configure
run: |
meson setup build \
-Dbuildtype=release \
-Dwith-appletalk=true \
-Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d \
-Dwith-tests=true
- name: Build
run: meson compile -C build
- name: Run integration tests
run: cd build && meson test && cd ..
- name: Install
run: meson install -C build
- name: Check netatalk capabilities
run: |
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
- name: Uninstall
run: ninja -C build uninstall
build-archlinux:
name: Arch Linux
runs-on: ubuntu-latest
timeout-minutes: 9
container:
image: archlinux:latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
pacman -Sy --noconfirm \
avahi \
bison \
cmark-gfm \
cracklib \
cups \
db \
docbook-xsl \
flex \
gcc \
libxslt \
localsearch \
mariadb-clients \
meson \
ninja \
perl \
pkgconfig \
rpcsvc-proto \
talloc \
tinysparql \
unicode-character-database
- name: Configure
run: |
meson setup build \
-Dbuildtype=release \
-Dwith-appletalk=true \
-Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d \
-Dwith-docbook-path=/usr/share/xml/docbook/xsl-stylesheets-1.79.2 \
-Dwith-init-hooks=false \
-Dwith-tests=true
- name: Build
run: meson compile -C build
- name: Run integration tests
run: cd build && meson test && cd ..
- name: Install
run: meson install -C build
- name: Check netatalk capabilities
run: |
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
- name: Uninstall
run: ninja -C build uninstall
build-debian:
name: Debian Linux
runs-on: ubuntu-latest
timeout-minutes: 9
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 \
cmark-gfm \
cracklib-runtime \
docbook-xsl \
file \
flex \
libacl1-dev \
libavahi-client-dev \
libcrack2-dev \
libcups2-dev \
libdb-dev \
libdbus-1-dev \
libevent-dev \
libgcrypt20-dev \
libglib2.0-dev \
libkrb5-dev \
libldap2-dev \
libmariadb-dev \
libpam0g-dev \
libtalloc-dev \
libtirpc-dev \
libtracker-sparql-3.0-dev \
libwrap0-dev \
meson \
ninja-build \
quota \
systemtap-sdt-dev \
tcpd \
tracker \
tracker-miner-fs \
unicode-data \
xsltproc
- name: Configure
run: |
meson setup build \
-Dbuildtype=release \
-Dwith-appletalk=true \
-Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d \
-Dwith-init-hooks=false \
-Dwith-init-style=debian-sysv,systemd \
-Dwith-pkgconfdir-path=/etc/netatalk \
-Dwith-tests=true
- name: Build
run: meson compile -C build
- name: Run integration tests
run: cd build && meson test && cd ..
- name: Install
run: meson install -C build
- name: Check netatalk capabilities
run: |
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
- name: Uninstall
run: ninja -C build uninstall
build-fedora:
name: Fedora Linux
runs-on: ubuntu-latest
timeout-minutes: 9
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 \
cups-devel \
dbus-devel \
docbook-style-xsl \
flex \
glib2-devel \
krb5-devel \
libacl-devel \
libdb-devel \
libgcrypt-devel \
libtalloc-devel \
libxslt \
mariadb-connector-c-devel \
meson \
ninja-build \
openldap-devel \
pam-devel \
perl \
perl-Net-DBus \
quota-devel \
systemd \
systemtap-sdt-devel \
tracker \
tracker-devel \
unicode-ucd
- name: Configure
run: |
meson setup build \
-Dbuildtype=release \
-Dwith-appletalk=true \
-Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d \
-Dwith-init-hooks=false \
-Dwith-tests=true
- name: Build
run: meson compile -C build
- name: Run integration tests
run: cd build && meson test && cd ..
- name: Install
run: sudo meson install -C build
- name: Check netatalk capabilities
run: |
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
- name: Uninstall
run: sudo ninja -C build uninstall
build-opensuse:
name: openSUSE Linux
runs-on: ubuntu-latest
timeout-minutes: 9
container:
image: opensuse/tumbleweed:latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
zypper in -y \
bison \
cracklib-devel \
dbus-1-devel \
docbook-xsl-stylesheets \
file \
flex \
gawk \
gcc \
libacl-devel \
libavahi-devel \
libdb-4_8-devel \
libevent-devel \
libgcrypt-devel \
libmariadb-devel \
libtalloc-devel \
libtdb-devel \
libtracker-sparql-3_0-0 \
libxslt-tools \
meson \
ninja \
openldap2-devel \
pam-devel \
perl \
pkg-config \
systemd \
systemtap-sdt-devel \
tcpd-devel \
tracker \
unicode-ucd
- name: Configure
run: |
meson setup build \
-Dbuildtype=release \
-Dwith-appletalk=true \
-Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d \
-Dwith-docbook-path=/usr/share/xml/docbook/stylesheet/nwalsh/1.79.2 \
-Dwith-init-hooks=false \
-Dwith-tests=true
- name: Build
run: meson compile -C build
- name: Run integration tests
run: cd build && meson test && cd ..
- name: Install
run: meson install -C build
- name: Check netatalk capabilities
run: |
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
- name: Uninstall
run: ninja -C build uninstall
build-ubuntu:
name: Ubuntu Linux
runs-on: ubuntu-latest
timeout-minutes: 9
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --assume-yes --no-install-recommends \
bison \
cmark-gfm \
cracklib-runtime \
docbook-xsl \
file \
flex \
libacl1-dev \
libavahi-client-dev \
libcrack2-dev \
libcups2-dev \
libdb-dev \
libdbus-1-dev \
libevent-dev \
libgcrypt20-dev \
libglib2.0-dev \
libkrb5-dev \
libldap2-dev \
libmariadb-dev \
libpam0g-dev \
libtalloc-dev \
libtirpc-dev \
libtracker-sparql-3.0-dev \
libwrap0-dev \
meson \
ninja-build \
quota \
systemtap-sdt-dev \
tcpd \
tracker \
tracker-miner-fs \
unicode-data \
xsltproc
- name: Configure
run: |
meson setup build \
-Dbuildtype=release \
-Dwith-appletalk=true \
-Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d \
-Dwith-init-hooks=false \
-Dwith-manual-l10n=ja \
-Dwith-tests=true
- name: Build
run: meson compile -C build
- name: Run distribution tests
run: cd build && meson dist && cd ..
- name: Install
run: sudo meson install -C build
- name: Check netatalk capabilities
run: |
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
- name: Start netatalk
run: |
sudo systemctl start netatalk
sleep 1
asip-status localhost
- name: Stop netatalk
run: sudo systemctl stop netatalk
- name: Uninstall
run: sudo ninja -C build uninstall
build-macos:
name: macOS
runs-on: macos-latest
timeout-minutes: 9
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 cmark-gfm dbus docbook-xsl libxslt meson mysql openldap talloc
- name: Configure
run: |
meson setup build \
-Dbuildtype=release \
-Dwith-ldap-path=/opt/homebrew/opt/openldap \
-Dwith-tests=true
- name: Build
run: meson compile -C build
- name: Run integration tests
run: cd build && meson test && cd ..
- name: Install
run: sudo meson install -C build
- name: Check netatalk capabilities
run: |
/opt/homebrew/sbin/netatalk -V
/opt/homebrew/sbin/afpd -V
- name: Start netatalk
run: |
sudo netatalkd start
sleep 1
asip-status localhost
- name: Stop netatalk
run: sudo netatalkd stop
- name: Uninstall
run: sudo ninja -C build uninstall
build-dflybsd:
name: DragonflyBSD
runs-on: ubuntu-latest
timeout-minutes: 9
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 \
docbook-xsl \
krb5-devel \
libevent \
libgcrypt \
libxslt \
meson \
mysql80-client \
openldap26-client \
perl5 \
pkgconf \
py39-gdbm \
py39-sqlite3 \
py39-tkinter \
talloc \
tracker3
run: |
set -e
meson setup build \
-Dbuildtype=release \
-Dwith-appletalk=true \
-Dwith-tests=true
meson compile -C build
meson install -C build
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
ninja -C build uninstall
build-freebsd:
name: FreeBSD
runs-on: ubuntu-latest
timeout-minutes: 9
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 \
docbook-xsl \
flex \
libevent \
libgcrypt \
libxslt \
meson \
mysql84-client \
openldap26-client-2.6.8 \
p5-Net-DBus \
perl5 \
pkgconf \
talloc \
tracker3
run: |
set -e
meson setup build \
-Dbuildtype=release \
-Dpkg_config_path=/usr/local/libdata/pkgconfig \
-Dwith-tests=true
meson compile -C build
cd build
meson test
cd ..
meson install -C build
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
/usr/local/etc/rc.d/netatalk start
sleep 1
/usr/local/bin/asip-status localhost
/usr/local/etc/rc.d/netatalk stop
/usr/local/etc/rc.d/netatalk disable
ninja -C build uninstall
build-netbsd:
name: NetBSD
runs-on: ubuntu-latest
timeout-minutes: 9
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build on VM
uses: vmactions/[email protected]
with:
release: "9.4"
copyback: false
prepare: |
pkg_add \
bison \
db5 \
docbook-xsl \
flex \
gcc13 \
gnome-tracker \
heimdal \
libcups \
libevent \
libgcrypt \
libxslt \
meson \
mysql-client \
p5-Net-DBus \
perl \
pkg-config \
talloc \
tex-unicode-data
run: |
set -e
meson setup build \
-Dbuildtype=release \
-Dwith-appletalk=true \
-Dwith-dtrace=false \
-Dwith-krbV-uam=false \
-Dwith-tests=true
meson compile -C build
cd build
meson test
cd ..
meson install -C build
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
service netatalk onestart
sleep 1
asip-status localhost
service netatalk onestop
ninja -C build uninstall
build-openbsd:
name: OpenBSD
runs-on: ubuntu-latest
timeout-minutes: 9
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 \
avahi \
bison \
db-4.6.21p7v0 \
dbus \
docbook-xsl \
gcc-11.2.0p14 \
libevent \
libgcrypt \
libtalloc \
libxslt \
mariadb-client \
meson \
openldap-client-2.6.8v0 \
openpam \
p5-Net-DBus \
pkgconf \
tracker3
run: |
set -e
meson setup build \
-Dbuildtype=release \
-Dpkg_config_path=/usr/local/lib/pkgconfig \
-Dwith-tests=true
meson compile -C build
meson install -C build
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
rcctl -d start netatalk
sleep 1
asip-status localhost
rcctl -d stop netatalk
rcctl -d disable netatalk
ninja -C build uninstall
build-omnios:
name: OmniOS
runs-on: ubuntu-latest
timeout-minutes: 9
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 \
docbook-xsl \
gnome-tracker \
libevent \
libgcrypt \
libxslt \
meson \
mysql-client \
talloc
run: |
set -e
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH
meson setup build \
-Dbuildtype=release \
-Dpkg_config_path=/opt/local/lib/pkgconfig \
-Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d \
-Dwith-ldap-path=/opt/local \
-Dwith-tests=true
meson compile -C build
cd build
meson test
cd ..
meson install -C build
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
sleep 1
svcadm enable svc:/network/netatalk:default
sleep 1
/usr/local/bin/asip-status localhost
svcadm disable svc:/network/netatalk:default
ninja -C build uninstall
build-solaris:
name: Solaris
runs-on: ubuntu-latest
timeout-minutes: 9
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 \
ninja \
pkg-config \
python/pip
pip install meson
run: |
set -e
meson setup build \
-Dbuildtype=release \
-Dpkg_config_path=/usr/lib/amd64/pkgconfig \
-Dwith-dbus-sysconf-path=/usr/share/dbus-1/system.d \
-Dwith-docbook-path=/usr/share/sgml/docbook/xsl-stylesheets \
-Dwith-tests=true
meson compile -C build
cd build
meson test
cd ..
meson install -C build
/usr/local/sbin/netatalk -V
/usr/local/sbin/afpd -V
sleep 1
svcadm enable svc:/network/netatalk:default
sleep 1
/usr/local/bin/asip-status localhost
svcadm disable svc:/network/netatalk:default
ninja -C build uninstall
static_analysis:
name: Static Analysis
runs-on: ubuntu-latest
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 \
bison \
cracklib-runtime \
flex \
libacl1-dev \
libavahi-client-dev \
libcrack2-dev \
libcups2-dev \
libdb-dev \
libdbus-1-dev \
libevent-dev \
libgcrypt20-dev \
libglib2.0-dev \
libkrb5-dev \
libldap2-dev \
libmariadb-dev \
libpam0g-dev \
libtalloc-dev \
libtirpc-dev \
libtracker-sparql-3.0-dev \
libwrap0-dev \
meson \
ninja-build \
systemtap-sdt-dev \
tracker-miner-fs
- name: Install sonar-scanner and build-wrapper
uses: SonarSource/sonarcloud-github-c-cpp@v3
- name: Run build-wrapper
run: |
mkdir -p ${{ env.BUILD_WRAPPER_OUT_DIR }}
meson setup build \
-Dbuildtype=debug \
-Dwith-appletalk=true \
-Dwith-init-style=none \
-Dwith-readmes=false \
-Dwith-tests=true \
-Dwith-testsuite=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"