unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Marius Bakke <mbakke@fastmail.com>
To: "José Miguel Sánchez García" <jmi2k@openmailbox.org>, guix-devel@gnu.org
Subject: Re: [PATCH] gnu: Add vis, libtermkey and lua-lpeg.
Date: Wed, 07 Dec 2016 23:23:01 +0100	[thread overview]
Message-ID: <878trrz8e2.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me> (raw)
In-Reply-To: <3a2f94626f0729772aaf3fc1fcb16cf1@openmailbox.org>


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

José Miguel Sánchez García <jmi2k@openmailbox.org> writes:

> Let's see if these patches get accepted now! I think I've taken into 
> account
> every single detail.
>
> These patches add three packages: vis, lua and libtermkey. vis depends 
> on lua
> and libtermkey, so add them before adding vis.
>
> vis is being added in a new file, gnu/text-editors.scm , as requested 
> here
> <https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00242.html>

Thanks for these patches!

I've committed the first two packages with some minor edits:

* Indentation ran through emacs (e.g. M-x indent-region). We follow
  emacs indentation rules religiously. :-)
* Updated commit messages to match the GNU changelog style.
* libtermkey and lua-lpeg actually had tests. 'gnu-build-system' runs
  "make check" by default, whereas they expected "make test". This can
  be overridden with the #:test-target argument.
* Avoided hard coding the lua version in lpeg install path.

'vis' was a little more tricky. On startup it could not find the "visrc"
file, which you probably had in ~/.config or similar. I solved that by
adding a "native-search-path" for VIS_PATH so Guix sets up this variable
when installed (this seems to be an undocumented feature of Guix :-)).

In a perfect world, the same trick could be used for LUA_PATH and
LUA_CPATH to discover the optional "lpeg" module, but they don't seem to
behave like normal PATH specifications and requires a pattern match,
which in turn appears to get ignored by guix' search-path-specification.

Instead I wrapped the binary with the lpeg paths. This also seems to
have fixed the problem finding themes. Can you try the attached patch
and see if that works for you, especially if you have a custom config?


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

[-- Attachment #2: 0001-gnu-Add-vis.patch --]
[-- Type: text/x-patch, Size: 4625 bytes --]

From 3fbbe7d6c9de4cde01f2e6aa2b7df96b067e33d7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Miguel=20S=C3=A1nchez=20Garc=C3=ADa?=
 <jmi2k@openmailbox.org>
Date: Wed, 7 Dec 2016 17:53:22 +0100
Subject: [PATCH] gnu: Add vis.

* gnu/packages/text-editors.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Co-authored-by: Marius Bakke <mbakke@fastmail.com>
---
 gnu/local.mk                  |  1 +
 gnu/packages/text-editors.scm | 75 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 gnu/packages/text-editors.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 1f98513ca..e8137a538 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -359,6 +359,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/texinfo.scm			\
   %D%/packages/tex.scm				\
   %D%/packages/textutils.scm			\
+  %D%/packages/text-editors.scm   		\
   %D%/packages/time.scm				\
   %D%/packages/tls.scm				\
   %D%/packages/tmux.scm				\
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
new file mode 100644
index 000000000..4b047f3d7
--- /dev/null
+++ b/gnu/packages/text-editors.scm
@@ -0,0 +1,75 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU 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.
+;;;
+;;; GNU 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages text-editors)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages terminals)
+  #:use-module (gnu packages lua))
+
+(define-public vis
+  (package
+    (name "vis")
+    (version "0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/martanne/"
+                                  name "/archive/v" version ".tar.gz"))
+              (sha256
+               (base32 "0bbmkblpndc53pvr8xcfywdn8g351yxfj8c46zp5d744c3bq2nry"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags '("CFLAGS=-pie")
+       #:tests? #f ; No tests.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-binary
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lpeg (assoc-ref inputs "lua-lpeg"))
+                    (lua-version ,(version-major+minor (package-version lua)))
+                    (LUA_PATH (string-append lpeg "/share/lua/"
+                                             lua-version "/?.lua"))
+                    (LUA_CPATH (string-append lpeg "/lib/lua/"
+                                              lua-version "/?.so")))
+               (wrap-program (string-append out "/bin/vis")
+                 `("LUA_PATH" ":" prefix (,LUA_PATH))
+                 `("LUA_CPATH" ":" prefix (,LUA_CPATH)))
+               #t))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "VIS_PATH")
+            (files '("share/vis")))))
+    (inputs `(("lua", lua)
+              ("ncurses", ncurses)
+              ("libtermkey", libtermkey)
+              ("lua-lpeg", lua-lpeg)))
+    (synopsis "Vim-like text editor")
+    (description
+     "Vis aims to be a modern, legacy free, simple yet efficient vim-like text
+editor.  It extends vim's modal editing with built-in support for multiple
+cursors/selecctions and combines it with sam's structural regular expression
+based command language.")
+    (home-page "https://github.com/martanne/vis")
+    (license (list license:isc               ; Main distribution.
+                   license:public-domain     ; map.[ch]
+                   license:expat))))         ; lexers and libutf.[ch]
-- 
2.11.0


  reply	other threads:[~2016-12-07 22:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-07 17:33 [PATCH] gnu: Add vis, libtermkey and lua-lpeg José Miguel Sánchez García
2016-12-07 22:23 ` Marius Bakke [this message]
     [not found]   ` <dfce56f98ee68c2f45f67b03c87076da@openmailbox.org>
2016-12-08 14:17     ` Marius Bakke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878trrz8e2.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me \
    --to=mbakke@fastmail.com \
    --cc=guix-devel@gnu.org \
    --cc=jmi2k@openmailbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).