← Commit list

bf29c3e175

Viktor Szakats
Viktor Szakats
2026-06-23
SUCCESS Duration: 234s

Subject

GHA/non-native: BSD overhaul, test more autotools, bump versions

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

.github/workflows/non-native.yml+75 -31
@@ -49,26 +49,67 @@ jobs:
MAKEFLAGS: -j 3
MATRIX_ARCH: '${{ matrix.arch }}'
MATRIX_BUILD: '${{ matrix.build }}'
+ MATRIX_INSTALL: '${{ matrix.install }}'
MATRIX_OPTIONS: '${{ matrix.options }}'
MATRIX_OS: '${{ matrix.os }}'
+ MATRIX_VERSION: '${{ matrix.version }}'
strategy:
matrix:
include:
- # { os: 'dragonflybsd', version: '6.4.2', build: 'autotools', arch: 'x86_64', cc: 'gcc' , desc: 'openssl !runtests',
- # options: '--with-openssl' }
- - { os: 'freebsd' , version: '15.0', build: 'autotools', arch: 'x86_64', cc: 'clang', desc: 'openssl',
- options: '--with-openssl --with-gssapi' }
- - { os: 'freebsd' , version: '15.0', build: 'cmake' , arch: 'x86_64', cc: 'clang', desc: 'openssl !unity !runtests !examples',
+ # https://github.com/DragonFlyBSD/DPorts
+ # { os: 'dragonflybsd', version: '6.4.2', build: 'autotools', arch: 'x86_64', cc: 'gcc' , desc: 'openssl skiprun',
+ # install: 'autoconf automake libtool openldap26-client libidn2',
+ # options: '--with-openssl --enable-ldap --enable-ldaps --with-libidn2' }
+
+ # { os: 'dragonflybsd', version: '6.4.2', build: 'cmake' , arch: 'x86_64', cc: 'gcc' , desc: 'openssl skipall',
+ # install: 'cmake ninja' }
+
+ # https://ports.freebsd.org/
+ - { os: 'freebsd' , version: '15.1', build: 'autotools', arch: 'x86_64', cc: 'clang', desc: 'openssl',
+ install: 'autoconf automake libtool krb5-devel openldap26-client libidn2 stunnel',
+ options: '--with-openssl --with-gssapi --enable-ldap --enable-ldaps --with-libidn2' }
+
+ - { os: 'freebsd' , version: '15.1', build: 'cmake' , arch: 'x86_64', cc: 'clang', desc: 'openssl !unity skiprun !examples',
+ install: 'cmake-core ninja perl5 krb5-devel openldap26-client libidn2',
options: '-DCURL_USE_GSSAPI=ON -DCMAKE_UNITY_BUILD=OFF' }
+
- { os: 'freebsd' , version: '14.3', build: 'autotools', arch: 'arm64' , cc: 'clang', desc: 'openssl !examples',
- options: '--with-openssl --with-gssapi' }
+ install: 'autoconf automake libtool krb5-devel openldap26-client libidn2 stunnel',
+ options: '--with-openssl --with-gssapi --enable-ldap --enable-ldaps --with-libidn2' }
+
- { os: 'freebsd' , version: '14.3', build: 'cmake' , arch: 'arm64' , cc: 'clang', desc: 'openssl',
+ install: 'cmake-core ninja perl5 krb5-devel openldap26-client libidn2 stunnel',
options: '-DCURL_USE_GSSAPI=ON' }
- - { os: 'midnightbsd' , version: '4.0.4', build: 'cmake' , arch: 'x86_64', cc: 'clang', desc: 'gnutls !runtests',
+
+ # https://app.midnightbsd.org/
+ # https://man.midnightbsd.org/cgi-bin/man.cgi/mport
+ # { os: 'midnightbsd' , version: '4.0.4', build: 'autotools' , arch: 'x86_64', cc: 'clang', desc: 'gnutls skipall !examples',
+ # install: 'autoconf autoconf-archive automake libtool gnutls',
+ # options: '--with-gnutls' }
+
+ - { os: 'midnightbsd' , version: '4.0.4', build: 'cmake' , arch: 'x86_64', cc: 'clang', desc: 'gnutls skiprun',
+ install: 'cmake-core ninja perl5 gnutls openldap26-client libidn2',
options: '-DCURL_USE_GNUTLS=ON' }
+
+ # https://pkgsrc.se/
+ - { os: 'netbsd' , version: '10.1' , build: 'autotools', arch: 'x86_64', cc: 'gcc' , desc: 'openssl skipall !examples',
+ install: 'autoconf automake libtool mit-krb5',
+ options: '--with-openssl --with-gssapi' }
+
- { os: 'netbsd' , version: '10.1' , build: 'cmake' , arch: 'x86_64', cc: 'gcc' , desc: 'openssl',
+ install: 'cmake ninja-build mit-krb5 openldap-client libidn2',
options: '-DCURL_USE_GSSAPI=ON' }
- - { os: 'openbsd' , version: '7.7' , build: 'cmake' , arch: 'x86_64', cc: 'clang', desc: 'libressl' }
+
+ # https://openbsd.app/
+ # https://www.openbsd.org/faq/faq15.html
+ # https://github.com/OpenMPT/openmpt/blob/master/.github/workflows/OpenBSD-Autotools.yml
+ - { os: 'openbsd' , version: '7.9' , build: 'autotools', arch: 'x86_64', cc: 'clang', desc: 'libressl skipall !examples',
+ install: 'autoconf-2.72p0 automake-1.18.1 libtool', # NOTE: also sync these versions with the autoreconf step!
+ options: '--with-openssl' }
+
+ - { os: 'openbsd' , version: '7.9' , build: 'cmake' , arch: 'x86_64', cc: 'clang', desc: 'libressl',
+ install: 'cmake ninja openldap-client-- libidn2' }
+
fail-fast: false
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -76,9 +117,9 @@ jobs:
persist-credentials: false
- name: 'setup VM'
- uses: cross-platform-actions/action@0c165ad7eb2d6a7e8552d6af5aad2bbedfc646b0 # v1.1.0
+ uses: cross-platform-actions/action@5ea7e8e4677bd726033a10b094ba1c5762b15dee # v1.3.0
with:
- environment_variables: 'CC CURL_CI CURL_TEST_MIN DO_NOT_TRACK MAKEFLAGS MATRIX_ARCH MATRIX_BUILD MATRIX_OPTIONS MATRIX_OS'
+ environment_variables: 'CC CURL_CI CURL_TEST_MIN DO_NOT_TRACK MAKEFLAGS MATRIX_ARCH MATRIX_BUILD MATRIX_INSTALL MATRIX_OPTIONS MATRIX_OS MATRIX_VERSION'
operating_system: '${{ matrix.os }}'
version: '${{ matrix.version }}'
architecture: '${{ matrix.arch }}'
@@ -86,31 +127,34 @@ jobs:
- name: 'install prereqs'
run: |
if [ "${MATRIX_OS}" = 'dragonflybsd' ]; then
- sudo pkg install -y autoconf automake libtool perl5 pkgconf brotli openldap26-client libidn2 libnghttp2
+ sudo pkg install -y pkgconf brotli libnghttp2 ${MATRIX_INSTALL}
elif [ "${MATRIX_OS}" = 'freebsd' ]; then
- # https://ports.freebsd.org/
- if [ "${MATRIX_BUILD}" = 'cmake' ]; then
- tools='cmake-core ninja perl5'
- else
- tools='autoconf automake libtool'
- fi
- sudo pkg install -y ${tools} pkgconf brotli krb5-devel openldap26-client libidn2 libnghttp2 stunnel py311-impacket
+ sudo pkg install -y pkgconf brotli libnghttp2 ${MATRIX_INSTALL}
elif [ "${MATRIX_OS}" = 'midnightbsd' ]; then
- # https://app.midnightbsd.org/
- # https://man.midnightbsd.org/cgi-bin/man.cgi/mport
- sudo mport -q install cmake-core ninja perl5 pkgconf brotli gnutls openldap26-client libidn2 libnghttp2 | grep -E '(Downloading.+100|Installing)' || true
+ if [ "${MATRIX_BUILD}" = 'autotools' ]; then
+ sudo mport index | grep -v -E 'Downloading.+%'
+ sudo mport upgrade | grep -v -E '(Downloading.+%|^/usr/local)'
+ fi
+ sudo mport install pkgconf brotli libnghttp2 ${MATRIX_INSTALL} | grep -v -E '(Downloading.+%|^/usr/local)' || true
elif [ "${MATRIX_OS}" = 'netbsd' ]; then
- # https://pkgsrc.se/
- sudo pkgin -y install cmake ninja-build pkg-config perl brotli mit-krb5 openldap-client libssh2 libidn2 libpsl nghttp2 py311-impacket
+ sudo pkgin -y install pkg-config perl brotli libssh2 libpsl nghttp2 ${MATRIX_INSTALL}
elif [ "${MATRIX_OS}" = 'openbsd' ]; then
- # https://openbsd.app/
- # https://www.openbsd.org/faq/faq15.html
- sudo pkg_add cmake ninja brotli openldap-client-- libssh2 libidn2 libpsl nghttp2 py3-six py3-impacket
+ sudo pkg_add -I brotli libssh2 libpsl nghttp2 ${MATRIX_INSTALL}
+ if [ "${MATRIX_BUILD}" = 'autotools' ]; then
+ sudo pkg_delete -I curl # to avoid autotools build linking against system libcurl
+ fi
fi
- name: 'autoreconf'
if: ${{ matrix.build == 'autotools' }}
- run: autoreconf -fi
+ run: |
+ if [ "${MATRIX_OS}" = 'openbsd' ]; then
+ if [ "${MATRIX_VERSION}" = '7.9' ]; then
+ export AUTOCONF_VERSION=2.72
+ export AUTOMAKE_VERSION=1.18
+ fi
+ fi
+ autoreconf -fi
- name: 'configure'
run: |
@@ -126,7 +170,7 @@ jobs:
mkdir bld && cd bld
../configure --prefix="$HOME"/curl-install --enable-unity --enable-debug --enable-warnings --enable-werror --disable-static \
--disable-dependency-tracking --enable-option-checking=fatal \
- --with-brotli --enable-ldap --enable-ldaps --with-libidn2 --with-libssh2 --with-nghttp2 \
+ --with-brotli --with-libssh2 --with-nghttp2 \
${options} ${MATRIX_OPTIONS}
fi
@@ -144,7 +188,7 @@ jobs:
if [ "${MATRIX_BUILD}" = 'cmake' ]; then
cmake --build bld
else
- make -C bld
+ make -C bld V=1
fi
- name: 'curl -V'
@@ -159,7 +203,7 @@ jobs:
fi
- name: 'build tests'
- if: ${{ matrix.arch == 'x86_64' }} # Slow on emulated CPU
+ if: ${{ matrix.arch == 'x86_64' && !contains(matrix.desc, 'skipall') }} # Slow on emulated CPU
run: |
if [ "${MATRIX_BUILD}" = 'cmake' ]; then
cmake --build bld --target testdeps
@@ -168,7 +212,7 @@ jobs:
fi
- name: 'run tests'
- if: ${{ matrix.arch == 'x86_64' && !contains(matrix.desc, '!runtests') }} # Slow on emulated CPU
+ if: ${{ matrix.arch == 'x86_64' && !contains(matrix.desc, 'skipall') && !contains(matrix.desc, 'skiprun') }} # Slow on emulated CPU
run: |
export TFLAGS='-j8'
if [ "${MATRIX_OS}" = 'openbsd' ]; then