12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- ;;; guix.scm --- Guix package for Emacs-Guix
- ;; Copyright © 2017 Alex Kost <alezost@gmail.com>
- ;; This file is part of Emacs-Guix.
- ;; Emacs-Guix is free software; you can redistribute it and/or modify
- ;; it under the terms of the GNU General Public License as published by
- ;; the Free Software Foundation, either version 3 of the License, or
- ;; (at your option) any later version.
- ;;
- ;; Emacs-Guix is distributed in the hope that it will be useful,
- ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;; GNU General Public License for more details.
- ;;
- ;; You should have received a copy of the GNU General Public License
- ;; along with Emacs-Guix. If not, see <http://www.gnu.org/licenses/>.
- ;;; Commentary:
- ;; This file contains Guix package for development version of
- ;; Emacs-Guix. To build or install, run:
- ;;
- ;; guix build --file=guix.scm
- ;; guix package --install-from-file=guix.scm
- ;; The main purpose of this file though is to make a development
- ;; environment for building Emacs-Guix:
- ;;
- ;; guix environment --pure --load=guix.scm
- ;; ./autogen.sh
- ;; ./configure
- ;; make
- ;;; Code:
- (use-modules
- (ice-9 popen)
- (ice-9 rdelim)
- (guix build utils)
- (guix gexp)
- (guix git-download)
- (guix packages)
- (gnu packages autotools)
- (gnu packages emacs)
- (gnu packages pkg-config)
- (gnu packages texinfo))
- (define %source-dir (dirname (current-filename)))
- (define (git-output . args)
- "Execute 'git ARGS ...' command and return its output without trailing
- newspace."
- (with-directory-excursion %source-dir
- (let* ((port (apply open-pipe* OPEN_READ "git" args))
- (output (read-string port)))
- (close-port port)
- (string-trim-right output #\newline))))
- (define (current-commit)
- (git-output "log" "-n" "1" "--pretty=format:%H"))
- (define emacs-guix-devel
- (let ((commit (current-commit)))
- (package
- (inherit emacs-guix)
- (version (string-append (package-version emacs-guix)
- "-" (string-take commit 7)))
- (source (local-file %source-dir
- #:recursive? #t
- #:select? (git-predicate %source-dir)))
- (arguments
- (append (package-arguments emacs-guix)
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autogen
- (lambda _ (zero? (system* "sh" "autogen.sh"))))))))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ;; 'emacs-minimal' does not find Emacs packages (this is for
- ;; "guix environment").
- ("emacs" ,emacs-no-x)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("texinfo" ,texinfo))))))
- emacs-guix-devel
- ;;; guix.scm ends here
|