diff mbox series

[bug#54611,WIP] gnu: Update libgit2 to 1.4.2

Message ID e27cb0a8f0f19970fd0440df16b49634d1dbf989.camel@telenet.be
State Accepted
Headers show
Series [bug#54611,WIP] gnu: Update libgit2 to 1.4.2 | expand

Commit Message

M March 31, 2022, 5:11 p.m. UTC
Maxime Devos schreef op di 29-03-2022 om 22:30 [+0200]:
> Maxime Devos schreef op ma 28-03-2022 om 15:12 [+0200]:
> > Patch is not yet ready (I'm looking at the source code diff for
> > anything ‘suspicious’), just reserving a bug number and avoiding
> > double
> > work.  Will send an actual patch later.
> 
> Looks like it cannot find libssh2:

With the attached patch, libgit2 actually finds libssh2.
Next steps:

* [ ] verify it builds on a 32-bit arch (maybe i686-linux)
* [ ] verify it cross-compiles
* [ ] verify that dependents still build.

If someone has a x86_64 and is interested in a reproducibility check:

# store item returned by "./pre-inst-env guix build libgit2 --no-
grafts"
$ ./pre-inst-env guix hash -r /gnu/store/5sm6dz6jjn7bgnqlakhlw72ncfxdyh2n-libgit2-1.4.2
1g3qbpca5j5s7iklx5ln6pi4aw0ycx69djiajgzqmw7k64b935qb

Greetings,
Maxime.

Comments

M April 1, 2022, 2:43 p.m. UTC | #1
Maxime Devos schreef op do 31-03-2022 om 19:11 [+0200]:
> * [ ] verify that dependents still build.

This seems to go rather slowly.  None have failed to built yet, except
'guix' and 'kmessagelib' (https://issues.guix.gnu.org/54658,
https://issues.guix.gnu.org/53543).  These test failures seem
unrelated.  So far things look good.
M April 1, 2022, 2:57 p.m. UTC | #2
Maxime Devos schreef op do 31-03-2022 om 19:11 [+0200]:
* [ ] verify it builds on a 32-bit arch (maybe i686-linux)

It does:

$ /pre-inst-env guix build libgit2 --system=i686-linux --cores=16 --no-grafts
> /gnu/store/gc6f6zkmh5sj2a9gpdp8xf2xqmd7dsdy-libgit2-1.4.2-debug
> /gnu/store/lx1p75x2ljj5f2g6v8ya8pqccr9kgcbn-libgit2-1.4.2
# reproducibility check
$ ./pre-inst-env guix hash -rx /gnu/store/lx1p75x2ljj5f2g6v8ya8pqccr9kgcbn-libgit2-1.4.2
> 05ilpjik1cw1aqnf1i2mnc4ja91p0glr19r2bag2p424l0zbwh9g

Greetings,
Maxime.
M April 1, 2022, 3:05 p.m. UTC | #3
Maxime Devos schreef op do 31-03-2022 om 19:11 [+0200]:
* [ ] verify it cross-compiles

It does:

$ ./pre-inst-env guix build libgit2 --target=riscv64-linux-gnu --system=x86_64-linux  --no-grafts
> /gnu/store/lj17ci85vdrmhxg2mm7ri6pxb7gky0x1-libgit2-1.4.2-debug
> /gnu/store/4ib6wzqi2r6yli214jc41w4kfm1cv7kr-libgit2-1.4.2
# reproducibility check
$ ./pre-inst-env guix hash -rx /gnu/store/4ib6wzqi2r6yli214jc41w4kfm1cv7kr-libgit2-1.4.2
> 1dh9zw874gzn72rzmg0s57115fgwmsk5h3nx0bzdvczlh3zc9hz6
$ ./pre-inst-env guix hash -rx /gnu/store/lj17ci85vdrmhxg2mm7ri6pxb7gky0x1-libgit2-1.4.2-debug
> 1sak58mjzrwg9jrzbv1xdxl3198qmfi794aybqypp31k9dh20n7y

Greetings,
Maxime.
M April 1, 2022, 3:09 p.m. UTC | #4
Maxime Devos schreef op do 31-03-2022 om 19:11 [+0200]:
> * [ ] verify it builds on a 32-bit arch (maybe i686-linux)
> * [ ] verify it cross-compiles
> * [ ] verify that dependents still build.

I wasn't able to build-test all dependents (89) due to it taking too
long, but otherwise all boxes are checked.  I think the patch is ready,
WDYT?

Greetings,
Maxime.
Thiago Jung Bauermann April 2, 2022, 4:07 a.m. UTC | #5
Hello Maxime,

Maxime Devos <maximedevos@telenet.be> writes:

> [[PGP Signed Part:Undecided]]
> Maxime Devos schreef op di 29-03-2022 om 22:30 [+0200]:
>> Maxime Devos schreef op ma 28-03-2022 om 15:12 [+0200]:
>> > Patch is not yet ready (I'm looking at the source code diff for
>> > anything ‘suspicious’), just reserving a bug number and avoiding
>> > double
>> > work.  Will send an actual patch later.
>> 
>> Looks like it cannot find libssh2:
>
> With the attached patch, libgit2 actually finds libssh2.
> Next steps:
>
> * [ ] verify it builds on a 32-bit arch (maybe i686-linux)
> * [ ] verify it cross-compiles
> * [ ] verify that dependents still build.
>
> If someone has a x86_64 and is interested in a reproducibility check:
>
> # store item returned by "./pre-inst-env guix build libgit2 --no-
> grafts"
> $ ./pre-inst-env guix hash -r /gnu/store/5sm6dz6jjn7bgnqlakhlw72ncfxdyh2n-libgit2-1.4.2
> 1g3qbpca5j5s7iklx5ln6pi4aw0ycx69djiajgzqmw7k64b935qb

I did that, and obtained the same hash!
Thiago Jung Bauermann April 2, 2022, 4:23 a.m. UTC | #6
Hello Maxim,

Maxime Devos <maximedevos@telenet.be> writes:
> Maxime Devos schreef op do 31-03-2022 om 19:11 [+0200]:
> * [ ] verify it builds on a 32-bit arch (maybe i686-linux)
>
> It does:
>
> $ /pre-inst-env guix build libgit2 --system=i686-linux --cores=16 --no-grafts
>> /gnu/store/gc6f6zkmh5sj2a9gpdp8xf2xqmd7dsdy-libgit2-1.4.2-debug
>> /gnu/store/lx1p75x2ljj5f2g6v8ya8pqccr9kgcbn-libgit2-1.4.2
> # reproducibility check
> $ ./pre-inst-env guix hash -rx /gnu/store/lx1p75x2ljj5f2g6v8ya8pqccr9kgcbn-libgit2-1.4.2
>> 05ilpjik1cw1aqnf1i2mnc4ja91p0glr19r2bag2p424l0zbwh9g

This hash also matched on my system. Nice!
Ludovic Courtès May 11, 2022, 9:56 p.m. UTC | #7
Hi Maxime,

Maxime Devos <maximedevos@telenet.be> skribis:

> From a7df2fe70f38cfb53084e1bea14e90836fa8caa5 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <maximedevos@telenet.be>
> Date: Thu, 31 Mar 2022 16:34:47 +0000
> Subject: [PATCH] gnu: libgit2: Update to 1.4.2.
>
> * gnu/packages/version-control.scm (libgit2)
>   [version]: Update to 1.4.2.
>   [arguments]<#:configure-flags>: Explicitly enable SSH support.
>   [arguments]<#:phases>{check}: Adjust to new test runner name.
>   [arguments]<#:phases>{fix-hardcoded-paths}: Remove obsolete phase.

I started from this patch, bumped to 1.4.3, adjusted for the
time-dependent test, adjusted ‘libgit2-1.1’, introduced ‘libgit2-1.3’
for use in packages that can’t switch to 1.4, etc.

Pushed as e764b89a52171fd5ff6d22fdb562ceb60ec6a50a.

Let me know if you notice anything wrong!

Thanks,
Ludo’.
M May 12, 2022, 6:44 a.m. UTC | #8
Ludovic Courtès schreef op wo 11-05-2022 om 23:56 [+0200]:
> I started from this patch, bumped to 1.4.3, adjusted for the
> time-dependent test, adjusted ‘libgit2-1.1’, introduced ‘libgit2-1.3’
> for use in packages that can’t switch to 1.4, etc.

Maybe in the future, I could use
<https://data.guix-patches.cbaines.net/> for determining if there are
no new build failures.

> 
> Pushed as e764b89a52171fd5ff6d22fdb562ceb60ec6a50a.
> 
> Let me know if you notice anything wrong!

Thanks!

Greetings,
Maxime.
diff mbox series

Patch

From a7df2fe70f38cfb53084e1bea14e90836fa8caa5 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Thu, 31 Mar 2022 16:34:47 +0000
Subject: [PATCH] gnu: libgit2: Update to 1.4.2.

* gnu/packages/version-control.scm (libgit2)
  [version]: Update to 1.4.2.
  [arguments]<#:configure-flags>: Explicitly enable SSH support.
  [arguments]<#:phases>{check}: Adjust to new test runner name.
  [arguments]<#:phases>{fix-hardcoded-paths}: Remove obsolete phase.
---
 gnu/packages/version-control.scm | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 9489cf9980..f48c5d2b53 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -44,6 +44,7 @@ 
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -789,7 +790,7 @@  to GitHub contributions calendar.")
 (define-public libgit2
   (package
     (name "libgit2")
-    (version "1.3.0")
+    (version "1.4.2")
     (source (origin
               ;; Since v1.1.1, release artifacts are no longer offered (see:
               ;; https://github.com/libgit2/libgit2/discussions/5932#discussioncomment-1682729).
@@ -800,7 +801,7 @@  to GitHub contributions calendar.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0vgpb2175a5dhqiy1iwywwppahgqhi340i8bsvafjpvkw284vazd"))
+                "0xd5w2kzdafipf10sdjmrzzsi12q8rkpcafajwlnmwvrbg6ldvs5"))
               (modules '((guix build utils)))
               (snippet '(delete-file-recursively "deps"))))
     (build-system cmake-build-system)
@@ -810,6 +811,7 @@  to GitHub contributions calendar.")
        (list "-DUSE_NTLMCLIENT=OFF" ;TODO: package this
              "-DREGEX_BACKEND=pcre2"
              "-DUSE_HTTP_PARSER=system"
+             "-DUSE_SSH=ON" ; cmake fails to find libssh if this is missing
              ,@(if (%current-target-system)
                    `((string-append
                       "-DPKG_CONFIG_EXECUTABLE="
@@ -820,18 +822,11 @@  to GitHub contributions calendar.")
                    '()))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-hardcoded-paths
-           (lambda _
-             (substitute* "tests/repo/init.c"
-               (("#!/bin/sh") (string-append "#!" (which "sh"))))
-             (substitute* "tests/clar/fs.h"
-               (("/bin/cp") (which "cp"))
-               (("/bin/rm") (which "rm")))))
          ;; Run checks more verbosely, unless we are cross-compiling.
          (replace 'check
            (lambda* (#:key (tests? #t) #:allow-other-keys)
              (if tests?
-                 (invoke "./libgit2_clar" "-v" "-Q")
+                 (invoke "./libgit2_tests" "-v" "-Q")
                  ;; Tests may be disabled if cross-compiling.
                  (format #t "Test suite not run.~%")))))))
     (inputs

base-commit: 9a31942cabb5c73174aee96ecd873fcf89955a9d
-- 
2.30.2