Skip to content

Commit

Permalink
On the 'pristine-checksum-kind' branch: Sync with trunk@1922344.
Browse files Browse the repository at this point in the history
  • Loading branch information
rinrab committed Dec 6, 2024
2 parents f125fe8 + 80f1367 commit e6ec79c
Show file tree
Hide file tree
Showing 269 changed files with 27,872 additions and 35,668 deletions.
35 changes: 35 additions & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# .asf.yml -- ASF infra services configuration
#

# GitHub Action notifications, see
# https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file
#
# However, according to discussion with Humbedooh on Slack the-asf#Infra,
# it require a r/w Git repository, so the below doesn't work.
#
# Humbedooh has kindly helped us hard-code a one-off notification which
# doesn't rely on .asf.yaml.
#
# Commenting out, but keeping in place as a sticky-note for future changes.
#
# For reference, this is the hard-coded configuration:
#notifications:
# jobs: [email protected]
50 changes: 50 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# .clang-format : clang format rules
#
# This file configures clang format rules. This file should be automatically
# read by Visual Studio and other IDEs, when the project gets opened.
#
# See clang docs for more info:
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
#
######################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
######################################################################

# From the community guidelines:
#
# > Subversion uses ANSI C, and follows the GNU coding standards...
BasedOnStyle: GNU

# It seems to be simpler to follow our code-style when tab inserts only
# two spaces
IndentWidth: 2

# Limit the size of the lines.
ColumnLimit: 79

SpaceBeforeParens: ControlStatements

AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true

BinPackArguments: true
BinPackParameters: true

PointerAlignment: Right
AlignAfterOpenBracket: Align
BreakBeforeBinaryOperators: false
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,24 @@ indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = false

# Forces hard line wrapping after the amount of characters specified.
max_line_length = 79

# Adds guidelines to the editor. This option is unofficial, but it is
# supported by Visual Studio with EditorConfig Guidelines or Editor
# Guidelines extensions.
guidelines = 79 dashed

[*.{c,h,cpp,hpp}]
trim_trailing_whitespace = true
cpp_indent_within_parentheses = align_to_parenthesis
cpp_indent_preserve_within_parentheses = true
cpp_space_pointer_reference_alignment = right
cpp_wrap_preserve_blocks = all_one_line_scopes
cpp_new_line_before_open_brace_function = new_line
cpp_new_line_before_open_brace_block = new_line
cpp_space_preserve_in_initializer_list = true

[**/Makefile*]
indent_style = tab
indent_size = 8
Expand Down
81 changes: 81 additions & 0 deletions .github/workflows/autoconf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# autoconf.yml -- Configuration for autoconf GitHub Action workflow.
#

name: autoconf

on:
push:
branches: ["*"]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- name: Default
os: ubuntu-latest

runs-on: ${{ matrix.os }}
name: ${{ matrix.name }}

steps:
- name: Install dependencies (Linux, apt-get)
if: runner.os == 'Linux'
run: >
sudo apt-get update &&
sudo apt-get install
libtool
libtool-bin
libapr1-dev
libaprutil1-dev
libserf-dev
libexpat1-dev
zlib1g-dev
libsqlite3-dev
liblz4-dev
libutf8proc-dev
- name: Use LF for Git checkout
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@v4

- name: autogen
run: ./autogen.sh

- name: Configure
run: ./configure --enable-maintainer-mode

- name: Build (make)
run: make -j

- name: Run tests (make check)
run: make check PARALLEL=16

- name: Install (make install)
run: sudo make install
175 changes: 175 additions & 0 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# cmake.yml -- Configuration for CMake GitHub Action workflow.
#

name: CMake

on:
push:
branches: ["*"]

concurrency:
group: ${{ github.ref }}
cancel-in-progress: false

defaults:
run:
shell: pwsh

jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- name: Windows, shared, x64, with tests
os: windows-latest
build_shared: ON
cmake_generator: Ninja
vcpkg_triplet: x64-windows
arch: x64
run_tests: true
- name: Windows, shared, x64, vs2022, with tests
os: windows-latest
build_shared: ON
cmake_generator: 'Visual Studio 17 2022'
vcpkg_triplet: x64-windows
arch: x64
run_tests: true
- name: Windows, shared, x86
os: windows-latest
build_shared: ON
cmake_generator: Ninja
vcpkg_triplet: x86-windows
arch: x86
- name: Windows, static, x64, with tests
os: windows-latest
build_shared: OFF
cmake_generator: Ninja
vcpkg_triplet: x64-windows-static-md
arch: x64
run_tests: true
- name: Linux, shared, with tests
os: ubuntu-latest
cmake_generator: Ninja
build_shared: ON
run_tests: true
extra_config_opts: >
-DSVN_ENABLE_AUTH_KWALLET=ON
-DSVN_ENABLE_AUTH_GNOME_KEYRING=ON
extra_packages: >
libkf5wallet-dev
libkf5coreaddons-dev
libkf5i18n-dev
libdbus-1-dev
qtbase5-dev
libsecret-1-dev
runs-on: ${{ matrix.os }}
name: ${{ matrix.name }}

env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
CMAKE_GENERATOR: ${{ matrix.cmake_generator }}

steps:
- name: Prepare Environment (Windows)
if: runner.os == 'Windows'
run: |
$root = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
Import-Module "$root\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"
Enter-VsDevShell -VsInstallPath $root -DevCmdArguments "-arch=${{ matrix.arch }}"
ls env: | foreach { "$($_.Name)=$($_.Value)" >> $env:GITHUB_ENV }
- name: Prepare Environment (Linux)
if: runner.os == 'Windows'
run: |
# nothing yet
- name: Export GitHub Actions cache environment variables
if: runner.os == 'Windows'
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Install dependencies (Windows, vcpkg)
if: runner.os == 'Windows'
run: |
C:\vcpkg\vcpkg.exe install --triplet ${{ matrix.vcpkg_triplet }} `
apr apr-util serf expat zlib sqlite3
"CMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" >> $env:GITHUB_ENV
- name: Install dependencies (Linux, apt-get)
if: runner.os == 'Linux'
run: >
sudo apt-get update &&
sudo apt-get install
libtool
libtool-bin
libapr1-dev
libaprutil1-dev
libserf-dev
libexpat1-dev
zlib1g-dev
libsqlite3-dev
ninja-build
${{ matrix.extra_packages }}
- name: Use LF for Git checkout
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@v4

- name: gen-make
run: python ./gen-make.py -t cmake

- name: Configure CMake
run: >
cmake -B out
-DBUILD_SHARED_LIBS=${{ matrix.build_shared }}
-DSVN_ENABLE_TESTS=ON
-DSVN_ENABLE_RA_SERF=ON
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/installdir
-DVCPKG_TARGET_TRIPLET=${{ matrix.vcpkg_triplet }}
-DSVN_TEST_CONFIGURE_FOR_PARALLEL=ON
${{ matrix.extra_config_opts }}
- name: Build CMake
run: cmake --build out --config Release

- name: Install
run: cmake --install out --config Release

- name: Run all tests
id: run_all_tests
if: matrix.run_tests
working-directory: out
run: ctest --output-on-failure --verbose -C Release --parallel 16

- name: Rerun failed tests
if: ${{ matrix.run_tests && failure() && steps.run_all_tests.conclusion == 'failure' }}
working-directory: out
run: ctest --output-on-failure --verbose -C Release --rerun-failed
Loading

0 comments on commit e6ec79c

Please sign in to comment.