From: Junio C Hamano Date: Mon, 3 Feb 2025 18:23:33 +0000 (-0800) Subject: Merge branch 'ps/3.0-remote-deprecation' X-Git-Tag: v2.49.0-rc0~60 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=803b5acaa7cb979b5d623270af18d6d8354fce9b;p=thirdparty%2Fgit.git Merge branch 'ps/3.0-remote-deprecation' Following the procedure we established to introduce breaking changes for Git 3.0, allow an early opt-in for removing support of $GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure remotes. * ps/3.0-remote-deprecation: remote: announce removal of "branches/" and "remotes/" builtin/pack-redundant: remove subcommand with breaking changes ci: repurpose "linux-gcc" job for deprecations ci: merge linux-gcc-default into linux-gcc Makefile: wire up build option for deprecated features --- 803b5acaa7cb979b5d623270af18d6d8354fce9b diff --cc .github/workflows/main.yml index 900be9957a,46b96fb96c..686855bb5e --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@@ -282,12 -285,6 +281,9 @@@ jobs - jobname: osx-gcc cc: gcc-13 pool: macos-13 + - jobname: osx-meson + cc: clang + pool: macos-13 - - jobname: linux-gcc-default - cc: gcc - pool: ubuntu-latest - jobname: linux-leaks cc: gcc pool: ubuntu-latest diff --cc GIT-BUILD-OPTIONS.in index edff75ae16,f1d0ecf123..ada575fbcb --- a/GIT-BUILD-OPTIONS.in +++ b/GIT-BUILD-OPTIONS.in @@@ -33,16 -16,33 +33,17 @@@ NO_PYTHON=@NO_PYTHON NO_REGEX=@NO_REGEX@ NO_UNIX_SOCKETS=@NO_UNIX_SOCKETS@ PAGER_ENV=@PAGER_ENV@ -SANITIZE_LEAK=@SANITIZE_LEAK@ +PERL_LOCALEDIR=@PERL_LOCALEDIR@ +PERL_PATH=@PERL_PATH@ +PYTHON_PATH=@PYTHON_PATH@ +RUNTIME_PREFIX=@RUNTIME_PREFIX@ SANITIZE_ADDRESS=@SANITIZE_ADDRESS@ -X=@X@ -FSMONITOR_DAEMON_BACKEND=@FSMONITOR_DAEMON_BACKEND@ -FSMONITOR_OS_SETTINGS=@FSMONITOR_OS_SETTINGS@ +SANITIZE_LEAK=@SANITIZE_LEAK@ +SHELL_PATH=@SHELL_PATH@ +TAR=@TAR@ TEST_OUTPUT_DIRECTORY=@TEST_OUTPUT_DIRECTORY@ -GIT_TEST_OPTS=@GIT_TEST_OPTS@ -GIT_TEST_CMP=@GIT_TEST_CMP@ -GIT_TEST_CMP_USE_COPIED_CONTEXT=@GIT_TEST_CMP_USE_COPIED_CONTEXT@ -GIT_TEST_UTF8_LOCALE=@GIT_TEST_UTF8_LOCALE@ -NO_GETTEXT=@NO_GETTEXT@ -GIT_PERF_REPEAT_COUNT=@GIT_PERF_REPEAT_COUNT@ -GIT_PERF_REPO=@GIT_PERF_REPO@ -GIT_PERF_LARGE_REPO=@GIT_PERF_LARGE_REPO@ -GIT_PERF_MAKE_OPTS=@GIT_PERF_MAKE_OPTS@ -GIT_PERF_MAKE_COMMAND=@GIT_PERF_MAKE_COMMAND@ -GIT_INTEROP_MAKE_OPTS=@GIT_INTEROP_MAKE_OPTS@ -GIT_TEST_INDEX_VERSION=@GIT_TEST_INDEX_VERSION@ -GIT_TEST_PERL_FATAL_WARNINGS=@GIT_TEST_PERL_FATAL_WARNINGS@ -GIT_TEST_TEXTDOMAINDIR=@GIT_TEST_TEXTDOMAINDIR@ -GIT_TEST_POPATH=@GIT_TEST_POPATH@ -GIT_TEST_TEMPLATE_DIR=@GIT_TEST_TEMPLATE_DIR@ -GIT_TEST_GITPERLLIB=@GIT_TEST_GITPERLLIB@ -GIT_TEST_MERGE_TOOLS_DIR=@GIT_TEST_MERGE_TOOLS_DIR@ -RUNTIME_PREFIX=@RUNTIME_PREFIX@ -GITWEBDIR=@GITWEBDIR@ +TEST_SHELL_PATH=@TEST_SHELL_PATH@ USE_GETTEXT_SCHEME=@USE_GETTEXT_SCHEME@ -LOCALEDIR=@LOCALEDIR@ -BROKEN_PATH_FIX=@BROKEN_PATH_FIX@ +USE_LIBPCRE2=@USE_LIBPCRE2@ + WITH_BREAKING_CHANGES=@WITH_BREAKING_CHANGES@ +X=@X@ diff --cc Makefile index 2f6e2d5295,e6b0d85980..0739c5c1c0 --- a/Makefile +++ b/Makefile @@@ -3182,19 -3164,36 +3188,20 @@@ GIT-BUILD-OPTIONS: FORC -e "s|@NO_REGEX@|\'$(NO_REGEX)\'|" \ -e "s|@NO_UNIX_SOCKETS@|\'$(NO_UNIX_SOCKETS)\'|" \ -e "s|@PAGER_ENV@|\'$(PAGER_ENV)\'|" \ - -e "s|@SANITIZE_LEAK@|\'$(SANITIZE_LEAK)\'|" \ + -e "s|@PERL_LOCALEDIR@|\'$(perl_localedir_SQ)\'|" \ + -e "s|@PERL_PATH@|\'$(PERL_PATH_SQ)\'|" \ + -e "s|@PYTHON_PATH@|\'$(PYTHON_PATH_SQ)\'|" \ + -e "s|@RUNTIME_PREFIX@|\'$(RUNTIME_PREFIX_OPTION)\'|" \ -e "s|@SANITIZE_ADDRESS@|\'$(SANITIZE_ADDRESS)\'|" \ - -e "s|@X@|\'$(X)\'|" \ - -e "s|@FSMONITOR_DAEMON_BACKEND@|\'$(FSMONITOR_DAEMON_BACKEND)\'|" \ - -e "s|@FSMONITOR_OS_SETTINGS@|\'$(FSMONITOR_OS_SETTINGS)\'|" \ + -e "s|@SANITIZE_LEAK@|\'$(SANITIZE_LEAK)\'|" \ + -e "s|@SHELL_PATH@|\'$(SHELL_PATH_SQ)\'|" \ + -e "s|@TAR@|\'$(TAR)\'|" \ -e "s|@TEST_OUTPUT_DIRECTORY@|\'$(TEST_OUTPUT_DIRECTORY)\'|" \ - -e "s|@GIT_TEST_OPTS@|\'$(GIT_TEST_OPTS)\'|" \ - -e "s|@GIT_TEST_CMP@|\'$(GIT_TEST_CMP)\'|" \ - -e "s|@GIT_TEST_CMP_USE_COPIED_CONTEXT@|\'$(GIT_TEST_CMP_USE_COPIED_CONTEXT)\'|" \ - -e "s|@GIT_TEST_UTF8_LOCALE@|\'$(GIT_TEST_UTF8_LOCALE)\'|" \ - -e "s|@NO_GETTEXT@|\'$(NO_GETTEXT)\'|" \ - -e "s|@GIT_PERF_REPEAT_COUNT@|\'$(GIT_PERF_REPEAT_COUNT)\'|" \ - -e "s|@GIT_PERF_REPO@|\'$(GIT_PERF_REPO)\'|" \ - -e "s|@GIT_PERF_LARGE_REPO@|\'$(GIT_PERF_LARGE_REPO)\'|" \ - -e "s|@GIT_PERF_MAKE_OPTS@|\'$(GIT_PERF_MAKE_OPTS)\'|" \ - -e "s|@GIT_PERF_MAKE_COMMAND@|\'$(GIT_PERF_MAKE_COMMAND)\'|" \ - -e "s|@GIT_INTEROP_MAKE_OPTS@|\'$(GIT_INTEROP_MAKE_OPTS)\'|" \ - -e "s|@GIT_TEST_INDEX_VERSION@|\'$(GIT_TEST_INDEX_VERSION)\'|" \ - -e "s|@GIT_TEST_PERL_FATAL_WARNINGS@|\'$(GIT_TEST_PERL_FATAL_WARNINGS)\'|" \ - -e "s|@GIT_TEST_TEXTDOMAINDIR@|\'$(shell pwd)/po/build/locale\'|" \ - -e "s|@GIT_TEST_POPATH@|\'$(shell pwd)/po\'|" \ - -e "s|@GIT_TEST_TEMPLATE_DIR@|\'$(shell pwd)/templates/blt\'|" \ - -e "s|@GIT_TEST_GITPERLLIB@|\'$(shell pwd)/perl/build/lib\'|" \ - -e "s|@GIT_TEST_MERGE_TOOLS_DIR@|\'$(shell pwd)/mergetools\'|" \ - -e "s|@RUNTIME_PREFIX@|\'$(RUNTIME_PREFIX_OPTION)\'|" \ - -e "s|@GITWEBDIR@|\'$(gitwebdir_SQ)\'|" \ + -e "s|@TEST_SHELL_PATH@|\'$(TEST_SHELL_PATH_SQ)\'|" \ -e "s|@USE_GETTEXT_SCHEME@|\'$(USE_GETTEXT_SCHEME)\'|" \ - -e "s|@LOCALEDIR@|\'$(localedir_SQ)\'|" \ - -e "s!@BROKEN_PATH_FIX@!\'$(BROKEN_PATH_FIX)\'!" \ + -e "s|@USE_LIBPCRE2@|\'$(USE_LIBPCRE2)\'|" \ + -e "s|@WITH_BREAKING_CHANGES@|\'$(WITH_BREAKING_CHANGES)\'|" \ + -e "s|@X@|\'$(X)\'|" \ GIT-BUILD-OPTIONS.in >$@+ @if grep -q '^[A-Z][A-Z_]*=@.*@$$' $@+; then echo "Unsubstituted build options in $@" >&2 && exit 1; fi @if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi diff --cc ci/run-build-and-tests.sh index 76667a1277,2ccd812fb4..599dc1c32c --- a/ci/run-build-and-tests.sh +++ b/ci/run-build-and-tests.sh @@@ -13,11 -13,11 +13,12 @@@ esa run_tests=t case "$jobname" in - linux-gcc) + linux-breaking-changes) export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main + export WITH_BREAKING_CHANGES=YesPlease ;; linux-TEST-vars) + export OPENSSL_SHA1_UNSAFE=YesPlease export GIT_TEST_SPLIT_INDEX=yes export GIT_TEST_MERGE_ALGORITHM=recursive export GIT_TEST_FULL_IN_PACK_ARRAY=true diff --cc contrib/buildsystems/CMakeLists.txt index 10dc54fdcb,63d0088928..3179e7ff7a --- a/contrib/buildsystems/CMakeLists.txt +++ b/contrib/buildsystems/CMakeLists.txt @@@ -1193,19 -1169,36 +1193,20 @@@ string(REPLACE "@NO_PYTHON@" "${NO_PYTH string(REPLACE "@NO_REGEX@" "" git_build_options "${git_build_options}") string(REPLACE "@NO_UNIX_SOCKETS@" "${NO_UNIX_SOCKETS}" git_build_options "${git_build_options}") string(REPLACE "@PAGER_ENV@" "'${PAGER_ENV}'" git_build_options "${git_build_options}") -string(REPLACE "@SANITIZE_LEAK@" "" git_build_options "${git_build_options}") +string(REPLACE "@PERL_LOCALEDIR@" "'${LOCALEDIR}'" git_build_options "${git_build_options}") +string(REPLACE "@PERL_PATH@" "'${PERL_PATH}'" git_build_options "${git_build_options}") +string(REPLACE "@PYTHON_PATH@" "'${PYTHON_PATH}'" git_build_options "${git_build_options}") +string(REPLACE "@RUNTIME_PREFIX@" "'${RUNTIME_PREFIX}'" git_build_options "${git_build_options}") string(REPLACE "@SANITIZE_ADDRESS@" "" git_build_options "${git_build_options}") -string(REPLACE "@X@" "${EXE_EXTENSION}" git_build_options "${git_build_options}") -string(REPLACE "@FSMONITOR_DAEMON_BACKEND@" "win32" git_build_options "${git_build_options}") -string(REPLACE "@FSMONITOR_OS_SETTINGS@" "win32" git_build_options "${git_build_options}") +string(REPLACE "@SANITIZE_LEAK@" "" git_build_options "${git_build_options}") +string(REPLACE "@SHELL_PATH@" "'${SHELL_PATH}'" git_build_options "${git_build_options}") +string(REPLACE "@TAR@" "'${TAR}'" git_build_options "${git_build_options}") string(REPLACE "@TEST_OUTPUT_DIRECTORY@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_OPTS@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_CMP@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_CMP_USE_COPIED_CONTEXT@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_UTF8_LOCALE@" "" git_build_options "${git_build_options}") -string(REPLACE "@NO_GETTEXT@" "${NO_GETTEXT}" git_build_options "${git_build_options}") -string(REPLACE "@GIT_PERF_REPEAT_COUNT@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_PERF_REPO@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_PERF_LARGE_REPO@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_PERF_MAKE_OPTS@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_PERF_MAKE_COMMAND@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_INTEROP_MAKE_OPTS@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_INDEX_VERSION@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_PERL_FATAL_WARNINGS@" "" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_TEXTDOMAINDIR@" "'${CMAKE_BINARY_DIR}/po/build/locale'" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_POPATH@" "'${CMAKE_BINARY_DIR}/po'" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_TEMPLATE_DIR@" "'${CMAKE_BINARY_DIR}/templates/blt'" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_GITPERLLIB@" "'${CMAKE_BINARY_DIR}/perl/build/lib'" git_build_options "${git_build_options}") -string(REPLACE "@GIT_TEST_MERGE_TOOLS_DIR@" "'${RUNTIME_PREFIX}'" git_build_options "${git_build_options}") -string(REPLACE "@RUNTIME_PREFIX@" "'${RUNTIME_PREFIX}'" git_build_options "${git_build_options}") -string(REPLACE "@GITWEBDIR@" "'${GITWEBDIR}'" git_build_options "${git_build_options}") +string(REPLACE "@TEST_SHELL_PATH@" "'${TEST_SHELL_PATH}'" git_build_options "${git_build_options}") string(REPLACE "@USE_GETTEXT_SCHEME@" "" git_build_options "${git_build_options}") -string(REPLACE "@LOCALEDIR@" "'${LOCALEDIR}'" git_build_options "${git_build_options}") -string(REPLACE "@BROKEN_PATH_FIX@" "" git_build_options "${git_build_options}") +string(REPLACE "@USE_LIBPCRE2@" "" git_build_options "${git_build_options}") + string(REPLACE "@WITH_BREAKING_CHANGES@" "" git_build_options "${git_build_options}") +string(REPLACE "@X@" "${EXE_EXTENSION}" git_build_options "${git_build_options}") if(USE_VCPKG) string(APPEND git_build_options "PATH=\"$PATH:$TEST_DIRECTORY/../compat/vcbuild/vcpkg/installed/x64-windows/bin\"\n") endif() diff --cc meson_options.txt index c0d72d85a3,800e518d95..a0fe26f455 --- a/meson_options.txt +++ b/meson_options.txt @@@ -51,14 -37,14 +51,16 @@@ option('regex', type: 'feature', value # Backends. option('https_backend', type: 'combo', value: 'auto', choices: ['auto', 'openssl', 'CommonCrypto', 'none'], description: 'The HTTPS backend to use when connecting to remotes.') -option('sha1_backend', type: 'combo', choices: ['openssl', 'block', 'sha1dc', 'common-crypto'], value: 'sha1dc', - description: 'The backend used for hashing objects with the SHA1 object format') +option('sha1_backend', type: 'combo', choices: ['openssl', 'block', 'sha1dc', 'CommonCrypto'], value: 'sha1dc', + description: 'The backend used for hashing objects with the SHA1 object format.') +option('sha1_unsafe_backend', type: 'combo', choices: ['openssl', 'block', 'CommonCrypto', 'none'], value: 'none', + description: 'The backend used for hashing data with the SHA1 object format in case no cryptographic security is needed.') option('sha256_backend', type: 'combo', choices: ['openssl', 'nettle', 'gcrypt', 'block'], value: 'block', - description: 'The backend used for hashing objects with the SHA256 object format') + description: 'The backend used for hashing objects with the SHA256 object format.') # Build tweaks. + option('breaking_changes', type: 'boolean', value: false, + description: 'Enable upcoming breaking changes.') option('macos_use_homebrew_gettext', type: 'boolean', value: true, description: 'Use gettext from Homebrew instead of the slightly-broken system-provided one.')