diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14fb0b4..a166001 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,6 +20,9 @@ jobs: - architecture: 'x64' compiler: 'gcc' configure_options: '' + - architecture: 'x64' + compiler: 'gcc' + configure_options: '--with-pthread=no' - architecture: 'x64' compiler: 'gcc' configure_options: '--enable-wide-character-type' diff --git a/.github/workflows/build_macos.yml b/.github/workflows/build_macos.yml new file mode 100644 index 0000000..c0d808d --- /dev/null +++ b/.github/workflows/build_macos.yml @@ -0,0 +1,37 @@ +# Build from source. +name: build_macos +on: [push, pull_request] +permissions: read-all +jobs: + build_ubuntu: + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: macos-12 + configure_options: '' + - os: macos-13 + configure_options: '' + - os: macos-14 + configure_options: '' + - os: macos-15 + configure_options: '' + steps: + - uses: actions/checkout@v4 + - name: Install build dependencies + run: | + brew update -q + brew install -q autoconf automake gettext gnu-sed libtool pkg-config || true + brew link --force gettext + ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize + - name: Download test data + run: | + if test -x "synctestdata.sh"; then ./synctestdata.sh; fi + - name: Building from source + env: + CC: ${{ matrix.compiler }} + run: | + tests/build.sh ${{ matrix.configure_options }} + - name: Run tests + run: | + tests/runtests.sh diff --git a/.github/workflows/build_ossfuzz.yml b/.github/workflows/build_ossfuzz.yml index 3200899..473834c 100644 --- a/.github/workflows/build_ossfuzz.yml +++ b/.github/workflows/build_ossfuzz.yml @@ -30,6 +30,6 @@ jobs: head -n 20 projects/libyal/Dockerfile > projects/liblnk/Dockerfile echo "RUN git clone --depth 1 https://github.com/libyal/liblnk.git liblnk" >> projects/liblnk/Dockerfile tail -n 3 projects/libyal/Dockerfile >> projects/liblnk/Dockerfile - python3 infra/helper.py build_image --pull liblnk + python3 infra/helper.py build_image --pull liblnk python3 infra/helper.py build_fuzzers --sanitizer address liblnk python3 infra/helper.py check_build liblnk diff --git a/.github/workflows/build_shared.yml b/.github/workflows/build_shared.yml index 66d9b25..44031f0 100644 --- a/.github/workflows/build_shared.yml +++ b/.github/workflows/build_shared.yml @@ -10,6 +10,9 @@ jobs: strategy: matrix: include: + - architecture: 'x64' + compiler: 'gcc' + configure_options: '' - architecture: 'x64' compiler: 'gcc' configure_options: '--enable-wide-character-type' diff --git a/autogen.sh b/autogen.sh index 83f54ea..bd307d2 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,32 +1,38 @@ #!/bin/sh -# Script to generate ./configure using the autotools +# Script to generate configure and Makefile using the autotools. # -# Version: 20230405 +# Version: 20241013 EXIT_SUCCESS=0; EXIT_FAILURE=1; -BINDIR="/usr/bin"; +BINDIR=`which aclocal`; +BINDIR=`dirname ${BINDIR}`; -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/usr/bin"; then - BINDIR="/usr/local/bin"; + BINDIR="/usr/bin"; fi -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/usr/local/bin"; then BINDIR="/usr/local/bin"; fi -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/opt/local/bin"; then # Default location of MacPorts installed binaries. BINDIR="/opt/local/bin"; fi -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/opt/homebrew/bin"; +then + # Default location of Homebrew installed binaries. + BINDIR="/opt/homebrew/bin"; +fi +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/mingw32/bin"; then # Default location of 32-bit MSYS2-MinGW installed binaries. BINDIR="/mingw32/bin"; fi -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/mingw64/bin"; then # Default location of 64-bit MSYS2-MinGW installed binaries. BINDIR="/mingw64/bin"; @@ -91,35 +97,30 @@ else exit ${EXIT_FAILURE}; fi - if ! test -x "${AUTOCONF}"; then echo "Unable to find: autoconf"; exit ${EXIT_FAILURE}; fi - if ! test -x "${AUTOHEADER}"; then echo "Unable to find: autoheader"; exit ${EXIT_FAILURE}; fi - if ! test -x "${AUTOMAKE}"; then echo "Unable to find: automake"; exit ${EXIT_FAILURE}; fi - if ! test -x "${AUTOPOINT}"; then echo "Unable to find: autopoint"; exit ${EXIT_FAILURE}; fi - if ! test -x "${LIBTOOLIZE}"; then echo "Unable to find: libtoolize"; diff --git a/configure.ac b/configure.ac index 23c96a6..861b67f 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ AC_PREREQ([2.71]) AC_INIT( [liblnk], - [20240604], + [20241013], [joachim.metz@gmail.com]) AC_CONFIG_SRCDIR( diff --git a/liblnk.nuspec b/liblnk.nuspec index cf73729..7b50ce8 100644 --- a/liblnk.nuspec +++ b/liblnk.nuspec @@ -2,7 +2,7 @@ liblnk - 20240604 + 20241013 Joachim Metz joachimmetz LGPL-3.0-or-later @@ -10,7 +10,7 @@ false liblnk Library to access the Windows Shortcut File (LNK) format - Release of liblnk 20240604 + Release of liblnk 20241013 Copyright (C) 2009-2024 native