diff options
Diffstat (limited to 'gnu/packages/textutils.scm')
-rw-r--r-- | gnu/packages/textutils.scm | 615 |
1 files changed, 403 insertions, 212 deletions
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index ae8bce7b3e..715b9c4f98 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2016, 2018, 2019, 2020, 2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2018, 2019, 2020, 2023, 2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016, 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> @@ -13,18 +13,20 @@ ;;; Copyright © 2017,2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com> ;;; Copyright © 2019 Yoshinori Arai <kumagusu08@gmail.com> ;;; Copyright © 2019 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz> -;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz> +;;; Copyright © 2020 Maxim Cournoyer <maxim@guixotic.coop> ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com> ;;; Copyright © 2022 Gabriel Wicki <gabriel@erlikon.ch> +;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022 M <matf@disr.it> ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2023 Reza Housseini <reza@housseini.me> @@ -34,6 +36,7 @@ ;;; Copyright © 2024-2024 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se> ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2025 John Khoo <johnkhootf@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -77,9 +80,13 @@ #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-compression) #:use-module (gnu packages golang-crypto) + #:use-module (gnu packages golang-maths) + #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages java) + #:use-module (gnu packages julia) #:use-module (gnu packages ncurses) + #:use-module (gnu packages nss) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -95,7 +102,8 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages xml) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (srfi srfi-1)) (define-public dos2unix (package @@ -172,109 +180,98 @@ an encoding detection library, and enca, a command line frontend, integrating libenca and several charset conversion libraries and tools.") (license license:gpl2))) +;; Newer utf8proc depends on julia for tests. Since julia also depends on +;; utf8proc, a dependency cycle is created. This bootstrap variant of utf8proc +;; disables tests. +(define-public utf8proc-bootstrap + (hidden-package + (package + (name "utf8proc-bootstrap") + (version "2.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaStrings/utf8proc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n1k67x39sk8xnza4w1xkbgbvgb1g7w2a7j2qrqzqaw1lyilqsy2")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;To break dependency cycle. + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "prefix=" #$output)) + #:phases + #~(modify-phases %standard-phases + ;; No configure script. + (delete 'configure)))) + (home-page "https://juliastrings.github.io/utf8proc/") + (synopsis "C library for processing UTF-8 Unicode data") + (description + "@code{utf8proc} is a small C library that provides Unicode normalization, +case-folding, and other operations for data in the UTF-8 encoding.") + (license license:expat)))) + (define-public utf8proc (package + (inherit utf8proc-bootstrap) (name "utf8proc") - (version "2.5.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/JuliaStrings/utf8proc") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1xlkazhdnja4lksn5c9nf4bln5gjqa35a8gwlam5r0728w0h83qq")))) - (build-system gnu-build-system) (native-inputs - (let ((UNICODE_VERSION "13.0.0")) ; defined in data/Makefile - ;; Test data that is otherwise downloaded with curl. - `(("NormalizationTest.txt" - ,(origin - (method url-fetch) - (uri (string-append "https://www.unicode.org/Public/" - UNICODE_VERSION "/ucd/NormalizationTest.txt")) - (sha256 - (base32 "07g0ya4f6zfzvpp24ccxkb2yq568kh83gls85rjl950nv5fya3nn")))) - ("GraphemeBreakTest.txt" - ,(origin - (method url-fetch) - (uri (string-append "https://www.unicode.org/Public/" - UNICODE_VERSION - "/ucd/auxiliary/GraphemeBreakTest.txt")) - (sha256 - (base32 "07f8rrvcsq4pibdz6zxggxy8w7zjjqyw2ggclqlhalyv45yv7prj")))) - - ;; For tests. - ("perl" ,perl)))) - (arguments - `(#:make-flags (list ,(string-append "CC=" (cc-for-target)) - (string-append "prefix=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'check 'check-data - (lambda* (#:key ,@(if (%current-target-system) - '(native-inputs) - '()) - inputs #:allow-other-keys) - (for-each (lambda (i) - (copy-file (assoc-ref ,@(if (%current-target-system) - '((or native-inputs inputs)) - '(inputs)) i) - (string-append "data/" i))) - '("NormalizationTest.txt" "GraphemeBreakTest.txt")) - (substitute* "data/GraphemeBreakTest.txt" - (("÷") "/") - (("×") "+")) - #t))))) - (home-page "https://juliastrings.github.io/utf8proc/") - (synopsis "C library for processing UTF-8 Unicode data") - (description "utf8proc is a small C library that provides Unicode -normalization, case-folding, and other operations for data in the UTF-8 -encoding, supporting Unicode version 9.0.0.") - (license license:expat))) - -(define-public utf8proc-2.7.0 - (package - (inherit utf8proc) - (name "utf8proc") - (version "2.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/JuliaStrings/utf8proc") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1wrsmnaigal94gc3xbzdrrm080zjhihjfdla5admllq2w5dladjj")))) + (let ((UNICODE_VERSION "16.0.0")) ; defined in data/Makefile + ;; Only if the tests will be run should these be added. + (if (and (%current-system) + (supported-package? julia)) + ;; Test data that is otherwise downloaded with curl. + (list (origin + (method url-fetch) + (uri (string-append + "https://www.unicode.org/Public/" + UNICODE_VERSION "/ucd/NormalizationTest.txt")) + (sha256 + (base32 + "1cffwlxgn6sawxb627xqaw3shnnfxq0v7cbgsld5w1z7aca9f4fq"))) + (origin + (method url-fetch) + (uri (string-append + "https://www.unicode.org/Public/" + UNICODE_VERSION "/ucd/auxiliary/GraphemeBreakTest.txt")) + (sha256 + (base32 + "1d9w6vdfxakjpp38qjvhgvbl2qx0zv5655ph54dhdb3hs9a96azf"))) + (origin + (method url-fetch) + (uri (string-append + "https://www.unicode.org/Public/" + UNICODE_VERSION "/ucd/DerivedCoreProperties.txt")) + (sha256 + (base32 + "1gfsq4vdmzi803i2s8ih7mm4fgs907kvkg88kvv9fi4my9hm3lrr"))) + ;; For tests. + julia + perl + ;; TODO Move to ruby@3 on the next rebuild cycle. + ruby-2.7) + '()))) (arguments - (substitute-keyword-arguments (package-arguments utf8proc) - ((#:phases phases) - `(modify-phases ,phases - (replace 'check-data - (lambda* (#:key inputs native-inputs #:allow-other-keys) - (display native-inputs) - (for-each (lambda (i) - (copy-file (assoc-ref (or native-inputs inputs) i) - (string-append "data/" i))) - '("NormalizationTest.txt" "GraphemeBreakTest.txt" - "DerivedCoreProperties.txt")))))))) - (native-inputs - (append - (package-native-inputs utf8proc) - (let ((UNICODE_VERSION "14.0.0")) - `(("DerivedCoreProperties.txt" - ,(origin - (method url-fetch) - (uri (string-append "https://www.unicode.org/Public/" - UNICODE_VERSION "/ucd/DerivedCoreProperties.txt")) - (sha256 - (base32 "1g77s8g9443dd92f82pbkim7rk51s7xdwa3mxpzb1lcw8ryxvvg3")))) - ;; For tests - ;; TODO Move to ruby@3 on the next rebuild cycle. - ("ruby" ,ruby-2.7))))))) + (if (this-package-native-input "julia") + (strip-keyword-arguments + '(#:tests?) + (substitute-keyword-arguments (package-arguments utf8proc-bootstrap) + ((#:phases phases '%standard-phases) + #~(modify-phases #$phases + (add-before 'check 'check-data + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (for-each (lambda (i) + (copy-file (assoc-ref (or native-inputs inputs) i) + (string-append "data/" i))) + '("NormalizationTest.txt" "GraphemeBreakTest.txt" + "DerivedCoreProperties.txt")))))))) + (substitute-keyword-arguments (package-arguments utf8proc-bootstrap) + ((#:tests? _ #t) #f)))) + (properties + (alist-delete 'hidden? (package-properties utf8proc-bootstrap))))) (define-public libconfuse (package @@ -343,6 +340,88 @@ nested include statements).") the Hannon Lab.") (license license:agpl3+))) +(define-public libxo + (package + (name "libxo") + (version "1.7.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Juniper/libxo") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "115jv067msym0lsxkiz95ddvspd6smvww37248xkqyin0rxb2m0j")) + (snippet + '(for-each + delete-file + '("xohtml/external/jquery.js" + "xohtml/external/jquery.qtip.css" + "xohtml/external/jquery.qtip.js"))))) + (build-system gnu-build-system) + (arguments + (list + #:modules '((guix build gnu-build-system) + (guix build minify-build-system) + (guix build utils) + (ice-9 match)) + #:imported-modules + `(,@%default-gnu-imported-modules + (guix build minify-build-system)) + #:phases + '(modify-phases (@ (guix build gnu-build-system) %standard-phases) + (add-after 'unpack 'process-javascript + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "xohtml/external" + (for-each (match-lambda + ((source . target) + (minify source #:target target))) + `((,(assoc-ref inputs "js-jquery") + . "jquery.js") + (,(assoc-ref inputs "js-qtip2") + . "jquery.qtip.js") + (,(assoc-ref inputs "js-qtip2.css") + . "jquery.qtip.css"))))))))) + (inputs + `(("perl", perl) + ("js-jquery" + ,(origin + (method url-fetch) + (uri "https://code.jquery.com/jquery-1.7.0.js") + (sha256 + (base32 + "1qz3jmzg5ac6nkgivzyjgd7rr3vvkwzqv525s080mx10hvn8a63w")))) + ("js-qtip2" + ,(origin + (method url-fetch) + (uri "https://cdnjs.cloudflare.com/ajax/libs/qtip2/2.1.1/jquery.qtip.js") + (sha256 + (base32 + "05aq2x5hd8jnpnhkn41ivsbdg3rqmk093bb2vqzswbihvsizyx64")))) + ("js-qtip2.css" + ,(origin + (method url-fetch) + (uri "https://cdnjs.cloudflare.com/ajax/libs/qtip2/2.1.1/jquery.qtip.css") + (sha256 + (base32 + "18h10klb84jqpasvjymlaskj0442wcain434iwydikpdxmrr7g0n")))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("esbuild" ,esbuild) + ("libtool" ,libtool))) + (home-page "https://juniper.github.io/libxo/libxo-manual.html") + (synopsis "Library for Generating Text, XML, JSON, and HTML Output") + (description + "This package implements the functionality to generate text, XML, +JSON, and HTML output using a common set of function calls. The caller +decides at run time which output style should be produced. Afterwards, the caller +calls the function @code{xo_emit} to produce output in a format described using +a format string.") + ;; license:expat: jquery and qtip2. + (license (list license:bsd-2 license:expat)))) + (define-public cityhash (let ((commit "8af9b8c")) (package @@ -768,6 +847,35 @@ spreadsheets and outputs it in comma-separated-value format, and in a portable way.") (license license:boost1.0))) +(define-public utfcpp-2 + (package + (inherit utfcpp) + (name (package-name utfcpp)) + (version "2.3.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nemtrif/utfcpp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gr98d826z6wa58r1s5i7rz7q2x3r31v7zj0pjjlrc7gfxwklr4s")))) + (build-system cmake-build-system) + (arguments + `(#:out-of-source? #f + #:phases + (modify-phases %standard-phases + (replace 'install ; no install target + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (include (string-append out "/include")) + (doc (string-append out "/share/doc/" ,name))) + (copy-recursively "source" include) + (install-file "README.md" doc))))))) + (native-inputs '()))) + + (define-public dbacl (package (name "dbacl") @@ -1061,43 +1169,6 @@ Eclipse and NetBeans. Completion information is typically specified in an XML file, but can even be dynamic.") (license license:bsd-3))) -;; We use the sources from git instead of the tarball from pypi, because the -;; latter does not include the Cython source file from which bycython.cpp is -;; generated. -(define-public python-editdistance - (let ((commit "3ea84a7dd3258c76aa3be851ef3d50e59c886846") - (revision "1")) - (package - (name "python-editdistance") - (version (string-append "0.3.1-" revision "." (string-take commit 7))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/aflc/editdistance") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1l43svsv12crvzphrgi6x435z6xg8m086c64armp8wzb4l8ccm7g")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'build-cython-code - (lambda _ - (with-directory-excursion "editdistance" - (delete-file "bycython.cpp") - (invoke "cython" "--cplus" "bycython.pyx"))))))) - (native-inputs - (list python-cython)) - (home-page "https://www.github.com/aflc/editdistance") - (synopsis "Fast implementation of the edit distance (Levenshtein distance)") - (description - "This library simply implements Levenshtein distance algorithm with C++ -and Cython.") - (license license:expat)))) - (define-public txt2tags (package (name "txt2tags") @@ -1260,7 +1331,7 @@ OpenDocument presentations (*.odp).") (define-public cobib (package (name "cobib") - (version "5.3.0") + (version "5.4.0") (source (origin (method git-fetch) ;no tests in PyPI archive @@ -1269,49 +1340,80 @@ OpenDocument presentations (*.odp).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "13mzwb1rmpz05bn5qr7mwqmj0grxxm1z7b56c8wvyrgm6lsx0a98")))) + (base32 "0amyfacm97av9srpwxvif16hcg8w9psdl4v70syihbwchyrbcsg9")))) (build-system pyproject-build-system) (arguments (list + ;; tests: 302 passed, 43 skipped, 403 deselected #:test-flags - #~(list "-k" (string-join - ;; Tests trying to access api.zotero.org. - (list "not test_fetch" - "test_fetch_custom_user_id" - "test_cache" - "test_event_pre_zotero_import" - "test_event_post_zotero_import" - ;; Tests requiring Git history or failing with - ;; various assertion errors. - "test_absolute_path" - "test_cmdline" - "test_command" - "test_command_context" - "test_command_edit" - "test_command_edit_no_changes" - "test_command_fields" - "test_command_inline" - "test_command_skip" - "test_configured_label_default" - "test_disambiguate_label" - "test_event_post_redo_command" - "test_event_post_undo_command" - "test_event_pre_git_commit" - "test_event_pre_redo_command" - "test_event_pre_undo_command" - "test_lint_auto_format" - "test_overwrite_label" - "test_skipping_redone_commits" - "test_skipping_undone_commits" - "test_stringify" - ;; Tests might be broken as trying to compare $HOME - ;; and "~/". - "test_base_cmd_insufficient_git" - "test_warn_insufficient_config" - "test_event_pre_init_command" - "test_field_cmdline_switch") - " and not ") - "tests") + #~(list + "-k" (string-join + ;; Tests trying to access api.zotero.org. + (list "not test_cache" + "test_command" + "test_event_post_zotero_import" + "test_event_pre_zotero_import" + "test_fetch" + "test_fetch_custom_user_id" + ;; XXX: Various tests fail which require git history. + "test_cmdline" + "test_command" + "test_event_post_redo_command" + "test_event_post_undo_command" + "test_event_pre_redo_command" + "test_event_pre_undo_command" + "test_skipping_redone_commits" + "test_skipping_undone_commits" + "test_overwrite_label" + "test_configured_label_default" + "test_disambiguate_label" + "test_command_yes" + "test_command_edit" + "test_command_edit_no_changes" + "test_command_skip" + "test_command_fields" + "test_command_context" + "test_command_inline" + "test_event_pre_git_commit" + "test_warn_insufficient_config" + "test_event_pre_init_command" + "test_lint_auto_format" + "test_field_cmdline_switch" + "test_command_resume" + "test_command_resume_graceful" + "test_stringify" + "test_handling_of_missing_schema" + "test_main" + "test_config_theme" + "test_config_syntax" + "test_config_user_tags" + "test_log" + "test_help" + "test_empty_database" + "test_prompt_action" + "test_prompt_ask" + "test_catch_invalid_command" + "test_jump" + "test_jump_missing" + "test_jump_out_of_view" + "test_sort" + "test_sort_twice" + "test_filter" + "test_preset" + "test_delete" + "test_note_edit" + "test_note_reset" + "test_note_unsaved_quit" + "test_note_unsaved_open_another" + "test_search" + "test_empty_results" + "test_expand_all" + "test_motion" + "test_select" + "test_open" + "test_absolute_path") + " and not ") + "tests") #:phases #~(modify-phases %standard-phases (add-before 'check 'pre-check @@ -1326,20 +1428,18 @@ OpenDocument presentations (*.odp).") python-pytest python-pytest-asyncio python-pytest-textual-snapshot - python-setuptools - python-wheel)) + python-setuptools)) (propagated-inputs (list python-beautifulsoup4 python-bibtexparser python-lxml - python-mdit-py-plugins python-pylatexenc python-requests python-requests-oauthlib python-rich python-ruamel.yaml python-text-unidecode - python-textual-1 + python-textual python-typing-extensions)) (home-page "https://gitlab.com/cobib/cobib") (synopsis "Terminal-based bibliography management tool") @@ -1402,6 +1502,7 @@ formats (e.g. Bibtex, RIS, etc.) using a common XML intermediate.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:install-source? #f #:import-path "github.com/benhoyt/goawk" #:phases @@ -1440,6 +1541,38 @@ formats (e.g. Bibtex, RIS, etc.) using a common XML intermediate.") reading and writing CSV and TSV files.") (license license:expat))) +(define-public gron + (package + (name "gron") + (version "0.7.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tomnomnom/gron") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sj34b6yv0qigy3aq7qmwf8bqxp1a8qh9p10lzkpw58s1c0iyh36")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/tomnomnom/gron" + #:test-flags #~(list "-vet=off"))) + (native-inputs + (list go-github-com-fatih-color + go-github-com-mattn-go-colorable + go-github-com-nwidger-jsoncolor + go-github-com-pkg-errors)) + (home-page "https://github.com/tomnomnom/gron") + (synopsis "Transform JSON to make it easier to grep") + (description + "This package transforms JSON into discrete assignments to make it easier +to use line-based tools such as grep to search for what you want and see the +absolute \"path\" to it.") + (license license:expat))) + (define-public opencc (package (name "opencc") @@ -1563,14 +1696,18 @@ such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32.") (define-public python-pandocfilters (package (name "python-pandocfilters") - (version "1.5.0") + (version "1.5.1") (source (origin (method url-fetch) (uri (pypi-uri "pandocfilters" version)) (sha256 - (base32 "0f3sb8q85dbwliv46cc1yvpy4r00qp4by5x8751kn8vx6c1rarqb")))) - (build-system python-build-system) + (base32 "17lknixjja23jczlv8afgfky94m4gwl7wc36iczw1sz4brallaq0")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;require pandoc to run tests + (native-inputs + (list python-setuptools)) (home-page "https://github.com/jgm/pandocfilters") (synopsis "Python module for writing Pandoc filters") (description "Pandoc is a powerful utility to transform various @@ -1615,20 +1752,19 @@ of a Unix terminal to HTML code.") (define-public vale (package (name "vale") - (version "3.9.5") + (version "3.12.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/errata-ai/vale") - (commit (string-append "v" version)))) + (url "https://github.com/errata-ai/vale") + (commit (string-append "v" version)))) (sha256 - (base32 "119iiyh164rkj7jlghr2j1kbhc8k1bvfhsfvd972zs092fg7dh4p")) + (base32 "1w6216ap8sds6279h39ksjv27hakzahjmzlvbnsl67lwvldbqvcg")) (file-name (git-file-name name version)))) (build-system go-build-system) (arguments (list - #:go go-1.23 #:install-source? #f #:embed-files #~(list ".*\\.gob") #:import-path "github.com/errata-ai/vale/cmd/vale" @@ -1651,7 +1787,8 @@ of a Unix terminal to HTML code.") (lambda _ (setenv "HOME" "/tmp")))))) (native-inputs - (list go-github-com-adrg-strutil + (list go-github-com-adrg-frontmatter + go-github-com-adrg-strutil go-github-com-adrg-xdg go-github-com-bmatcuk-doublestar-v4 go-github-com-d5-tengo-v2 @@ -1664,14 +1801,13 @@ of a Unix terminal to HTML code.") go-github-com-masterminds-sprig-v3 go-github-com-mitchellh-mapstructure go-github-com-niklasfasching-go-org - go-github-com-olekukonko-tablewriter + go-github-com-olekukonko-tablewriter-0.0.5 go-github-com-otiai10-copy go-github-com-pelletier-go-toml-v2 go-github-com-pterm-pterm go-github-com-remeh-sizedwaitgroup go-github-com-smacker-go-tree-sitter go-github-com-spf13-pflag - go-github-com-stretchr-testify go-github-com-tomwright-dasel-v2 go-github-com-yuin-goldmark go-golang-org-x-exp @@ -1766,16 +1902,16 @@ JSON for post-processing (define-public miller (package (name "miller") - (version "6.13.0") + (version "6.15.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/johnkerl/miller") - (commit (go-version->git-ref version)))) + (url "https://github.com/johnkerl/miller") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1w8ibmywsr9jsmmqrcvc0j7fx5vkdbwamizn4vim9xys807kmjsj")))) + (base32 "00k4gxlbdpnmy9r0qyfa72p7f29qbzzvxniilira3yj85k5rmrxg")))) (build-system go-build-system) (arguments (list @@ -1795,17 +1931,15 @@ JSON for post-processing go-github-com-johnkerl-lumin go-github-com-kballard-go-shellquote go-github-com-klauspost-compress + go-github-com-kshedden-statmodel go-github-com-lestrrat-go-strftime go-github-com-mattn-go-isatty - ;; Optional, not packed in Guix - ;; go-github-com-nine-lives-later-go-windows-terminal-sequences go-github-com-pkg-profile go-github-com-stretchr-testify go-golang-org-x-sys go-golang-org-x-term go-golang-org-x-text python-wrapper - python-mkdocs-material ruby)) (home-page "https://miller.readthedocs.io/") (synopsis "Text-formatted data processing tool") @@ -1866,22 +2000,21 @@ Expressions, and being faster to type than grep.") (define-public python-panflute (package (name "python-panflute") - (version "2.3.0") + (version "2.3.1") (source (origin (method url-fetch) (uri (pypi-uri "panflute" version)) (sha256 (base32 - "1jk5b2sp1h4drkjrg2ks77d0ca6j043n2myvacm77nfc93y9vzff")))) - (build-system python-build-system) - (propagated-inputs (list python-click python-pyyaml)) - (native-inputs (list python-configparser - python-coverage - python-flake8 - python-pandocfilters - python-pytest - python-pytest-cov - python-requests)) + "07wg5md93jcdkpiqljwr3p1xzvm6nf7vbiay0bp84fgg6hmd06sz")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;require pandoc to run tests + (native-inputs + (list python-setuptools)) + (propagated-inputs + (list python-click + python-pyyaml)) (home-page "http://scorreia.com/software/panflute/") (synopsis "Pythonic Pandoc filters") (description @@ -1917,3 +2050,61 @@ which it is heavily inspired.") @item header include @end enumerate") (license license:expat))) + +(define-public yq + (package + (name "yq") + (version "4.47.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mikefarah/yq") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04724qywadxvgcdq5h35b9mqkyngkyad5aq5dk4g84aycarskpc4")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + ;; Go provides the binary as the name of the last directory in the + ;; import-path unless the file names is something else than main.go. + ;; The real import-path is "github.com/mikefarah/yq/v4". + #:import-path "github.com/mikefarah/yq" + #:phases + #~(modify-phases %standard-phases + ;; Tests need this. + (add-after 'unpack 'fix-access-to-doc + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each make-file-writable + (find-files "./pkg/yqlib/doc" "\\.md")))))))) + (native-inputs + (list go-github-com-a8m-envsubst + go-github-com-alecthomas-participle-v2 + go-github-com-alecthomas-repr + go-github-com-dimchansky-utfbom + go-github-com-elliotchance-orderedmap + go-github-com-fatih-color + go-github-com-go-ini-ini + go-github-com-goccy-go-json + go-github-com-goccy-go-yaml + go-github-com-jinzhu-copier + go-github-com-magiconair-properties + go-github-com-pelletier-go-toml-v2 + go-github-com-pkg-diff + go-github-com-spf13-cobra + go-github-com-spf13-pflag + go-github-com-yuin-gopher-lua + go-go-yaml-in-yaml-v3 + go-golang-org-x-net + go-golang-org-x-text + go-gopkg-in-op-go-logging-v1)) + (home-page "https://mikefarah.gitbook.io/yq/") + (synopsis "Command-line YAML, JSON, XML, CSV, TOML and properties processor") + (description + "This package provides @code{yq}, a command-line YAML, JSON and XML +processor. It uses @code{jq}-like syntax but works with YAML files as well as +JSON, XML, properties, CSV and TSV.") + (license license:expat))) |