93 lines
2.8 KiB
Scheme
93 lines
2.8 KiB
Scheme
;;; guix.scm --- Guix package for Emacs-Guix
|
|
|
|
;; Copyright © 2017 Alex Kost <alezost@gmail.com>
|
|
;; Copyright © 2019 Oleg Pykhalov <go.wigust@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 emacs-xyz)
|
|
(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-pipe 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
|