unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#44827: tests/channels.scm: Test failures building on Debian i386 or armhf with libgit2-dev 1.0.1
@ 2020-11-23 19:55 Vagrant Cascadian
  2020-11-26 21:45 ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Vagrant Cascadian @ 2020-11-23 19:55 UTC (permalink / raw)
  To: 44827

[-- Attachment #1: Type: text/plain, Size: 5902 bytes --]

Fun With More Debian packaging test suite failures...

Updating the build dependency to libgit2-dev >= 1.0.1 (which pulls in a
similar version to what guix is using) fixes test suite failures ... but
only on the amd64 architecture. The same tests pass Using an older
version of libgit2-dev (0.28). FWIW, this is building with guile-3.0.

The newer version of libgit2-dev introduces several test suite failures
on i386 (and armhf) architectures, but the tests work fine on
amd64. from tests/channels.log on i386:

test-name: latest-channel-instances #:validate-pull
location: /build/guix-M9TbTs/guix-1.2.0/tests/channels.scm:202
source:
+ (test-equal
+   "latest-channel-instances #:validate-pull"
+   'descendant
+   (let/ec
+     return
+     (with-temporary-git-repository
+       directory
+       '((add "a.txt" "A")
+         (commit "first commit")
+         (add "b.scm" "#t")
+         (commit "second commit"))
+       (with-repository
+         directory
+         repository
+         (let* ((commit1 (find-commit repository "first"))
+                (commit2 (find-commit repository "second"))
+                (spec (channel
+                        (url (string-append "file://" directory))
+                        (name 'foo)))
+                (new (channel
+                       (inherit spec)
+                       (commit (oid->string (commit-id commit2)))))
+                (old (channel
+                       (inherit spec)
+                       (commit (oid->string (commit-id commit1))))))
+           (define (validate-pull channel current commit relation)
+             (return
+               (and (eq? channel old)
+                    (string=?
+                      (oid->string (commit-id commit2))
+                      current)
+                    (string=?
+                      (oid->string (commit-id commit1))
+                      commit)
+                    relation)))
+           (with-store
+             store
+             (latest-channel-instances
+               store
+               (list old)
+               #:current-channels
+               (list new)
+               #:validate-pull
+               validate-pull)))))))
expected-value: descendant
actual-value: #f
actual-error:
+ (git-error
+   #<<git-error> code: -1 message: "invalid version 0 on git_proxy_options" class: 3>)
result: FAIL

test-name: channel-news, no news
location: /build/guix-M9TbTs/guix-1.2.0/tests/channels.scm:312
source:
+ (test-equal
+   "channel-news, no news"
+   '()
+   (with-temporary-git-repository
+     directory
+     '((add "a.txt" "A") (commit "the commit"))
+     (with-repository
+       directory
+       repository
+       (let ((channel
+               (channel
+                 (url (string-append "file://" directory))
+                 (name 'foo)))
+             (latest (reference-name->oid repository "HEAD")))
+         (channel-news-for-commit
+           channel
+           (oid->string latest))))))
expected-value: ()
actual-value: #f
actual-error:
+ (git-error
+   #<<git-error> code: -1 message: "invalid version 0 on git_proxy_options" class: 3>)
result: FAIL

test-name: latest-channel-instances, missing introduction for 'guix'
location: /build/guix-M9TbTs/guix-1.2.0/tests/channels.scm:413
source:
+ (test-assert
+   "latest-channel-instances, missing introduction for 'guix'"
+   (with-temporary-git-repository
+     directory
+     '((add "a.txt" "A")
+       (commit "first commit")
+       (add "b.scm" "#t")
+       (commit "second commit"))
+     (with-repository
+       directory
+       repository
+       (let* ((commit1 (find-commit repository "first"))
+              (commit2 (find-commit repository "second"))
+              (channel
+                (channel
+                  (url (string-append "file://" directory))
+                  (name 'guix))))
+         (guard (c ((formatted-message? c)
+                    (->bool
+ Initialized empty Git repository in /tmp/guix-directory.82hhlD/.git/
[master (root-commit) 936aa16] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt
[master 6c20741] second commit
 1 file changed, 1 insertion(+)
 create mode 100644 b.scm
gpg: keybox '/tmp/guix-directory.RpLKeD/pubring.kbx' created
gpg: /tmp/guix-directory.RpLKeD/trustdb.gpg: trustdb created
gpg: key 771F49CBFAAE072D: public key "Ed Two-Fifty <ludo+test-ecc@chbouib.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: key 771F49CBFAAE072D: "Ed Two-Fifty <ludo+test-ecc@chbouib.org>" not changed
gpg: key 771F49CBFAAE072D: secret key imported
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
gpg: key 82240EDCAB80DA83: public key "Charlie Guix <charlie@example.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: key 82240EDCAB80DA83: "Charlie Guix <charlie@example.org>" not changed
gpg: key 82240EDCAB80DA83: secret key imported
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
Initialized empty Git repository in /tmp/guix-directory.Zkbh5G/.git/
[master (root-commit) d174761] first commit
 3 files changed, 12 insertions(+)
 create mode 100644 .guix-authorizations
 create mode 100644 .guix-channel
 create mode 100644 signer.key
[master 9c9c798] second commit
 1 file changed, 1 insertion(+)
 create mode 100644 random
                     (string-contains
+                        (formatted-message-string c)
+                        "introduction"))))
+                (with-store
+                  store
+                  (latest-channel-instances store (list channel))
+                  #f))))))
actual-value: #f
actual-error:
+ (git-error
+   #<<git-error> code: -1 message: "invalid version 0 on git_proxy_options" class: 3>)
result: FAIL


live well,
  vagrant

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#44827: tests/channels.scm: Test failures building on Debian i386 or armhf with libgit2-dev 1.0.1
  2020-11-23 19:55 bug#44827: tests/channels.scm: Test failures building on Debian i386 or armhf with libgit2-dev 1.0.1 Vagrant Cascadian
@ 2020-11-26 21:45 ` Ludovic Courtès
  2020-11-27  7:22   ` Vagrant Cascadian
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2020-11-26 21:45 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: 44827

Hi,

Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:

> Updating the build dependency to libgit2-dev >= 1.0.1 (which pulls in a
> similar version to what guix is using) fixes test suite failures ... but
> only on the amd64 architecture. The same tests pass Using an older
> version of libgit2-dev (0.28). FWIW, this is building with guile-3.0.

[...]

> actual-error:
> + (git-error
> +   #<<git-error> code: -1 message: "invalid version 0 on git_proxy_options" class: 3>)

This error is the sign of an ABI mismatch issue between Guile-Git and
libgit2 (like Guile-Git assuming a wrong layout for one of the C structs
exposed by libgit2).

Which version of Guile-Git are you using?  Do its tests pass?

In particular, Guile-Git 0.4.0 has this thing compile-time check to make
sure it matches the ABI of the underlying libgit2 version (0.28 or 1.0):

  https://gitlab.com/guile-git/guile-git/-/commit/2b4d077c6f55648f42af31ae783ca4d8c1c5f1de

So if you change libgit2 versions, you need to rebuild Guile-Git.

HTH,
Ludo’.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#44827: tests/channels.scm: Test failures building on Debian i386 or armhf with libgit2-dev 1.0.1
  2020-11-26 21:45 ` Ludovic Courtès
@ 2020-11-27  7:22   ` Vagrant Cascadian
  2020-11-27 10:02     ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Vagrant Cascadian @ 2020-11-27  7:22 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 44827

[-- Attachment #1: Type: text/plain, Size: 1819 bytes --]

On 2020-11-26, Ludovic Courtès wrote:
> Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:
>
>> Updating the build dependency to libgit2-dev >= 1.0.1 (which pulls in a
>> similar version to what guix is using) fixes test suite failures ... but
>> only on the amd64 architecture. The same tests pass Using an older
>> version of libgit2-dev (0.28). FWIW, this is building with guile-3.0.
>
> [...]
>
>> actual-error:
>> + (git-error
>> +   #<<git-error> code: -1 message: "invalid version 0 on git_proxy_options" class: 3>)
>
> This error is the sign of an ABI mismatch issue between Guile-Git and
> libgit2 (like Guile-Git assuming a wrong layout for one of the C structs
> exposed by libgit2).
>
> Which version of Guile-Git are you using?  Do its tests pass?

0.4.0, tests passed when built against libgit2 0.28...


> In particular, Guile-Git 0.4.0 has this thing compile-time check to make
> sure it matches the ABI of the underlying libgit2 version (0.28 or 1.0):
>
>   https://gitlab.com/guile-git/guile-git/-/commit/2b4d077c6f55648f42af31ae783ca4d8c1c5f1de
>
> So if you change libgit2 versions, you need to rebuild Guile-Git.

Oh, this will be fun to keep track of in debian... :/ :)

Yeah, the guile-git was built with the older 0.28 version of libgit2-dev
(although also with all the architectures).

Interestingly enough, guix pull completely fails with the older
libgit2-dev version installed, but installing the new version it works
fine.

I'll build a newer guile-git version and force it to use the newer
libgit2-dev package, and see if that fixes the issues.

Then I'll have to come up with complicated versioned dependencies to
ensure it keeps working in Debian and it becomes detectable when it
needs to be rebuilt...


live well,
  vagrant

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#44827: tests/channels.scm: Test failures building on Debian i386 or armhf with libgit2-dev 1.0.1
  2020-11-27  7:22   ` Vagrant Cascadian
@ 2020-11-27 10:02     ` Ludovic Courtès
  2020-11-27 22:20       ` Vagrant Cascadian
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2020-11-27 10:02 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: 44827

Hi,

Vagrant Cascadian <vagrant@debian.org> skribis:

> On 2020-11-26, Ludovic Courtès wrote:

[...]

>> In particular, Guile-Git 0.4.0 has this thing compile-time check to make
>> sure it matches the ABI of the underlying libgit2 version (0.28 or 1.0):
>>
>>   https://gitlab.com/guile-git/guile-git/-/commit/2b4d077c6f55648f42af31ae783ca4d8c1c5f1de
>>
>> So if you change libgit2 versions, you need to rebuild Guile-Git.
>
> Oh, this will be fun to keep track of in debian... :/ :)

Note that the problem is the same for packages written in C since it’s
an ABI change in libgit2.  (Except that in C perhaps you get a SONAME
mismatch at load time rather than an error at run time…)

> Yeah, the guile-git was built with the older 0.28 version of libgit2-dev
> (although also with all the architectures).
>
> Interestingly enough, guix pull completely fails with the older
> libgit2-dev version installed, but installing the new version it works
> fine.
>
> I'll build a newer guile-git version and force it to use the newer
> libgit2-dev package, and see if that fixes the issues.
>
> Then I'll have to come up with complicated versioned dependencies to
> ensure it keeps working in Debian and it becomes detectable when it
> needs to be rebuilt...

Heheh.  Let me know how it goes!

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#44827: tests/channels.scm: Test failures building on Debian i386 or armhf with libgit2-dev 1.0.1
  2020-11-27 10:02     ` Ludovic Courtès
@ 2020-11-27 22:20       ` Vagrant Cascadian
  0 siblings, 0 replies; 5+ messages in thread
From: Vagrant Cascadian @ 2020-11-27 22:20 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 44827

[-- Attachment #1: Type: text/plain, Size: 1587 bytes --]

On 2020-11-27, Ludovic Courtès wrote:
> Vagrant Cascadian <vagrant@debian.org> skribis:
>> On 2020-11-26, Ludovic Courtès wrote:

>>> In particular, Guile-Git 0.4.0 has this thing compile-time check to make
>>> sure it matches the ABI of the underlying libgit2 version (0.28 or 1.0):
>>>
>>>   https://gitlab.com/guile-git/guile-git/-/commit/2b4d077c6f55648f42af31ae783ca4d8c1c5f1de
>>>
>>> So if you change libgit2 versions, you need to rebuild Guile-Git.
>>
>> Oh, this will be fun to keep track of in debian... :/ :)
>
> Note that the problem is the same for packages written in C since it’s
> an ABI change in libgit2.  (Except that in C perhaps you get a SONAME
> mismatch at load time rather than an error at run time…)
>
>> Yeah, the guile-git was built with the older 0.28 version of libgit2-dev
>> (although also with all the architectures).
>>
>> Interestingly enough, guix pull completely fails with the older
>> libgit2-dev version installed, but installing the new version it works
>> fine.
>>
>> I'll build a newer guile-git version and force it to use the newer
>> libgit2-dev package, and see if that fixes the issues.
>>
>> Then I'll have to come up with complicated versioned dependencies to
>> ensure it keeps working in Debian and it becomes detectable when it
>> needs to be rebuilt...
>
> Heheh.  Let me know how it goes!

Rebuilding guile-git against the newer libgit2 seems to resolve the
issues; the test suites passed on amd64, armhf, i386 (the only platforms
currently buildable on Debian).


live well,
  vagrant

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-11-27 22:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-23 19:55 bug#44827: tests/channels.scm: Test failures building on Debian i386 or armhf with libgit2-dev 1.0.1 Vagrant Cascadian
2020-11-26 21:45 ` Ludovic Courtès
2020-11-27  7:22   ` Vagrant Cascadian
2020-11-27 10:02     ` Ludovic Courtès
2020-11-27 22:20       ` Vagrant Cascadian

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).