summaryrefslogtreecommitdiff
path: root/gnu/packages/diffoscope.scm
diff options
context:
space:
mode:
authorVagrant Cascadian <vagrant@reproducible-builds.org>2020-02-07 16:06:17 -0800
committerVagrant Cascadian <vagrant@debian.org>2020-02-07 16:06:17 -0800
commitc526ddf482618edd22d0ad852e13f63c0477bb77 (patch)
tree381276bcca1e943b6db6bac83287860bab558e8e /gnu/packages/diffoscope.scm
parentd9e2f7b284f124b48b9fee150a3c06b5e0170049 (diff)
downloadguix-patches-c526ddf482618edd22d0ad852e13f63c0477bb77.tar
guix-patches-c526ddf482618edd22d0ad852e13f63c0477bb77.tar.gz
gnu: Add reprotest.
Added to diffoscope, to avoid triggering #37346. * gnu/packages/diffoscope (reprotest): New variable. * gnu/packages/patches/reprotest-support-guix.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch.
Diffstat (limited to 'gnu/packages/diffoscope.scm')
-rw-r--r--gnu/packages/diffoscope.scm68
1 files changed, 68 insertions, 0 deletions
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 534d859812..3b3540b5b0 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -44,6 +44,7 @@
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
+ #:use-module (gnu packages man)
#:use-module (gnu packages mono)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages package-management)
@@ -224,6 +225,73 @@ Diffoscope has many optional dependencies; @code{diffoscope
install.")
(license license:gpl3+))))
+(define-public reprotest
+ (package
+ (name "reprotest")
+ (version "0.7.13")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://salsa.debian.org/reproducible-builds/reprotest.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (patches (search-patches "reprotest-support-guix.patch"))
+ (sha256
+ (base32
+ "0jj9sqxbdpypnc0y8md352wwzh1by6nyhmx5fwqnvrbznrng332f"))))
+ (inputs
+ `(("python-debian" ,python-debian)
+ ("python-distro" ,python-distro)
+ ("python-libarchive-c", python-libarchive-c)
+ ("python-rstr" ,python-rstr)))
+ (native-inputs
+ `(("diffoscope" ,diffoscope)
+ ("help2man" ,help2man)
+ ("libfaketime" ,libfaketime)
+ ("python-coverage" ,python-coverage)
+ ("python-docutils" ,python-docutils)
+ ("python-pytest " ,python-pytest)
+ ("python-tlsh" ,python-tlsh)
+ ("python-tox" ,python-tox)
+ ("unzip" ,unzip)
+ ("xxd" ,xxd)))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Neither glibc-locales nor glibc-utf8-locales have the C.UTF-8
+ ;; locale or several other locales used in reprotest.
+ (add-after 'unpack 'adjust-locales
+ (lambda _
+ (substitute* "reprotest/build.py"
+ (("'C.UTF-8'") "'en_US.UTF-8'")
+ (("'ru_RU.CP1251'") "'ru_RU.KOI8-R'")
+ (("'kk_KZ.RK1048'") "'kk_KZ'"))
+ (substitute* "reprotest/lib/adt_testbed.py"
+ (("export LANG=C.UTF-8") "export LANG=en_US.UTF-8"))
+ #t))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((mandir1 (string-append
+ (assoc-ref outputs "out") "/share/man/man1"))
+ (docdir (string-append
+ (assoc-ref outputs "out") "/share/doc/" ,name "-" ,version)))
+ (invoke "make" "-C" "doc")
+ (mkdir-p mandir1)
+ (install-file "doc/reprotest.1" mandir1)
+ (mkdir-p docdir)
+ (install-file "./README.rst" docdir)
+ (install-file "./README-dev.rst" docdir))
+ #t)))))
+ (home-page "https://salsa.debian.org/reproducible-builds/reprotest")
+ (synopsis "Build software and check it for reproducibility")
+ (description "Reprotest builds the same source code twice in different
+environments, and then checks the binaries produced by each build for
+differences. If any are found, then diffoscope or diff is used to display
+them in detail for later analysis.")
+ (license (list license:gpl3+ license:gpl2+))))
+
(define-public trydiffoscope
(package
(name "trydiffoscope")