From 8e1dcd44fcad7826e5f8fa6c5caa6c23989518d9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 7 Apr 2023 14:43:34 +0200 Subject: Merging upstream version 2.4+really2.4. Signed-off-by: Daniel Baumann --- .github/AppImageBuilder.yml | 14 +- .github/azure-pipelines.yml | 5 +- .github/cross/clang.txt | 5 + .github/cross/ubuntu-armhf.txt | 1 + .github/cross/ubuntu-ppc64le.txt | 1 + .github/cross/ubuntu-s390x.txt | 18 +++ .github/workflows/appimage.yml | 9 +- .github/workflows/build.yml | 314 ++++++++++++++++++++++++++++++++++----- .github/workflows/release.yml | 11 +- 9 files changed, 319 insertions(+), 59 deletions(-) create mode 100644 .github/cross/clang.txt create mode 100644 .github/cross/ubuntu-s390x.txt (limited to '.github') diff --git a/.github/AppImageBuilder.yml b/.github/AppImageBuilder.yml index 3675edf..67b215c 100644 --- a/.github/AppImageBuilder.yml +++ b/.github/AppImageBuilder.yml @@ -28,17 +28,15 @@ AppDir: include: - libjson-c5 - libhugetlbfs0 + - libssl3 files: include: - - /lib64/libcrypto.so.3 - - /lib64/libdbus-1.so.3 - - /lib64/libjson-c.so.5 + - libcrypt.so.3 + - libdbus-1.so.3 + - libjson-c.so.5 exclude: - - usr/share/man - - usr/share/doc/*/README.* - - usr/share/doc/*/changelog.* - - usr/share/doc/*/NEWS.* - - usr/share/doc/*/TODO.* + - usr/share/man + - usr/share/doc test: fedora-30: image: appimagecrafters/tests-env:fedora-30 diff --git a/.github/azure-pipelines.yml b/.github/azure-pipelines.yml index 4b52903..f9eb5ed 100644 --- a/.github/azure-pipelines.yml +++ b/.github/azure-pipelines.yml @@ -6,7 +6,10 @@ # - nvme/012 # - nvme/013 -trigger: none # Disable CI triggers. +trigger: + - master +pr: + - master jobs: - job: blktests diff --git a/.github/cross/clang.txt b/.github/cross/clang.txt new file mode 100644 index 0000000..1484a3e --- /dev/null +++ b/.github/cross/clang.txt @@ -0,0 +1,5 @@ +[binaries] +c = 'clang' +cpp = 'clang++' +strip = 'strip' +pkgconfig = 'pkg-config' diff --git a/.github/cross/ubuntu-armhf.txt b/.github/cross/ubuntu-armhf.txt index 2eee70b..41c8328 100644 --- a/.github/cross/ubuntu-armhf.txt +++ b/.github/cross/ubuntu-armhf.txt @@ -4,6 +4,7 @@ ar = '/usr/arm-linux-gnueabihf/bin/ar' strip = '/usr/arm-linux-gnueabihf/bin/strip' pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config' ld = '/usr/bin/arm-linux/gnueabihf-ld' +exe_wrapper = '/usr/bin/qemu-arm-static' [properties] root = '/usr/arm-linux-gnueabihf' diff --git a/.github/cross/ubuntu-ppc64le.txt b/.github/cross/ubuntu-ppc64le.txt index 4cf6a92..6baaefb 100644 --- a/.github/cross/ubuntu-ppc64le.txt +++ b/.github/cross/ubuntu-ppc64le.txt @@ -4,6 +4,7 @@ ar = '/usr/powerpc64le-linux-gnu/bin/ar' strip = '/usr/powerpc64le-linux-gnu/bin/strip' pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config' ld = '/usr/bin/powerpc64le-linux-gnu-ld' +exe_wrapper = '/usr/bin/qemu-ppc64le-static' [properties] root = '/usr/powerpc64le-linux-gnu' diff --git a/.github/cross/ubuntu-s390x.txt b/.github/cross/ubuntu-s390x.txt new file mode 100644 index 0000000..51a3511 --- /dev/null +++ b/.github/cross/ubuntu-s390x.txt @@ -0,0 +1,18 @@ +[binaries] +c = '/usr/bin/s390x-linux-gnu-gcc' +ar = '/usr/s390x-linux-gnu/bin/ar' +strip = '/usr/s390x-linux-gnu/bin/strip' +pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config' +ld = '/usr/bin/s390x-linux-gnu-ld' +exe_wrapper = '/usr/bin/qemu-s390x-static' + +[properties] +root = '/usr/s390x-linux-gnu' +has_function_printf = true +skip_sanity_check = true + +[host_machine] +system = 'linux' +cpu_family = 's390x' +cpu = '' +endian = 'big' diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index c64dfb3..80b0496 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -1,21 +1,22 @@ --- -name: AppImage +name: appimage on: push: - branches: [ master ] + branches: [master] pull_request: - branches: [ master ] + branches: [master] env: DESTDIR: ../AppDir jobs: build-appimage: + name: build AppImage runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: install dependencies - run: sudo apt-get install libjson-c-dev libdbus-1-dev libhugetlbfs-dev + run: sudo apt-get install libjson-c-dev libssl-dev libdbus-1-dev libhugetlbfs-dev - uses: actions/setup-python@v4 with: python-version: '3.x' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 805a962..fae50a5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,29 +3,178 @@ name: build on: push: - branches: [ master ] + branches: [master] pull_request: - branches: [ master ] + branches: [master] workflow_dispatch: jobs: - build-distro: + gcc-debug: + name: gcc debug runs-on: ubuntu-latest + steps: + - name: install dependencies + run: sudo apt-get install gcc pkg-config libjson-c-dev libhugetlbfs-dev + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - uses: bsfishy/meson-build@v1.0.3 + name: build + with: + action: build + setup-options: > + --werror + --buildtype=debug + -Dlibnvme:werror=false + meson-version: 0.61.2 + - uses: bsfishy/meson-build@v1.0.3 + name: test + with: + action: test + meson-version: 0.61.2 + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: log files + path: | + build/meson-logs/*.txt + + gcc-release: + name: gcc release + runs-on: ubuntu-latest + steps: + - name: install dependencies + run: sudo apt-get install gcc pkg-config libjson-c-dev libhugetlbfs-dev + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - uses: bsfishy/meson-build@v1.0.3 + name: build + with: + action: build + setup-options: > + --werror + --buildtype=release + -Dlibnvme:werror=false + meson-version: 0.61.2 + - uses: bsfishy/meson-build@v1.0.3 + name: test + with: + action: test + meson-version: 0.61.2 + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: log files + path: | + build/meson-logs/*.txt + + clang-release: + name: clang release + runs-on: ubuntu-latest + steps: + - name: install dependencies + run: sudo apt-get install clang pkg-config libjson-c-dev libhugetlbfs-dev + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - uses: bsfishy/meson-build@v1.0.3 + name: build + with: + action: build + setup-options: > + --werror + --buildtype=release + --cross-file=.github/cross/clang.txt + -Dlibnvme:werror=false + -Dopenssl:werror=false + meson-version: 0.61.2 + - uses: bsfishy/meson-build@v1.0.3 + name: test + with: + action: test + meson-version: 0.61.2 + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: log files + path: | + build/meson-logs/*.txt + + fallback-shared-libraries: + name: fallback shared libraries + runs-on: ubuntu-latest + steps: + - name: install dependencies + run: sudo apt-get install libpam-dev libcap-ng-dev + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - uses: BSFishy/meson-build@v1.0.3 + name: build + with: + action: build + setup-options: > + --werror + --buildtype=release + --wrap-mode=forcefallback + --default-library=shared + -Dlibnvme:werror=false + -Dopenssl:werror=false + meson-version: 0.61.2 + - uses: bsfishy/meson-build@v1.0.3 + name: test + with: + action: test + meson-version: 0.61.2 + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: log files + path: | + build/meson-logs/*.txt + fallback-static-libraries: + name: fallback static libraries + runs-on: ubuntu-latest steps: - name: install dependencies - run: sudo apt-get install libjson-c-dev libhugetlbfs-dev libdbus-1-dev + run: sudo apt-get install libpam-dev libcap-ng-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - uses: BSFishy/meson-build@v1.0.3 + name: build + with: + action: build + setup-options: > + --werror + --buildtype=release + --wrap-mode=forcefallback + --default-library=static + -Dlibnvme:werror=false + -Dopenssl:werror=false + meson-version: 0.61.2 + - uses: bsfishy/meson-build@v1.0.3 + name: test with: - setup-options: --werror action: test + meson-version: 0.61.2 + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: log files + path: | + build/meson-logs/*.txt - build-cross-armhf: + cross-armhf: + name: cross armhf runs-on: ubuntu-latest steps: - name: set up arm architecture @@ -39,23 +188,35 @@ jobs: EOF sudo apt update - name: install armhf compiler - run: sudo apt install gcc-arm-linux-gnueabihf pkg-config + run: sudo apt install gcc-arm-linux-gnueabihf pkg-config qemu-user-static - name: install libraries - run: sudo apt install uuid-dev:armhf libjson-c-dev:armhf libdbus-1-dev:armhf + run: sudo apt install libjson-c-dev:armhf - uses: actions/checkout@v3 - uses: BSFishy/meson-build@v1.0.3 + name: build with: - # suppress python for now; the python headers currently assume native - setup-options: --werror --cross-file=.github/cross/ubuntu-armhf.txt -Dlibnvme:python=false - options: --verbose action: build + setup-options: > + --werror + --buildtype=release + --cross-file=.github/cross/ubuntu-armhf.txt + -Dlibnvme:python=disabled + -Dopenssl:werror=false + meson-version: 0.61.2 + - uses: bsfishy/meson-build@v1.0.3 + name: test + with: + action: test + meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: - name: Linux_Meson_Testlog - path: build/meson-logs/testlog.txt + name: log files + path: | + build/meson-logs/*.txt - build-cross-ppc64le: + cross-ppc64le: + name: cross ppc64le runs-on: ubuntu-latest steps: - name: set up ppc64le architecture @@ -69,50 +230,121 @@ jobs: EOF sudo apt update - name: install powerpc64le compiler - run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config + run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config qemu-user-static - name: install libraries - run: sudo apt install uuid-dev:ppc64el libjson-c-dev:ppc64el libdbus-1-dev:ppc64el + run: sudo apt install libjson-c-dev:ppc64el - uses: actions/checkout@v3 - uses: BSFishy/meson-build@v1.0.3 + name: build with: - # suppress python for now; the python headers currently assume native - setup-options: --werror --cross-file=.github/cross/ubuntu-ppc64le.txt -Dlibnvme:python=false - options: --verbose action: build + setup-options: > + --werror + --buildtype=release + --cross-file=.github/cross/ubuntu-ppc64le.txt + -Dlibnvme:werror=false + -Dlibnvme:python=disabled + -Dopenssl:werror=false + meson-version: 0.61.2 + - uses: bsfishy/meson-build@v1.0.3 + name: test + with: + action: test + meson-version: 0.61.2 - uses: actions/upload-artifact@v3 if: failure() with: - name: Linux_Meson_Testlog - path: build/meson-logs/testlog.txt + name: log files + path: | + build/meson-logs/*.txt - build-fallback: + cross-s390x: + name: cross s390x runs-on: ubuntu-latest steps: - - name: install dependencies - run: sudo apt-get install -y libpam-dev libcap-ng-dev + - name: set up s390x architecture + run: | + export release=$(lsb_release -c -s) + sudo dpkg --add-architecture s390x + sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list + sudo dd of=/etc/apt/sources.list.d/s390x.list < + --werror + --buildtype=release + --cross-file=.github/cross/ubuntu-s390x.txt + -Dlibnvme:werror=false + -Dlibnvme:python=disabled + -Dopenssl:werror=false + meson-version: 0.61.2 + - uses: bsfishy/meson-build@v1.0.3 + name: test with: - setup-options: --werror -Dopenssl:werror=false -Ddbus:werror=false --wrap-mode=forcefallback - options: --verbose action: test meson-version: 0.61.2 + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: log files + path: | + build/meson-logs/*.txt - build-static: + build-minimal: + name: muon minimal runs-on: ubuntu-latest steps: - - name: install dependencies - run: sudo apt-get install -y libpam-dev libcap-ng-dev - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - uses: BSFishy/meson-build@v1.0.3 - with: - setup-options: --werror -Dopenssl:werror=false -Ddbus:werror=false --wrap-mode=forcefallback --default-library=static - options: --verbose - action: test - meson-version: 0.61.2 + - name: build muon and samurai build-tool + run: | + mkdir build-tools + cd build-tools + git clone --depth 1 https://git.sr.ht/~lattis/muon + cd muon + + export CC=gcc + export ninja=build/samu + + ./tools/bootstrap_ninja.sh build + ./bootstrap.sh build + + build/muon setup \ + -Dlibcurl=disabled \ + -Dlibarchive=disabled \ + -Ddocs=disabled \ + -Dsamurai=disabled \ + build + build/samu -C build + build/muon -C build test + - name: fetch libnvme + run: | + cd subprojects + git clone https://github.com/linux-nvme/libnvme.git + libnvme_ref=$(sed -n "s/revision = \([0-9a-z]\+\)/\1/p" libnvme.wrap) + git -C libnvme checkout $libnvme_ref + - name: build + run: | + export PATH=$(pwd)/build-tools/muon/build:$PATH + + muon setup \ + -Dlibnvme:python=disabled \ + -Dlibnvme:json-c=disabled \ + -Djson-c=disabled \ + build + samu -C build + - name: test + run: | + export PATH=$(pwd)/build-tools/muon/build:$PATH + + muon -C build test diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e4ccb70..c88be9e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,11 +1,12 @@ --- -name: releases +name: release on: push: branches: [ master ] tags: - '**' + jobs: build: runs-on: ubuntu-latest @@ -13,7 +14,7 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@v3 - - uses: ncipollo/release-action@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/checkout@v3 + - uses: ncipollo/release-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} -- cgit v1.2.3