From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36791) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eiXgQ-00060w-0b for guix-patches@gnu.org; Sun, 04 Feb 2018 22:43:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eiXgM-0003wY-PL for guix-patches@gnu.org; Sun, 04 Feb 2018 22:43:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:49697) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eiXgM-0003wB-Gj for guix-patches@gnu.org; Sun, 04 Feb 2018 22:43:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eiXgM-0004Ls-AE for guix-patches@gnu.org; Sun, 04 Feb 2018 22:43:02 -0500 Subject: [bug#30119] [PATCHv2] Add emacs-realgud and varia Resent-Message-ID: From: Maxim Cournoyer References: <87d12bbwfa.fsf@gmail.com> <87bmhi8pac.fsf@gmail.com> <87lggfvyz2.fsf@gnu.org> Date: Sun, 04 Feb 2018 22:41:54 -0500 In-Reply-To: <87lggfvyz2.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 30 Jan 2018 22:05:53 +0100") Message-ID: <87bmh4umpp.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 30119@debbugs.gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Ludovic! ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Hi Maxim, > > Maxim Cournoyer skribis: > >> From 379cf143bb078c7785d104a41a762d6136f1508e Mon Sep 17 00:00:00 2001 >> From: Maxim Cournoyer >> Date: Sat, 13 Jan 2018 17:54:18 -0500 >> Subject: [PATCH 1/4] emacs-build-system: Add set-emacs-load-path phase. >> >> This generalizes the mechanism by which the Emacs dependencies are made = visible, >> so that any build phase can make use of them. >> >> * guix/build/emacs-build-system.scm (%legacy-install-suffix): New variab= le. >> (%install-suffix): Redefine in terms of %legacy-install-suffix. >> (set-emacs-load-path): Add new phase used for dependency resolution. >> (build): Remove ad-hoc dependency discovery mechanism. >> (emacs-input->el-directory): Add new procedure. >> (emacs-inputs-el-directories): Use it. >> (package-name-version->elpa-name-version): Fix typo. >> (%standard-phases): Include the new `set-emacs-load-path' phase. Refacto= r to >> make the ordering of the phases clearer. >> * guix/build/emacs-utils.scm (emacs-byte-compile-directory): Remove the >> optional `dependency-dirs' argument, which is now obsoleted by the >> `set-emacs-load-path' phase. > > Nice! At first sight it looks good to me. If you=E2=80=99ve checked on a > sample that Emacs packages still build fine, and if nobody replies in > the meantime, I=E2=80=99ll apply it in a day or two. > > This will trigger on the order of 200 rebuilds per architecture, but > these are small packages, so I think it=E2=80=99s fine. Yes, I did test this on a sample of random Emacs packages and they built fine with these changes. > Nitpick: > >> (define (emacs-inputs-el-directories dirs) >> "Build the list of Emacs Lisp directories from the Emacs package dire= ctory >> DIRS." >> - (append-map (lambda (d) >> - (list (string-append d "/share/emacs/site-lisp") >> - (string-append d %install-suffix "/" >> - (store-directory->elpa-name-versio= n d)))) >> - dirs)) >> + (filter string? (map emacs-input->el-directory dirs))) > > This can be written as: > > (filter-map emacs-input->el-directory dirs) Done! It's good to know how to handle these pesky nils at last! > [...] > >> + ;; TODO: Remove after issue 30611 is fixed in master (see: >> + ;; https://debbugs.gnu.org/30116). > > Which number is correct? :-) 30116, good catch! > I=E2=80=99m not convinced we need special treatment for this case directl= y in > emacs-build-system. This has happened only once on 200+ packages, so I > would rather leave the special case in the package definition itself. > > WDYT? Hmm, I think I'd rather leave it there; the alternative implies replacing the `patch-el-files' phase in the package definition, and this would involve copy-pasting the modified phase code which is a bit messy. I'd also rather spare someone from having to investigate this problem again until 30116 is merged into master. Does it make sense? >> From 1e4a28920b17f7a3bf3e34a999b29e0245233942 Mon Sep 17 00:00:00 2001 >> From: Maxim Cournoyer >> Date: Mon, 11 Dec 2017 00:07:57 -0500 >> Subject: [PATCH 4/4] gnu: Add emacs-realgud. >> >> * gnu/packages/emacs.scm (emacs-test-simple, emacs-load-relative, >> emacs-loc-changes, emacs-realgud): New public variables. > > LGTM. However, there=E2=80=99s a tradition to add one package per commi= t, so > it would be great if you could split it and send updated patches. Done. All patches attached! Thanks for reviewing :) Maxim --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-emacs-build-system-Add-set-emacs-load-path-phase.patch Content-Transfer-Encoding: quoted-printable From=20af7aec04d6f1cc59dc370e7c4d4bdcc426026aad Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 13 Jan 2018 17:54:18 -0500 Subject: [PATCH 1/7] emacs-build-system: Add set-emacs-load-path phase. This generalizes the mechanism by which the Emacs dependencies are made vis= ible, so that any build phase can make use of them. * guix/build/emacs-build-system.scm (%legacy-install-suffix): New variable. (%install-suffix): Redefine in terms of %legacy-install-suffix. (set-emacs-load-path): Add new phase used for dependency resolution. (build): Remove ad-hoc dependency discovery mechanism. (emacs-input->el-directory): Add new procedure. (emacs-inputs-el-directories): Use it. (package-name-version->elpa-name-version): Fix typo. (%standard-phases): Include the new `set-emacs-load-path' phase. Refactor to make the ordering of the phases clearer. * guix/build/emacs-utils.scm (emacs-byte-compile-directory): Remove the optional `dependency-dirs' argument, which is now obsoleted by the `set-emacs-load-path' phase. =2D-- guix/build/emacs-build-system.scm | 50 ++++++++++++++++++++++++++++-------= ---- guix/build/emacs-utils.scm | 11 +++------ 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-sys= tem.scm index bd0d2e026..bdef4d25d 100644 =2D-- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -2,6 +2,7 @@ ;;; Copyright =C2=A9 2015 Federico Beffa ;;; Copyright =C2=A9 2016 David Thompson ;;; Copyright =C2=A9 2016 Alex Kost +;;; Copyright =C2=A9 2018 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,7 +43,8 @@ ;; Directory suffix where we install ELPA packages. We avoid ".../elpa" as ;; Emacs expects to find the ELPA repository 'archive-contents' file and t= he ;; archive signature. =2D(define %install-suffix "/share/emacs/site-lisp/guix.d") +(define %legacy-install-suffix "/share/emacs/site-lisp") +(define %install-suffix (string-append %legacy-install-suffix "/guix.d")) =20 ;; These are the default inclusion/exclusion regexps for the install phase. (define %default-include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info= $")) @@ -72,17 +74,25 @@ archive, a directory, or an Emacs Lisp file." #t) (gnu:unpack #:source source))) =20 +(define* (set-emacs-load-path #:key inputs #:allow-other-keys) + "Set the EMACSLOADPATH environment variable so that dependencies are fou= nd." + (let* ((input-elisp-dirs (emacs-inputs-el-directories + (emacs-inputs-directories inputs))) + (emacs-load-path-value (string-join + input-elisp-dirs ":" 'suffix))) + (setenv "EMACSLOADPATH" emacs-load-path-value) + (format #t "environment variable `EMACSLOADPATH' set to ~a\n" + emacs-load-path-value))) + (define* (build #:key outputs inputs #:allow-other-keys) "Compile .el files." (let* ((emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs")) (out (assoc-ref outputs "out")) (elpa-name-ver (store-directory->elpa-name-version out)) =2D (el-dir (string-append out %install-suffix "/" elpa-name-ver)) =2D (deps-dirs (emacs-inputs-directories inputs))) + (el-dir (string-append out %install-suffix "/" elpa-name-ver))) (setenv "SHELL" "sh") (parameterize ((%emacs emacs)) =2D (emacs-byte-compile-directory el-dir =2D (emacs-inputs-el-directories deps-di= rs))))) + (emacs-byte-compile-directory el-dir)))) =20 (define* (patch-el-files #:key outputs #:allow-other-keys) "Substitute the absolute \"/bin/\" directory with the right location in = the @@ -199,18 +209,27 @@ store in '.el' files." (match inputs (((names . directories) ...) directories)))) =20 +(define (emacs-input->el-directory emacs-input) + "Return the correct Elisp directory location of EMACS-INPUT or #f if non= e." + (let ((legacy-elisp-dir (string-append emacs-input %legacy-install-suffi= x)) + (guix-elisp-dir (string-append + emacs-input %install-suffix "/" + (store-directory->elpa-name-version emacs-input))= )) + (cond + ((file-exists? guix-elisp-dir) guix-elisp-dir) + ((file-exists? legacy-elisp-dir) legacy-elisp-dir) + (else (format #t "warning: could not locate elisp directory under `~a= '\n" + emacs-input) + #f)))) + (define (emacs-inputs-el-directories dirs) "Build the list of Emacs Lisp directories from the Emacs package directo= ry DIRS." =2D (append-map (lambda (d) =2D (list (string-append d "/share/emacs/site-lisp") =2D (string-append d %install-suffix "/" =2D (store-directory->elpa-name-version= d)))) =2D dirs)) + (filter-map emacs-input->el-directory dirs)) =20 (define (package-name-version->elpa-name-version name-ver) "Convert the Guix package NAME-VER to the corresponding ELPA name-version =2Dformat. Essnetially drop the prefix used in Guix." +format. Essentially drop the prefix used in Guix." (if (emacs-package? name-ver) ; checks for "emacs-" prefix (string-drop name-ver (string-length "emacs-")) name-ver)) @@ -224,12 +243,15 @@ second hyphen. This corresponds to 'name-version' as= used in ELPA packages." =20 (define %standard-phases (modify-phases gnu:%standard-phases + (add-after 'set-paths 'set-emacs-load-path set-emacs-load-path) (replace 'unpack unpack) (delete 'configure) (delete 'check) =2D (delete 'install) =2D (replace 'build build) =2D (add-before 'build 'install install) + ;; Move the build phase after install: the .el files are byte compiled + ;; directly in the store. + (delete 'build) + (replace 'install install) + (add-after 'install 'build build) (add-after 'install 'make-autoloads make-autoloads) (add-after 'make-autoloads 'patch-el-files patch-el-files) (add-after 'make-autoloads 'move-doc move-doc))) diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm index fd06aad7a..8389ca582 100644 =2D-- a/guix/build/emacs-utils.scm +++ b/guix/build/emacs-utils.scm @@ -58,14 +58,9 @@ (update-directory-autoloads ,directory)))) (emacs-batch-eval expr))) =20 =2D(define* (emacs-byte-compile-directory dir #:optional (dependency-dirs '= ())) =2D "Byte compile all files in DIR and its sub-directories. Before compil= ing =2Dthe files, add DIR and all directories in DEPENDENCY-DIRS to 'load-path'= ." =2D (let ((expr `(progn =2D (add-to-list 'load-path ,dir) =2D (when ',dependency-dirs =2D (setq load-path (append ',dependency-dirs load-path))) =2D (byte-recompile-directory (file-name-as-directory ,dir) = 0)))) +(define* (emacs-byte-compile-directory dir) + "Byte compile all files in DIR and its sub-directories." + (let ((expr `(byte-recompile-directory (file-name-as-directory ,dir) 0))) (emacs-batch-eval expr))) =20 (define-syntax emacs-substitute-sexps =2D-=20 2.16.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-emacs-build-system-Reinstate-the-check-phase.patch Content-Transfer-Encoding: quoted-printable From=20c6b336b95697466fac38a824da8e84eb3d0d18ee Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 13 Jan 2018 17:54:57 -0500 Subject: [PATCH 2/7] emacs-build-system: Reinstate the check phase. * guix/build/emacs-build-system.scm (%standard-phases): Reinstate the check phase from the gnu-build-system. * guix/build-system/emacs.scm (emacs-build)[tests?]: But do not enable it b= y default. [parallel-tests?]: Add argument. =2D-- guix/build-system/emacs.scm | 3 ++- guix/build/emacs-build-system.scm | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm index 02296829c..d9f1a8d28 100644 =2D-- a/guix/build-system/emacs.scm +++ b/guix/build-system/emacs.scm @@ -82,7 +82,8 @@ =20 (define* (emacs-build store name inputs #:key source =2D (tests? #t) + (tests? #f) + (parallel-tests? #t) (test-target "test") (configure-flags ''()) (phases '(@ (guix build emacs-build-system) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-sys= tem.scm index bdef4d25d..a68ca60c7 100644 =2D-- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -246,7 +246,6 @@ second hyphen. This corresponds to 'name-version' as u= sed in ELPA packages." (add-after 'set-paths 'set-emacs-load-path set-emacs-load-path) (replace 'unpack unpack) (delete 'configure) =2D (delete 'check) ;; Move the build phase after install: the .el files are byte compiled ;; directly in the store. (delete 'build) =2D-=20 2.16.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-emacs-build-system-Work-around-issue-30116.patch Content-Transfer-Encoding: quoted-printable From=204e9e0f1358b65c180218412f667a2dbb4e1b2b19 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 14 Jan 2018 22:38:20 -0500 Subject: [PATCH 3/7] emacs-build-system: Work around issue 30116. This is a temporary workaround issue 30116, where substitute* crashes on files containing NUL characters. * guix/build/emacs-build-system.scm (patch-el-files): Filter out elisp files that contain NUL characters. =2D-- guix/build/emacs-build-system.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-sys= tem.scm index a68ca60c7..f9156e089 100644 =2D-- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -97,11 +97,26 @@ archive, a directory, or an Emacs Lisp file." (define* (patch-el-files #:key outputs #:allow-other-keys) "Substitute the absolute \"/bin/\" directory with the right location in = the store in '.el' files." + + ;; TODO: Remove after issue 30116 is fixed in master (see: + ;; https://debbugs.gnu.org/30116). + (define (file-contains-nul-char? file) + (call-with-input-file file + (lambda (in) + (let loop ((line (read-line in 'concat))) + (cond + ((eof-object? line) #f) + ((string-index line #\nul) #t) + (else (loop (read-line in 'concat)))))) + #:binary #t)) + (let* ((out (assoc-ref outputs "out")) (elpa-name-ver (store-directory->elpa-name-version out)) (el-dir (string-append out %install-suffix "/" elpa-name-ver)) + (el-files (remove file-contains-nul-char? + (find-files "." "\\.el$"))) (substitute-cmd (lambda () =2D (substitute* (find-files "." "\\.el$") + (substitute* el-files (("\"/bin/([^.]\\S*)\"" _ cmd-name) (let ((cmd (which cmd-name))) (unless cmd =2D-=20 2.16.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0004-gnu-Add-emacs-test-simple.patch Content-Transfer-Encoding: quoted-printable From=203d6f6247e3c0e41b2298845e086b4f64d1e02a0b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 4 Feb 2018 22:00:01 -0500 Subject: [PATCH 4/7] gnu: Add emacs-test-simple. * gnu/packages/emacs.scm (emacs-test-simple): New public variable. =2D-- gnu/packages/emacs.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9be92edc1..25be4388b 100644 =2D-- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3165,6 +3165,27 @@ perspective only its buffers are available by defaul= t.") ;; the Expat license. (license license:gpl3+))) =20 +(define-public emacs-test-simple + (package + (name "emacs-test-simple") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/test-simple-" + version ".el")) + (sha256 + (base32 + "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz")))) + (build-system emacs-build-system) + (home-page "https://github.com/rocky/emacs-test-simple") + (synopsis "Simple unit test framework for Emacs Lisp") + (description + "Test Simple is a simple unit test framework for Emacs Lisp. It +alleviates the need for context macros, enclosing specifications or requir= ed +test tags. It supports both interactive and non-interactive use.") + (license license:gpl3+))) + (define-public emacs-request (package (name "emacs-request") =2D-=20 2.16.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0005-gnu-Add-emacs-load-relative.patch Content-Transfer-Encoding: quoted-printable From=207dbf908f02b3179ad1b2e5a03b5cf1cfd7875660 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 4 Feb 2018 22:02:44 -0500 Subject: [PATCH 5/7] gnu: Add emacs-load-relative. * gnu/packages/emacs.scm (emacs-load-relative): New public variable. =2D-- gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 25be4388b..1e67790ec 100644 =2D-- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3186,6 +3186,30 @@ alleviates the need for context macros, enclosing sp= ecifications or required test tags. It supports both interactive and non-interactive use.") (license license:gpl3+))) =20 +(define-public emacs-load-relative + (package + (name "emacs-load-relative") + (version "1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/load-relative-" + version ".el")) + (sha256 + (base32 + "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps")))) + (build-system emacs-build-system) + (home-page "http://github.com/rocky/emacs-load-relative") + (synopsis "Emacs Lisp relative file loading related functions") + (description + "Provides functions which facilitate writing multi-file Emacs packages +and running from the source tree without having to \"install\" code or fid= dle +with @{load-path}. + +The main function, @code{load-relative}, loads an Emacs Lisp file relative= to +another (presumably currently running) Emacs Lisp file.") + (license license:gpl3+))) + (define-public emacs-request (package (name "emacs-request") =2D-=20 2.16.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0006-gnu-Add-emacs-loc-changes.patch Content-Transfer-Encoding: quoted-printable From=2070b6577277f62e4236dbbb5b4e363a77154908bb Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 4 Feb 2018 22:04:04 -0500 Subject: [PATCH 6/7] gnu: Add emacs-loc-changes. * gnu/packages/emacs.scm (emacs-loc-changes): New public variable. =2D-- gnu/packages/emacs.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 1e67790ec..4f0a9fca6 100644 =2D-- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3210,6 +3210,26 @@ The main function, @code{load-relative}, loads an Em= acs Lisp file relative to another (presumably currently running) Emacs Lisp file.") (license license:gpl3+))) =20 +(define-public emacs-loc-changes + (package + (name "emacs-loc-changes") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/loc-changes-" + version ".el")) + (sha256 + (base32 + "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3")))) + (build-system emacs-build-system) + (home-page "https://github.com/rocky/emacs-loc-changes") + (synopsis "Keeps track of positions even after buffer changes") + (description + "This Emacs package provides a mean to track important buffer positio= ns +after buffer changes.") + (license license:gpl3+))) + (define-public emacs-request (package (name "emacs-request") =2D-=20 2.16.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0007-gnu-Add-emacs-realgud.patch Content-Transfer-Encoding: quoted-printable From=206ef41da1694a6664262aa4cfc7ee43e6a3ee98d5 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 4 Feb 2018 22:04:50 -0500 Subject: [PATCH 7/7] gnu: Add emacs-realgud. * gnu/packages/emacs.scm (emacs-realgud): New public variable. =2D-- gnu/packages/emacs.scm | 57 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 57 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4f0a9fca6..03bf24707 100644 =2D-- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3230,6 +3230,63 @@ another (presumably currently running) Emacs Lisp fi= le.") after buffer changes.") (license license:gpl3+))) =20 +(define-public emacs-realgud + (package + (name "emacs-realgud") + (version "1.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/realgud-" + version ".tar")) + (sha256 + (base32 + "1nc8km339ip90h1j55ahfga03v7x7rh4iycmw6yrxyzir68vwn7c")))) + (build-system emacs-build-system) + (arguments + `(#:tests? #t + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-autogen-script + (lambda _ + (substitute* "autogen.sh" + (("./configure") "sh configure")))) + (add-after 'fix-autogen-script 'autogen + (lambda _ + (setenv "CONFIG_SHELL" "sh") + (invoke "sh" "autogen.sh"))) + (add-after 'fix-autogen-script 'set-home + (lambda _ + (setenv "HOME" (getenv "TMPDIR")))) + (add-before 'patch-el-files 'remove-realgud-pkg.el + (lambda _ + ;; XXX: This file is auto-generated at some point and causes + ;; substitute* to crash during the `patch-el-files' phase wit= h: + ;; ERROR: In procedure stat: No such file or directory: + ;; "./realgud-pkg.el" + (delete-file "./realgud-pkg.el") + ;; FIXME: `patch-el-files' crashes on this file with error: + ;; unable to locate "bashdb". + (delete-file "./test/test-regexp-bashdb.el")))) + #:include (cons* ".*\\.el$" %default-include))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("emacs-test-simple" ,emacs-test-simple))) + (propagated-inputs + `(("emacs-load-relative" ,emacs-load-relative) + ("emacs-loc-changes" ,emacs-loc-changes))) + (home-page "https://github.com/realgud/realgud/") + (synopsis + "Modular front-end for interacting with external debuggers") + (description + "RealGUD is a modular, extensible GNU Emacs front-end for interacting +with external debuggers. It integrates various debuggers such as gdb, pdb, +ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in t= he +sources. Unlike GUD, it also supports running multiple debug sessions in +parallel.") + (license license:gpl3+))) + (define-public emacs-request (package (name "emacs-request") =2D-=20 2.16.0 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEFVwTvgZwWPWnh370K8v/MDHLu9sFAlp30oMACgkQK8v/MDHL u9taMw/9EtXke04n3XUPo9joQ9q7OQ8Ui2+bj4CGwbB4qVkYXEMyQgzrp2pypJty kqXVANfVOinZIgyrEwB7Flpsd6TZZjv1OCh8WoyzFqQdICV+9BvirFD0amdNIv4y GVK8JJZURJQPzZdPDFF4EoHNNKLWJlbfeCk4E14MbRwTFKMMMkaGJ9SPIKSrbalw jxjawJex+0YgGQbWEhKtitIk8S6zYOiFOuTRfcO60p6Rx8lvDrORgiiU2ihGY/4D tegO/7Y26bu/DfiJd0+1DIrqZS5aOG1r2meVE6CcvtwdJtCEkPTvAA+AwZXwFtbm CalTl8/2CCm33OAW86/8puYEoYggmoEFcZtB6mW5JM5nIZES894fKuvI84lQs7hc lPSeSuhWNAjTVAqKIAP711eemwDZY32nAfP6k6fm35t/JHLpA0b9gted9oDXk0aC nQHPuwUpPSosnaGu0C9pIovGpuCqGSqp5C+mA58+kUk6EY1ZcCKVOFYdbVyp8A37 US7jAqXuuaoS0AK+e0G1L4lYUyjWrIsQM9vKESex6QqUeC4YfB8aIL6SeKnP/Miz 8Z5vWqNLPJGz0mxTB1GHDYroV3Mnzg1agCwo1hk8iGm8pu3sBKUQ/UjdmgYceBNX DNFT/4aWEIR5BihuvU8Pwe0tlZi7Q64NzyMBTiKgOJAA2zbpt1c= =BUqr -----END PGP SIGNATURE----- --==-=-=--