From 303b9bd1639de4d3bb69136da5b6680eccdcd883 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:03:57 +0100 Subject: gnu: Add elixir-nimble-parsec. * gnu/packages/elixir-xyz.scm (elixir-nimble-parsec): New variable. Change-Id: I79bab8095aee3212bc295354ead55df49ef92d17 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 gnu/packages/elixir-xyz.scm (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm new file mode 100644 index 0000000000..a57d2aae8d --- /dev/null +++ b/gnu/packages/elixir-xyz.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +(define-module (gnu packages elixir-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages elixir) + #:use-module (gnu packages linux) + #:use-module (gnu packages) + #:use-module (guix build-system gnu) + #:use-module (guix build-system mix) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) + +(define-public elixir-nimble-parsec + (package + (name "elixir-nimble-parsec") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Text-based parser combinators") + (description + "This library provides primitives for efficient parser combinators, allowing +for higher-level combinators through composition.") + (home-page "https://hexdocs.pm/nimble_parsec/") + (license license:asl2.0))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- cgit 1.4.1 From be31d3f32f1c3974cd9a011372c95664f7c443f2 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:03:58 +0100 Subject: gnu: Add elixir-makeup. * gnu/packages/elixir-xyz.scm (elixir-makeup): New variable. Change-Id: I21fe9ffddb4c95a2c67b74340b1105c2a54d3c82 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index a57d2aae8d..ba682e7f07 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -50,6 +50,26 @@ for higher-level combinators through composition.") (home-page "https://hexdocs.pm/nimble_parsec/") (license license:asl2.0))) +(define-public elixir-makeup + (package + (name "elixir-makeup") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-nimble-parsec)) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Syntax highlighter for source code") + (description + "Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting, +forums, wikis or other applications that need to prettify source code.") + (home-page "https://hexdocs.pm/makeup/") + (license license:bsd-2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From 4ee644f91874e5697b81ba3e9bcc1d8ab22839a7 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:03:59 +0100 Subject: gnu: Add elixir-jason. * gnu/packages/elixir-xyz.scm (elixir-jason): New variable. Change-Id: Iadd816e2b5db6d146728aacb4d6b2c66aba4304c Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index ba682e7f07..66c364fb32 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -70,6 +70,27 @@ forums, wikis or other applications that need to prettify source code.") (home-page "https://hexdocs.pm/makeup/") (license license:bsd-2))) +(define-public elixir-jason + (package + (name "elixir-jason") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "JSON parser and generator") + (description + "Parser and generator are written in pure Elixir and optimized for speed. They +are at least twice as fast as other Elixir/Erlang libraries (e.g. +Poison). The performance is comparable to jiffy, which is implemented in C as +a NIF.") + (home-page "https://hexdocs.pm/jason/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From e490763f2727b682c9a019ff7e7057e65aa5fbd5 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:00 +0100 Subject: gnu: Add elixir-file-system. * gnu/packages/elixir-xyz.scm (elixir-file-system): New variable. Change-Id: I54e9c9069ddf150bb0c882775b0b2c9d5e59abd6 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 66c364fb32..948d8aecc6 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -20,6 +20,8 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages elixir) #:use-module (gnu packages linux) + #:use-module (gnu packages compression) + #:use-module (gnu packages base) #:use-module (gnu packages) #:use-module (guix build-system gnu) #:use-module (guix build-system mix) @@ -91,6 +93,37 @@ a NIF.") (home-page "https://hexdocs.pm/jason/") (license license:asl2.0))) +(define-public elixir-file-system + (package + (name "elixir-file-system") + (version "0.2.10") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1")) + (snippet #~(begin + (use-modules (guix build utils) (ice-9 ftw)) + (mkdir "source") + (for-each (lambda (file) + (when (not (member file '("." ".." "source"))) + (rename-file file (string-append "source/" file)))) + (scandir ".")) + (with-directory-excursion "source" + (invoke (string-append #+gzip "/bin/gunzip") "-v" "contents.tar.gz") + (invoke (string-append #+tar "/bin/tar") "-xvf" "contents.tar") + (delete-file "contents.tar") + (delete-file "priv/inotifywait.exe")))))) + (build-system mix-build-system) + (propagated-inputs (list inotify-tools)) + (arguments (list #:tests? #f)) ; no tests + (synopsis "File system change watcher") + (description "Provides a file system change watcher wrapper based on +https://github.com/synrc/fs.") + (home-page "https://hexdocs.pm/file_system/") + (license license:wtfpl2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From 87e3f0b9b56af55a3180af2e5629d73c79926126 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:01 +0100 Subject: gnu: Add elixir-bunt. * gnu/packages/elixir-xyz.scm (elixir-bunt): New variable. Change-Id: Ib84797c31d6ab40d59b87b040993dae9391ead6b Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 948d8aecc6..33fa20749b 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -124,6 +124,25 @@ https://github.com/synrc/fs.") (home-page "https://hexdocs.pm/file_system/") (license license:wtfpl2))) +(define-public elixir-bunt + (package + (name "elixir-bunt") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "256 color ANSI coloring in the terminal") + (description "Bunt is an Elixir package that enables 256 color ANSI +coloring in the terminal and allows users to alias colors to more semantic and +application-specific names1.") + (home-page "https://hexdocs.pm/bunt/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From 20312bdf5bb4b68f4b652e024471d9c31cf14d34 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:02 +0100 Subject: gnu: Add elixir-inch-ex. * gnu/packages/elixir-xyz.scm (elixir-inch-ex): New variable. Change-Id: I6e98424528a0264a2587d28fcf065fa74eff0f1a Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 33fa20749b..ed61cac508 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -143,6 +143,27 @@ application-specific names1.") (home-page "https://hexdocs.pm/bunt/") (license license:expat))) +(define-public elixir-inch-ex + (package + (name "elixir-inch-ex") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-bunt elixir-jason)) + (synopsis + "Suggest enhancements for inline documentation") + (description + "This package provides a Mix task that gives you hints where to improve your +inline docs.") + (home-page "https://hex.pm/packages/inch_ex") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From ab74b47e92fd88ebcef20cec2600d690a6061c23 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:03 +0100 Subject: gnu: Add elixir-castore. * gnu/packages/elixir-xyz.scm (elixir-castore): New variable. Change-Id: Iea1fea8241d19ff35a183af9c3fbf2ed5198a259 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index ed61cac508..ef80c9550c 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -164,6 +164,24 @@ inline docs.") (home-page "https://hex.pm/packages/inch_ex") (license license:expat))) +(define-public elixir-castore + (package + (name "elixir-castore") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Up-to-date CA certificate store") + (description "The Elixir castore package is a micro-library that provides +an up-to-date CA certificate store file for Elixir applications.") + (home-page "https://hexdocs.pm/castore/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From 2060e3f5c8130bb9214a6951ac32475811963061 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:04 +0100 Subject: gnu: Add elixir-excoveralls. * gnu/packages/elixir-xyz.scm (elixir-excoveralls): New variable. Change-Id: Ib271d8a7393e21178806df28ab892afe99757297 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index ef80c9550c..14e67060e8 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -182,6 +182,28 @@ an up-to-date CA certificate store file for Elixir applications.") (home-page "https://hexdocs.pm/castore/") (license license:asl2.0))) +(define-public elixir-excoveralls + (package + (name "elixir-excoveralls") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-castore elixir-jason)) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Coverage report tool with coveralls.io integration") + (description + "Library that reports test coverage statistics, with the option to +post to coveralls.io service. It uses Erlang's cover to generate coverage +information, and posts the test coverage results to coveralls.io through the +JSON API.") + (home-page "https://hexdocs.pm/excoveralls/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From d3410fb2847d3b0a006e5f9ee569608dc8bafb2a Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:05 +0100 Subject: gnu: Add elixir-credo. * gnu/packages/elixir-xyz.scm (elixir-credo): New variable. Change-Id: I6df0d926e0fb96caa65d081892026b3495431c83 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 14e67060e8..8485355e48 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -204,6 +204,30 @@ JSON API.") (home-page "https://hexdocs.pm/excoveralls/") (license license:expat))) +(define-public elixir-credo + (package + (name "elixir-credo") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-bunt elixir-file-system elixir-jason)) + (native-inputs (list elixir-excoveralls elixir-inch-ex)) + (synopsis "Static code analysis tool") + (description + "Credo is a static code analysis tool for the Elixir language with a focus on +teaching and code consistency. Credo can show you refactoring opportunities in +your code, complex code fragments, warn you about common mistakes, show +inconsistencies in your naming scheme and - if needed - help you enforce a +desired coding style.") + (home-page "https://hexdocs.pm/credo/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From 43a74143ea9f78a4a660eb7d0f382852735875f3 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:06 +0100 Subject: gnu: Add elixir-erlex. * gnu/packages/elixir-xyz.scm (elixir-erlex): New variable. Change-Id: Ia518ad5fd32d3f5942b20113e61e4ef7e7895ff3 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 8485355e48..df43284301 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -228,6 +228,26 @@ desired coding style.") (home-page "https://hexdocs.pm/credo/") (license license:expat))) +(define-public elixir-erlex + (package + (name "elixir-erlex") + (version "0.2.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis + "Convert Erlang style structs and error messages to equivalent Elixir") + (description + "Converted structs and error messages are useful for pretty printing +things like Dialyzer errors and Observer.") + (home-page "https://hexdocs.pm/erlex/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From 32de15206d95d37c066ec13ce95a106d41fae11f Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:07 +0100 Subject: gnu: Add elixir-dialyxir. * gnu/packages/elixir-xyz.scm (elixir-dialyxir): New variable. Change-Id: I387062e0aaaded448022aa7534b95859b5979a06 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index df43284301..5a7330ca45 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -248,6 +248,25 @@ things like Dialyzer errors and Observer.") (home-page "https://hexdocs.pm/erlex/") (license license:asl2.0))) +(define-public elixir-dialyxir + (package + (name "elixir-dialyxir") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-erlex)) + (synopsis "Mix tasks to simplify use of Dialyzer") + (description + "Mix Tasks are usable from the directory of the mix project you want to analyze.") + (home-page "https://hexdocs.pm/dialyxir/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1 From 9002b04e13188d4eac2f7d614f7cda51d8baea76 Mon Sep 17 00:00:00 2001 From: Pierre-Henry Fröhring Date: Sun, 10 Dec 2023 14:04:08 +0100 Subject: gnu: Add elixir-machete. * gnu/packages/elixir-xyz.scm (elixir-machete): New variable. Change-Id: I76e0fd78aeeaeaa94a297032b3b309846510c975 Signed-off-by: Liliana Marie Prikler --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages/elixir-xyz.scm') diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 5a7330ca45..5af8d7c1b4 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -267,6 +267,26 @@ things like Dialyzer errors and Observer.") (home-page "https://hexdocs.pm/dialyxir/") (license license:asl2.0))) +(define-public elixir-machete + (package + (name "elixir-machete") + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9")))) + (build-system mix-build-system) + (native-inputs (list elixir-credo elixir-dialyxir)) + (synopsis "Literate test matchers for ExUnit") + (description + "Machete provides ergonomic match operators that act as building blocks to let +you define test expectations that can match data against any combination of +literals, variables, or parametrically defined matchers.") + (home-page "https://hexdocs.pm/machete/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- cgit 1.4.1