all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#30884] [PATCH 0/6] gnu: Add emacs-epkg.
@ 2018-03-20 16:29 Oleg Pykhalov
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Oleg Pykhalov @ 2018-03-20 16:29 UTC (permalink / raw)
  To: 30884

Hello Guix,

This patch provides an https://emacsmirror.net/ Emacs package viewer.

Oleg Pykhalov (6):
  gnu: Add emacs-pg.
  gnu: Add emacs-cl-generic.
  gnu: Add emacs-finalize.
  gnu: Add emacs-emacsql.
  gnu: Add emacs-closql.
  gnu: Add emacs-epkg.

 gnu/packages/emacs.scm | 235 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 235 insertions(+)

-- 
2.16.2

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 1/6] gnu: Add emacs-pg.
  2018-03-20 16:29 [bug#30884] [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
@ 2018-03-20 16:33 ` Oleg Pykhalov
  2018-03-20 16:33   ` [bug#30884] [PATCH 2/6] gnu: Add emacs-cl-generic Oleg Pykhalov
                     ` (5 more replies)
  2018-03-20 16:43 ` [bug#30884] guix lint produces warnings Oleg Pykhalov
  2018-04-14 17:50 ` [bug#30884] Status: [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
  2 siblings, 6 replies; 18+ messages in thread
From: Oleg Pykhalov @ 2018-03-20 16:33 UTC (permalink / raw)
  To: 30884

* gnu/packages/emacs.scm (emacs-pg): New public variable.
---
 gnu/packages/emacs.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index da366441b..77796b03f 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -7406,3 +7406,31 @@ the same values you get in a terminal.")
      "Deft is an Emacs mode for quickly browsing, filtering, and editing
 directories of plain text notes, inspired by Notational Velocity.")
     (license license:bsd-3)))
+
+(define-public emacs-pg
+  (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
+    (package
+      (name "emacs-pg")
+      (version (git-version "0.1" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cbbrowne/pg.el.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/cbbrowne/pg.el.git")
+      (synopsis "Emacs Lisp interface for PostgreSQL")
+      (description
+       "This package provides an Emacs Lisp interface for PostgreSQL.
+
+This module lets you access the PostgreSQL object-relational DBMS from Emacs,
+using its socket-level frontend/backend protocol.  The module is capable of
+automatic type coercions from a range of SQL types to the equivalent Emacs
+Lisp type.  This is a low level API, and won't be useful to end users.  Should
+work with GNU Emacs 19.34 and up, and XEmacs 20 and up.  Performance is very
+poor when not byte-compiled.")
+      (license license:gpl3+))))
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 2/6] gnu: Add emacs-cl-generic.
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
@ 2018-03-20 16:33   ` Oleg Pykhalov
  2018-04-04 12:32     ` Ludovic Courtès
  2018-03-20 16:33   ` [bug#30884] [PATCH 3/6] gnu: Add emacs-finalize Oleg Pykhalov
                     ` (4 subsequent siblings)
  5 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-03-20 16:33 UTC (permalink / raw)
  To: 30884

* gnu/packages/emacs.scm (emacs-cl-generic): New public variable.
---
 gnu/packages/emacs.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 77796b03f..0553d683d 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -7434,3 +7434,23 @@ Lisp type.  This is a low level API, and won't be useful to end users.  Should
 work with GNU Emacs 19.34 and up, and XEmacs 20 and up.  Performance is very
 poor when not byte-compiled.")
       (license license:gpl3+))))
+
+(define-public emacs-cl-generic
+  (package
+    (name "emacs-cl-generic")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
+                           version ".el"))
+       (sha256
+        (base32
+         "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/seq.html")
+    (synopsis "Forward cl-generic compatibility for Emacs before version 25")
+    (description "This package provides a subset of the features of the
+@code{cl-generic} package introduced in Emacs-25, for use on previous
+@code{emacsen}.")
+    (license license:gpl3+)))
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 3/6] gnu: Add emacs-finalize.
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
  2018-03-20 16:33   ` [bug#30884] [PATCH 2/6] gnu: Add emacs-cl-generic Oleg Pykhalov
@ 2018-03-20 16:33   ` Oleg Pykhalov
  2018-04-04 12:33     ` Ludovic Courtès
  2018-03-20 16:33   ` [bug#30884] [PATCH 4/6] gnu: Add emacs-emacsql Oleg Pykhalov
                     ` (3 subsequent siblings)
  5 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-03-20 16:33 UTC (permalink / raw)
  To: 30884

* gnu/packages/emacs.scm (emacs-finalize): New public variable.
---
 gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 0553d683d..41bb69914 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -7454,3 +7454,27 @@ poor when not byte-compiled.")
 @code{cl-generic} package introduced in Emacs-25, for use on previous
 @code{emacsen}.")
     (license license:gpl3+)))
+
+(define-public emacs-finalize
+  (package
+  (name "emacs-finalize")
+  (version "2.0.0")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
+                          version ".tar.gz"))
+      (sha256
+        (base32
+         "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
+  (build-system emacs-build-system)
+  (propagated-inputs
+    `(("emacs-cl-generic" ,emacs-cl-generic)))
+  (home-page "https://github.com/skeeto/elisp-finalize")
+  (synopsis "Finalizers for Emacs Lisp")
+  (description
+    "This package will allows to immediately run a callback (a finalizer)
+after its registered lisp object has been garbage collected.  This allows for
+extra resources, such as buffers and processes, to be cleaned up after the
+object has been freed.")
+  (license license:unlicense)))
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 4/6] gnu: Add emacs-emacsql.
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
  2018-03-20 16:33   ` [bug#30884] [PATCH 2/6] gnu: Add emacs-cl-generic Oleg Pykhalov
  2018-03-20 16:33   ` [bug#30884] [PATCH 3/6] gnu: Add emacs-finalize Oleg Pykhalov
@ 2018-03-20 16:33   ` Oleg Pykhalov
  2018-04-04 12:37     ` Ludovic Courtès
  2018-03-20 16:33   ` [bug#30884] [PATCH 5/6] gnu: Add emacs-closql Oleg Pykhalov
                     ` (2 subsequent siblings)
  5 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-03-20 16:33 UTC (permalink / raw)
  To: 30884

* gnu/packages/emacs.scm (emacs-emacsql): New public variable.
---
 gnu/packages/emacs.scm | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 41bb69914..83deb256f 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -64,6 +64,7 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages code)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
@@ -7478,3 +7479,96 @@ after its registered lisp object has been garbage collected.  This allows for
 extra resources, such as buffers and processes, to be cleaned up after the
 object has been freed.")
   (license license:unlicense)))
+
+(define-public emacs-emacsql
+  (package
+    (name "emacs-emacsql")
+    (version "2.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/skeeto/emacsql/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04hfjdgl1zc7jysgjc7d7d3xqpr7q1q9gsmzffjd91ii3hpqjgx6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:modules ((ice-9 match)
+                  (srfi srfi-26)
+                  ,@%gnu-build-system-modules
+                  (guix build emacs-utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build emacs-utils))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'patch-elisp-shell-shebangs
+           (lambda _
+             (substitute* (find-files "." "\\.el")
+               (("/bin/sh") (which "sh")))
+             #t))
+         (add-after 'patch-elisp-shell-shebangs 'setenv-emacsloadpath
+           (lambda* (#:key inputs #:allow-other-keys)
+             (define (el-dir store-dir)
+               (match (find-files store-dir "\\.el$")
+                 ((f1 f2 ...) (dirname f1))
+                 (_ "")))
+             (define emacs-prefix? (cut string-prefix? "emacs-" <>))
+             (let* ((emacs-load-paths
+                     (map (match-lambda
+                            (((? emacs-prefix? name) . dir)
+                             (string-append (el-dir dir) ":"))
+                            (_ ""))
+                          inputs))
+                    (emacs-load-path-value
+                     (string-concatenate emacs-load-paths)))
+               (format #t "environment variable `EMACSLOADPATH' set to ~a\n"
+                       emacs-load-path-value)
+               (setenv "EMACSLOADPATH" emacs-load-path-value))
+             #t))
+         (add-after 'setenv-emacsloadpath 'setenv-shell
+           (lambda _
+             (setenv "SHELL" "sh")))
+         (add-after 'setenv-shell 'build-emacsql-sqlite
+           (lambda _
+             (invoke "make" "binary" "CC=gcc")))
+         (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "sqlite/emacsql-sqlite"
+                           (string-append (assoc-ref outputs "out")
+                                          "/bin"))
+             #t))
+         (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((file "emacsql-sqlite.el"))
+               (chmod file #o644)
+               (emacs-substitute-sexps file
+                 ("(defvar emacsql-sqlite-user-prompted" 't)
+                 ("(executable-find" (which "gcc"))
+                 ("(defvar emacsql-sqlite-executable"
+                  (string-append (assoc-ref outputs "out")
+                                 "/bin/emacsql-sqlite"))))))
+         (delete 'check) ; No ‘check’ target in ‘./Makefile’.
+         (replace 'install ; No ‘install’ target in ‘./Makefile’.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (install-file "sqlite/emacsql-sqlite"
+                             (string-append out "/bin"))
+               (for-each (cut install-file <>
+                              (string-append out "/share/emacs/site-lisp"))
+                         (find-files "." "\\.elc*$")))
+             #t)))))
+    (inputs
+     `(("emacs-minimal" ,emacs-minimal)
+       ("mysql" ,mysql)
+       ("postgresql" ,postgresql)))
+    (propagated-inputs
+     `(("emacs-finalize" ,emacs-finalize)
+       ("emacs-pg" ,emacs-pg)))
+    (home-page "https://github.com/skeeto/emacsql")
+    (synopsis "Emacs high-level SQL database front-end")
+    (description "EmacSQL provides a high-level Emacs Lisp front-end for
+SQLite (primarily), PostgreSQL, MySQL, and potentially other SQL databases.")
+  (license license:gpl3+)))
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 5/6] gnu: Add emacs-closql.
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
                     ` (2 preceding siblings ...)
  2018-03-20 16:33   ` [bug#30884] [PATCH 4/6] gnu: Add emacs-emacsql Oleg Pykhalov
@ 2018-03-20 16:33   ` Oleg Pykhalov
  2018-04-04 12:38     ` Ludovic Courtès
  2018-03-20 16:33   ` [bug#30884] [PATCH 6/6] gnu: Add emacs-epkg Oleg Pykhalov
  2018-04-04 12:32   ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Ludovic Courtès
  5 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-03-20 16:33 UTC (permalink / raw)
  To: 30884

* gnu/packages/emacs.scm (emacs-closql): New public variable.
---
 gnu/packages/emacs.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 83deb256f..0ade89d9f 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -7572,3 +7572,28 @@ object has been freed.")
     (description "EmacSQL provides a high-level Emacs Lisp front-end for
 SQLite (primarily), PostgreSQL, MySQL, and potentially other SQL databases.")
   (license license:gpl3+)))
+
+(define-public emacs-closql
+  (package
+    (name "emacs-closql")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/emacscollective/closql/archive/"
+                           "v" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wa6r0kgbb7f19039p5f3di4dvrvxfgpd8bkam94fca7jvzj536c"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-emacsql" ,emacs-emacsql)))
+    (home-page "https://github.com/emacscollective/closql")
+    (synopsis "store EIEIO objects using EmacSQL")
+    (description
+     "This package allows to store uniform EIEIO objects in an EmacSQL
+database.  SQLite is used as backend.  This library imposes some restrictions
+on what kind of objects can be stored; it isn't intended to store arbitrary
+objects.  All objects have to share a common superclass and subclasses cannot
+add any additional instance slots.")
+    (license license:gpl3)))
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 6/6] gnu: Add emacs-epkg.
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
                     ` (3 preceding siblings ...)
  2018-03-20 16:33   ` [bug#30884] [PATCH 5/6] gnu: Add emacs-closql Oleg Pykhalov
@ 2018-03-20 16:33   ` Oleg Pykhalov
  2018-04-04 12:39     ` Ludovic Courtès
  2018-04-04 12:32   ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Ludovic Courtès
  5 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-03-20 16:33 UTC (permalink / raw)
  To: 30884

* gnu/packages/emacs.scm (emacs-epkg): New public variable.
---
 gnu/packages/emacs.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 0ade89d9f..bcbbd012b 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -7597,3 +7597,47 @@ on what kind of objects can be stored; it isn't intended to store arbitrary
 objects.  All objects have to share a common superclass and subclasses cannot
 add any additional instance slots.")
     (license license:gpl3)))
+
+(define-public emacs-epkg
+  ;; The release version is to old for the current database scheme.
+  (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
+    (package
+      (name "emacs-epkg")
+      (version (git-version "3.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacscollective/epkg.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-closql" ,emacs-closql)
+         ("emacs-dash" ,emacs-dash)))
+      (home-page "https://emacsmirror.net")
+      (synopsis "Browse the Emacsmirror package database")
+      (description "This package provides access to a local copy of the
+Emacsmirror package database.  It provides low-level functions for querying
+the database and a @file{package.el} user interface for browsing the database.
+Epkg itself is not a package manager.
+
+Getting a local copy:
+
+@example
+git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
+cd ~/.emacs.d/epkgs
+git submodule init
+git config --global url.https://github.com/.insteadOf git@@github.com:
+git submodule update
+@end example
+
+Some submodule may be missing.  In this case Git will prompt for a GitHub user
+name and password.  To skip it press a @key{Return} key.
+
+You could get a Epkg package list by invoking @code{epkg-list-packages} in
+Emacs.")
+      (license license:gpl3+))))
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#30884] guix lint produces warnings
  2018-03-20 16:29 [bug#30884] [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
@ 2018-03-20 16:43 ` Oleg Pykhalov
  2018-04-14 17:50 ` [bug#30884] Status: [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
  2 siblings, 0 replies; 18+ messages in thread
From: Oleg Pykhalov @ 2018-03-20 16:43 UTC (permalink / raw)
  To: 30884

Apologies,  I forgot to invoke a ‘guix lint’.  I'll fix those warnings:

--8<---------------cut here---------------start------------->8---
gnu/packages/emacs.scm:7413:4: emacs-pg@0.1-1.4f6516e: permanent redirect from https://github.com/cbbrowne/pg.el.git to https://github.com/cbbrowne/pg.el
gnu/packages/emacs.scm:7464:4: emacs-finalize@2.0.0: the source file name should contain the package name
gnu/packages/emacs.scm:7581:5: emacs-closql@0.5.1: the source file name should contain the package name
gnu/packages/emacs.scm:7592:14: emacs-closql@0.5.1: synopsis should start with an upper-case letter or digit
--8<---------------cut here---------------end--------------->8---

Oleg.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 1/6] gnu: Add emacs-pg.
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
                     ` (4 preceding siblings ...)
  2018-03-20 16:33   ` [bug#30884] [PATCH 6/6] gnu: Add emacs-epkg Oleg Pykhalov
@ 2018-04-04 12:32   ` Ludovic Courtès
  5 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-04 12:32 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: 30884

Oleg Pykhalov <go.wigust@gmail.com> skribis:

> * gnu/packages/emacs.scm (emacs-pg): New public variable.

LGTM!

> +This module lets you access the PostgreSQL object-relational DBMS from Emacs,
> +using its socket-level frontend/backend protocol.  The module is capable of
> +automatic type coercions from a range of SQL types to the equivalent Emacs
> +Lisp type.  This is a low level API, and won't be useful to end users.  Should
> +work with GNU Emacs 19.34 and up, and XEmacs 20 and up.  Performance is very
> +poor when not byte-compiled.")

I’d remove the last two sentences, which are unhelpful to Guix users.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 2/6] gnu: Add emacs-cl-generic.
  2018-03-20 16:33   ` [bug#30884] [PATCH 2/6] gnu: Add emacs-cl-generic Oleg Pykhalov
@ 2018-04-04 12:32     ` Ludovic Courtès
  0 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-04 12:32 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: 30884

Oleg Pykhalov <go.wigust@gmail.com> skribis:

> * gnu/packages/emacs.scm (emacs-cl-generic): New public variable.

[...]

> +    (synopsis "Forward cl-generic compatibility for Emacs before version 25")

@code{cl-generic}

Otherwise LGTM, thanks!

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 3/6] gnu: Add emacs-finalize.
  2018-03-20 16:33   ` [bug#30884] [PATCH 3/6] gnu: Add emacs-finalize Oleg Pykhalov
@ 2018-04-04 12:33     ` Ludovic Courtès
  0 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-04 12:33 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: 30884

Oleg Pykhalov <go.wigust@gmail.com> skribis:

> * gnu/packages/emacs.scm (emacs-finalize): New public variable.

LGTM!

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 4/6] gnu: Add emacs-emacsql.
  2018-03-20 16:33   ` [bug#30884] [PATCH 4/6] gnu: Add emacs-emacsql Oleg Pykhalov
@ 2018-04-04 12:37     ` Ludovic Courtès
  0 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-04 12:37 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: 30884

Oleg Pykhalov <go.wigust@gmail.com> skribis:

> * gnu/packages/emacs.scm (emacs-emacsql): New public variable.

[...]

> +         (add-after 'patch-elisp-shell-shebangs 'setenv-emacsloadpath
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (define (el-dir store-dir)
> +               (match (find-files store-dir "\\.el$")
> +                 ((f1 f2 ...) (dirname f1))
> +                 (_ "")))
> +             (define emacs-prefix? (cut string-prefix? "emacs-" <>))
> +             (let* ((emacs-load-paths
> +                     (map (match-lambda
> +                            (((? emacs-prefix? name) . dir)
> +                             (string-append (el-dir dir) ":"))
> +                            (_ ""))
> +                          inputs))
> +                    (emacs-load-path-value
> +                     (string-concatenate emacs-load-paths)))
> +               (format #t "environment variable `EMACSLOADPATH' set to ~a\n"
> +                       emacs-load-path-value)
> +               (setenv "EMACSLOADPATH" emacs-load-path-value))

Now that there’s a new ‘set-emacs-load-path’, I suspect this phase can
be removed.  Can you confirm, Maxim?

> +         (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (install-file "sqlite/emacsql-sqlite"
> +                           (string-append (assoc-ref outputs "out")
> +                                          "/bin"))
> +             #t))
> +         (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((file "emacsql-sqlite.el"))
> +               (chmod file #o644)
> +               (emacs-substitute-sexps file
> +                 ("(defvar emacsql-sqlite-user-prompted" 't)
> +                 ("(executable-find" (which "gcc"))
> +                 ("(defvar emacsql-sqlite-executable"
> +                  (string-append (assoc-ref outputs "out")
> +                                 "/bin/emacsql-sqlite"))))))

Please add short comments explaining what’s going on in these phases.

> +    (home-page "https://github.com/skeeto/emacsql")
> +    (synopsis "Emacs high-level SQL database front-end")
> +    (description "EmacSQL provides a high-level Emacs Lisp front-end for
> +SQLite (primarily), PostgreSQL, MySQL, and potentially other SQL databases.")

I would add this, taken from their README:

  Any readable Lisp value can be stored as a value in EmacSQL, including
  numbers, strings, symbols, lists, vectors, and closures.  EmacSQL has
  no concept of @code{TEXT} values; it's all just Lisp objects.  The Lisp
  object @code{nil} corresponds 1:1 with @code{NULL} in the database.

Otherwise LGTM, thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 5/6] gnu: Add emacs-closql.
  2018-03-20 16:33   ` [bug#30884] [PATCH 5/6] gnu: Add emacs-closql Oleg Pykhalov
@ 2018-04-04 12:38     ` Ludovic Courtès
  0 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-04 12:38 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: 30884

Oleg Pykhalov <go.wigust@gmail.com> skribis:

> * gnu/packages/emacs.scm (emacs-closql): New public variable.

[...]

> +    (license license:gpl3)))

‘gpl3+’

Otherwise LGTM, modulo ‘guix lint’ warnings.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] [PATCH 6/6] gnu: Add emacs-epkg.
  2018-03-20 16:33   ` [bug#30884] [PATCH 6/6] gnu: Add emacs-epkg Oleg Pykhalov
@ 2018-04-04 12:39     ` Ludovic Courtès
  0 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-04 12:39 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: 30884

Oleg Pykhalov <go.wigust@gmail.com> skribis:

> * gnu/packages/emacs.scm (emacs-epkg): New public variable.

LGTM, thanks!

Ludo'.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] Status: [PATCH 0/6] gnu: Add emacs-epkg.
  2018-03-20 16:29 [bug#30884] [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
  2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
  2018-03-20 16:43 ` [bug#30884] guix lint produces warnings Oleg Pykhalov
@ 2018-04-14 17:50 ` Oleg Pykhalov
  2018-04-16 14:08   ` bug#30884: " Oleg Pykhalov
  2018-04-19  1:09   ` [bug#30884] " Maxim Cournoyer
  2 siblings, 2 replies; 18+ messages in thread
From: Oleg Pykhalov @ 2018-04-14 17:50 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug#30884


[-- Attachment #1.1: Type: text/plain, Size: 211 bytes --]

Hello Ludovic,

Thank you for review!

I've applied all your suggestions except ‘set-emacs-load-path’.  First
of all this procedure is not exported.  Another pitfall is ‘Invalid
keyword’ error.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: Use set-emacs-load-path --]
[-- Type: text/x-patch, Size: 1801 bytes --]

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 6258dbaed..d290a61b4 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -7733,7 +7733,8 @@ object has been freed.")
                   ,@%gnu-build-system-modules
                   (guix build emacs-utils))
        #:imported-modules (,@%gnu-build-system-modules
-                           (guix build emacs-utils))
+                           (guix build emacs-utils)
+                           (guix build emacs-build-system))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -7744,22 +7745,8 @@ object has been freed.")
              #t))
          (add-after 'patch-elisp-shell-shebangs 'setenv-emacsloadpath
            (lambda* (#:key inputs #:allow-other-keys)
-             (define (el-dir store-dir)
-               (match (find-files store-dir "\\.el$")
-                 ((f1 f2 ...) (dirname f1))
-                 (_ "")))
-             (define emacs-prefix? (cut string-prefix? "emacs-" <>))
-             (let* ((emacs-load-paths
-                     (map (match-lambda
-                            (((? emacs-prefix? name) . dir)
-                             (string-append (el-dir dir) ":"))
-                            (_ ""))
-                          inputs))
-                    (emacs-load-path-value
-                     (string-concatenate emacs-load-paths)))
-               (format #t "environment variable `EMACSLOADPATH' set to ~a\n"
-                       emacs-load-path-value)
-               (setenv "EMACSLOADPATH" emacs-load-path-value))
+             ((@@ (guix build emacs-build-system) set-emacs-load-path)
+               inputs)
              #t))
          (add-after 'setenv-emacsloadpath 'setenv-shell
            (lambda _

[-- Attachment #1.3: Type: text/plain, Size: 11721 bytes --]


--8<---------------cut here---------------start------------->8---
./pre-inst-env env GUIX_PACKAGE_PATH= guix build --no-grafts emacs-emacsql
;;; note: source file /home/natsu/src/guix/gnu/packages/emacs.scm
;;;       newer than compiled /home/natsu/src/guix/gnu/packages/emacs.go
;;; note: source file /home/natsu/src/guix/gnu/packages/emacs.scm
;;;       newer than compiled /home/natsu/.guix-profile/lib/guile/2.2/site-ccache/gnu/packages/emacs.go
;;; note: source file /home/natsu/src/guix/gnu/packages/emacs.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/emacs.go
substitute: updating list of substitutes from 'https://berlin.guixsd.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
The following derivation will be built:
   /gnu/store/zjfh5lf4gaxrliwsihj9i80x9n15smkn-emacs-emacsql-2.0.3.drv
@ build-started /gnu/store/zjfh5lf4gaxrliwsihj9i80x9n15smkn-emacs-emacsql-2.0.3.drv - x86_64-linux /var/log/guix/drvs/zj//fh5lf4gaxrliwsihj9i80x9n15smkn-emacs-emacsql-2.0.3.drv.bz2
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/k9slb2ysqp2n82pl6knb2isapav81dvx-tar-1.29/bin:/gnu/store/4r1g01m0isdfd4ahd8qigfp04276biv3-gzip-1.8/bin:/gnu/store/77l8sxh9py133cy1p9kypshji4q9wv0w-bzip2-1.0.6/bin:/gnu/store/kgaf671a9a76k0ql1pwwjxjbj80x22mj-xz-5.2.3/bin:/gnu/store/p7vdir85501lq7qsgrx5z2yrr0py26h1-file-5.32/bin:/gnu/store/rp61rxvajx4w1k0ci2nqi10y8xgds53b-diffutils-3.6/bin:/gnu/store/5gq1gn722zpz1crsnfmxij21zdxqj37x-patch-2.7.5/bin:/gnu/store/z24b9d81w7bfcyk3j73xixygwx2ymlhv-sed-4.4/bin:/gnu/store/0qxdnkyh0cqwflxhqa4v4vsjwff08j9p-findutils-4.6.0/bin:/gnu/store/1ymg8yf9imgw8ac4n3i611nsv1mb4643-gawk-4.1.4/bin:/gnu/store/5jhfm3r3h7cjl8qqc86rx70nw7bzizpf-grep-3.1/bin:/gnu/store/6i33ik7haav0hd5a797l3llkq04ghx6g-coreutils-8.28/bin:/gnu/store/vj24ah9a4kqsyhim2s4n6gvc4hsxhnli-make-4.2.1/bin:/gnu/store/icz3hd36aqpjz5slyp4hhr8wsfbgiml1-bash-minimal-4.4.12/bin:/gnu/store/37h89zknsp0p6nsszc1n4lyxc9s393ak-ld-wrapper-0/bin:/gnu/store/j7gsbkgq72qjas7plzvak40ymf0ybamq-binutils-2.28.1/bin:/gnu/store/cfdn69spjc44x4sd0acrwhxq6yay3rbc-gcc-5.5.0/bin:/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/bin:/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/sbin:/gnu/store/10sdmjxi2qv1z4v3pzsvhj7ycv62bi0n-emacs-minimal-25.3/bin:/gnu/store/vhdmylfq7vdfrpj0xqyf9kp833v6akbs-mysql-5.7.21/bin:/gnu/store/z0pyjzkv6c8mr3i9z6hmvnskf7471lbf-postgresql-10.3/bin'
environment variable `BASH_LOADABLES_PATH' unset
environment variable `C_INCLUDE_PATH' set to `/gnu/store/77l8sxh9py133cy1p9kypshji4q9wv0w-bzip2-1.0.6/include:/gnu/store/kgaf671a9a76k0ql1pwwjxjbj80x22mj-xz-5.2.3/include:/gnu/store/p7vdir85501lq7qsgrx5z2yrr0py26h1-file-5.32/include:/gnu/store/1ymg8yf9imgw8ac4n3i611nsv1mb4643-gawk-4.1.4/include:/gnu/store/vj24ah9a4kqsyhim2s4n6gvc4hsxhnli-make-4.2.1/include:/gnu/store/j7gsbkgq72qjas7plzvak40ymf0ybamq-binutils-2.28.1/include:/gnu/store/cfdn69spjc44x4sd0acrwhxq6yay3rbc-gcc-5.5.0/include:/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/include:/gnu/store/vhdmylfq7vdfrpj0xqyf9kp833v6akbs-mysql-5.7.21/include:/gnu/store/z0pyjzkv6c8mr3i9z6hmvnskf7471lbf-postgresql-10.3/include:/gnu/store/yqahwgll57j88bq275m4xvifg9x3alsb-linux-libre-headers-4.9.59/include'
environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/77l8sxh9py133cy1p9kypshji4q9wv0w-bzip2-1.0.6/include:/gnu/store/kgaf671a9a76k0ql1pwwjxjbj80x22mj-xz-5.2.3/include:/gnu/store/p7vdir85501lq7qsgrx5z2yrr0py26h1-file-5.32/include:/gnu/store/1ymg8yf9imgw8ac4n3i611nsv1mb4643-gawk-4.1.4/include:/gnu/store/vj24ah9a4kqsyhim2s4n6gvc4hsxhnli-make-4.2.1/include:/gnu/store/j7gsbkgq72qjas7plzvak40ymf0ybamq-binutils-2.28.1/include:/gnu/store/cfdn69spjc44x4sd0acrwhxq6yay3rbc-gcc-5.5.0/include:/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/include:/gnu/store/vhdmylfq7vdfrpj0xqyf9kp833v6akbs-mysql-5.7.21/include:/gnu/store/z0pyjzkv6c8mr3i9z6hmvnskf7471lbf-postgresql-10.3/include:/gnu/store/yqahwgll57j88bq275m4xvifg9x3alsb-linux-libre-headers-4.9.59/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/77l8sxh9py133cy1p9kypshji4q9wv0w-bzip2-1.0.6/lib:/gnu/store/kgaf671a9a76k0ql1pwwjxjbj80x22mj-xz-5.2.3/lib:/gnu/store/p7vdir85501lq7qsgrx5z2yrr0py26h1-file-5.32/lib:/gnu/store/1ymg8yf9imgw8ac4n3i611nsv1mb4643-gawk-4.1.4/lib:/gnu/store/j7gsbkgq72qjas7plzvak40ymf0ybamq-binutils-2.28.1/lib:/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/lib:/gnu/store/hrhxx37z97j7pniyr437illc0b5qq9pa-glibc-2.26.105-g0890d5379c-static/lib:/gnu/store/q7jz2as54ycdvjg7zggxxjkxjrp6d5mr-glibc-utf8-locales-2.26.105-g0890d5379c/lib:/gnu/store/vhdmylfq7vdfrpj0xqyf9kp833v6akbs-mysql-5.7.21/lib:/gnu/store/z0pyjzkv6c8mr3i9z6hmvnskf7471lbf-postgresql-10.3/lib'
environment variable `GUIX_LOCPATH' set to `/gnu/store/q7jz2as54ycdvjg7zggxxjkxjrp6d5mr-glibc-utf8-locales-2.26.105-g0890d5379c/lib/locale'
environment variable `INFOPATH' set to `/gnu/store/k9slb2ysqp2n82pl6knb2isapav81dvx-tar-1.29/share/info:/gnu/store/4r1g01m0isdfd4ahd8qigfp04276biv3-gzip-1.8/share/info:/gnu/store/rp61rxvajx4w1k0ci2nqi10y8xgds53b-diffutils-3.6/share/info:/gnu/store/z24b9d81w7bfcyk3j73xixygwx2ymlhv-sed-4.4/share/info:/gnu/store/0qxdnkyh0cqwflxhqa4v4vsjwff08j9p-findutils-4.6.0/share/info:/gnu/store/1ymg8yf9imgw8ac4n3i611nsv1mb4643-gawk-4.1.4/share/info:/gnu/store/5jhfm3r3h7cjl8qqc86rx70nw7bzizpf-grep-3.1/share/info:/gnu/store/6i33ik7haav0hd5a797l3llkq04ghx6g-coreutils-8.28/share/info:/gnu/store/vj24ah9a4kqsyhim2s4n6gvc4hsxhnli-make-4.2.1/share/info:/gnu/store/icz3hd36aqpjz5slyp4hhr8wsfbgiml1-bash-minimal-4.4.12/share/info:/gnu/store/j7gsbkgq72qjas7plzvak40ymf0ybamq-binutils-2.28.1/share/info:/gnu/store/cfdn69spjc44x4sd0acrwhxq6yay3rbc-gcc-5.5.0/share/info:/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/share/info:/gnu/store/10sdmjxi2qv1z4v3pzsvhj7ycv62bi0n-emacs-minimal-25.3/share/info'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
using 'en_US.utf8' locale for category "LC_ALL"
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
emacsql-2.0.3/
emacsql-2.0.3/.dir-locals.el
emacsql-2.0.3/.gitignore
emacsql-2.0.3/Makefile
emacsql-2.0.3/README.md
emacsql-2.0.3/UNLICENSE
emacsql-2.0.3/emacsql-compiler.el
emacsql-2.0.3/emacsql-mysql.el
emacsql-2.0.3/emacsql-pg.el
emacsql-2.0.3/emacsql-psql.el
emacsql-2.0.3/emacsql-sqlite.el
emacsql-2.0.3/emacsql-system.el
emacsql-2.0.3/emacsql.el
emacsql-2.0.3/sqlite/
emacsql-2.0.3/sqlite/.gitignore
emacsql-2.0.3/sqlite/Makefile
emacsql-2.0.3/sqlite/emacsql.c
emacsql-2.0.3/sqlite/sqlite3.c
emacsql-2.0.3/sqlite/sqlite3.h
emacsql-2.0.3/tests/
emacsql-2.0.3/tests/.nosearch
emacsql-2.0.3/tests/emacsql-compiler-tests.el
emacsql-2.0.3/tests/emacsql-external-tests.el
emacsql-2.0.3/tests/emacsql-tests.el
phase `unpack' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `patch-elisp-shell-shebangs'
phase `patch-elisp-shell-shebangs' succeeded after 0.0 seconds
starting phase `setenv-emacsloadpath'
Backtrace:
           5 (primitive-load "/gnu/store/qr6bdp56ccgnj02znamwngjvlpp…")
In ice-9/eval.scm:
   191:35  4 (_ #f)
In srfi/srfi-1.scm:
   863:16  3 (every1 #<procedure 92c860 at /gnu/store/dniwjwywb9lkd…> …)
In /gnu/store/dniwjwywb9lkdxwa6sn3hcpm4bbm6r32-module-import/guix/build/gnu-build-system.scm:
   711:27  2 (_ _)
In ice-9/eval.scm:
    619:8  1 (_ #(#(#<directory (guile-user) 7ce140>) (("s…" . #) …)))
In /gnu/store/dniwjwywb9lkdxwa6sn3hcpm4bbm6r32-module-import/guix/build/emacs-build-system.scm:
     77:0  0 (set-emacs-load-path #:inputs _)

/gnu/store/dniwjwywb9lkdxwa6sn3hcpm4bbm6r32-module-import/guix/build/emacs-build-system.scm:77:0: In procedure set-emacs-load-path:
Invalid keyword: (("source" . "/gnu/store/304az1rlv6nbmfq661yfv4r89y6z4dpb-emacs-emacsql-2.0.3.tar.gz") ("tar" . "/gnu/store/k9slb2ysqp2n82pl6knb2isapav81dvx-tar-1.29") ("gzip" . "/gnu/store/4r1g01m0isdfd4ahd8qigfp04276biv3-gzip-1.8") ("bzip2" . "/gnu/store/77l8sxh9py133cy1p9kypshji4q9wv0w-bzip2-1.0.6") ("xz" . "/gnu/store/kgaf671a9a76k0ql1pwwjxjbj80x22mj-xz-5.2.3") ("file" . "/gnu/store/p7vdir85501lq7qsgrx5z2yrr0py26h1-file-5.32") ("diffutils" . "/gnu/store/rp61rxvajx4w1k0ci2nqi10y8xgds53b-diffutils-3.6") ("patch" . "/gnu/store/5gq1gn722zpz1crsnfmxij21zdxqj37x-patch-2.7.5") ("sed" . "/gnu/store/z24b9d81w7bfcyk3j73xixygwx2ymlhv-sed-4.4") ("findutils" . "/gnu/store/0qxdnkyh0cqwflxhqa4v4vsjwff08j9p-findutils-4.6.0") ("gawk" . "/gnu/store/1ymg8yf9imgw8ac4n3i611nsv1mb4643-gawk-4.1.4") ("grep" . "/gnu/store/5jhfm3r3h7cjl8qqc86rx70nw7bzizpf-grep-3.1") ("coreutils" . "/gnu/store/6i33ik7haav0hd5a797l3llkq04ghx6g-coreutils-8.28") ("make" . "/gnu/store/vj24ah9a4kqsyhim2s4n6gvc4hsxhnli-make-4.2.1") ("bash" . "/gnu/store/icz3hd36aqpjz5slyp4hhr8wsfbgiml1-bash-minimal-4.4.12") ("ld-wrapper" . "/gnu/store/37h89zknsp0p6nsszc1n4lyxc9s393ak-ld-wrapper-0") ("binutils" . "/gnu/store/j7gsbkgq72qjas7plzvak40ymf0ybamq-binutils-2.28.1") ("gcc" . "/gnu/store/cfdn69spjc44x4sd0acrwhxq6yay3rbc-gcc-5.5.0") ("libc" . "/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c") ("libc:static" . "/gnu/store/hrhxx37z97j7pniyr437illc0b5qq9pa-glibc-2.26.105-g0890d5379c-static") ("locales" . "/gnu/store/q7jz2as54ycdvjg7zggxxjkxjrp6d5mr-glibc-utf8-locales-2.26.105-g0890d5379c") ("emacs-minimal" . "/gnu/store/10sdmjxi2qv1z4v3pzsvhj7ycv62bi0n-emacs-minimal-25.3") ("mysql" . "/gnu/store/vhdmylfq7vdfrpj0xqyf9kp833v6akbs-mysql-5.7.21") ("postgresql" . "/gnu/store/z0pyjzkv6c8mr3i9z6hmvnskf7471lbf-postgresql-10.3") ("emacs-finalize" . "/gnu/store/dz0glc49z7nlx37fcjdf3w9gd736cbib-emacs-finalize-2.0.0") ("emacs-pg" . "/gnu/store/jhqq4v9i6d9zl248z10nmdvk7l8m3h6g-emacs-pg-0.1-1.4f6516e") ("kernel-headers" . "/gnu/store/yqahwgll57j88bq275m4xvifg9x3alsb-linux-libre-headers-4.9.59") ("emacs-cl-generic" . "/gnu/store/d5lnalnrxa2ia2hjzbs2bqw4srlr9777-emacs-cl-generic-0.3"))
builder for `/gnu/store/zjfh5lf4gaxrliwsihj9i80x9n15smkn-emacs-emacsql-2.0.3.drv' failed with exit code 1
@ build-failed /gnu/store/zjfh5lf4gaxrliwsihj9i80x9n15smkn-emacs-emacsql-2.0.3.drv - 1 builder for `/gnu/store/zjfh5lf4gaxrliwsihj9i80x9n15smkn-emacs-emacsql-2.0.3.drv' failed with exit code 1
guix build: error: build failed: build of `/gnu/store/zjfh5lf4gaxrliwsihj9i80x9n15smkn-emacs-emacsql-2.0.3.drv' failed
--8<---------------cut here---------------end--------------->8---

I've fixed all linter warnings reported by this command:
--8<---------------cut here---------------start------------->8---
./pre-inst-env env GUIX_PACKAGE_PATH= guix lint $(PAGER= git log --oneline | head -n 6 | cut -d ' ' -f 4 | sed 's/\.//' | tr '\n' ' ')
--8<---------------cut here---------------end--------------->8---

Also I've tested an Emacs ‘epkg-list-packages’ procedure inside:
--8<---------------cut here---------------start------------->8---
./pre-inst-env env GUIX_PACKAGE_PATH= guix environment --no-grafts --ad-hoc emacs-epkg emacs
--8<---------------cut here---------------end--------------->8---


I could push a set of patches without ‘set-emacs-load-path’.  WDYT?

Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* bug#30884: Status: [PATCH 0/6] gnu: Add emacs-epkg.
  2018-04-14 17:50 ` [bug#30884] Status: [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
@ 2018-04-16 14:08   ` Oleg Pykhalov
  2018-04-19  1:09   ` [bug#30884] " Maxim Cournoyer
  1 sibling, 0 replies; 18+ messages in thread
From: Oleg Pykhalov @ 2018-04-16 14:08 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 30884, 30884-done

[-- Attachment #1: Type: text/plain, Size: 516 bytes --]

Oleg Pykhalov <go.wigust@gmail.com> writes:

> Hello Ludovic,
>
> Thank you for review!
>
> I've applied all your suggestions except ‘set-emacs-load-path’.

Replacing ‘gnu-build-system’ with ‘emacs-build-system’ does the job.

Pushed as:

452454e30 gnu: Add emacs-epkg.
93aba854d gnu: Add emacs-closql.
4d089b5e5 gnu: Add emacs-emacsql.
6c92b4406 gnu: Add emacs-finalize.
5b6d67476 gnu: Add emacs-cl-generic.
086bfb37a gnu: Add emacs-pg.

[…]

I'll close the bug report.

Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] Status: [PATCH 0/6] gnu: Add emacs-epkg.
  2018-04-14 17:50 ` [bug#30884] Status: [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
  2018-04-16 14:08   ` bug#30884: " Oleg Pykhalov
@ 2018-04-19  1:09   ` Maxim Cournoyer
  2018-04-19  2:07     ` Maxim Cournoyer
  1 sibling, 1 reply; 18+ messages in thread
From: Maxim Cournoyer @ 2018-04-19  1:09 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: bug#30884

Hi Oleg,

Oleg Pykhalov <go.wigust@gmail.com> writes:

> Hello Ludovic,
>
> Thank you for review!
>
> I've applied all your suggestions except ‘set-emacs-load-path’.  First
> of all this procedure is not exported.

Phases are typically not exported individually, but as an alist of all
the phases of the build system, as `%standard-phases'.

> Another pitfall is ‘Invalid
> keyword’ error.
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 6258dbaed..d290a61b4 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -7733,7 +7733,8 @@ object has been freed.")
>                    ,@%gnu-build-system-modules
>                    (guix build emacs-utils))
>         #:imported-modules (,@%gnu-build-system-modules
> -                           (guix build emacs-utils))
> +                           (guix build emacs-utils)
> +                           (guix build emacs-build-system))
>         #:phases
>         (modify-phases %standard-phases
>           (delete 'configure)
> @@ -7744,22 +7745,8 @@ object has been freed.")
>               #t))
>           (add-after 'patch-elisp-shell-shebangs 'setenv-emacsloadpath
>             (lambda* (#:key inputs #:allow-other-keys)
> -             (define (el-dir store-dir)
> -               (match (find-files store-dir "\\.el$")
> -                 ((f1 f2 ...) (dirname f1))
> -                 (_ "")))
> -             (define emacs-prefix? (cut string-prefix? "emacs-" <>))
> -             (let* ((emacs-load-paths
> -                     (map (match-lambda
> -                            (((? emacs-prefix? name) . dir)
> -                             (string-append (el-dir dir) ":"))
> -                            (_ ""))
> -                          inputs))
> -                    (emacs-load-path-value
> -                     (string-concatenate emacs-load-paths)))
> -               (format #t "environment variable `EMACSLOADPATH' set to ~a\n"
> -                       emacs-load-path-value)
> -               (setenv "EMACSLOADPATH" emacs-load-path-value))
> +             ((@@ (guix build emacs-build-system) set-emacs-load-path)
> +               inputs)

As `set-emacs-load-path' is a phase itself, it expects to be called as
such, with keyworded arguments. It would be simpler to just insert the
phase as in:

--8<---------------cut here---------------start------------->8---
;; Add this to the define-module top level definition:
;; (define-module (gnu packages emacs)
;; ...
;; #:use-module ((guix build emacs-build-system) #:prefix emacs:)
;; ...

(add-after 'patch-elisp-shell-shebangs
           (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
--8<---------------cut here---------------start------------->8---

HTH,

Maxim

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#30884] Status: [PATCH 0/6] gnu: Add emacs-epkg.
  2018-04-19  1:09   ` [bug#30884] " Maxim Cournoyer
@ 2018-04-19  2:07     ` Maxim Cournoyer
  0 siblings, 0 replies; 18+ messages in thread
From: Maxim Cournoyer @ 2018-04-19  2:07 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: bug#30884

Hello again,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

> Hi Oleg,
>
> Oleg Pykhalov <go.wigust@gmail.com> writes:
>
>> Hello Ludovic,
>>
>> Thank you for review!
>>
>> I've applied all your suggestions except ‘set-emacs-load-path’.  First
>> of all this procedure is not exported.
>
> Phases are typically not exported individually, but as an alist of all
> the phases of the build system, as `%standard-phases'.

[...]

> As `set-emacs-load-path' is a phase itself, it expects to be called as
> such, with keyworded arguments. It would be simpler to just insert the
> phase as in:

> ;; Add this to the define-module top level definition:
> ;; (define-module (gnu packages emacs)
> ;; ...
> ;; #:use-module ((guix build emacs-build-system) #:prefix emacs:)
> ;; ...

Actually, you don't want to import this at the top-level of the
emacs.scm module but rather specify the import using the #:modules
argument passed to the build system. Here's a complete example (not yet
merged in master, currently under review):

--8<---------------cut here---------------start------------->8---
(define-public emacs-pdf-tools
  (package
    (name "emacs-pdf-tools")
    (version "0.80")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "https://github.com/politza/pdf-tools/archive/v"
                    version ".tar.gz"))
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
                "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
    (build-system gnu-build-system)
    (arguments
     `(#:tests? #f ; there are no tests
       #:modules ((guix build gnu-build-system)
                  ((guix build emacs-build-system) #:prefix emacs:)
                  (guix build utils)
                  (guix build emacs-utils))
       #:imported-modules (,@%gnu-build-system-modules
                           (guix build emacs-build-system)
                           (guix build emacs-utils))
       #:phases
       (modify-phases %standard-phases
         ;; Build server side using 'gnu-build-system'.
         (add-after 'unpack 'enter-server-dir
           (lambda _ (chdir "server") #t))
         (add-after 'enter-server-dir 'autogen
           (lambda _
             (zero? (system* "bash" "autogen.sh"))))

         ;; Build emacs side using 'emacs-build-system'.
         (add-after 'compress-documentation 'enter-lisp-dir
           (lambda _ (chdir "../lisp") #t))
         (add-after 'enter-lisp-dir 'emacs-patch-variables
           (lambda* (#:key outputs #:allow-other-keys)
             ;; Set path to epdfinfo program.
             (emacs-substitute-variables "pdf-info.el"
               ("pdf-info-epdfinfo-program"
                (string-append (assoc-ref outputs "out")
                               "/bin/epdfinfo")))
             ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
             ;; upgrading" that pdf-tools tries to perform.
             (emacs-substitute-variables "pdf-tools.el"
               ("pdf-tools-handle-upgrades" '()))))
         (add-after 'emacs-patch-variables 'set-emacs-load-path
           (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
         (add-after 'set-emacs-load-path 'emacs-install
           (assoc-ref emacs:%standard-phases 'install))
         (add-after 'emacs-install 'emacs-build
           (assoc-ref emacs:%standard-phases 'build))
         (add-after 'emacs-install 'emacs-make-autoloads
           (assoc-ref emacs:%standard-phases 'make-autoloads)))))
    (native-inputs `(("autoconf" ,autoconf)
                     ("automake" ,automake)
                     ("pkg-config" ,pkg-config)
                     ("emacs" ,emacs-minimal)))
    (inputs `(("poppler" ,poppler)
              ("cairo" ,cairo)
              ("glib" ,glib)
              ("libpng" ,libpng)
              ("zlib" ,zlib)))
    (propagated-inputs `(("tablist" ,emacs-tablist)))
    (synopsis "Emacs support library for PDF files")
    (description
     "PDF Tools is, among other things, a replacement of DocView for PDF
files.  The key difference is that pages are not pre-rendered by
e.g. ghostscript and stored in the file-system, but rather created on-demand
and stored in memory.")
    (home-page "https://github.com/politza/pdf-tools")
    (license license:gpl3+)))
--8<---------------cut here---------------end--------------->8---

HTH,

Maxim

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2018-04-19  2:09 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-20 16:29 [bug#30884] [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
2018-03-20 16:33 ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Oleg Pykhalov
2018-03-20 16:33   ` [bug#30884] [PATCH 2/6] gnu: Add emacs-cl-generic Oleg Pykhalov
2018-04-04 12:32     ` Ludovic Courtès
2018-03-20 16:33   ` [bug#30884] [PATCH 3/6] gnu: Add emacs-finalize Oleg Pykhalov
2018-04-04 12:33     ` Ludovic Courtès
2018-03-20 16:33   ` [bug#30884] [PATCH 4/6] gnu: Add emacs-emacsql Oleg Pykhalov
2018-04-04 12:37     ` Ludovic Courtès
2018-03-20 16:33   ` [bug#30884] [PATCH 5/6] gnu: Add emacs-closql Oleg Pykhalov
2018-04-04 12:38     ` Ludovic Courtès
2018-03-20 16:33   ` [bug#30884] [PATCH 6/6] gnu: Add emacs-epkg Oleg Pykhalov
2018-04-04 12:39     ` Ludovic Courtès
2018-04-04 12:32   ` [bug#30884] [PATCH 1/6] gnu: Add emacs-pg Ludovic Courtès
2018-03-20 16:43 ` [bug#30884] guix lint produces warnings Oleg Pykhalov
2018-04-14 17:50 ` [bug#30884] Status: [PATCH 0/6] gnu: Add emacs-epkg Oleg Pykhalov
2018-04-16 14:08   ` bug#30884: " Oleg Pykhalov
2018-04-19  1:09   ` [bug#30884] " Maxim Cournoyer
2018-04-19  2:07     ` Maxim Cournoyer

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.