With the update to Emacs 28, emacs-libgit (a requirement for emacs- magit) fails to build with the following test error:
Test project /tmp/guix-build-emacs-libgit-20200515-1.0ef8b13.drv- 0/build Start 1: libegit2_annotated-commit 1/29 Test #1: libegit2_annotated-commit ........ Passed 0.38 sec Start 2: libegit2_blame 2/29 Test #2: libegit2_blame ................... Passed 0.39 sec Start 3: libegit2_blob 3/29 Test #3: libegit2_blob ....................***Failed 0.43 sec Running 4 tests (2022-05-15 07:25:56+0000, selector âtâ) Test blob-binary backtrace: signal(wrong-type-argument (utf-8-string-p "\177ELF\2\1\1\0\0\0\0\0\ apply(signal (wrong-type-argument (utf-8-string-p "\177ELF\2\1\1\0\0 (setq value-42 (apply fn-40 args-41)) (unwind-protect (setq value-42 (apply fn-40 args-41)) (setq form-des (if (unwind-protect (setq value-42 (apply fn-40 args-41)) (setq form (let (form-description-44) (if (unwind-protect (setq value-42 (apply (let ((value-42 'ert-form-evaluation-aborted-43)) (let (form-descrip (let* ((fn-40 #'string=) (args-41 (condition-case err (let ((signal- (let* ((repo (libgit-repository-open path)) (blob (libgit-revparse-s (let ((default-directory path)) (init) (commit-change "filename" str (progn (make-directory path 'parents) (let ((default-directory path) (unwind-protect (progn (make-directory path 'parents) (let ((default (let ((path "/tmp/guix-build-emacs-libgit-20200515-1.0ef8b13.dr...") (let* ((str (unibyte-string 127 69 76 70 2 1 1 0 0 0 0 0 0 0 0 0 3 0 (let ((lexical-binding nil)) (let* ((str (unibyte-string 127 69 76 7 (lambda nil (let ((lexical-binding nil)) (let* ((str (unibyte-string ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name blob-binary :documentation nil :body ert-run-or-rerun-test(#s(ert--stats :selector t :tests [#s(ert-test ert-run-tests(t #f(compiled-function (event-type &rest event-args) # ert-run-tests-batch(nil) ert-run-tests-batch-and-exit() command-line-1(("-L" "/tmp/guix-build-emacs-libgit-20200515-1.0ef8b1 command-line() normal-top-level() Test blob-binary condition: (wrong-type-argument utf-8-string-p "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\7\0\0\0\0\0\0@\0\0\ 0\0\0\0\0\270\33\0\0\0\0\0\0\0\0\0\0@\08\0\11\0@\0\35\0\34\0\6\0\0\0\5\ 0\0\0@\0\0\0\0\0\0\0") FAILED 1/4 blob-binary (0.041795 sec) passed 2/4 blob-create-fromdisk (0.023014 sec) passed 3/4 blob-create-fromstring (0.022546 sec) passed 4/4 blob-text (0.044085 sec) Ran 4 tests, 3 results as expected, 1 unexpected (2022-05-15 07:25:56+0000, 0.301178 sec) 1 unexpected results: FAILED blob-binary [...] I have no idea what causes it or where utf-8-string-p even comes from, but the implementation of string= appears to have changed. When running the build locally another test also appears flaky due to weird time stamp conversions. Cheers