Feng Shu <tuma...@163.com> writes: > taylanbayi...@gmail.com (Taylan Ulrich "Bayırlı/Kammer") writes: > >> Feng Shu <tuma...@163.com> writes: >> >>> I want to add a package which will used by myself, for example: >>> >>> I don't want to put it to guix source dir, How can I solve the problem? >> >> You can set the environment variable GUIX_PACKAGE_PATH to >> e.g. ~/.guix-packages then put that package definition into >> ~/.guix-packages/emacs.scm and it should work. > > I set GUIX_PACKAGE_PATH like below: > > #+BEGIN_SRC shell > export GUIX_PACKAGE_PATH="/home/feng/project/eh-guix-package/" > export PYTHONPATH="$HOME/.guix-profile/lib/python3.4/site-packages" > export > GUILE_LOAD_PATH="$GUILE_LOAD_PATH:$HOME/.guix-profile/share/guile/site/2.0/" > export > GUILE_LOAD_COMPILED_PATH="$GUILE_LOAD_PATH:$HOME/.guix-profile/share/guile/site/2.0/" > #+END_SRC > > then add file "/home/feng/project/eh-guix-package/" > > #+BEGIN_SRC lisp > (define-module (gnu packages emacs-snapshot) You should change this to match the module name and file name. Suppose, this file is named 'emacs.scm', then it should be:
(define-module (emacs) Or put in in a same-level sub-directory of your eh-guix-package, as .../eh-guix-package/gnu/packages/emacs-snapshot.scm. > #:use-module ((guix licenses) #:prefix license:) > #:use-module (guix packages) > #:use-module (guix download) > #:use-module (gnu packages) > #:use-module (gnu packages emacs)) > > (define-public emacs-snapshot > (package (inherit emacs) > (name "emacs-snapshot") > (version "20150522.9e41e0b") > (source (origin > (method git-fetch) > (uri (git-reference > (url "/home/feng/project/emacs") > (commit > "9e41e0bc6a6fdb7a01841db62d8de42d67be534a"))) > (sha256 > (base32 > > "1p50nrmwnx1d6an7daz8fxkj6ylxml7g23b996ba837nlfz3l8ay")))) > (native-inputs > `(("autoconf" ,autoconf) > ("automake" ,automake) > ,@(package-native-inputs emacs))) > (arguments > (substitute-keyword-arguments > `(;; Build fails if we allow parallel build. > #:parallel-build? #f > ;; Tests aren't passing for now. > #:tests? #f > ,@(package-arguments emacs)) > ((#:phases phases) > `(modify-phases ,phases > (add-after 'unpack 'autogen > (lambda _ > (zero? (system* "sh" "autogen.sh")))))))))) > > #+END_SRC > > but when I run command, it told me that emacs-snapshot module can't be > found. > > #+BEGIN_COMMENT > guix build -i emacs-snapshot > #+END_COMMENT > > >> >> See (info "(guix) Package Modules"), >> i.e. https://gnu.org/s/guix/manual/html_node/Package-Modules.html The manual does mention it as (17), but it's not very clear how to do it right.