~ruther/guix-local

8af878a459ac221be40d8b28dc4c0077f1de4708 — Maxim Cournoyer a month ago 8d2fe87
gnu: Add libarchive-next.

* gnu/packages/backup.scm (libarchive-next): New variable.

Change-Id: Ifc4b9f79fc2a382da69b524ad4a5921ee90e0ba7
1 files changed, 57 insertions(+), 1 deletions(-)

M gnu/packages/backup.scm
M gnu/packages/backup.scm => gnu/packages/backup.scm +57 -1
@@ 21,7 21,7 @@
;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022, 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022 Feng Shu <tumashu@163.com>
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>


@@ 357,6 357,62 @@ random access nor for in-place modification.  This package provides the
@command{bsdcat}, @command{bsdcpio} and @command{bsdtar} commands.")
    (license license:bsd-2)))

;;; TODO: core update (20k rebuilds).
(define-public libarchive-next
  (package
    (inherit libarchive)
    (name "libarchive")
    (version "3.8.4")
    (source
     (origin
       (method url-fetch)
       (uri (list (string-append "https://libarchive.org/downloads/libarchive-"
                                 version ".tar.xz")
                  (string-append "https://github.com/libarchive/libarchive"
                                 "/releases/download/v" version "/libarchive-"
                                 version ".tar.xz")))
       (sha256
        (base32
         "0wxdr7qws1z1b1gp5jsm7n2ccnjlmrnds52d5wc5xkzagyslgf67"))))
    (arguments
     (substitute-keyword-arguments (package-arguments libarchive)
       ((#:phases phases)
        #~(modify-phases #$phases
            (delete 'patch-pwd)
            (add-before 'build 'patch-commands
              (lambda _
                (substitute* "Makefile"
                  (("/bin/pwd") (which "pwd")))
                (substitute* "test_utils/test_main.c"
                  (("/bin/sh") (which "sh")))))
            (replace 'check
              (lambda* (#:key parallel-build? tests? #:allow-other-keys)
                (if tests?
                    (begin
                      ;; These environment variables are taken from
                      ;; <https://raw.githubusercontent.com/libarchive/libarchive/refs/heads/master/.github/workflows/ci.yml>
                      (setenv "SKIP_OPEN_FD_ERR_TEST" "1")
                      (setenv "IGNORE_TRAVERSALS_TEST4" "1")

		      ;; XXX: The test_owner_parse, test_read_disk, and
		      ;; test_write_disk_lookup tests expect user 'root' to
		      ;; exist, but the chroot's /etc/passwd doesn't have it
		      ;; (see:
		      ;; <https://github.com/libarchive/libarchive/issues/2794>).
		      (invoke "make" "-j" (number->string
                                           (if parallel-build?
                                               (parallel-job-count)
                                               1))
			      "libarchive_test"
			      "bsdcpio_test"
			      "bsdtar_test")
		      ;; XXX: This glob disables too much.
		      (invoke "./libarchive_test" "^test_*_disk*")
		      (invoke "./bsdcpio_test" "^test_owner_parse")
		      (invoke "./bsdtar_test"))
                    ;; Tests may be disabled if cross-compiling.
                    (format #t "Test suite not run.~%"))))))))))

(define-public rdup
  (package
    (name "rdup")