aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/emacs.scm179
-rw-r--r--gnu/packages/rust.scm23
-rw-r--r--gnu/packages/vim.scm12
-rw-r--r--guix/self.scm18
4 files changed, 211 insertions, 21 deletions
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index e9c8fa443b..e90660a236 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -107,6 +107,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages shells)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
@@ -10634,3 +10635,181 @@ This code is still alpha.")
and the Zotero research assistant: Insertion of links to Zotero items into an
Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
(license license:gpl3+)))
+
+(define-public emacs-evil-ediff
+ (package
+ (name "emacs-evil-ediff")
+ (version "20170724")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/emacs-evil/evil-ediff/archive/"
+ "67b0e69f65c196eff5b39dacb7a9ec05bb919c74"
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0j2x26zfc6md54mjf76qpybil4yal70lp5bifcz62l1f8fc1vvlq"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+ (home-page "https://github.com/emacs-evil/evil-ediff")
+ (synopsis "Make Ediff a little evil")
+ (description
+ "This Emacs package configures Ediff to be friendlier to users of Vi-like
+keybindings. Consult the help buffer for more information.")
+ (license license:gpl3+)))
+
+(define-public emacs-evil-magit
+ (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8"))
+ (package
+ (name "emacs-evil-magit")
+ (version (git-version "0.4.2" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emacs-evil/evil-magit")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-evil" ,emacs-evil)
+ ("magit" ,magit)))
+ (home-page
+ "https://github.com/emacs-evil/evil-magit")
+ (synopsis "Evil-based key bindings for Magit")
+ (description
+ "This Emacs library configures Magit and Evil to play well with each other.
+For some background see @url{https://github.com/magit/evil-magit/issues/1}.
+See the README at @url{https://github.com/justbur/evil-magit} for a table
+describing the key binding changes.")
+ (license license:gpl3+))))
+
+(define-public emacs-evil-mu4e
+ (package
+ (name "emacs-evil-mu4e")
+ (version "0.0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/JorisE/evil-mu4e/archive/"
+ "c03a0e11afda3092eb1461be09fa6a61ebc0e4f6"
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1k3z5h04bqslrkq13paqf8pv9r0rf0zjl0zbb57ly043ds3nvxr2"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-evil" ,emacs-evil)
+ ("mu" ,mu)))
+ (home-page "https://github.com/JorisE/evil-mu4e")
+ (synopsis "Evil-based key bindings for mu4e")
+ (description
+ "Use keybindings for the mu4e mail reader in Emacs that make sense for
+Evil users.")
+ (license license:gpl3+)))
+
+(define-public emacs-evil-multiedit
+ (let ((commit "ea3d9177b74ab0bc65e55df9cc0a0b42e4ef815d"))
+ (package
+ (name "emacs-evil-multiedit")
+ (version (git-version "1.3.9" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hlissner/evil-multiedit")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "17zm35r474z8ras4xy7124pcb972d385pbdv4jxyj5vq042vq07w"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-evil" ,emacs-evil)
+ ("emacs-iedit" ,emacs-iedit)))
+ (home-page
+ "https://github.com/hlissner/evil-multiedit")
+ (synopsis "Multiple cursors for Evil mode")
+ (description
+ "This plugin was an answer to the lack of proper multiple cursor support
+in Emacs+Evil. It allows you to select and edit matches interactively,
+integrating @code{iedit-mode} into Evil mode with an attempt at sensible
+defaults.")
+ (license license:gpl3+))))
+
+(define-public emacs-evil-org
+ (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
+ (package
+ (name "emacs-evil-org")
+ (version (git-version "0.1.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Somelauw/evil-org-mode")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+ (home-page
+ "https://github.com/Somelauw/evil-org-mode")
+ (synopsis "Evil keybindings for Org mode")
+ (description
+ "This package adds supplemental Evil mode key-bindings to Emacs
+Org-mode. It features:
+@itemize
+@item normal, visual and insert mode bindings;
+@item key bindings organised in key themes;
+@item operators like > and < to work on headings;
+@item text objects;
+@item table support;
+@item calendar (date selection) support;
+@item agenda support.
+@end itemize\n")
+ (license license:gpl3+))))
+
+(define-public emacs-fish-completion
+ (package
+ (name "emacs-fish-completion")
+ (version "20180329")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Ambrevar/emacs-fish-completion/archive/"
+ "3e3ed1f19fa778b7c35ad88e033dce5a6b1fc153"
+ ".tar.gz"))
+ (sha256
+ (base32
+ "16329py7fvid0bap1qhqxhdc68m9qqy1p8gc2bhng81zhm5a5zsm"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("fish" ,fish)))
+ (home-page
+ "https://github.com/Ambrevar/emacs-fish-completion")
+ (synopsis "Fish completion for Emacs pcomplete")
+ (description
+ "This package provides completion for the Fish shell to pcomplete (used
+by shell and Eshell). You can set it up globally with:
+
+@example
+(when (and (executable-find \"fish\")
+ (require 'fish-completion nil t))
+ (global-fish-completion-mode))
+@end example
+
+Alternatively, you can call the @code{fish-completion-mode} manually or in
+shell/Eshell mode hook.
+
+The package @code{emacs-bash-completion} is an optional dependency: if available,
+@code{fish-completion-complete} can be configured to fall back on bash to further
+try completing. See @code{fish-completion-fallback-on-bash-p}.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 62b5ee5ffa..7fcc795b6f 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -59,6 +59,16 @@
(define %cargo-reference-hash
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
+(define* (nix-system->gnu-triplet-for-rust
+ #:optional (system (%current-system)))
+ (match system
+ ("x86_64-linux" "x86_64-unknown-linux-gnu")
+ ("i686-linux" "i686-unknown-linux-gnu")
+ ("armhf-linux" "armv7-unknown-linux-gnueabihf")
+ ("aarch64-linux" "aarch64-unknown-linux-gnu")
+ ("mips64el-linux" "mips64el-unknown-linux-gnuabi64")
+ (_ (nix-system->gnu-triplet system))))
+
(define rust-bootstrap
(package
(name "rust-bootstrap")
@@ -76,10 +86,11 @@
(method url-fetch)
(uri (string-append
"https://static.rust-lang.org/dist/"
- "rust-" version "-" (nix-system->gnu-triplet) ".tar.gz"))
+ "rust-" version "-" (nix-system->gnu-triplet-for-rust)
+ ".tar.gz"))
(sha256
(base32
- (match (nix-system->gnu-triplet)
+ (match (nix-system->gnu-triplet-for-rust)
("i686-unknown-linux-gnu"
"15zqbx86nm13d5vq2gm69b7av4vg479f74b5by64hs3bcwwm08pr")
("x86_64-unknown-linux-gnu"
@@ -119,7 +130,8 @@
(invoke "bash" "install.sh"
(string-append "--prefix=" out)
(string-append "--components=rustc,"
- "rust-std-" ,(nix-system->gnu-triplet)))
+ "rust-std-"
+ ,(nix-system->gnu-triplet-for-rust)))
;; Instal cargo
(invoke "bash" "install.sh"
(string-append "--prefix=" cargo-out)
@@ -321,8 +333,7 @@ safety and thread safety guarantees.")
(("^RUSTC_TARGET := x86_64-unknown-linux-gnu")
(string-append "RUSTC_TARGET := "
,(or (%current-target-system)
- (nix-system->gnu-triplet
- (%current-system))))))
+ (nix-system->gnu-triplet-for-rust)))))
(invoke "tar" "xf" (assoc-ref inputs "rustc"))
(chdir "rustc-1.19.0-src")
(invoke "patch" "-p0" "../rust_src.patch")
@@ -445,7 +456,7 @@ rpath = true
# codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs
# This tests required patched LLVM
codegen-tests = false
-[target." ,(nix-system->gnu-triplet) "]
+[target." ,(nix-system->gnu-triplet-for-rust) "]
llvm-config = \"" llvm "/bin/llvm-config" "\"
cc = \"" gcc "/bin/gcc" "\"
cxx = \"" gcc "/bin/g++" "\"
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index e85d3ebd5b..76240d85f1 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -61,7 +61,7 @@
(define-public vim
(package
(name "vim")
- (version "8.0.1428")
+ (version "8.1.0026")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/vim/vim/archive/v"
@@ -69,7 +69,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "08hzx843cxr5b2llc3332wxpgh3gjrs7jgd6s3sdrxnvg0s0y7s8"))))
+ "14q99dn113czp522j34p71za6g1mkriy04xxwcbm3axnrrpv1y52"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@@ -81,7 +81,8 @@
(substitute* "runtime/tools/mve.awk"
(("/usr/bin/nawk") (which "gawk")))
(substitute* '("src/testdir/Makefile"
- "src/testdir/test_normal.vim")
+ "src/testdir/test_normal.vim"
+ "src/testdir/test_terminal.vim")
(("/bin/sh") (which "sh")))
#t))
(add-before 'check 'patch-failing-test
@@ -93,7 +94,6 @@
#t)))))
(inputs
`(("gawk" ,gawk)
- ("inetutils" ,inetutils)
("ncurses" ,ncurses)
("perl" ,perl)
("tcsh" ,tcsh))) ; For runtime/tools/vim32
@@ -121,12 +121,14 @@ configuration files.")
(delete 'configure)
(add-after 'unpack 'chdir
(lambda _
- (chdir "src/xxd")))
+ (chdir "src/xxd")
+ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(install-file "xxd" bin)
#t))))))
+ (inputs `())
(synopsis "Hexdump utility from vim")
(description "This package provides the Hexdump utility xxd that comes
with the editor vim.")))
diff --git a/guix/self.scm b/guix/self.scm
index a24e9c6147..3acfac6f80 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -82,7 +82,6 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches."
("guile-json" (ref '(gnu packages guile) 'guile-json))
("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh))
("guile-git" (ref '(gnu packages guile) 'guile-git))
- ("guile-gdbm-ffi" (ref '(gnu packages guile) 'guile-gdbm-ffi))
("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3))
("libgcrypt" (ref '(gnu packages gnupg) 'libgcrypt))
("zlib" (ref '(gnu packages compression) 'zlib))
@@ -94,7 +93,6 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches."
("guile2.0-json" (ref '(gnu packages guile) 'guile2.0-json))
("guile2.0-ssh" (ref '(gnu packages ssh) 'guile2.0-ssh))
("guile2.0-git" (ref '(gnu packages guile) 'guile2.0-git))
- ("guile2.0-gdbm-ffi" (ref '(gnu packages guile) 'guile2.0-gdbm-ffi))
;; XXX: No "guile2.0-sqlite3".
(_ #f)))) ;no such package
@@ -220,12 +218,6 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
"guile-git"
"guile2.0-git"))
- (define guile-gdbm-ffi
- (package-for-guile guile-version
- "guile-gdbm-ffi"
- "guile2.0-gdbm-ffi"))
-
-
(define guile-sqlite3
(package-for-guile guile-version
"guile-sqlite3"
@@ -235,8 +227,7 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(match (append-map (lambda (package)
(cons (list "x" package)
(package-transitive-propagated-inputs package)))
- (list guile-git guile-json guile-ssh
- guile-gdbm-ffi guile-sqlite3))
+ (list guile-git guile-json guile-ssh guile-sqlite3))
(((labels packages _ ...) ...)
packages)))
@@ -264,12 +255,19 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(specification->package
"libgcrypt"))))
+ ;; (guix man-db) is needed at build-time by (guix profiles)
+ ;; but we don't need to compile it; not compiling it allows
+ ;; us to avoid an extra dependency on guile-gdbm-ffi.
+ #:extra-files
+ `(("guix/man-db.scm" ,(local-file "../guix/man-db.scm")))
+
#:guile-for-build guile-for-build))
(define *extra-modules*
(scheme-node "guix-extra"
(filter-map (match-lambda
(('guix 'scripts _ ..1) #f)
+ (('guix 'man-db) #f)
(name name))
(scheme-modules* source "guix"))
(list *core-modules*)