summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-11-24 22:06:05 +0200
committerEfraim Flashner <efraim@flashner.co.il>2020-11-25 09:08:09 +0200
commit13978f02105b95a83523cb046282ad408e00585c (patch)
treefcf70fc06c329f1e6fb9867163b5a5e091489993 /gnu
parentd82766e64cb38be8eea878db4a461614ed0e3fe7 (diff)
downloadguix-13978f02105b95a83523cb046282ad408e00585c.tar.gz
gnu: Add reprepro.
* gnu/packages/debian.scm (reprepro): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/debian.scm60
1 files changed, 60 insertions, 0 deletions
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 2ecc229322..a82e6a07a8 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -26,9 +26,11 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
+  #:use-module (gnu packages dbm)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages ncurses)
@@ -331,3 +333,61 @@ other apt sources typically provided by open source developers.")
     (description "This package provides the low-level infrastructure for
 handling the installation and removal of Debian software packages.")
     (license license:gpl2+)))
+
+(define-public reprepro
+  (package
+    (name "reprepro")
+    (version "5.3.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://salsa.debian.org/brlink/reprepro.git/")
+               (commit (string-append name "-" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1kn7m5rxay6q2c4vgjgm4407xx2r46skkkb6rn33m6dqk1xfkqnh"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; testtool not found
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+               (with-directory-excursion "tests"
+                 (invoke (which "sh") "test.sh"))
+               #t)))
+         (add-after 'install 'install-completions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (bash (string-append out "/etc/bash_completion.d/"))
+                    (zsh  (string-append out "/share/zsh/site-fucnctions/")))
+               (mkdir-p bash)
+               (mkdir-p zsh)
+               (copy-file "docs/reprepro.bash_completion"
+                          (string-append bash "reprepro"))
+               (copy-file "docs/reprepro.zsh_completion"
+                          (string-append zsh "_reprepro"))
+               #t))))))
+    (inputs
+     `(("bdb" ,bdb)
+       ("bzip2" ,bzip2)
+       ("gpgme" ,gpgme)
+       ("libarchive" ,libarchive)
+       ("xz" ,xz)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (home-page "https://salsa.debian.org/brlink/reprepro")
+    (synopsis "Debian package repository producer")
+    (description "Reprepro is a tool to manage a repository of Debian packages
+(@code{.deb}, @code{.udeb}, @code{.dsc}, ...).  It stores files either being
+injected manually or downloaded from some other repository (partially) mirrored
+into one pool/ hierarchy.  Managed packages and files are stored in a Berkeley
+DB, so no database server is needed.  Checking signatures of mirrored
+repositories and creating signatures of the generated Package indices is
+supported.")
+    (license license:gpl2)))