diff --git a/.cirrus.yml b/.cirrus.yml index 03ca9af58401f2..73a493341d9dae 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,7 +1,7 @@ # $FreeBSD$ freebsd_instance: - image: freebsd-13-2-release-amd64 + image: freebsd-14-1-release-amd64-ufs env: CIRRUS_CLONE_DEPTH: 1 @@ -14,6 +14,7 @@ task: ffmpeg qt6-base qt6-svg jansson libsysinfo e2fsprogs-libuuid pulseaudio alsa-lib pipewire v4l_compat libpci librist srt nlohmann-json uthash qr-code-generator websocketpp asio vlc swig luajit jackit sndio fdk-aac + libdatachannel script: - cmake -S $(pwd) @@ -23,7 +24,6 @@ task: -DENABLE_JACK:BOOL=ON -DENABLE_SNDIO:BOOL=ON -DENABLE_LIBFDK:BOOL=ON - -DENABLE_WEBRTC:BOOL=OFF - cmake --build build --config RelWithDebInfo diff --git a/.clang-format b/.clang-format index 3abb4e62e8afe8..a10cf9586a0dcf 100644 --- a/.clang-format +++ b/.clang-format @@ -44,7 +44,7 @@ BreakBeforeBraces: Custom BreakBeforeTernaryOperators: true BreakConstructorInitializers: BeforeColon BreakStringLiterals: false # apparently unpredictable -ColumnLimit: 80 +ColumnLimit: 120 CompactNamespaces: false ConstructorInitializerAllOnOneLineOrOnePerLine: true ConstructorInitializerIndentWidth: 8 diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 1b11b911375bf4..bf3a71f4372888 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -11,3 +11,4 @@ dcc07cfe4ed3f7fb60c7a0d1563236eac0a0b053 7628265099724671a1682f6b298b509d2fa23855 f4733ec6a26bac21699daf3dfd6857ff5a1d3c07 b8cfacaec38d31413b0cd82718c9dc1e36beb9af +a1fbf1015f4079b79dc9ef4f6abecf67920e93cf diff --git a/.github/actions/check-changes/action.yaml b/.github/actions/check-changes/action.yaml index 50d1679056745e..e5690b8a78efa8 100644 --- a/.github/actions/check-changes/action.yaml +++ b/.github/actions/check-changes/action.yaml @@ -45,6 +45,11 @@ runs: shopt -s extglob shopt -s dotglob + # 4b825dc642cb6eb9a060e54bf8d69288fbee4904 is a "hidden" sha1 hash of + # the "empty tree", retrived via 'git hash-object -t tree /dev/null', + # and used here as a last-resort fallback to always provide a valid + # git ref. + if [[ "${GIT_BASE_REF}" ]]; then if ! git cat-file -e "${GIT_BASE_REF}" &> /dev/null; then echo "::warning::Provided base reference ${GIT_BASE_REF} is invalid" diff --git a/.github/actions/flatpak-builder-lint/action.yaml b/.github/actions/flatpak-builder-lint/action.yaml index 86cd7179337b36..a6fd54f496eb89 100644 --- a/.github/actions/flatpak-builder-lint/action.yaml +++ b/.github/actions/flatpak-builder-lint/action.yaml @@ -19,16 +19,10 @@ runs: working-directory: ${{ inputs.workingDirectory }} run: | : Check artifact input - case "${{ inputs.artifact }}" in - builddir);; - repo);; - manifest);; - appstream);; - *) - echo "::error::Given artifact type is incorrect" - exit 2 - ;; - esac + if ! [[ "${{ inputs.artifact }}" =~ builddir|repo|manifest|appstream ]]; then + echo "::error::Given artifact type is incorrect" + exit 2 + fi - name: Run flatpak-builder-lint id: result @@ -36,31 +30,46 @@ runs: working-directory: ${{ inputs.workingDirectory }} run: | : Run flatpak-builder-lint - exit_code=0 - ret=$(flatpak-builder-lint --exceptions ${{ inputs.artifact }} ${{ inputs.path }}) || exit_code=$? - if [[ $exit_code != 0 && -z "$ret" ]]; then + + return=0 + result="$(flatpak-builder-lint --exceptions ${{ inputs.artifact }} ${{ inputs.path }})" || return=$? + + if [[ ${return} != 0 && -z "${result}" ]]; then echo "::error::Error while running flatpak-builder-lint" exit 2 fi - if [[ ${{ inputs.artifact }} == "appstream" ]]; then - echo $ret + if [[ "${{ inputs.artifact }}" == "appstream" ]]; then + echo "${result}" - [[ $exit_code != 0 ]] && echo "::error::Flatpak appstream info is not valid" + if [[ ${return} != 0 ]]; then echo "::error::Flatpak appstream info is not valid"; fi - exit $exit_code + exit ${return} fi - n_warnings=$(echo $ret | jq '.warnings | length') - for ((i = 0 ; i < n_warnings ; i++)); do - warning=$(echo $ret | jq ".warnings[$i]") - echo "::warning::$warning found in the Flatpak ${{ inputs.artifact }}" - done + # This jq command selects any available array under the 'warnings' key in the JSON document + # or provides an empty array as a fallback if the key is not present. This array is then + # piped to the 'map' function to apply a transformation to every element in the array, + # converting it to a string prefixed with the output level, the actual element value, and + # finally the suffix string defined in 'template'. + # + # The result of this expression is concatenated with a similar expression doing the same + # but for the 'errors' key and its associated array. + # + # The second jq invocation then selects each element of the array and outputs it directly, + # which will be strings of the formats: + # + # * '::warning::