summaryrefslogtreecommitdiff
path: root/gnu/packages/admin.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/admin.scm')
-rw-r--r--gnu/packages/admin.scm83
1 files changed, 30 insertions, 53 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 2cb50ed4a8..ac2703556a 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -3048,7 +3048,7 @@ modules and plugins that extend Ansible.")
(define-public debops
(package
(name "debops")
- (version "1.1.0")
+ (version "3.2.2")
(source
(origin
(method git-fetch)
@@ -3057,69 +3057,46 @@ modules and plugins that extend Ansible.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "052b2dykdn35pdpn9s4prawl6nl6yzih8nyf54hpvhpisvjrm1v5"))
+ (base32 "03d94bzljnw65f1ra7bxsl8q2l6g8gxcy8kqhm69ib08j50qa0h6"))
(patches
- (search-patches "debops-constants-for-external-program-names.patch"
- "debops-debops-defaults-fall-back-to-less.patch"))))
- (build-system python-build-system)
- (native-inputs
- (list git))
+ (search-patches "debops-setup-py-avoid-git.patch"))))
+ (build-system pyproject-build-system)
(inputs
(list ansible
encfs
fuse-2
util-linux ;; for umount
findutils
+ git
+ git-crypt
gnupg
which))
(propagated-inputs
- (list python-future python-distro))
+ (list python-distro
+ python-dotenv
+ python-future
+ python-gitpython
+ python-jinja2
+ python-pyyaml
+ python-pyxdg
+ python-toml))
(arguments
- `(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'nuke-debops-update
- (lambda _
- (chmod "bin/debops-update" #o755) ; FIXME work-around git-fetch issue
- (with-output-to-file "bin/debops-update"
- (lambda ()
- (format #t "#!/bin/sh
-echo 'debops is installed via guix. guix-update is useless in this case.
-Please use `guix package -u debops` instead.'")))
- #t))
- ;; patch shebangs only in actuall scripts, not in files included in
- ;; roles (which are to be delivered to the targte systems)
- (delete `patch-generated-file-shebangs)
- (replace 'patch-source-shebangs
- (lambda _
- (for-each patch-shebang
- (find-files "bin"
- (lambda (file stat)
- ;; Filter out symlinks.
- (eq? 'regular (stat:type stat)))
- #:stat lstat))))
- (add-after 'unpack 'fix-paths
- (lambda _
- (define (substitute-program-names file)
- ;; e.g. ANSIBLE_PLAYBOOK = '/gnu/store/…/bin/ansible-playbook'
- (for-each
- (lambda (name)
- (let ((varname (string-upcase
- (string-map
- (lambda (c) (if (char=? c #\-) #\_ c))
- name))))
- (substitute* file
- (((string-append "^(" varname " = )'.*'") line prefix)
- (string-append prefix "'" (which name) "'")))))
- '("ansible-playbook" "encfs" "find" "fusermount"
- "umount" "gpg" "ansible" "which")))
- (for-each substitute-program-names
- '("bin/debops"
- "bin/debops-padlock"
- "bin/debops-task"
- "debops/__init__.py"
- "debops/cmds/__init__.py"))
- #t)))))
+ (list
+ #:modules '((guix build pyproject-build-system)
+ (guix build utils)
+ (srfi srfi-26))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'sanity-check 'wrap-script
+ (lambda* (#:key inputs #:allow-other-keys)
+ (wrap-program (string-append #$output "/bin/debops")
+ `("PATH" ":" prefix
+ ,(map dirname
+ (map (cut search-input-file inputs <>)
+ (list "bin/ansible"
+ "bin/gpg"
+ "bin/git"
+ "bin/git-crypt"
+ "bin/umount"))))))))))
(home-page "https://www.debops.org/")
(synopsis "Collection of general-purpose Ansible roles")
(description "The Ansible roles provided by that can be used to manage