Katherine Cox-Buday writes: >> Propagated inputs could lead to conflicts in a Guix profile. The >> simplest example I could remember is - you want upgrade package ‘A’ >> which propagates ‘direnv’, but you cannot because package ‘B’ propagates >> it too. In this case you need to upgrade both ‘A’ and ‘B’ or delete ‘A’ >> (or ‘B’). > > Would there be a conflict if they both propagated the same input (in > this case the direnv binary)? No conflict for the same input. ;-) > diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm > index 946d01cba5..6eb5bc9d39 100644 > --- a/gnu/packages/emacs-xyz.scm > +++ b/gnu/packages/emacs-xyz.scm > @@ -166,6 +166,7 @@ > #:use-module (gnu packages sphinx) > #:use-module (gnu packages xdisorg) > #:use-module (gnu packages shells) > + #:use-module (gnu packages shellutils) > #:use-module (gnu packages sqlite) > #:use-module (gnu packages gnupg) > #:use-module (gnu packages video) > @@ -2020,7 +2021,7 @@ Its features are: > (define-public emacs-direnv > (package > (name "emacs-direnv") > - (version "2.0.0") > + (version "2.1.0") > (source > (origin > (method git-fetch) > @@ -2030,8 +2031,20 @@ Its features are: > (file-name (git-file-name name version)) > (sha256 > (base32 > - "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49")))) > + "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d")))) Could you send a separate patch for direnv update, please? > (build-system emacs-build-system) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'patch-in-direnv > + (lambda* (#:key inputs #:allow-other-keys) > + (let* ((direnv-path (assoc-ref inputs "direnv")) > + (direnv-bin (string-append > + "\"" direnv-path "/bin/direnv\""))) > + (substitute* "direnv.el" > + (("\"direnv\"") direnv-bin)))))))) > + (inputs > + `(("direnv" ,direnv))) > (propagated-inputs > `(("dash" ,emacs-dash) > ("with-editor" ,emacs-with-editor))) > -- > 2.26.2 This will make the following change: