diff --git a/.devcontainer b/.devcontainer
index 0ac4bac86f2..67ba29e63e0 160000
--- a/.devcontainer
+++ b/.devcontainer
@@ -1 +1 @@
-Subproject commit 0ac4bac86f2f25110dcf941fb94820bd79c061ec
+Subproject commit 67ba29e63e008035d449ef51eeb0e953dacddf54
diff --git a/.github/release-tag.json b/.github/release-tag.json
new file mode 100644
index 00000000000..911b419cb4e
--- /dev/null
+++ b/.github/release-tag.json
@@ -0,0 +1,4 @@
+{
+ "message": "xpro version 1.3.0.4 tag",
+ "tag": "xpv1.3.0.4"
+}
diff --git a/.github/release-tag.yml b/.github/release-tag.yml
deleted file mode 100644
index d694225c724..00000000000
--- a/.github/release-tag.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-tag: xpv1.3.0.3
-message: "xpro version 1.3.0.3 tag"
diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml
index 76b2701dea0..25962792df9 100644
--- a/.github/workflows/xpbuild.yml
+++ b/.github/workflows/xpbuild.yml
@@ -14,11 +14,15 @@ jobs:
contents: read
pull-requests: write
packages: write
- uses: externpro/externpro/.github/workflows/build-linux.yml@25.07.6
- secrets: inherit
+ uses: externpro/externpro/.github/workflows/build-linux.yml@26.01.5
+ secrets:
+ automation_token: ${{ secrets.GHCR_TOKEN }}
+ with: {}
macos:
- uses: externpro/externpro/.github/workflows/build-macos.yml@25.07.6
+ uses: externpro/externpro/.github/workflows/build-macos.yml@26.01.5
secrets: inherit
+ with: {}
windows:
- uses: externpro/externpro/.github/workflows/build-windows.yml@25.07.6
+ uses: externpro/externpro/.github/workflows/build-windows.yml@26.01.5
secrets: inherit
+ with: {}
diff --git a/.github/workflows/xprelease.yml b/.github/workflows/xprelease.yml
index a2eb28224ca..5181b8f7180 100644
--- a/.github/workflows/xprelease.yml
+++ b/.github/workflows/xprelease.yml
@@ -34,7 +34,7 @@ jobs:
# Upload build artifacts as release assets
release-from-build:
if: github.event_name == 'workflow_dispatch'
- uses: externpro/externpro/.github/workflows/release-from-build.yml@25.07.6
+ uses: externpro/externpro/.github/workflows/release-from-build.yml@26.01.5
with:
workflow_run_url: ${{ github.event.inputs.workflow_run_url }}
permissions:
diff --git a/.github/workflows/xptag.yml b/.github/workflows/xptag.yml
index b5ce9503a2a..1f6b0193f2d 100644
--- a/.github/workflows/xptag.yml
+++ b/.github/workflows/xptag.yml
@@ -8,9 +8,9 @@ on:
jobs:
tag:
if: ${{ github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'xpro' && contains(github.event.pull_request.labels.*.name, 'release:tag') }}
- uses: externpro/externpro/.github/workflows/tag-release.yml@25.07.6
+ uses: externpro/externpro/.github/workflows/tag-release.yml@26.01.5
with:
merge_sha: ${{ github.event.pull_request.merge_commit_sha }}
pr_number: ${{ github.event.pull_request.number }}
secrets:
- workflow_write_token: ${{ secrets.XPUPDATE_TOKEN }}
+ automation_token: ${{ secrets.XPRO_TOKEN }}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 81703b425e9..1969a2fbaaa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,9 +11,7 @@
# Install:
# > cmake --build . --target install
-CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1...3.31)
-
-set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1...4.3)
project(libgit2 VERSION "1.3.0" LANGUAGES C)
@@ -36,23 +34,12 @@ INCLUDE(FeatureSummary)
INCLUDE(EnableWarnings)
set(targetsFile ${PROJECT_NAME}-targets)
-if(DEFINED XP_NAMESPACE)
- string(JOIN "\n" EXT1
- "if(APPLE)"
- " find_package(Iconv REQUIRED)"
- "endif()"
- ""
- )
- xpExternPackage(NAMESPACE ${XP_NAMESPACE}
- TARGETS_FILE ${targetsFile} LIBRARIES git2
- BASE v${CMAKE_PROJECT_VERSION} XPDIFF "patch" DEPS libssh2
- WEB "https://libgit2.github.com/" UPSTREAM "github.com/libgit2/libgit2"
- DESC "portable, pure C implementation of the Git core methods"
- LICENSE "[GPL-2.0-only WITH Libgit2-exception](https://github.com/libgit2/libgit2/blob/master/README.md#license 'GPLv2-only with libgit2 linking exception')"
- )
+if(COMMAND xpExternPackage)
set(CMAKE_OPT_INSTALL FALSE)
set(USE_CMAKE_ICONV ON)
- set(nameSpace NAMESPACE ${XP_NAMESPACE}::)
+ if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR)
+ set(CMAKE_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/cmake)
+ endif()
else()
set(CMAKE_OPT_INSTALL TRUE)
set(USE_CMAKE_ICONV OFF)
@@ -336,5 +323,21 @@ IF(BUILD_FUZZERS)
ADD_SUBDIRECTORY(fuzzers)
ENDIF()
+if(COMMAND xpExternPackage)
+ string(JOIN "\n" EXT1
+ "if(APPLE)"
+ " find_package(Iconv REQUIRED)"
+ "endif()"
+ ""
+ )
+ xpExternPackage(TARGETS_FILE ${targetsFile}
+ LIBRARIES git2 DEFAULT_TARGETS git2
+ BASE v${CMAKE_PROJECT_VERSION} XPDIFF "patch"
+ WEB "https://libgit2.github.com/" UPSTREAM "github.com/libgit2/libgit2"
+ DESC "portable, pure C implementation of the Git core methods"
+ LICENSE "[GPL-2.0-only WITH Libgit2-exception](https://github.com/libgit2/libgit2/blob/master/README.md#license 'GPLv2-only with libgit2 linking exception')"
+ )
+endif()
+
FEATURE_SUMMARY(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
FEATURE_SUMMARY(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
diff --git a/CMakePresets.json b/CMakePresets.json
index f82cfdd2cf6..28efa3978f8 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -3,6 +3,7 @@
"include": [
".devcontainer/cmake/presets/xpLinuxNinja.json",
".devcontainer/cmake/presets/xpDarwinNinja.json",
- ".devcontainer/cmake/presets/xpWindowsVs2022.json"
+ ".devcontainer/cmake/presets/xpMswVs2022.json",
+ ".devcontainer/cmake/presets/xpMswVs2026.json"
]
}
diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json
index 9d1bf48aaca..654740879fc 100644
--- a/CMakePresetsBase.json
+++ b/CMakePresetsBase.json
@@ -10,7 +10,7 @@
"BUILD_SHARED_LIBS": "OFF",
"REGEX_BACKEND": "builtin",
"THREADSAFE": "ON",
- "XP_NAMESPACE": "xpro"
+ "CMAKE_EXPERIMENTAL_GENERATE_SBOM": "ca494ed3-b261-4205-a01f-603c95e4cae0"
}
}
],
diff --git a/cmake/SelectHTTPSBackend.cmake b/cmake/SelectHTTPSBackend.cmake
index 05ce2e62f80..3114e647b2b 100644
--- a/cmake/SelectHTTPSBackend.cmake
+++ b/cmake/SelectHTTPSBackend.cmake
@@ -2,8 +2,8 @@ INCLUDE(SanitizeBool)
# We try to find any packages our backends might use
FIND_PACKAGE(OpenSSL)
-if(TARGET xpro::crypto AND NOT DEFINED OPENSSL_INCLUDE_DIR)
- get_target_property(OPENSSL_INCLUDE_DIR xpro::crypto INTERFACE_INCLUDE_DIRECTORIES)
+if(TARGET openssl::crypto AND NOT DEFINED OPENSSL_INCLUDE_DIR)
+ get_target_property(OPENSSL_INCLUDE_DIR openssl::crypto INTERFACE_INCLUDE_DIRECTORIES)
endif()
FIND_PACKAGE(mbedTLS)
IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 64b5440dadf..d9312b007d5 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -204,10 +204,14 @@ ENDIF()
IF(USE_BUNDLED_ZLIB STREQUAL "OFF")
FIND_PACKAGE(ZLIB)
- if(NOT DEFINED ZLIB_INCLUDE_DIRS)
- get_target_property(ZLIB_INCLUDE_DIRS ${ZLIB_LIBRARIES} INTERFACE_INCLUDE_DIRECTORIES)
- endif()
IF(ZLIB_FOUND)
+ # TODO: Remove this when externpro/zlib has a new release with usext.cmake updates
+ if(NOT DEFINED ZLIB_LIBRARIES AND TARGET zlib::zlibstatic)
+ set(ZLIB_LIBRARIES zlib::zlibstatic)
+ endif()
+ if(NOT DEFINED ZLIB_INCLUDE_DIRS)
+ get_target_property(ZLIB_INCLUDE_DIRS ${ZLIB_LIBRARIES} INTERFACE_INCLUDE_DIRECTORIES)
+ endif()
LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${ZLIB_INCLUDE_DIRS})
LIST(APPEND LIBGIT2_LIBS ${ZLIB_LIBRARIES})
IF(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
@@ -238,7 +242,7 @@ IF (USE_SSH)
find_package(libssh2)
get_target_property(LIBSSH2_INCLUDE_DIRS ${LIBSSH2_LIBRARIES} INTERFACE_INCLUDE_DIRECTORIES)
else()
- FIND_PKGLIBRARIES(LIBSSH2 libssh2)
+ FIND_PKGLIBRARIES(LIBSSH2 libssh2)
endif()
IF (NOT LIBSSH2_FOUND)
FIND_PACKAGE(LibSSH2)
@@ -278,25 +282,25 @@ INCLUDE(SelectGSSAPI)
# Optional external dependency: iconv
IF (USE_ICONV)
- IF (USE_CMAKE_ICONV)
- LIST(REMOVE_ITEM CMAKE_MODULE_PATH "${libgit2_SOURCE_DIR}/cmake/")
- FIND_PACKAGE(Iconv)
- LIST(APPEND CMAKE_MODULE_PATH "${libgit2_SOURCE_DIR}/cmake/")
- INCLUDE(FindIconv) # populate the ICONV_* variables
+ if(USE_CMAKE_ICONV)
+ list(REMOVE_ITEM CMAKE_MODULE_PATH "${libgit2_SOURCE_DIR}/cmake/")
+ find_package(Iconv)
+ list(APPEND CMAKE_MODULE_PATH "${libgit2_SOURCE_DIR}/cmake/")
+ include(FindIconv) # populate the ICONV_* variables
# Iconv_INCLUDE_DIR (cmake) and ICONV_INCLUDE_DIR (libgit2)
# are assumed to be the same below... it was true on my system
- ELSE()
- FIND_PACKAGE(Iconv)
- ENDIF()
+ else()
+ FIND_PACKAGE(Iconv)
+ endif()
ENDIF()
IF (ICONV_FOUND)
SET(GIT_USE_ICONV 1)
LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${ICONV_INCLUDE_DIR})
if(USE_CMAKE_ICONV AND TARGET Iconv::Iconv)
# Iconv::Iconv avoids hard-coded build system paths in targetsFile
- LIST(APPEND LIBGIT2_LIBS Iconv::Iconv)
+ list(APPEND LIBGIT2_LIBS Iconv::Iconv)
else()
- LIST(APPEND LIBGIT2_LIBS ${ICONV_LIBRARIES})
+ LIST(APPEND LIBGIT2_LIBS ${ICONV_LIBRARIES})
endif()
LIST(APPEND LIBGIT2_PC_LIBS ${ICONV_LIBRARIES})
ENDIF()
@@ -425,7 +429,7 @@ if(SONAME)
set_target_properties(git2 PROPERTIES VERSION ${libgit2_VERSION})
set_target_properties(git2 PROPERTIES SOVERSION "${libgit2_VERSION_MAJOR}.${libgit2_VERSION_MINOR}")
if(LIBGIT2_FILENAME)
- target_compile_definitions(git2 PRIVATE LIBGIT2_FILENAME=\"${LIBGIT2_FILENAME}\")
+ target_compile_definitions(git2 PRIVATE [[LIBGIT2_FILENAME="${LIBGIT2_FILENAME}"]])
set_target_properties(git2 PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME})
elseif(DEFINED LIBGIT2_PREFIX)
set_target_properties(git2 PROPERTIES PREFIX "${LIBGIT2_PREFIX}")
@@ -454,4 +458,4 @@ INSTALL(TARGETS git2 EXPORT ${targetsFile}
)
INSTALL(DIRECTORY ${libgit2_SOURCE_DIR}/include/git2 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
INSTALL(FILES ${libgit2_SOURCE_DIR}/include/git2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} ${nameSpace})
+install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} NAMESPACE ${CMAKE_PROJECT_NAME}::)
diff --git a/xprodeps.md b/xprodeps.md
index aedefd83b28..0ed6325d43f 100644
--- a/xprodeps.md
+++ b/xprodeps.md
@@ -2,16 +2,17 @@
|project|license [^_l]|description [dependencies]|version|source|diff [^_d]|
|-------|-------------|--------------------------|-------|------|----------|
-|[libgit2](https://libgit2.github.com/)|[GPL-2.0 WITH le](https://github.com/libgit2/libgit2/blob/master/README.md#license 'GPL2 with linking exception')|portable, pure C implementation of the Git core methods [deps: _libssh2_]| |[upstream](https://github.com/libgit2/libgit2 'github.com/libgit2/libgit2')| [patch]|
-|[libssh2](http://www.libssh2.org/)|[BSD-3-Clause](http://www.libssh2.org/license.html 'BSD 3-Clause New or Revised License')|client-side C library implementing SSH2 protocol [deps: _openssl, zlib_]|[xpv1.9.0.4](https://github.com/externpro/libssh2/releases/tag/xpv1.9.0.4 'release')|[repo](https://github.com/externpro/libssh2 'github.com/externpro/libssh2') [upstream](https://github.com/libssh2/libssh2 'github.com/libssh2/libssh2')|[diff](https://github.com/externpro/libssh2/compare/libssh2-1.9.0...xpv1.9.0.4 'github.com/externpro/libssh2/compare/libssh2-1.9.0...xpv1.9.0.4') [patch]|
-|[openssl](http://www.openssl.org/)|[BSD-style](http://www.openssl.org/source/license.html 'dual OpenSSL and SSLeay License: both are BSD-style licenses')|Cryptography and SSL/TLS Toolkit [pvt deps: _nasm, yasm_]|[xpv1.1.1l.4](https://github.com/externpro/openssl/releases/tag/xpv1.1.1l.4 'release')|[repo](https://github.com/externpro/openssl 'github.com/externpro/openssl') [upstream](https://github.com/openssl/openssl 'github.com/openssl/openssl')|[diff](https://github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.4 'github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.4') [intro]|
-|[zlib](https://zlib.net 'zlib website')|[permissive](https://zlib.net/zlib_license.html 'zlib/libpng license, see https://en.wikipedia.org/wiki/Zlib_License')|compression library|[xpv1.3.1.4](https://github.com/externpro/zlib/releases/tag/xpv1.3.1.4 'release')|[repo](https://github.com/externpro/zlib 'github.com/externpro/zlib') [upstream](https://github.com/madler/zlib 'github.com/madler/zlib')|[diff](https://github.com/externpro/zlib/compare/v1.3.1...xpv1.3.1.4 'github.com/externpro/zlib/compare/v1.3.1...xpv1.3.1.4') [patch]|
-|[nasm](https://www.nasm.us/)|[BSD-2-Clause](https://www.nasm.us/ 'BSD 2-Clause Simplified License')|The Netwide Assembler - an 80x86 and x86-64 assembler (MSW-only)|[xpv2.14.02.4](https://github.com/externpro/nasm/releases/tag/xpv2.14.02.4 'release')|[repo](https://github.com/externpro/nasm 'github.com/externpro/nasm')|[diff](https://github.com/externpro/nasm/compare/v0...xpv2.14.02.4 'github.com/externpro/nasm/compare/v0...xpv2.14.02.4') [bin]|
-|[yasm](http://yasm.tortall.net/)|[BSD-2-Clause](https://github.com/yasm/yasm/blob/v1.3.0/COPYING 'BSD 2-Clause Simplified License')|assembler and disassembler for the Intel x86 architecture|[xpv1.3.0.3](https://github.com/externpro/yasm/releases/tag/xpv1.3.0.3 'release')|[repo](https://github.com/externpro/yasm 'github.com/externpro/yasm') [upstream](https://github.com/yasm/yasm 'github.com/yasm/yasm')|[diff](https://github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.3 'github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.3') [patch]|
+|[libgit2](https://libgit2.github.com/)|[GPL-2.0-only WITH Libgit2-exception](https://github.com/libgit2/libgit2/blob/master/README.md#license 'GPLv2-only with libgit2 linking exception')|portable, pure C implementation of the Git core methods [deps: _openssl, zlib, libssh2_]| |[upstream](https://github.com/libgit2/libgit2 'github.com/libgit2/libgit2')| [patch]|
+|[openssl](http://www.openssl.org/)|[OpenSSL AND SSLeay](http://www.openssl.org/source/license.html 'dual OpenSSL and SSLeay License: both apply')|Cryptography and SSL/TLS Toolkit [deps: _Threads_] [pvt deps: _nasm, yasm_]|[xpv1.1.1l.6](https://github.com/externpro/openssl/releases/tag/xpv1.1.1l.6 'release')|[repo](https://github.com/externpro/openssl 'github.com/externpro/openssl') [upstream](https://github.com/openssl/openssl 'github.com/openssl/openssl')|[diff](https://github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.6 'github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.6') [intro]|
+|[zlib](https://zlib.net/ 'zlib website')|[Zlib](https://zlib.net/zlib_license.html 'zlib/libpng license, see https://en.wikipedia.org/wiki/Zlib_License')|a general-purpose lossless data-compression library|[xpv1.3.2.1](https://github.com/externpro/zlib/releases/tag/xpv1.3.2.1 'release')|[repo](https://github.com/externpro/zlib 'github.com/externpro/zlib') [upstream](https://github.com/madler/zlib 'github.com/madler/zlib')|[diff](https://github.com/externpro/zlib/compare/v1.3.2...xpv1.3.2.1 'github.com/externpro/zlib/compare/v1.3.2...xpv1.3.2.1') [patch]|
+|[libssh2](http://www.libssh2.org/)|[BSD-3-Clause](http://www.libssh2.org/license.html 'BSD 3-Clause New or Revised License')|client-side C library implementing SSH2 protocol [deps: _openssl, zlib_]|[xpv1.9.0.5](https://github.com/externpro/libssh2/releases/tag/xpv1.9.0.5 'release')|[repo](https://github.com/externpro/libssh2 'github.com/externpro/libssh2') [upstream](https://github.com/libssh2/libssh2 'github.com/libssh2/libssh2')|[diff](https://github.com/externpro/libssh2/compare/libssh2-1.9.0...xpv1.9.0.5 'github.com/externpro/libssh2/compare/libssh2-1.9.0...xpv1.9.0.5') [patch]|
+|[Threads](https://cmake.org/cmake/help/latest/module/FindThreads.html)|[LGPL-2.1-or-later](https://spdx.org/licenses/LGPL-2.1-or-later.html 'GNU Lesser General Public License v2.1 or later')|Finds and determines the thread library of the system for multithreading support|[xpv1.0.4](https://github.com/externpro/Threads/releases/tag/xpv1.0.4 'release')|[repo](https://github.com/externpro/Threads 'github.com/externpro/Threads')|[diff](https://github.com/externpro/Threads/compare/v0...xpv1.0.4 'github.com/externpro/Threads/compare/v0...xpv1.0.4') [bin]|
+|[nasm](https://www.nasm.us/)|[BSD-2-Clause](https://www.nasm.us/ 'BSD 2-Clause Simplified License')|The Netwide Assembler - an 80x86 and x86-64 assembler (MSW-only)|[xpv2.14.02.5](https://github.com/externpro/nasm/releases/tag/xpv2.14.02.5 'release')|[repo](https://github.com/externpro/nasm 'github.com/externpro/nasm')|[diff](https://github.com/externpro/nasm/compare/v0...xpv2.14.02.5 'github.com/externpro/nasm/compare/v0...xpv2.14.02.5') [bin]|
+|[yasm](http://yasm.tortall.net/)|[BSD-2-Clause](https://github.com/yasm/yasm/blob/v1.3.0/COPYING 'BSD 2-Clause Simplified License')|assembler and disassembler for the Intel x86 architecture|[xpv1.3.0.4](https://github.com/externpro/yasm/releases/tag/xpv1.3.0.4 'release')|[repo](https://github.com/externpro/yasm 'github.com/externpro/yasm') [upstream](https://github.com/yasm/yasm 'github.com/yasm/yasm')|[diff](https://github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.4 'github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.4') [patch]|

-Dependency version check: all 5 parent-manifest versions match pinned versions.
+Dependency version check: all 8 parent-manifest versions match pinned versions.
|diff |description|
|------|-----------|
diff --git a/xprodeps.svg b/xprodeps.svg
index 1a9dc0fed66..575a23ba7ba 100644
--- a/xprodeps.svg
+++ b/xprodeps.svg
@@ -4,75 +4,99 @@
-