diff options
-rw-r--r-- | gnu/packages/emacs.scm | 179 | ||||
-rw-r--r-- | gnu/packages/rust.scm | 23 | ||||
-rw-r--r-- | gnu/packages/vim.scm | 12 | ||||
-rw-r--r-- | guix/self.scm | 18 |
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*) |