From 1d2b40c98cc303281455680818cbdbe4aa068d1b Mon Sep 17 00:00:00 2001 From: Leon Lynch Date: Sat, 8 Jun 2024 11:23:51 +0200 Subject: [PATCH] Update Github Actions * Add debug and release builds for Ubuntu 24.04 LTS * Remove builds for Fedora 37 and Fedora 38 because they are EOL * Add debug and release builds for Fedora 40 * Update MacOS builds for MacOS 13 and MacOS 14. Note that Github's MacOS 14 runners are arm64, not x86_64. * Github's MacOS runners already have pkg-config and gettext and it is no longer necessary to specify their installation * Update MacOS builds to test shared library builds * Add builds for Microsoft Universal C Runtime (UCRT) using MSYS2's UCRT64 build environment that is based on GCC, not CLANG --- .github/workflows/fedora-build.yaml | 8 +++----- .github/workflows/macos-build.yaml | 14 ++++++-------- .github/workflows/ubuntu-build.yaml | 2 ++ .github/workflows/windows-build.yaml | 2 ++ README.md | 9 +++++---- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/workflows/fedora-build.yaml b/.github/workflows/fedora-build.yaml index 3b4dfbd..f76ced9 100644 --- a/.github/workflows/fedora-build.yaml +++ b/.github/workflows/fedora-build.yaml @@ -15,10 +15,9 @@ jobs: fail-fast: false matrix: include: - - { name: "Fedora 37", fedora_version: 37, deps: "none", build_emv_tool: NO } - - { name: "Fedora 37", fedora_version: 37, deps: "pcsclite", build_emv_tool: YES } - - { name: "Fedora 38", fedora_version: 38, deps: "pcsclite", build_emv_tool: YES } + - { name: "Fedora 39", fedora_version: 39, deps: "none", build_emv_tool: NO } - { name: "Fedora 39", fedora_version: 39, deps: "pcsclite", build_emv_tool: YES } + - { name: "Fedora 40", fedora_version: 40, deps: "pcsclite", build_emv_tool: YES } name: ${{ matrix.name }} build (static/debug/${{ matrix.deps }}) runs-on: ubuntu-latest @@ -59,9 +58,8 @@ jobs: fail-fast: false matrix: include: - - { name: "Fedora 37", fedora_version: 37 } - - { name: "Fedora 38", fedora_version: 38 } - { name: "Fedora 39", fedora_version: 39 } + - { name: "Fedora 40", fedora_version: 40 } name: ${{ matrix.name }} release runs-on: ubuntu-latest diff --git a/.github/workflows/macos-build.yaml b/.github/workflows/macos-build.yaml index bdf6818..f9bb180 100644 --- a/.github/workflows/macos-build.yaml +++ b/.github/workflows/macos-build.yaml @@ -15,22 +15,20 @@ jobs: fail-fast: false matrix: include: - - { name: "MacOS 12", os: macos-12, osx_arch: "x86_64", build_type: "Debug", deps: "none", fetch_deps: YES, build_emv_tool: NO } - - { name: "MacOS 12", os: macos-12, osx_arch: "x86_64", build_type: "Release", deps: "pcsclite", fetch_deps: NO, build_emv_tool: YES } - - { name: "MacOS 13", os: macos-13, osx_arch: "x86_64", build_type: "Release", deps: "none", fetch_deps: NO, build_emv_tool: NO } - - { name: "MacOS 13", os: macos-13, osx_arch: "x86_64", build_type: "Debug", deps: "pcsclite", fetch_deps: YES, build_emv_tool: YES } + - { name: "MacOS 13", os: macos-13, osx_arch: "x86_64", build_type: "Debug", lib_type: "static", shared_libs: "NO", deps: "none", fetch_deps: YES, build_emv_tool: NO } + - { name: "MacOS 13", os: macos-13, osx_arch: "x86_64", build_type: "Release", lib_type: "shared", shared_libs: "YES", deps: "pcsclite", fetch_deps: NO, build_emv_tool: YES } + - { name: "MacOS 14", os: macos-14, osx_arch: "arm64", build_type: "Release", lib_type: "static", shared_libs: "NO", deps: "none", fetch_deps: NO, build_emv_tool: NO } + - { name: "MacOS 14", os: macos-14, osx_arch: "arm64", build_type: "Debug", lib_type: "shared", shared_libs: "YES", deps: "pcsclite", fetch_deps: YES, build_emv_tool: YES } - name: ${{ matrix.name }} (${{ matrix.osx_arch }}) build (static/${{ matrix.build_type }}/${{ matrix.deps }}) + name: ${{ matrix.name }} (${{ matrix.osx_arch }}) build (${{ matrix.lib_type}}/${{ matrix.build_type }}/${{ matrix.deps }}) runs-on: ${{ matrix.os }} steps: - name: Install dependencies run: | - brew install pkg-config brew install boost brew install iso-codes brew install json-c - brew install gettext - name: Install argp-standalone using brew if: ${{ matrix.fetch_deps == 'NO' }} @@ -48,7 +46,7 @@ jobs: submodules: recursive - name: Configure CMake - run: cmake -B build -DCMAKE_OSX_ARCHITECTURES="${{ matrix.osx_arch }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" -DFETCH_ARGP=${{ matrix.fetch_deps }} -DBUILD_EMV_TOOL=${{ matrix.build_emv_tool }} + run: cmake -B build -DCMAKE_OSX_ARCHITECTURES="${{ matrix.osx_arch }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" -DBUILD_SHARED_LIBS=${{ matrix.shared_libs }} -DFETCH_ARGP=${{ matrix.fetch_deps }} -DBUILD_EMV_TOOL=${{ matrix.build_emv_tool }} - name: Build run: cmake --build build diff --git a/.github/workflows/ubuntu-build.yaml b/.github/workflows/ubuntu-build.yaml index 8dff9c6..2b82c9a 100644 --- a/.github/workflows/ubuntu-build.yaml +++ b/.github/workflows/ubuntu-build.yaml @@ -19,6 +19,7 @@ jobs: - { name: "Ubuntu 20.04", os: ubuntu-20.04, deps: "iconv", iso8859: "iconv", build_emv_tool: NO } - { name: "Ubuntu 20.04", os: ubuntu-20.04, deps: "boost/pcsclite", iso8859: "boost", build_emv_tool: YES } - { name: "Ubuntu 22.04", os: ubuntu-22.04, deps: "iconv/pcsclite", iso8859: "iconv", build_emv_tool: YES } + - { name: "Ubuntu 24.04", os: ubuntu-24.04, deps: "iconv/pcsclite", iso8859: "iconv", build_emv_tool: YES } name: ${{ matrix.name }} build (static/debug/${{ matrix.deps }}) runs-on: ${{ matrix.os }} @@ -55,6 +56,7 @@ jobs: include: - { name: "Ubuntu 20.04", os: ubuntu-20.04, ubuntu_release_name: "focal" } - { name: "Ubuntu 22.04", os: ubuntu-22.04, ubuntu_release_name: "jammy" } + - { name: "Ubuntu 24.04", os: ubuntu-24.04, ubuntu_release_name: "noble" } name: ${{ matrix.name }} build (release) runs-on: ${{ matrix.os }} diff --git a/.github/workflows/windows-build.yaml b/.github/workflows/windows-build.yaml index f7cf592..cc17eb6 100644 --- a/.github/workflows/windows-build.yaml +++ b/.github/workflows/windows-build.yaml @@ -20,6 +20,8 @@ jobs: - { sys: mingw64, env: x86_64, build_type: "Release", lib_type: "static", shared_libs: "NO", build_emv_tool: NO } - { sys: mingw64, env: x86_64, build_type: "Debug", lib_type: "dll", shared_libs: "YES", build_emv_tool: YES } - { sys: mingw64, env: x86_64, build_type: "Release", lib_type: "static", shared_libs: "NO", build_emv_tool: YES } + - { sys: ucrt64, env: ucrt-x86_64, build_type: "Debug", lib_type: "static", shared_libs: "NO", build_emv_tool: YES } + - { sys: ucrt64, env: ucrt-x86_64, build_type: "Release", lib_type: "dll", shared_libs: "YES", build_emv_tool: YES } - { sys: clang64, env: clang-x86_64, build_type: "Debug", lib_type: "static", shared_libs: "NO", build_emv_tool: YES } - { sys: clang64, env: clang-x86_64, build_type: "Release", lib_type: "dll", shared_libs: "YES", build_emv_tool: YES } diff --git a/README.md b/README.md index 3126923..91ea6f1 100644 --- a/README.md +++ b/README.md @@ -25,11 +25,12 @@ licensing options. Installation ------------ -* For Ubuntu 20.04 LTS (Focal) or Ubuntu 22.04 LTS (Jammy), install the - appropriate [release package](https://github.com/openemv/emv-utils/releases) -* For Fedora 36 or Fedora 37, install the appropriate +* For Ubuntu 20.04 LTS (Focal), 22.04 LTS (Jammy), or 24.04 LTS (Noble) install + the appropriate [release package](https://github.com/openemv/emv-utils/releases) -* For Gentoo, use the +* For Fedora 39 or Fedora 40, install the appropriate Fedora + [release package](https://github.com/openemv/emv-utils/releases) +* For Gentoo, use the [OpenEMV overlay](https://github.com/openemv/openemv-overlay), set the keywords and useflags as needed, and install using `emerge --verbose --ask emv-utils`