diff --git a/julia/PKGBUILD b/julia/PKGBUILD index c535d15f9b..06449e3ebb 100644 --- a/julia/PKGBUILD +++ b/julia/PKGBUILD @@ -9,8 +9,8 @@ pkgname=julia epoch=2 -pkgver=1.10.2 -pkgrel=1 +pkgver=1.10.3 +pkgrel=2 arch=(x86_64 powerpc64le) pkgdesc='High-level, high-performance, dynamic programming language' url='https://julialang.org/' @@ -38,15 +38,17 @@ optdepends=('gnuplot: If using the Gaston Package from julia') source=(https://github.com/JuliaLang/julia/releases/download/v$pkgver/$pkgname-$pkgver-full.tar.gz{,.asc} c12e8515.patch julia-libgit2-1.7.patch::https://github.com/JuliaLang/julia/commit/2c4c068e.patch + julia-libgit2-1.8.patch julia-libunwind-1.6.patch julia-libcholmod-cuda.patch julia-suitesparse-7.patch julia-hardcoded-libs.patch) backup=(etc/julia/startup.jl) -sha256sums=('62468720afbc410eb4f262ed2433a92132627872c9f690b704dc045ccb155401' +sha256sums=('d892b2123be64dacf9d05e4ccbad7f1797f6bf87c397a74804b011c8750f6c8f' 'SKIP' '2cc294b63e601d50341979fb936826bdba59de2165a5929eae927e152652f367' - '97efa327f1d389de59258f6047689ca7bed2b7be922088566865defd5d305ed0' + 'b533dd999f019258cbcae1563f18715f41e42e0786b681150cb2c28f8a0da963' + 'dc541120600e9c0574016a2738461ddb99be21fc8f763d4a3152169fd2f3bf54' '3c0c03eabb668e3242fcd3058c1011dfbb579cc1c5adc3ae1016531e711cc64e' 'f69afd7db3fabe4b747afa2404e1202c1dcfe0f8c5fe5238e424eea737fa2a23' '0fd1a0c1fcbe7f583139ed3a4a87f77963f06876d69058fa3ffbedfaec609ee7' @@ -65,8 +67,9 @@ prepare() { patch -Rp1 -i ../c12e8515.patch # Harmless test failure, needs investigation sed -e '/int.jl/d' -i test/cmdlineargs.jl -# libgit2 1.7 compatibility +# libgit2 1.8 compatibility patch -p1 -i ../julia-libgit2-1.7.patch + patch -p1 -i ../julia-libgit2-1.8.patch # Don't use libcholmod-cuda patch -p1 -i ../julia-libcholmod-cuda.patch # Don't hardcode library names diff --git a/julia/julia-libgit2-1.7.patch b/julia/julia-libgit2-1.7.patch deleted file mode 100644 index 142ae5b2b4..0000000000 --- a/julia/julia-libgit2-1.7.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 764484f58b5daead9fd58de08ce35382758d3985 Mon Sep 17 00:00:00 2001 -From: Yichao Yu -Date: Sun, 10 Sep 2023 14:07:57 -0400 -Subject: [PATCH] libgit2 1.7.0 support - ---- - stdlib/LibGit2/src/consts.jl | 5 +++++ - stdlib/LibGit2/src/types.jl | 5 ++++- - 2 files changed, 9 insertions(+), 1 deletion(-) - -diff --git a/stdlib/LibGit2/src/consts.jl b/stdlib/LibGit2/src/consts.jl -index f3a460108db6b..8f0e6eeb2ec87 100644 ---- a/stdlib/LibGit2/src/consts.jl -+++ b/stdlib/LibGit2/src/consts.jl -@@ -468,4 +468,9 @@ Option flags for `GitProxy`. - TRACE_TRACE - end - -+# The type of object id -+@enum(GIT_OID_TYPE, -+ _OID_DEFAULT = 0, -+ OID_SHA1 = 1) -+ - end -diff --git a/stdlib/LibGit2/src/types.jl b/stdlib/LibGit2/src/types.jl -index 0b653f9b6ad21..c796ff0f98b20 100644 ---- a/stdlib/LibGit2/src/types.jl -+++ b/stdlib/LibGit2/src/types.jl -@@ -2,7 +2,7 @@ - - using Base: something - import Base.@kwdef --import .Consts: GIT_SUBMODULE_IGNORE, GIT_MERGE_FILE_FAVOR, GIT_MERGE_FILE, GIT_CONFIG -+import .Consts: GIT_SUBMODULE_IGNORE, GIT_MERGE_FILE_FAVOR, GIT_MERGE_FILE, GIT_CONFIG, GIT_OID_TYPE - - const OID_RAWSZ = 20 - const OID_HEXSZ = OID_RAWSZ * 2 -@@ -439,6 +439,9 @@ The fields represent: - # options controlling how the diff text is generated - context_lines::UInt32 = UInt32(3) - interhunk_lines::UInt32 = UInt32(0) -+ @static if LibGit2.VERSION >= v"1.7.0" -+ oid_type::GIT_OID_TYPE = Consts._OID_DEFAULT -+ end - id_abbrev::UInt16 = UInt16(7) - max_size::Int64 = Int64(512*1024*1024) #512Mb - old_prefix::Cstring = Cstring(C_NULL) -diff --git a/stdlib/LibGit2/test/libgit2-tests.jl b/stdlib/LibGit2/test/libgit2-tests.jl -index 4ace98a0b1..f230ff4e14 100644 ---- a/stdlib/LibGit2/test/libgit2-tests.jl -+++ b/stdlib/LibGit2/test/libgit2-tests.jl -@@ -1181,19 +1177,19 @@ mktempdir() do dir - @testset "diff" begin - LibGit2.with(LibGit2.GitRepo(cache_repo)) do repo - @test !LibGit2.isdirty(repo) -- @test !LibGit2.isdirty(repo, test_file) -- @test !LibGit2.isdirty(repo, "nonexistent") -+# @test !LibGit2.isdirty(repo, test_file) -+# @test !LibGit2.isdirty(repo, "nonexistent") - @test !LibGit2.isdiff(repo, "HEAD") - @test !LibGit2.isdirty(repo, cached=true) -- @test !LibGit2.isdirty(repo, test_file, cached=true) -- @test !LibGit2.isdirty(repo, "nonexistent", cached=true) -+# @test !LibGit2.isdirty(repo, test_file, cached=true) -+# @test !LibGit2.isdirty(repo, "nonexistent", cached=true) - @test !LibGit2.isdiff(repo, "HEAD", cached=true) - open(joinpath(cache_repo,test_file), "a") do f - println(f, "zzzz") - end - @test LibGit2.isdirty(repo) -- @test LibGit2.isdirty(repo, test_file) -- @test !LibGit2.isdirty(repo, "nonexistent") -+# @test LibGit2.isdirty(repo, test_file) -+# @test !LibGit2.isdirty(repo, "nonexistent") - @test LibGit2.isdiff(repo, "HEAD") - @test !LibGit2.isdirty(repo, cached=true) - @test !LibGit2.isdiff(repo, "HEAD", cached=true) diff --git a/julia/julia-libgit2-1.8.patch b/julia/julia-libgit2-1.8.patch new file mode 100644 index 0000000000..e25badcc17 --- /dev/null +++ b/julia/julia-libgit2-1.8.patch @@ -0,0 +1,80 @@ +diff --git a/stdlib/LibGit2/src/consts.jl b/stdlib/LibGit2/src/consts.jl +index 5a5b8b74e7127..8c140e8c2aa30 100644 +--- a/stdlib/LibGit2/src/consts.jl ++++ b/stdlib/LibGit2/src/consts.jl +@@ -417,7 +417,32 @@ Option flags for `GitRepo`. + FEATURE_SSH = Cuint(1 << 2), + FEATURE_NSEC = Cuint(1 << 3)) + +-if version() >= v"0.24.0" ++if version() >= v"1.8.0" ++ @doc """ ++ Priority level of a config file. ++ ++ These priority levels correspond to the natural escalation logic (from higher to lower) when searching for config entries in git. ++ ++ * `CONFIG_LEVEL_DEFAULT` - Open the global, XDG and system configuration files if any available. ++ * `CONFIG_LEVEL_PROGRAMDATA` - System-wide on Windows, for compatibility with portable git ++ * `CONFIG_LEVEL_SYSTEM` - System-wide configuration file; `/etc/gitconfig` on Linux systems ++ * `CONFIG_LEVEL_XDG` - XDG compatible configuration file; typically `~/.config/git/config` ++ * `CONFIG_LEVEL_GLOBAL` - User-specific configuration file (also called Global configuration file); typically `~/.gitconfig` ++ * `CONFIG_LEVEL_LOCAL` - Repository specific configuration file; `\$WORK_DIR/.git/config` on non-bare repos ++ * `CONFIG_LEVEL_WORKTREE` - Worktree specific configuration file; `\$GIT_DIR/config.worktree` ++ * `CONFIG_LEVEL_APP` - Application specific configuration file; freely defined by applications ++ * `CONFIG_HIGHEST_LEVEL` - Represents the highest level available config file (i.e. the most specific config file available that actually is loaded) ++ """ ++ @enum(GIT_CONFIG, CONFIG_LEVEL_DEFAULT = 0, ++ CONFIG_LEVEL_PROGRAMDATA = 1, ++ CONFIG_LEVEL_SYSTEM = 2, ++ CONFIG_LEVEL_XDG = 3, ++ CONFIG_LEVEL_GLOBAL = 4, ++ CONFIG_LEVEL_LOCAL = 5, ++ CONFIG_LEVEL_WORKTREE = 6, ++ CONFIG_LEVEL_APP = 7, ++ CONFIG_HIGHEST_LEVEL =-1) ++elseif version() >= v"0.24.0" + @doc """ + Priority level of a config file. + +diff --git a/stdlib/LibGit2/src/types.jl b/stdlib/LibGit2/src/types.jl +index 96cea96d013e5..b0b463c69e2f1 100644 +--- a/stdlib/LibGit2/src/types.jl ++++ b/stdlib/LibGit2/src/types.jl +@@ -678,6 +678,8 @@ The fields represent: + for more information. + * `custom_headers`: only relevant if the LibGit2 version is greater than or equal to `0.24.0`. + Extra headers needed for the push operation. ++ * `remote_push_options`: only relevant if the LibGit2 version is greater than or equal to `1.8.0`. ++ "Push options" to deliver to the remote. + """ + @kwdef struct PushOptions + version::Cuint = Cuint(1) +@@ -692,6 +694,9 @@ The fields represent: + @static if LibGit2.VERSION >= v"0.24.0" + custom_headers::StrArrayStruct = StrArrayStruct() + end ++ @static if LibGit2.VERSION >= v"1.8.0" ++ remote_push_options::StrArrayStruct = StrArrayStruct() ++ end + end + @assert Base.allocatedinline(PushOptions) + +@@ -913,10 +918,17 @@ Matches the [`git_config_entry`](https://libgit2.org/libgit2/#HEAD/type/git_conf + struct ConfigEntry + name::Cstring + value::Cstring ++ @static if LibGit2.VERSION >= v"1.8.0" ++ backend_type::Cstring ++ origin_path::Cstring ++ end + include_depth::Cuint + level::GIT_CONFIG + free::Ptr{Cvoid} +- payload::Ptr{Cvoid} # User is not permitted to read or write this field ++ @static if LibGit2.VERSION < v"1.8.0" ++ # In 1.8.0, the unused payload value has been removed ++ payload::Ptr{Cvoid} ++ end + end + @assert Base.allocatedinline(ConfigEntry) +