Oleg Pykhalov <go.wig...@gmail.com> writes: >> > cp ~/.config/guix/latest/gnu/packages/gnupg.scm ~/.guix-packages/ >> > chmod +w ~/.guix-packages/gnupg.scm >> [...] >> Then add the above the the file > > Sorry, I don't understand what do you mean.
I meant adding the ~(define-public ... (package...))~ I quoted to the new gnupg.scm file. > Do you mean ‘#:use-module (gnu packages gnupg)’? No. For now I just wanted to do some out-of-tree hacking, as a first step towards contributing to Guix. What I had in mind: 1. Copy gnupg.scm. 2. Modify it to add the new recipe plus the new use-module requirements. 3. Build. I understand it's not how Guix is meant to be patched, I'll go on with a proper checkout next. That said, the new ~define-module~ is as follows: (define-module (gnu packages gnupg) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages emacs) ; NEW ... >> Now if I do >> >> > guix package -s pinentry-emacs >> guix package: warning: failed to load '(gnupg)': >> no code for module (gnupg) >> name: pinentry-emacs >> version: 1.1.0 >> outputs: out >> systems: x86_64-linux i686-linux armhf-linux aarch64-linux >> mips64el-linux >> dependencies: emacs-25.3 libassuan-2.5.1 libsecret-0.18.5 >> ncurses-6.0-20170930 >> + pkg-config-0.29.2 >> location: /home/ambrevar/.guix-packages/gnupg.scm:991:2 >> homepage: https://gnupg.org/aegypten2/ >> license: GPL 2+ >> synopsis: GnuPG's interface to passphrase input >> description: Pinentry provides a console and an Emacs interface that >> allows users to enter a >> + passphrase when required by `gpg' or other software. >> relevance: 4 >> >> Notive the error at th beginning: >> >> guix package: warning: failed to load '(gnupg)': >> no code for module (gnupg) >> >> I don't understand this. > > You want to name your Guile module properly [2]. In case of > ‘GUIX_PACKAGE_PATH=$HOME/.guix-packages’: > > (define-module (gnupg) …) So ~(define-module (gnu packages gnupg)...)~ means the package must lie in a "gnu/packages/gnupg.scm" file. Did not know that, I assumed the namespace was detached from > [2] > https://www.gnu.org/software/guile/manual/html_node/Using-the-Guile-Module-System.html The manual you linked shows examples of paths linked to the namespaces. But I can't seem to find where it states that it is a requirement. I always thought this requirement on path-linked namespaces (that we find in many languages) to be redundant. > Local checkout allows you prepare patches and use ‘guix’ without ‘guix > pull’. If you plan to contribute more it's definitely worth to have it. Will do just now. Thanks a lot for your help. -- Pierre Neidhardt
signature.asc
Description: PGP signature