From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43486) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9a7n-0005QB-8D for guix-patches@gnu.org; Fri, 20 Apr 2018 13:47:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9a7j-0000Hl-28 for guix-patches@gnu.org; Fri, 20 Apr 2018 13:47:07 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:54665) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f9a7i-0000HD-QV for guix-patches@gnu.org; Fri, 20 Apr 2018 13:47:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1f9a7i-000790-Gx for guix-patches@gnu.org; Fri, 20 Apr 2018 13:47:02 -0400 Subject: [bug#31018] [PATCHv2] Improvements for our Emacs build system and fixes. Resent-Message-ID: From: Arun Isaac In-Reply-To: <87d0yyo7vm.fsf_-_@gmail.com> References: <87y3i6538o.fsf@gmail.com> <9925e912.AM4AAAS8QCUAAAAAAAAAAAPHPfsAAAACwQwAAAAAAAW9WABa0jGH@mailjet.com> <87d0yyo7vm.fsf_-_@gmail.com> Date: Fri, 20 Apr 2018 23:16:15 +0530 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" 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: Maxim Cournoyer Cc: 31018@debbugs.gnu.org --=-=-= Content-Type: text/plain I've pushed all patches except those concerning strict byte compilation, emacs-scel, emacs-org-contrib, emacs-howm and emacs-calfw. Some comments follow. > Done, although match-let appears to be undocumented :/. Yes, match-let is currently undocumented. But, I have a pending patch to guile regarding this. So, hopefully, this will be fixed soon. https://debbugs.gnu.org/cgi/bugreport.cgi?bug=30144 > In the past I played with attempting to define a > search-path-specification for our Emacs package, which would > generalize even more the way our Emacs packages are discovered in > Guix. That ended up looking like the following: > > --8<---------------cut here---------------start------------->8--- > + (native-search-paths > + (list (search-path-specification > + (variable "EMACSLOADPATH") > + (files '("share/emacs/site-lisp")) > + (file-pattern ".*") > + (append-separator? #t)))))) > --8<---------------cut here---------------end--------------->8--- > > Where the new "append-separator?" argument was added by myself (this is > a world rebuilding change and also changes the manifest file). I didn't > pursue that for now given that it still suffers from 1. explained above. > > The nice properties of this however was that it was now possible to have > the Emacs dependencies found in `guix environment' as well as in the > build system (anywhere), by using the native mechanism that Guix comes > with. If you have interest in going that way I could revive those two > old patches. For now, I've pushed with the set-emacs-load-path function you provided. But, you could pursue this world rebuilding search-paths approach as a separate bug report. >>> Subject: [PATCH 15/27] gnu: Add emacs-scel. >>> >>> +(define-public emacs-scel >>> + (let ((version "20170629") >>> + (revision "1") >>> + (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b")) >>> + (package >>> + (name "emacs-scel") >>> + (version (git-version version revision commit)) >>> + (source (origin >>> + (method git-fetch) >>> + (uri (git-reference >>> + (url "https://github.com/supercollider/scel.git") >>> + (commit commit))) >>> + (file-name (string-append name "-" version "-checkout")) >>> + (sha256 >>> + (base32 >>> + "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw")))) >>> + (build-system emacs-build-system) >> >> This package seems to use a cmake-build-system. Did you try that? > > I didn't, on purpose. I wanted the Elisp files to be processed the same > as most of our other Emacs packages (with the patch-el-files phase > patching binaries, for example) that we would miss otherwise). I get your point. But, I think we can use phases from both the emacs-build-system and the cmake-build-system, like I have done in the attached patch. This keeps us more in line with the upstream repo, rather than us reinventing too much. WDYT? --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0002-gnu-Add-emacs-scel.patch >From dd4d51654c04a44ed77692b0207763255c733c00 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 18 Mar 2018 16:37:30 -0400 Subject: [PATCH 2/2] gnu: Add emacs-scel. * gnu/packages/emacs.scm (emacs-scel): New variable. Signed-off-by: Arun Isaac --- gnu/packages/emacs.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9f6965848..38ffcc472 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -65,6 +65,7 @@ #:use-module (gnu packages) #:use-module (gnu packages audio) #:use-module (gnu packages bash) + #:use-module (gnu packages cmake) #:use-module (gnu packages code) #:use-module (gnu packages databases) #:use-module (gnu packages guile) @@ -2713,6 +2714,57 @@ implementation in Emacs. To use it just load this file and bind that function to a key in your preferred mode.") (license license:public-domain)))) +(define-public emacs-scel + (let ((version "20170629") + (revision "1") + (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b")) + (package + (name "emacs-scel") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/supercollider/scel.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw")))) + (build-system emacs-build-system) + (arguments + `(#:modules ((guix build emacs-build-system) + ((guix build cmake-build-system) #:prefix cmake:) + (guix build utils)) + #:imported-modules (,@%emacs-build-system-modules + (guix build cmake-build-system)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "el/CMakeLists.txt" + (("share/emacs/site-lisp/SuperCollider") + (string-append + "share/emacs/site-lisp/guix.d/scel-" ,version))) + ((assoc-ref cmake:%standard-phases 'configure) + #:outputs outputs + #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF")))) + (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path + (lambda _ + (setenv "EMACSLOADPATH" + (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH"))) + #t)) + (replace 'install (assoc-ref cmake:%standard-phases 'install))))) + (inputs + `(("supercollider" ,supercollider))) + (native-inputs + `(("cmake" ,cmake))) + (home-page "https://github.com/supercollider/scel") + (synopsis "SuperCollider Emacs interface") + (description "@code{emacs-scel} is an Emacs interface to SuperCollider. +SuperCollider is a platform for audio synthesis and algorithmic composition.") + (license license:gpl2+)))) + (define-public emacs-mit-scheme-doc (package (name "emacs-mit-scheme-doc") -- 2.15.1 --=-=-= Content-Type: text/plain >>> Subject: [PATCH 26/27] gnu: Add emacs-howm. >>> >> This package seems to use the gnu-build-system. Did you try that? > > No, for the same reasons explained above for the emacs-scel package. Likewise. In this case, if we don't use the gnu-build-system, we'd miss installing some of the files. Please look at my attached patch and see if that is acceptable. Also, all of howm's source files declare gpl1+ to be the license. But, their COPYING file is of gpl2. Could you bring this contradiction to the attention of upstream? --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-gnu-Add-emacs-howm.patch >From afc86b1916a27e3c82863bf69f89aad3a89ab3d7 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 31 Mar 2018 00:22:24 -0400 Subject: [PATCH 1/2] gnu: Add emacs-howm. * gnu/packages/emacs.scm (emacs-howm): New variable. Signed-off-by: Arun Isaac --- gnu/packages/emacs.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b2fd069d3..9f6965848 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1185,6 +1185,42 @@ or XEmacs.") a set of simplified face specifications and a user-supplied color palette") (license license:gpl3+))) +(define-public emacs-howm + (package + (name "emacs-howm") + (version "1.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "http://howm.sourceforge.jp/a/howm-" + version ".tar.gz")) + (sha256 + (base32 + "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk")))) + (build-system gnu-build-system) + (native-inputs + `(("emacs" ,emacs-minimal))) + (arguments + `(#:configure-flags + (list (string-append "--with-howmdir=" %output + "/share/emacs/site-lisp/guix.d/howm-" ,version)) + #:modules ((guix build gnu-build-system) + ((guix build emacs-build-system) #:prefix emacs:) + (guix build utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) + #:phases + (modify-phases %standard-phases + (add-after 'rename-lispdir 'make-autoloads + (assoc-ref emacs:%standard-phases 'make-autoloads))))) + (home-page "http://howm.osdn.jp/") + (synopsis "Note-taking tool for Emacs") + (description "Howm is a note-taking tool for Emacs. Like +code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text +searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.") + (license license:gpl1+))) + (define-public emacs-calfw (package (name "emacs-calfw") -- 2.15.1 --=-=-= Content-Type: text/plain > Subject: [PATCH 22/30] gnu: emacs-org-contrib: Fix byte compilation. > > * gnu/packages/emacs.scm (emacs-org-contrib)[native-inputs]: Add emacs-scel. > --- > gnu/packages/emacs.scm | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm > index 7936e6bec..fc0ae5ffb 100644 > --- a/gnu/packages/emacs.scm > +++ b/gnu/packages/emacs.scm > @@ -4640,6 +4640,8 @@ reproducible research.") > out "/share/emacs/site-lisp/guix.d/org-contrib-" ,version) > (for-each delete-file duplicates)) > #t)))))) > + (native-inputs > + `(("emacs-scel" ,emacs-scel))) ;for byte compilation Should emacs-scel only be a native input, or should it be a propagated input? > A big thank you for reviewing this lengthy set of patches :) Thank you for your patience! :-) --=-=-=--