diff options
Diffstat (limited to 'textproc')
91 files changed, 1824 insertions, 687 deletions
diff --git a/textproc/Makefile b/textproc/Makefile index b4e20caed81a..be157932bb3d 100644 --- a/textproc/Makefile +++ b/textproc/Makefile @@ -92,7 +92,6 @@ SUBDIR += castxml SUBDIR += catdoc SUBDIR += cg3 - SUBDIR += cgrep SUBDIR += chkascii SUBDIR += choose SUBDIR += chpp @@ -273,6 +272,7 @@ SUBDIR += highlight SUBDIR += hil-aspell SUBDIR += hr-aspell + SUBDIR += hs-cgrep SUBDIR += hs-lhs2tex SUBDIR += hs-pandoc SUBDIR += hs-pandoc-crossref @@ -525,9 +525,6 @@ SUBDIR += openjade SUBDIR += opensearch SUBDIR += opensearch-dashboards - SUBDIR += opensearch-dashboards210 - SUBDIR += opensearch-dashboards213 - SUBDIR += opensearch-dashboards216 SUBDIR += opensearch-dashboards219 SUBDIR += opensearch13 SUBDIR += opensearch210 @@ -1375,6 +1372,7 @@ SUBDIR += py-dparse SUBDIR += py-duecredit SUBDIR += py-ebcdic + SUBDIR += py-elastic-transport SUBDIR += py-elasticsearch SUBDIR += py-elasticsearch-async SUBDIR += py-elasticsearch-curator @@ -1382,6 +1380,7 @@ SUBDIR += py-elasticsearch-dsl6 SUBDIR += py-elasticsearch5 SUBDIR += py-elasticsearch6 + SUBDIR += py-elasticsearch7 SUBDIR += py-elementpath SUBDIR += py-emeraldtree SUBDIR += py-empy diff --git a/textproc/consul-template/Makefile b/textproc/consul-template/Makefile index eec74b02a5b4..0478309eff40 100644 --- a/textproc/consul-template/Makefile +++ b/textproc/consul-template/Makefile @@ -1,7 +1,7 @@ PORTNAME= consul-template DISTVERSIONPREFIX= v DISTVERSION= 0.41.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= textproc MAINTAINER= bofh@FreeBSD.org diff --git a/textproc/csvq/Makefile b/textproc/csvq/Makefile index cac4c99d0d43..827369c39bcc 100644 --- a/textproc/csvq/Makefile +++ b/textproc/csvq/Makefile @@ -1,7 +1,7 @@ PORTNAME= csvq DISTVERSIONPREFIX= v DISTVERSION= 1.18.1 -PORTREVISION= 16 +PORTREVISION= 17 CATEGORIES= textproc MAINTAINER= lcook@FreeBSD.org diff --git a/textproc/dyff/Makefile b/textproc/dyff/Makefile index f7e148ccdd76..fe0ec3427588 100644 --- a/textproc/dyff/Makefile +++ b/textproc/dyff/Makefile @@ -1,6 +1,7 @@ PORTNAME= dyff DISTVERSIONPREFIX= v DISTVERSION= 1.10.2 +PORTREVISION= 1 CATEGORIES= textproc MAINTAINER= ehaupt@FreeBSD.org diff --git a/textproc/fzf/Makefile b/textproc/fzf/Makefile index 13ad9d87bb84..c69615a9e348 100644 --- a/textproc/fzf/Makefile +++ b/textproc/fzf/Makefile @@ -1,6 +1,7 @@ PORTNAME= fzf DISTVERSIONPREFIX= v -DISTVERSION= 0.65.1 +DISTVERSION= 0.65.2 +PORTREVISION= 1 CATEGORIES= textproc MASTER_SITES= https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${DISTVERSIONFULL}/:gomod DISTFILES= go.mod:gomod diff --git a/textproc/fzf/distinfo b/textproc/fzf/distinfo index 75a1bbb3d8b9..531bcdd3f232 100644 --- a/textproc/fzf/distinfo +++ b/textproc/fzf/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1754375690 -SHA256 (go/textproc_fzf/junegunn-fzf-v0.65.1_GH0/go.mod) = 6cc838db5cb7817cbb9522b55c9715ab6f543a0eaf3b5178cd9db42bd60640ae -SIZE (go/textproc_fzf/junegunn-fzf-v0.65.1_GH0/go.mod) = 527 -SHA256 (go/textproc_fzf/junegunn-fzf-v0.65.1_GH0/junegunn-fzf-v0.65.1_GH0.tar.gz) = 82fa35dc3ba5d716db26a507f90bb0e724f586123c28ad3fb376bd8384669abf -SIZE (go/textproc_fzf/junegunn-fzf-v0.65.1_GH0/junegunn-fzf-v0.65.1_GH0.tar.gz) = 347658 +TIMESTAMP = 1756803631 +SHA256 (go/textproc_fzf/junegunn-fzf-v0.65.2_GH0/go.mod) = 6cc838db5cb7817cbb9522b55c9715ab6f543a0eaf3b5178cd9db42bd60640ae +SIZE (go/textproc_fzf/junegunn-fzf-v0.65.2_GH0/go.mod) = 527 +SHA256 (go/textproc_fzf/junegunn-fzf-v0.65.2_GH0/junegunn-fzf-v0.65.2_GH0.tar.gz) = 53b7e0077833f96ae04fd1e312ed65b2d5c427422b652dd3ce6c2d1702f8ce56 +SIZE (go/textproc_fzf/junegunn-fzf-v0.65.2_GH0/junegunn-fzf-v0.65.2_GH0.tar.gz) = 347841 diff --git a/textproc/gh-grep/Makefile b/textproc/gh-grep/Makefile index 431223980a3c..0bde3c9ffaba 100644 --- a/textproc/gh-grep/Makefile +++ b/textproc/gh-grep/Makefile @@ -1,7 +1,7 @@ PORTNAME= gh-grep DISTVERSIONPREFIX= v DISTVERSION= 1.2.3 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= textproc MAINTAINER= lcook@FreeBSD.org diff --git a/textproc/git-chglog/Makefile b/textproc/git-chglog/Makefile index 3d0cfed6d762..cca3b34afd07 100644 --- a/textproc/git-chglog/Makefile +++ b/textproc/git-chglog/Makefile @@ -1,7 +1,7 @@ PORTNAME= git-chglog DISTVERSIONPREFIX= v DISTVERSION= 0.15.4 -PORTREVISION= 17 +PORTREVISION= 18 CATEGORIES= textproc MAINTAINER= lcook@FreeBSD.org diff --git a/textproc/gitlab-elasticsearch-indexer/Makefile b/textproc/gitlab-elasticsearch-indexer/Makefile index 5b4b318b058f..51f13271c007 100644 --- a/textproc/gitlab-elasticsearch-indexer/Makefile +++ b/textproc/gitlab-elasticsearch-indexer/Makefile @@ -1,7 +1,7 @@ PORTNAME= gitlab-elasticsearch-indexer PORTVERSION= 5.7.0 DISTVERSIONPREFIX= v -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= textproc MAINTAINER= mfechner@FreeBSD.org diff --git a/textproc/go-md2man/Makefile b/textproc/go-md2man/Makefile index d12f40c30f7a..7a25ef49d41f 100644 --- a/textproc/go-md2man/Makefile +++ b/textproc/go-md2man/Makefile @@ -1,7 +1,7 @@ PORTNAME= go-md2man DISTVERSIONPREFIX= v DISTVERSION= 2.0.7 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= textproc MAINTAINER= mateusz@serveraptor.com diff --git a/textproc/go-transifex-client/Makefile b/textproc/go-transifex-client/Makefile index bf690838ecd0..79daa4e589c0 100644 --- a/textproc/go-transifex-client/Makefile +++ b/textproc/go-transifex-client/Makefile @@ -1,7 +1,7 @@ PORTNAME= transifex-client DISTVERSIONPREFIX= v DISTVERSION= 1.6.10 -PORTREVISION= 15 +PORTREVISION= 16 CATEGORIES= textproc PKGNAMEPREFIX= go- diff --git a/textproc/go-yq/Makefile b/textproc/go-yq/Makefile index 3d7940d4e52f..275b8a421b79 100644 --- a/textproc/go-yq/Makefile +++ b/textproc/go-yq/Makefile @@ -1,6 +1,7 @@ PORTNAME= go-yq DISTVERSIONPREFIX= v DISTVERSION= 4.47.1 +PORTREVISION= 1 CATEGORIES= textproc MAINTAINER= timp87@gmail.com diff --git a/textproc/gojq/Makefile b/textproc/gojq/Makefile index dfbefd7fd6ca..6de05bda525e 100644 --- a/textproc/gojq/Makefile +++ b/textproc/gojq/Makefile @@ -1,7 +1,7 @@ PORTNAME= gojq DISTVERSIONPREFIX= v DISTVERSION= 0.12.17 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= textproc MAINTAINER= nork@FreeBSD.org diff --git a/textproc/gron/Makefile b/textproc/gron/Makefile index 8566728fccad..f0bc9bad58bb 100644 --- a/textproc/gron/Makefile +++ b/textproc/gron/Makefile @@ -1,7 +1,7 @@ PORTNAME= gron PORTVERSION= 0.7.1 DISTVERSIONPREFIX= v -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= textproc MAINTAINER= zi@FreeBSD.org diff --git a/textproc/harper/Makefile b/textproc/harper/Makefile index d5fe54cce69e..8fcd9368a703 100644 --- a/textproc/harper/Makefile +++ b/textproc/harper/Makefile @@ -1,7 +1,6 @@ PORTNAME= harper DISTVERSIONPREFIX= v -DISTVERSION= 0.58.0 -PORTREVISION= 1 +DISTVERSION= 0.61.0 CATEGORIES= textproc MAINTAINER= ashish@FreeBSD.org diff --git a/textproc/harper/Makefile.crates b/textproc/harper/Makefile.crates index 866102b78a49..619f278a5672 100644 --- a/textproc/harper/Makefile.crates +++ b/textproc/harper/Makefile.crates @@ -21,12 +21,11 @@ CARGO_CRATES= addr2line-0.24.2 \ atomic_float-1.1.0 \ autocfg-1.5.0 \ backtrace-0.3.75 \ - base64-0.22.1 \ bincode-2.0.1 \ bit-set-0.8.0 \ bit-vec-0.8.0 \ bitflags-1.3.2 \ - bitflags-2.9.2 \ + bitflags-2.9.3 \ blanket-0.4.0 \ block-0.1.6 \ bstr-1.12.0 \ @@ -65,9 +64,9 @@ CARGO_CRATES= addr2line-0.24.2 \ ciborium-0.2.2 \ ciborium-io-0.2.2 \ ciborium-ll-0.2.2 \ - clap-4.5.43 \ - clap_builder-4.5.43 \ - clap_derive-4.5.41 \ + clap-4.5.45 \ + clap_builder-4.5.44 \ + clap_derive-4.5.45 \ clap_lex-0.7.5 \ codespan-reporting-0.12.0 \ colorchoice-1.0.4 \ @@ -153,6 +152,7 @@ CARGO_CRATES= addr2line-0.24.2 \ fluent-uri-0.1.4 \ fnv-1.0.7 \ foldhash-0.1.5 \ + foldhash-0.2.0 \ foreign-types-0.5.0 \ foreign-types-macros-0.2.3 \ foreign-types-shared-0.3.1 \ @@ -203,17 +203,12 @@ CARGO_CRATES= addr2line-0.24.2 \ hashbrown-0.13.2 \ hashbrown-0.14.5 \ hashbrown-0.15.5 \ + hashbrown-0.16.0 \ heck-0.5.0 \ hermit-abi-0.5.2 \ hexf-parse-0.2.1 \ html5ever-0.35.0 \ - http-1.3.1 \ - http-body-1.0.1 \ - http-body-util-0.1.3 \ httparse-1.10.1 \ - hyper-1.6.0 \ - hyper-rustls-0.27.7 \ - hyper-util-0.1.16 \ iana-time-zone-0.1.63 \ iana-time-zone-haiku-0.1.2 \ icu_collections-2.0.0 \ @@ -226,10 +221,8 @@ CARGO_CRATES= addr2line-0.24.2 \ ident_case-1.0.1 \ idna-1.0.3 \ idna_adapter-1.2.1 \ - indexmap-2.10.0 \ + indexmap-2.11.0 \ io-uring-0.7.9 \ - ipnet-2.11.0 \ - iri-string-0.7.8 \ is-docker-0.2.0 \ is-macro-0.3.7 \ is-wsl-0.4.0 \ @@ -253,7 +246,6 @@ CARGO_CRATES= addr2line-0.24.2 \ lock_api-0.4.13 \ log-0.4.27 \ lru-0.16.0 \ - lru-slab-0.1.2 \ lsp-types-0.97.0 \ mac-0.1.1 \ macerator-0.2.8 \ @@ -276,7 +268,7 @@ CARGO_CRATES= addr2line-0.24.2 \ ndarray-0.16.1 \ ndk-sys-0.5.0+25.2.9519653 \ new_debug_unreachable-1.0.6 \ - nu-ansi-term-0.46.0 \ + nu-ansi-term-0.50.1 \ num-0.4.3 \ num-bigint-0.4.6 \ num-complex-0.4.6 \ @@ -297,7 +289,6 @@ CARGO_CRATES= addr2line-0.24.2 \ option-ext-0.2.0 \ ordered-float-4.6.0 \ ordered-float-5.0.0 \ - overload-0.1.1 \ parking-2.2.1 \ parking_lot-0.12.4 \ parking_lot_core-0.9.11 \ @@ -329,9 +320,6 @@ CARGO_CRATES= addr2line-0.24.2 \ pulp-0.21.5 \ quickcheck-1.0.3 \ quickcheck_macros-1.1.0 \ - quinn-0.11.8 \ - quinn-proto-0.11.12 \ - quinn-udp-0.5.13 \ quote-1.0.40 \ r-efi-5.3.0 \ rand-0.8.5 \ @@ -346,8 +334,8 @@ CARGO_CRATES= addr2line-0.24.2 \ raw-cpuid-11.5.0 \ raw-window-handle-0.6.2 \ rawpointer-0.2.1 \ - rayon-1.10.0 \ - rayon-core-1.12.1 \ + rayon-1.11.0 \ + rayon-core-1.13.0 \ reborrow-0.5.5 \ redox_syscall-0.5.17 \ redox_users-0.4.6 \ @@ -357,9 +345,7 @@ CARGO_CRATES= addr2line-0.24.2 \ regex-syntax-0.8.5 \ relative-path-1.9.3 \ renderdoc-sys-1.1.0 \ - reqwest-0.12.23 \ resolve-path-0.1.0 \ - ring-0.17.14 \ rmp-0.8.14 \ rmp-serde-1.3.0 \ rs-conllu-0.3.0 \ @@ -367,12 +353,8 @@ CARGO_CRATES= addr2line-0.24.2 \ rstest_macros-0.25.0 \ rustc-demangle-0.1.26 \ rustc-hash-1.1.0 \ - rustc-hash-2.1.1 \ rustc_version-0.4.1 \ rustix-1.0.8 \ - rustls-0.23.29 \ - rustls-pki-types-1.12.0 \ - rustls-webpki-0.103.4 \ rustversion-1.0.21 \ ryu-1.0.20 \ safetensors-0.4.5 \ @@ -385,18 +367,16 @@ CARGO_CRATES= addr2line-0.24.2 \ serde-wasm-bindgen-0.6.5 \ serde_bytes-0.11.17 \ serde_derive-1.0.219 \ - serde_json-1.0.142 \ + serde_json-1.0.143 \ serde_repr-0.1.20 \ serde_spanned-0.6.9 \ serde_spanned-1.0.0 \ - serde_urlencoded-0.7.1 \ sharded-slab-0.1.7 \ shlex-1.3.0 \ siphasher-1.0.1 \ slab-0.4.11 \ slotmap-1.0.7 \ smallvec-1.15.1 \ - socket2-0.5.10 \ socket2-0.6.0 \ spin-0.10.0 \ spirv-0.3.0+sdk-1.3.268.0 \ @@ -410,7 +390,6 @@ CARGO_CRATES= addr2line-0.24.2 \ strum-0.27.2 \ strum_macros-0.26.4 \ strum_macros-0.27.2 \ - subtle-2.6.1 \ syn-2.0.104 \ sync_wrapper-1.0.2 \ synstructure-0.13.2 \ @@ -422,9 +401,9 @@ CARGO_CRATES= addr2line-0.24.2 \ text_placeholder-0.5.1 \ thin-vec-0.2.14 \ thiserror-1.0.69 \ - thiserror-2.0.15 \ + thiserror-2.0.16 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.15 \ + thiserror-impl-2.0.16 \ thread-tree-0.3.3 \ thread_local-1.1.9 \ time-0.3.41 \ @@ -432,11 +411,8 @@ CARGO_CRATES= addr2line-0.24.2 \ time-macros-0.2.22 \ tinystr-0.8.1 \ tinytemplate-1.2.1 \ - tinyvec-1.9.0 \ - tinyvec_macros-0.1.1 \ tokio-1.47.1 \ tokio-macros-2.5.0 \ - tokio-rustls-0.26.2 \ tokio-util-0.7.15 \ toml-0.8.23 \ toml-0.9.2 \ @@ -447,7 +423,6 @@ CARGO_CRATES= addr2line-0.24.2 \ toml_write-0.1.2 \ toml_writer-1.0.2 \ tower-0.5.2 \ - tower-http-0.6.6 \ tower-layer-0.3.3 \ tower-lsp-server-0.22.1 \ tower-service-0.3.3 \ @@ -456,7 +431,7 @@ CARGO_CRATES= addr2line-0.24.2 \ tracing-attributes-0.1.30 \ tracing-core-0.1.34 \ tracing-log-0.2.0 \ - tracing-subscriber-0.3.19 \ + tracing-subscriber-0.3.20 \ tracing-wasm-0.2.1 \ tree-sitter-0.25.8 \ tree-sitter-bash-0.25.0 \ @@ -465,7 +440,7 @@ CARGO_CRATES= addr2line-0.24.2 \ tree-sitter-clojure-0.1.0 \ tree-sitter-cmake-0.7.1 \ tree-sitter-cpp-0.23.4 \ - tree-sitter-go-0.23.4 \ + tree-sitter-go-0.25.0 \ tree-sitter-haskell-0.23.1 \ tree-sitter-html-0.23.2 \ tree-sitter-java-0.23.5 \ @@ -474,7 +449,7 @@ CARGO_CRATES= addr2line-0.24.2 \ tree-sitter-language-0.1.5 \ tree-sitter-lua-0.2.0 \ tree-sitter-nix-0.3.0 \ - tree-sitter-php-0.23.11 \ + tree-sitter-php-0.24.2 \ tree-sitter-python-0.23.6 \ tree-sitter-ruby-0.23.1 \ tree-sitter-rust-0.24.0 \ @@ -483,7 +458,6 @@ CARGO_CRATES= addr2line-0.24.2 \ tree-sitter-swift-0.7.1 \ tree-sitter-toml-ng-0.7.0 \ tree-sitter-typescript-0.23.2 \ - try-lock-0.2.5 \ typst-syntax-0.13.1 \ typst-timing-0.13.1 \ typst-utils-0.13.1 \ @@ -498,7 +472,6 @@ CARGO_CRATES= addr2line-0.24.2 \ unicode-width-0.2.1 \ unicode-xid-0.2.6 \ unscanny-0.1.0 \ - untrusted-0.9.0 \ unty-0.0.4 \ url-2.5.4 \ utf-8-0.7.6 \ @@ -510,7 +483,6 @@ CARGO_CRATES= addr2line-0.24.2 \ version_check-0.9.5 \ void-1.0.2 \ walkdir-2.5.0 \ - want-0.3.1 \ wasi-0.11.1+wasi-snapshot-preview1 \ wasi-0.14.2+wasi-0.2.4 \ wasm-bindgen-0.2.100 \ @@ -522,7 +494,6 @@ CARGO_CRATES= addr2line-0.24.2 \ web-sys-0.3.77 \ web-time-1.1.0 \ web_atoms-0.1.3 \ - webpki-roots-1.0.2 \ wgpu-25.0.2 \ wgpu-core-25.0.2 \ wgpu-core-deps-apple-25.0.0 \ @@ -580,7 +551,6 @@ CARGO_CRATES= addr2line-0.24.2 \ zerocopy-derive-0.8.26 \ zerofrom-0.1.6 \ zerofrom-derive-0.1.6 \ - zeroize-1.8.1 \ zerotrie-0.2.2 \ zerovec-0.11.2 \ zerovec-derive-0.11.1 \ diff --git a/textproc/harper/distinfo b/textproc/harper/distinfo index 265e0cc94e43..810d664debc0 100644 --- a/textproc/harper/distinfo +++ b/textproc/harper/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1755588578 +TIMESTAMP = 1756895303 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa @@ -45,8 +45,6 @@ SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c08670 SIZE (rust/crates/autocfg-1.5.0.crate) = 18729 SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002 SIZE (rust/crates/backtrace-0.3.75.crate) = 92665 -SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6 -SIZE (rust/crates/base64-0.22.1.crate) = 81597 SHA256 (rust/crates/bincode-2.0.1.crate) = 36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740 SIZE (rust/crates/bincode-2.0.1.crate) = 70469 SHA256 (rust/crates/bit-set-0.8.0.crate) = 08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3 @@ -55,8 +53,8 @@ SHA256 (rust/crates/bit-vec-0.8.0.crate) = 5e764a1d40d510daf35e07be9eb06e7577090 SIZE (rust/crates/bit-vec-0.8.0.crate) = 24132 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 -SHA256 (rust/crates/bitflags-2.9.2.crate) = 6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29 -SIZE (rust/crates/bitflags-2.9.2.crate) = 47977 +SHA256 (rust/crates/bitflags-2.9.3.crate) = 34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d +SIZE (rust/crates/bitflags-2.9.3.crate) = 47777 SHA256 (rust/crates/blanket-0.4.0.crate) = 56791e4bd64c99fc361e01008f45c984baa93f12a0957d1b3c51dd2c6baab453 SIZE (rust/crates/blanket-0.4.0.crate) = 20262 SHA256 (rust/crates/block-0.1.6.crate) = 0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a @@ -133,12 +131,12 @@ SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce369 SIZE (rust/crates/ciborium-io-0.2.2.crate) = 6697 SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9 SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695 -SHA256 (rust/crates/clap-4.5.43.crate) = 50fd97c9dc2399518aa331917ac6f274280ec5eb34e555dd291899745c48ec6f -SIZE (rust/crates/clap-4.5.43.crate) = 58340 -SHA256 (rust/crates/clap_builder-4.5.43.crate) = c35b5830294e1fa0462034af85cc95225a4cb07092c088c55bda3147cfcd8f65 -SIZE (rust/crates/clap_builder-4.5.43.crate) = 169708 -SHA256 (rust/crates/clap_derive-4.5.41.crate) = ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491 -SIZE (rust/crates/clap_derive-4.5.41.crate) = 33493 +SHA256 (rust/crates/clap-4.5.45.crate) = 1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318 +SIZE (rust/crates/clap-4.5.45.crate) = 58337 +SHA256 (rust/crates/clap_builder-4.5.44.crate) = b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8 +SIZE (rust/crates/clap_builder-4.5.44.crate) = 169799 +SHA256 (rust/crates/clap_derive-4.5.45.crate) = 14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6 +SIZE (rust/crates/clap_derive-4.5.45.crate) = 33545 SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675 SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469 SHA256 (rust/crates/codespan-reporting-0.12.0.crate) = fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81 @@ -309,6 +307,8 @@ SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da2 SIZE (rust/crates/fnv-1.0.7.crate) = 11266 SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2 SIZE (rust/crates/foldhash-0.1.5.crate) = 21901 +SHA256 (rust/crates/foldhash-0.2.0.crate) = 77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb +SIZE (rust/crates/foldhash-0.2.0.crate) = 23329 SHA256 (rust/crates/foreign-types-0.5.0.crate) = d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965 SIZE (rust/crates/foreign-types-0.5.0.crate) = 7824 SHA256 (rust/crates/foreign-types-macros-0.2.3.crate) = 1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742 @@ -409,6 +409,8 @@ SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b1 SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 SHA256 (rust/crates/hashbrown-0.15.5.crate) = 9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1 SIZE (rust/crates/hashbrown-0.15.5.crate) = 140908 +SHA256 (rust/crates/hashbrown-0.16.0.crate) = 5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d +SIZE (rust/crates/hashbrown-0.16.0.crate) = 141708 SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea SIZE (rust/crates/heck-0.5.0.crate) = 11517 SHA256 (rust/crates/hermit-abi-0.5.2.crate) = fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c @@ -417,20 +419,8 @@ SHA256 (rust/crates/hexf-parse-0.2.1.crate) = dfa686283ad6dd069f105e5ab091b04c62 SIZE (rust/crates/hexf-parse-0.2.1.crate) = 4662 SHA256 (rust/crates/html5ever-0.35.0.crate) = 55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4 SIZE (rust/crates/html5ever-0.35.0.crate) = 76142 -SHA256 (rust/crates/http-1.3.1.crate) = f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565 -SIZE (rust/crates/http-1.3.1.crate) = 106063 -SHA256 (rust/crates/http-body-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184 -SIZE (rust/crates/http-body-1.0.1.crate) = 6125 -SHA256 (rust/crates/http-body-util-0.1.3.crate) = b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a -SIZE (rust/crates/http-body-util-0.1.3.crate) = 16975 SHA256 (rust/crates/httparse-1.10.1.crate) = 6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87 SIZE (rust/crates/httparse-1.10.1.crate) = 45190 -SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80 -SIZE (rust/crates/hyper-1.6.0.crate) = 153923 -SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58 -SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435 -SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e -SIZE (rust/crates/hyper-util-0.1.16.crate) = 101184 SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8 SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919 SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f @@ -455,14 +445,10 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f SIZE (rust/crates/idna-1.0.3.crate) = 142515 SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344 SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389 -SHA256 (rust/crates/indexmap-2.10.0.crate) = fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661 -SIZE (rust/crates/indexmap-2.10.0.crate) = 95836 +SHA256 (rust/crates/indexmap-2.11.0.crate) = f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9 +SIZE (rust/crates/indexmap-2.11.0.crate) = 99851 SHA256 (rust/crates/io-uring-0.7.9.crate) = d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4 SIZE (rust/crates/io-uring-0.7.9.crate) = 99792 -SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130 -SIZE (rust/crates/ipnet-2.11.0.crate) = 29718 -SHA256 (rust/crates/iri-string-0.7.8.crate) = dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2 -SIZE (rust/crates/iri-string-0.7.8.crate) = 141493 SHA256 (rust/crates/is-docker-0.2.0.crate) = 928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3 SIZE (rust/crates/is-docker-0.2.0.crate) = 2664 SHA256 (rust/crates/is-macro-0.3.7.crate) = 1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4 @@ -509,8 +495,6 @@ SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb404 SIZE (rust/crates/log-0.4.27.crate) = 48120 SHA256 (rust/crates/lru-0.16.0.crate) = 86ea4e65087ff52f3862caff188d489f1fab49a0cb09e01b2e3f1a617b10aaed SIZE (rust/crates/lru-0.16.0.crate) = 16517 -SHA256 (rust/crates/lru-slab-0.1.2.crate) = 112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154 -SIZE (rust/crates/lru-slab-0.1.2.crate) = 9090 SHA256 (rust/crates/lsp-types-0.97.0.crate) = 53353550a17c04ac46c585feb189c2db82154fc84b79c7a66c96c2c644f66071 SIZE (rust/crates/lsp-types-0.97.0.crate) = 70764 SHA256 (rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4 @@ -555,8 +539,8 @@ SHA256 (rust/crates/ndk-sys-0.5.0+25.2.9519653.crate) = 8c196769dd60fd4f363e11d9 SIZE (rust/crates/ndk-sys-0.5.0+25.2.9519653.crate) = 307233 SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086 SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582 -SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84 -SIZE (rust/crates/nu-ansi-term-0.46.0.crate) = 24311 +SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399 +SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536 SHA256 (rust/crates/num-0.4.3.crate) = 35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23 SIZE (rust/crates/num-0.4.3.crate) = 9575 SHA256 (rust/crates/num-bigint-0.4.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9 @@ -597,8 +581,6 @@ SHA256 (rust/crates/ordered-float-4.6.0.crate) = 7bb71e1b3fa6ca1c61f383464aaf2bb SIZE (rust/crates/ordered-float-4.6.0.crate) = 23633 SHA256 (rust/crates/ordered-float-5.0.0.crate) = e2c1f9f56e534ac6a9b8a4600bdf0f530fb393b5f393e7b4d03489c3cf0c3f01 SIZE (rust/crates/ordered-float-5.0.0.crate) = 23364 -SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39 -SIZE (rust/crates/overload-0.1.1.crate) = 24439 SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba SIZE (rust/crates/parking-2.2.1.crate) = 10685 SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13 @@ -661,12 +643,6 @@ SHA256 (rust/crates/quickcheck-1.0.3.crate) = 588f6378e4dd99458b60ec275b4477add4 SIZE (rust/crates/quickcheck-1.0.3.crate) = 28069 SHA256 (rust/crates/quickcheck_macros-1.1.0.crate) = f71ee38b42f8459a88d3362be6f9b841ad2d5421844f61eb1c59c11bff3ac14a SIZE (rust/crates/quickcheck_macros-1.1.0.crate) = 11744 -SHA256 (rust/crates/quinn-0.11.8.crate) = 626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8 -SIZE (rust/crates/quinn-0.11.8.crate) = 79949 -SHA256 (rust/crates/quinn-proto-0.11.12.crate) = 49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e -SIZE (rust/crates/quinn-proto-0.11.12.crate) = 235821 -SHA256 (rust/crates/quinn-udp-0.5.13.crate) = fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970 -SIZE (rust/crates/quinn-udp-0.5.13.crate) = 32621 SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d SIZE (rust/crates/quote-1.0.40.crate) = 31063 SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f @@ -695,10 +671,10 @@ SHA256 (rust/crates/raw-window-handle-0.6.2.crate) = 20675572f6f24e9e76ef639bc55 SIZE (rust/crates/raw-window-handle-0.6.2.crate) = 20234 SHA256 (rust/crates/rawpointer-0.2.1.crate) = 60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3 SIZE (rust/crates/rawpointer-0.2.1.crate) = 7490 -SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa -SIZE (rust/crates/rayon-1.10.0.crate) = 180155 -SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2 -SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701 +SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f +SIZE (rust/crates/rayon-1.11.0.crate) = 182470 +SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91 +SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151 SHA256 (rust/crates/reborrow-0.5.5.crate) = 03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430 SIZE (rust/crates/reborrow-0.5.5.crate) = 3789 SHA256 (rust/crates/redox_syscall-0.5.17.crate) = 5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77 @@ -717,12 +693,8 @@ SHA256 (rust/crates/relative-path-1.9.3.crate) = ba39f3699c378cd8970968dcbff9c43 SIZE (rust/crates/relative-path-1.9.3.crate) = 22400 SHA256 (rust/crates/renderdoc-sys-1.1.0.crate) = 19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832 SIZE (rust/crates/renderdoc-sys-1.1.0.crate) = 10366 -SHA256 (rust/crates/reqwest-0.12.23.crate) = d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb -SIZE (rust/crates/reqwest-0.12.23.crate) = 161307 SHA256 (rust/crates/resolve-path-0.1.0.crate) = 321e5e41b3b192dab6f1e75b9deacb6688b4b8c5e68906a78e8f43e7c2887bb5 SIZE (rust/crates/resolve-path-0.1.0.crate) = 9129 -SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7 -SIZE (rust/crates/ring-0.17.14.crate) = 1502610 SHA256 (rust/crates/rmp-0.8.14.crate) = 228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4 SIZE (rust/crates/rmp-0.8.14.crate) = 29687 SHA256 (rust/crates/rmp-serde-1.3.0.crate) = 52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db @@ -737,18 +709,10 @@ SHA256 (rust/crates/rustc-demangle-0.1.26.crate) = 56f7d92ca342cea22a06f2121d944 SIZE (rust/crates/rustc-demangle-0.1.26.crate) = 30340 SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331 -SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d -SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154 SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92 SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245 SHA256 (rust/crates/rustix-1.0.8.crate) = 11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8 SIZE (rust/crates/rustix-1.0.8.crate) = 416688 -SHA256 (rust/crates/rustls-0.23.29.crate) = 2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1 -SIZE (rust/crates/rustls-0.23.29.crate) = 370867 -SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79 -SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740 -SHA256 (rust/crates/rustls-webpki-0.103.4.crate) = 0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc -SIZE (rust/crates/rustls-webpki-0.103.4.crate) = 84241 SHA256 (rust/crates/rustversion-1.0.21.crate) = 8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d SIZE (rust/crates/rustversion-1.0.21.crate) = 21001 SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f @@ -773,16 +737,14 @@ SHA256 (rust/crates/serde_bytes-0.11.17.crate) = 8437fd221bde2d4ca316d61b90e337e SIZE (rust/crates/serde_bytes-0.11.17.crate) = 13256 SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 -SHA256 (rust/crates/serde_json-1.0.142.crate) = 030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7 -SIZE (rust/crates/serde_json-1.0.142.crate) = 155363 +SHA256 (rust/crates/serde_json-1.0.143.crate) = d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a +SIZE (rust/crates/serde_json-1.0.143.crate) = 155342 SHA256 (rust/crates/serde_repr-0.1.20.crate) = 175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c SIZE (rust/crates/serde_repr-0.1.20.crate) = 12627 SHA256 (rust/crates/serde_spanned-0.6.9.crate) = bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3 SIZE (rust/crates/serde_spanned-0.6.9.crate) = 10210 SHA256 (rust/crates/serde_spanned-1.0.0.crate) = 40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83 SIZE (rust/crates/serde_spanned-1.0.0.crate) = 10956 -SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd -SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822 SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6 SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 @@ -795,8 +757,6 @@ SHA256 (rust/crates/slotmap-1.0.7.crate) = dbff4acf519f630b3a3ddcfaea6c06b42174d SIZE (rust/crates/slotmap-1.0.7.crate) = 61390 SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03 SIZE (rust/crates/smallvec-1.15.1.crate) = 38116 -SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678 -SIZE (rust/crates/socket2-0.5.10.crate) = 58169 SHA256 (rust/crates/socket2-0.6.0.crate) = 233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807 SIZE (rust/crates/socket2-0.6.0.crate) = 57974 SHA256 (rust/crates/spin-0.10.0.crate) = d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591 @@ -823,8 +783,6 @@ SHA256 (rust/crates/strum_macros-0.26.4.crate) = 4c6bee85a5a24955dc440386795aa37 SIZE (rust/crates/strum_macros-0.26.4.crate) = 27531 SHA256 (rust/crates/strum_macros-0.27.2.crate) = 7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7 SIZE (rust/crates/strum_macros-0.27.2.crate) = 30522 -SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292 -SIZE (rust/crates/subtle-2.6.1.crate) = 14562 SHA256 (rust/crates/syn-2.0.104.crate) = 17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40 SIZE (rust/crates/syn-2.0.104.crate) = 299699 SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263 @@ -847,12 +805,12 @@ SHA256 (rust/crates/thin-vec-0.2.14.crate) = 144f754d318415ac792f9d69fc87abbbfc0 SIZE (rust/crates/thin-vec-0.2.14.crate) = 35087 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.15.crate) = 80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850 -SIZE (rust/crates/thiserror-2.0.15.crate) = 29026 +SHA256 (rust/crates/thiserror-2.0.16.crate) = 3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0 +SIZE (rust/crates/thiserror-2.0.16.crate) = 29095 SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 -SHA256 (rust/crates/thiserror-impl-2.0.15.crate) = 44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0 -SIZE (rust/crates/thiserror-impl-2.0.15.crate) = 21214 +SHA256 (rust/crates/thiserror-impl-2.0.16.crate) = 6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960 +SIZE (rust/crates/thiserror-impl-2.0.16.crate) = 21214 SHA256 (rust/crates/thread-tree-0.3.3.crate) = ffbd370cb847953a25954d9f63e14824a36113f8c72eecf6eccef5dc4b45d630 SIZE (rust/crates/thread-tree-0.3.3.crate) = 12263 SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185 @@ -867,16 +825,10 @@ SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13 SIZE (rust/crates/tinystr-0.8.1.crate) = 23333 SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490 -SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71 -SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137 -SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20 -SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865 SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038 SIZE (rust/crates/tokio-1.47.1.crate) = 829790 SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 -SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b -SIZE (rust/crates/tokio-rustls-0.26.2.crate) = 31655 SHA256 (rust/crates/tokio-util-0.7.15.crate) = 66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df SIZE (rust/crates/tokio-util-0.7.15.crate) = 124255 SHA256 (rust/crates/toml-0.8.23.crate) = dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362 @@ -897,8 +849,6 @@ SHA256 (rust/crates/toml_writer-1.0.2.crate) = fcc842091f2def52017664b53082ecbbe SIZE (rust/crates/toml_writer-1.0.2.crate) = 16988 SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9 SIZE (rust/crates/tower-0.5.2.crate) = 109417 -SHA256 (rust/crates/tower-http-0.6.6.crate) = adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2 -SIZE (rust/crates/tower-http-0.6.6.crate) = 133515 SHA256 (rust/crates/tower-layer-0.3.3.crate) = 121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e SIZE (rust/crates/tower-layer-0.3.3.crate) = 6180 SHA256 (rust/crates/tower-lsp-server-0.22.1.crate) = 88f3f8ec0dcfdda4d908bad2882fe0f89cf2b606e78d16491323e918dfa95765 @@ -915,8 +865,8 @@ SHA256 (rust/crates/tracing-core-0.1.34.crate) = b9d12581f227e93f094d3af2ae690a5 SIZE (rust/crates/tracing-core-0.1.34.crate) = 63760 SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3 SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561 -SHA256 (rust/crates/tracing-subscriber-0.3.19.crate) = e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008 -SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345 +SHA256 (rust/crates/tracing-subscriber-0.3.20.crate) = 2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5 +SIZE (rust/crates/tracing-subscriber-0.3.20.crate) = 212274 SHA256 (rust/crates/tracing-wasm-0.2.1.crate) = 4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07 SIZE (rust/crates/tracing-wasm-0.2.1.crate) = 9372 SHA256 (rust/crates/tree-sitter-0.25.8.crate) = 6d7b8994f367f16e6fa14b5aebbcb350de5d7cbea82dc5b00ae997dd71680dd2 @@ -933,8 +883,8 @@ SHA256 (rust/crates/tree-sitter-cmake-0.7.1.crate) = 7c1b35d1dd7396d24b3e826bb0f SIZE (rust/crates/tree-sitter-cmake-0.7.1.crate) = 49838 SHA256 (rust/crates/tree-sitter-cpp-0.23.4.crate) = df2196ea9d47b4ab4a31b9297eaa5a5d19a0b121dceb9f118f6790ad0ab94743 SIZE (rust/crates/tree-sitter-cpp-0.23.4.crate) = 971129 -SHA256 (rust/crates/tree-sitter-go-0.23.4.crate) = b13d476345220dbe600147dd444165c5791bf85ef53e28acbedd46112ee18431 -SIZE (rust/crates/tree-sitter-go-0.23.4.crate) = 105624 +SHA256 (rust/crates/tree-sitter-go-0.25.0.crate) = c8560a4d2f835cc0d4d2c2e03cbd0dde2f6114b43bc491164238d333e28b16ea +SIZE (rust/crates/tree-sitter-go-0.25.0.crate) = 110415 SHA256 (rust/crates/tree-sitter-haskell-0.23.1.crate) = 977c51e504548cba13fc27cb5a2edab2124cf6716a1934915d07ab99523b05a4 SIZE (rust/crates/tree-sitter-haskell-0.23.1.crate) = 842034 SHA256 (rust/crates/tree-sitter-html-0.23.2.crate) = 261b708e5d92061ede329babaaa427b819329a9d427a1d710abb0f67bbef63ee @@ -951,8 +901,8 @@ SHA256 (rust/crates/tree-sitter-lua-0.2.0.crate) = 5cdb9adf0965fec58e7660cbb3a05 SIZE (rust/crates/tree-sitter-lua-0.2.0.crate) = 40860 SHA256 (rust/crates/tree-sitter-nix-0.3.0.crate) = 4952a9733f3a98f6683a0ccd1035d84ab7a52f7e84eeed58548d86765ad92de3 SIZE (rust/crates/tree-sitter-nix-0.3.0.crate) = 45486 -SHA256 (rust/crates/tree-sitter-php-0.23.11.crate) = f066e94e9272cfe4f1dcb07a1c50c66097eca648f2d7233d299c8ae9ed8c130c -SIZE (rust/crates/tree-sitter-php-0.23.11.crate) = 475556 +SHA256 (rust/crates/tree-sitter-php-0.24.2.crate) = 0d8c17c3ab69052c5eeaa7ff5cd972dd1bc25d1b97ee779fec391ad3b5df5592 +SIZE (rust/crates/tree-sitter-php-0.24.2.crate) = 623737 SHA256 (rust/crates/tree-sitter-python-0.23.6.crate) = 3d065aaa27f3aaceaf60c1f0e0ac09e1cb9eb8ed28e7bcdaa52129cffc7f4b04 SIZE (rust/crates/tree-sitter-python-0.23.6.crate) = 175831 SHA256 (rust/crates/tree-sitter-ruby-0.23.1.crate) = be0484ea4ef6bb9c575b4fdabde7e31340a8d2dbc7d52b321ac83da703249f95 @@ -969,8 +919,6 @@ SHA256 (rust/crates/tree-sitter-toml-ng-0.7.0.crate) = e9adc2c898ae49730e857d75b SIZE (rust/crates/tree-sitter-toml-ng-0.7.0.crate) = 22919 SHA256 (rust/crates/tree-sitter-typescript-0.23.2.crate) = 6c5f76ed8d947a75cc446d5fccd8b602ebf0cde64ccf2ffa434d873d7a575eff SIZE (rust/crates/tree-sitter-typescript-0.23.2.crate) = 829457 -SHA256 (rust/crates/try-lock-0.2.5.crate) = e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b -SIZE (rust/crates/try-lock-0.2.5.crate) = 4314 SHA256 (rust/crates/typst-syntax-0.13.1.crate) = 5ba949ac75a374ea6b2f61d32e6c63acb818e6179d16f78b2cba988fbb5e23a8 SIZE (rust/crates/typst-syntax-0.13.1.crate) = 73642 SHA256 (rust/crates/typst-timing-0.13.1.crate) = 8ba4541664e98be2023db2267d92af206190eb903063a0229c668e1ab9dca976 @@ -999,8 +947,6 @@ SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9 SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744 SHA256 (rust/crates/unscanny-0.1.0.crate) = e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47 SIZE (rust/crates/unscanny-0.1.0.crate) = 10338 -SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1 -SIZE (rust/crates/untrusted-0.9.0.crate) = 14447 SHA256 (rust/crates/unty-0.0.4.crate) = 6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae SIZE (rust/crates/unty-0.0.4.crate) = 7200 SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60 @@ -1023,8 +969,6 @@ SHA256 (rust/crates/void-1.0.2.crate) = 6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacff SIZE (rust/crates/void-1.0.2.crate) = 2356 SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b SIZE (rust/crates/walkdir-2.5.0.crate) = 23951 -SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e -SIZE (rust/crates/want-0.3.1.crate) = 6398 SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477 SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3 @@ -1047,8 +991,6 @@ SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10 SIZE (rust/crates/web-time-1.1.0.crate) = 18026 SHA256 (rust/crates/web_atoms-0.1.3.crate) = 57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414 SIZE (rust/crates/web_atoms-0.1.3.crate) = 27392 -SHA256 (rust/crates/webpki-roots-1.0.2.crate) = 7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2 -SIZE (rust/crates/webpki-roots-1.0.2.crate) = 255109 SHA256 (rust/crates/wgpu-25.0.2.crate) = ec8fb398f119472be4d80bc3647339f56eb63b2a331f6a3d16e25d8144197dd9 SIZE (rust/crates/wgpu-25.0.2.crate) = 189625 SHA256 (rust/crates/wgpu-core-25.0.2.crate) = f7b882196f8368511d613c6aeec80655160db6646aebddf8328879a88d54e500 @@ -1163,8 +1105,6 @@ SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669 SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502 SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305 -SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde -SIZE (rust/crates/zeroize-1.8.1.crate) = 20029 SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595 SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423 SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428 @@ -1173,5 +1113,5 @@ SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f66 SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294 SHA256 (rust/crates/zip-1.1.4.crate) = 9cc23c04387f4da0374be4533ad1208cbb091d5c11d070dfef13676ad6497164 SIZE (rust/crates/zip-1.1.4.crate) = 77910 -SHA256 (Automattic-harper-v0.58.0_GH0.tar.gz) = 4611b9d16301aae5eabf8411657ecee78288ff46801dfd0d4a0069173f0e763a -SIZE (Automattic-harper-v0.58.0_GH0.tar.gz) = 7311147 +SHA256 (Automattic-harper-v0.61.0_GH0.tar.gz) = 9b003620c37d7dacdc26a6cbaf83ad4ab31034446a997b331acd0441f94a1336 +SIZE (Automattic-harper-v0.61.0_GH0.tar.gz) = 7319804 diff --git a/textproc/cgrep/Makefile b/textproc/hs-cgrep/Makefile index 0ddaa3b0b9a9..507372d7649a 100644 --- a/textproc/cgrep/Makefile +++ b/textproc/hs-cgrep/Makefile @@ -1,6 +1,6 @@ -PORTNAME= cgrep -PORTVERSION= 8.1.0 -CATEGORIES= textproc +PORTNAME= hs-cgrep +DISTVERSION= 8.1.0 +CATEGORIES= textproc haskell MAINTAINER= lwhsu@FreeBSD.org COMMENT= Context-aware grep for source codes diff --git a/textproc/cgrep/distinfo b/textproc/hs-cgrep/distinfo index 948b5059307c..948b5059307c 100644 --- a/textproc/cgrep/distinfo +++ b/textproc/hs-cgrep/distinfo diff --git a/textproc/cgrep/files/patch-__cabal__deps_rawfilepath-1.1.0_cbits_runProcess.c b/textproc/hs-cgrep/files/patch-__cabal__deps_rawfilepath-1.1.0_cbits_runProcess.c index 3138ffa8ac60..3138ffa8ac60 100644 --- a/textproc/cgrep/files/patch-__cabal__deps_rawfilepath-1.1.0_cbits_runProcess.c +++ b/textproc/hs-cgrep/files/patch-__cabal__deps_rawfilepath-1.1.0_cbits_runProcess.c diff --git a/textproc/cgrep/pkg-descr b/textproc/hs-cgrep/pkg-descr index 66346077e741..66346077e741 100644 --- a/textproc/cgrep/pkg-descr +++ b/textproc/hs-cgrep/pkg-descr diff --git a/textproc/htmltest/Makefile b/textproc/htmltest/Makefile index 45791643f36c..6d206de6cfb3 100644 --- a/textproc/htmltest/Makefile +++ b/textproc/htmltest/Makefile @@ -1,7 +1,7 @@ PORTNAME= htmltest DISTVERSIONPREFIX= v DISTVERSION= 0.17.0 -PORTREVISION= 23 +PORTREVISION= 24 CATEGORIES= textproc MAINTAINER= dbaio@FreeBSD.org diff --git a/textproc/itstool/Makefile b/textproc/itstool/Makefile index 30f5f2ed34bb..eaae15ca3c38 100644 --- a/textproc/itstool/Makefile +++ b/textproc/itstool/Makefile @@ -1,9 +1,12 @@ PORTNAME= itstool PORTVERSION= 2.0.7 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= textproc MASTER_SITES= https://files.itstool.org/itstool/ +PATCH_SITES= https://github.com/itstool/itstool/commit/ +PATCHFILES= 32c7d07664dc37765100285d1202d488cd6a27e8.patch:-p1 + MAINTAINER= sunpoet@FreeBSD.org COMMENT= Translate XML with PO files using W3C Internationalization Tag Set rules WWW= https://itstool.org/ \ @@ -12,9 +15,9 @@ WWW= https://itstool.org/ \ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING.GPL3 -RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libxml2-python>=0:textproc/libxml2-python@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml5>=0:devel/py-lxml5@${PY_FLAVOR} -USES= python tar:bzip2 +USES= autoreconf python tar:bzip2 GNU_CONFIGURE= yes NO_ARCH= yes diff --git a/textproc/itstool/distinfo b/textproc/itstool/distinfo index 6f95f612faf6..f9d5bbff5dfa 100644 --- a/textproc/itstool/distinfo +++ b/textproc/itstool/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1632582980 +TIMESTAMP = 1756517770 SHA256 (itstool-2.0.7.tar.bz2) = 6b9a7cd29a12bb95598f5750e8763cee78836a1a207f85b74d8b3275b27e87ca SIZE (itstool-2.0.7.tar.bz2) = 104648 +SHA256 (32c7d07664dc37765100285d1202d488cd6a27e8.patch) = 4e64a2e884f9d4cbc493732fcbde9f1d5bed534f9a66330bbcc1cbeb54808c1e +SIZE (32c7d07664dc37765100285d1202d488cd6a27e8.patch) = 3095 diff --git a/textproc/itstool/files/patch-PR18 b/textproc/itstool/files/patch-PR18 deleted file mode 100644 index b4cafecdb0b1..000000000000 --- a/textproc/itstool/files/patch-PR18 +++ /dev/null @@ -1,88 +0,0 @@ -# https://github.com/itstool/itstool/pull/18 -# https://github.com/itstool/itstool/issues/17 - -From 98d04cdabf1721cb541ecd234c975f13fde4fa41 Mon Sep 17 00:00:00 2001 -From: Guido Trentalancia <guido@trentalancia.com> -Date: Wed, 1 Nov 2017 18:20:36 +0100 -Subject: [PATCH 1/2] Revert "Be more careful about libxml2 memory management" - -This reverts commit 9b84c007a73e8275ca45762f1bfa3ab7c3a852e2. ---- - itstool.in | 13 ++----------- - 1 file changed, 2 insertions(+), 11 deletions(-) - -diff --git itstool.in itstool.in -index a16eba9..c1d0585 100755 ---- itstool.in -+++ itstool.in -@@ -477,7 +477,6 @@ class Document (object): - if load_dtd: - ctxt.loadSubset(1) - if keep_entities: -- ctxt.loadSubset(1) - ctxt.ctxtUseOptions(libxml2.XML_PARSE_DTDLOAD) - ctxt.replaceEntities(0) - else: -@@ -1044,7 +1043,6 @@ class Document (object): - if self._load_dtd: - ctxt.loadSubset(1) - if self._keep_entities: -- ctxt.loadSubset(1) - ctxt.ctxtUseOptions(libxml2.XML_PARSE_DTDLOAD) - ctxt.replaceEntities(0) - else: -@@ -1071,9 +1069,7 @@ class Document (object): - ph_node = msg.get_placeholder(child.name).node - if self.has_child_elements(ph_node): - self.merge_translations(translations, None, ph_node, strict=strict) -- newnode = ph_node.copyNode(1) -- newnode.setTreeDoc(self._doc) -- child.replaceNode(newnode) -+ child.replaceNode(ph_node) - else: - repl = self.get_translated(ph_node, translations, strict=strict, lang=lang) - child.replaceNode(repl) -@@ -1088,15 +1084,10 @@ class Document (object): - (lang + ' ') if lang is not None else '', - msgstr.encode('utf-8'))) - self._xml_err = '' -- ctxt.doc().freeDoc() - return node - retnode = node.copyNode(2) -- retnode.setTreeDoc(self._doc) - for child in xml_child_iter(trnode): -- newnode = child.copyNode(1) -- newnode.setTreeDoc(self._doc) -- retnode.addChild(newnode) -- -+ retnode.addChild(child.copyNode(1)) - ctxt.doc().freeDoc() - return retnode - - -From 1549b6d12eb2f35e5c7f1b1856c21768e92ba794 Mon Sep 17 00:00:00 2001 -From: Guido Trentalancia <guido@trentalancia.com> -Date: Wed, 1 Nov 2017 18:23:44 +0100 -Subject: [PATCH 2/2] Fix a segmentation fault bug introduced with version - 2.0.4. - -https://github.com/itstool/itstool/issues/17 - -This fix seems a lot easier than the previous reverted commit. ---- - itstool.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git itstool.in itstool.in -index c1d0585..e492e95 100755 ---- itstool.in -+++ itstool.in -@@ -1048,7 +1048,7 @@ class Document (object): - else: - ctxt.replaceEntities(1) - ctxt.parseDocument() -- trnode = ctxt.doc().getRootElement() -+ trnode = ctxt.doc().getRootElement().copyNode(1) - try: - self._check_errors() - except libxml2.parserError: diff --git a/textproc/itstool/files/patch-itstool.in b/textproc/itstool/files/patch-itstool.in deleted file mode 100644 index ea6ed79c3781..000000000000 --- a/textproc/itstool/files/patch-itstool.in +++ /dev/null @@ -1,52 +0,0 @@ -# Workaround https://github.com/itstool/itstool/issues/25 -# Obtained from Fedora - ---- itstool.in.orig 2018-08-21 15:27:24 UTC -+++ itstool.in -@@ -44,9 +44,22 @@ if PY3: - else: - return str(s) - ustr_type = str -+ def pr_str(s): -+ """Return a string that can be safely print()ed""" -+ # Since print works on both bytes and unicode, just return the argument -+ return s - else: - string_types = basestring, - ustr = ustr_type = unicode -+ def pr_str(s): -+ """Return a string that can be safely print()ed""" -+ if isinstance(s, str): -+ # Since print works on str, just return the argument -+ return s -+ else: -+ # print may not work on unicode if the output encoding cannot be -+ # detected, so just encode with UTF-8 -+ return unicode.encode(s, 'utf-8') - - NS_ITS = 'http://www.w3.org/2005/11/its' - NS_ITST = 'http://itstool.org/extensions/' -@@ -1060,9 +1073,9 @@ class Document (object): - if strict: - raise - else: -- sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( -+ sys.stderr.write(pr_str('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( - (lang + ' ') if lang is not None else '', -- msgstr.encode('utf-8'))) -+ msgstr))) - self._xml_err = '' - return node - def scan_node(node): -@@ -1087,9 +1100,9 @@ class Document (object): - if strict: - raise - else: -- sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( -+ sys.stderr.write(pr_str('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( - (lang + ' ') if lang is not None else '', -- msgstr.encode('utf-8'))) -+ msgstr))) - self._xml_err = '' - ctxt.doc().freeDoc() - return node diff --git a/textproc/itstool/files/patch-py-lxml b/textproc/itstool/files/patch-py-lxml new file mode 100644 index 000000000000..897eaf6349d7 --- /dev/null +++ b/textproc/itstool/files/patch-py-lxml @@ -0,0 +1,1490 @@ +Obtained from: https://github.com/itstool/itstool/pull/57 + +--- configure.ac.orig 2021-09-25 15:09:48 UTC ++++ configure.ac +@@ -12,7 +12,7 @@ AM_PATH_PYTHON([2.6]) + + AM_PATH_PYTHON([2.6]) + +-py_module=libxml2 ++py_module=lxml + AC_MSG_CHECKING(for python module $py_module) + echo "import $py_module" | $PYTHON - &>/dev/null + if test $? -ne 0; then +--- itstool.in.orig 2025-08-30 01:59:59 UTC ++++ itstool.in +@@ -24,7 +24,8 @@ import hashlib + + import gettext + import hashlib +-import libxml2 ++from copy import deepcopy ++from lxml import etree + import optparse + import os + import os.path +@@ -190,7 +191,7 @@ class Placeholder (object): + class Placeholder (object): + def __init__ (self, node): + self.node = node +- self.name = ustr(node.name, 'utf-8') ++ self.name = ustr(xml_localname(node), 'utf-8') + + + class Message (object): +@@ -243,32 +244,30 @@ class Message (object): + def add_start_tag (self, node): + if len(self._message) == 0 or not(isinstance(self._message[-1], string_types)): + self._message.append('') +- if node.ns() is not None and node.ns().name is not None: +- self._message[-1] += ('<%s:%s' % (ustr(node.ns().name, 'utf-8'), ustr(node.name, 'utf-8'))) +- else: +- self._message[-1] += ('<%s' % ustr(node.name, 'utf-8')) +- for prop in xml_attr_iter(node): +- name = prop.name +- if prop.ns() is not None: +- name = prop.ns().name + ':' + name +- atval = prop.content ++ self._message[-1] += ('<%s' % ustr(xml_qname(node), 'utf-8')) ++ for name, atval in node.items(): ++ qname = etree.QName(name) ++ if qname.namespace is not None: ++ # lxml doesn't expose the prefix of attributes, so we use ++ # an XPath expression to get the attribute's prefixed name. ++ # This is horribly inefficient. ++ expr = 'name(@*[local-name()="%s" and namespace-uri()="%s"])' % ( ++ qname.localname, qname.namespace) ++ name = node.xpath(expr) + if not isinstance(atval, ustr_type): + atval = ustr(atval, 'utf-8') + atval = atval.replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"') + self._message += " %s=\"%s\"" % (name, atval) +- if node.children is not None: ++ if len(node) > 0 or node.text: + self._message[-1] += '>' + else: + self._message[-1] += '/>' + + def add_end_tag (self, node): +- if node.children is not None: ++ if len(node) > 0 or node.text: + if len(self._message) == 0 or not(isinstance(self._message[-1], string_types)): + self._message.append('') +- if node.ns() is not None and node.ns().name is not None: +- self._message[-1] += ('</%s:%s>' % (ustr(node.ns().name, 'utf-8'), ustr(node.name, 'utf-8'))) +- else: +- self._message[-1] += ('</%s>' % ustr(node.name, 'utf-8')) ++ self._message[-1] += ('</%s>' % ustr(xml_qname(node), 'utf-8')) + + def is_empty (self): + return self._empty +@@ -379,69 +378,86 @@ class Message (object): + return ret + + +-def xml_child_iter (node): +- child = node.children +- while child is not None: +- yield child +- child = child.next ++def xml_localname (node): ++ return etree.QName(node.tag).localname + +-def xml_attr_iter (node): +- attr = node.get_properties() +- while attr is not None: +- yield attr +- attr = attr.next ++def xml_qname (node): ++ qname = etree.QName(node.tag).localname ++ if node.prefix is not None: ++ qname = node.prefix + ':' + qname ++ return qname + +-def xml_is_ns_name (node, ns, name): +- if node.type != 'element': +- return False +- return node.name == name and node.ns() is not None and node.ns().content == ns ++def xml_content (node): ++ if isinstance(node, string_types): ++ return node ++ if isinstance(node, XMLAttr): ++ return node.parent.get(node.tag) ++ return etree.tostring(node, method='text', encoding='unicode') + ++def xml_delete_node (node): ++ parent = node.getparent() ++ prev = node.getprevious() ++ tail = node.tail ++ if parent is not None: ++ parent.remove(node) ++ if prev is not None: ++ if prev.tail is None or re.fullmatch(r'\s+', prev.tail): ++ prev.tail = tail ++ else: ++ prev.tail += tail ++ elif parent is not None: ++ if parent.text is None or re.fullmatch(r'\s+', parent.text): ++ parent.text = tail ++ else: ++ parent.text += tail ++ + def xml_get_node_path(node): + # The built-in nodePath() method only does numeric indexes + # when necessary for disambiguation. For various reasons, + # we prefer always using indexes. +- name = node.name +- if node.ns() is not None and node.ns().name is not None: +- name = node.ns().name + ':' + name +- if node.type == 'attribute': ++ name = xml_qname(node) ++ if isinstance(node, XMLAttr): + name = '@' + name + name = '/' + name +- if node.type == 'element' and node.parent.type == 'element': ++ if node.getparent() is not None: + count = 1 +- prev = node.previousElementSibling() ++ prev = node.getprevious() + while prev is not None: +- if prev.name == node.name: +- if prev.ns() is None: +- if node.ns() is None: +- count += 1 +- else: +- if node.ns() is not None: +- if prev.ns().name == node.ns().name: +- count += 1 +- prev = prev.previousElementSibling() ++ if prev.tag == node.tag: ++ count += 1 ++ prev = prev.getprevious() + name = '%s[%i]' % (name, count) +- if node.parent.type == 'element': +- name = xml_get_node_path(node.parent) + name ++ name = xml_get_node_path(node.getparent()) + name + return name + +-def xml_error_catcher(doc, error): +- doc._xml_err += " %s" % error + +-def fix_node_ns (node, nsdefs): +- childnsdefs = nsdefs.copy() +- nsdef = node.nsDefs() +- while nsdef is not None: +- nextnsdef = nsdef.next +- if nsdef.name in nsdefs and nsdefs[nsdef.name] == nsdef.content: +- node.removeNsDef(nsdef.content) +- else: +- childnsdefs[nsdef.name] = nsdef.content +- nsdef = nextnsdef +- for child in xml_child_iter(node): +- if child.type == 'element': +- fix_node_ns(child, childnsdefs) ++# lxml doesn't support attribute nodes, so we have to emulate them. ++class XMLAttr (object): ++ def __init__(self, element, tag): ++ self.parent = element ++ self.tag = tag ++ self.attrib = {} ++ self.sourceline = element.sourceline + ++ def __repr__(self): ++ return '%s@%s' % (repr(self.parent), self.tag) + ++ def __eq__(self, other): ++ return other and self.parent == other.parent and self.tag == other.tag ++ ++ def __ne__(self, other): ++ return not self.__eq__(other) ++ ++ def __hash__(self): ++ return hash(repr(self)) ++ ++ def getparent(self): ++ return self.parent ++ ++ def get(self, default=None): ++ return default ++ ++ + class LocNote (object): + def __init__(self, locnote=None, locnoteref=None, locnotetype=None, space=False): + self.locnote = locnote +@@ -464,82 +480,51 @@ class Document (object): + + class Document (object): + def __init__ (self, filename, messages, load_dtd=False, keep_entities=False): +- self._xml_err = '' +- libxml2.registerErrorHandler(xml_error_catcher, self) +- try: +- ctxt = libxml2.createFileParserCtxt(filename) +- except: +- sys.stderr.write('Error: cannot open XML file %s\n' % filename) +- sys.exit(1) +- ctxt.lineNumbers(1) + self._load_dtd = load_dtd + self._keep_entities = keep_entities +- if load_dtd: +- ctxt.loadSubset(1) +- if keep_entities: +- ctxt.loadSubset(1) +- ctxt.ctxtUseOptions(libxml2.XML_PARSE_DTDLOAD) +- ctxt.replaceEntities(0) +- else: +- ctxt.replaceEntities(1) +- ctxt.parseDocument() ++ parser = etree.XMLParser(load_dtd = load_dtd or keep_entities, ++ resolve_entities = not(keep_entities)) ++ doc = etree.parse(filename, parser) ++ doc.xinclude() + self._filename = filename +- self._doc = ctxt.doc() ++ self._doc = doc + self._localrules = [] +- def pre_process (node): +- for child in xml_child_iter(node): +- if xml_is_ns_name(child, 'http://www.w3.org/2001/XInclude', 'include'): +- if child.nsProp('parse', None) == 'text': +- child.xincludeProcessTree() +- elif xml_is_ns_name(child, NS_ITS, 'rules'): +- if child.hasNsProp('href', NS_XLINK): +- href = child.nsProp('href', NS_XLINK) +- fileref = os.path.join(os.path.dirname(filename), href) +- if not os.path.exists(fileref): +- if opts.itspath is not None: +- for pathdir in opts.itspath: +- fileref = os.path.join(pathdir, href) +- if os.path.exists(fileref): +- break +- if not os.path.exists(fileref): +- sys.stderr.write('Error: Could not locate ITS file %s\n' % href) +- sys.exit(1) +- hctxt = libxml2.createFileParserCtxt(fileref) +- hctxt.replaceEntities(1) +- hctxt.parseDocument() +- root = hctxt.doc().getRootElement() +- version = None +- if root.hasNsProp('version', None): +- version = root.nsProp('version', None) +- else: +- sys.stderr.write('Warning: ITS file %s missing version attribute\n' % +- os.path.basename(href)) +- if version is not None and version not in ('1.0', '2.0'): +- sys.stderr.write('Warning: Skipping ITS file %s with unknown version %s\n' % +- (os.path.basename(href), root.nsProp('version', None))) +- else: +- self._localrules.append(root) ++ for child in doc.iter(): ++ if child.tag == '{' + NS_ITS + '}rules': ++ href = child.get('{' + NS_XLINK + '}href') ++ if href is not None: ++ fileref = os.path.join(os.path.dirname(filename), href) ++ if not os.path.exists(fileref): ++ if opts.itspath is not None: ++ for pathdir in opts.itspath: ++ fileref = os.path.join(pathdir, href) ++ if os.path.exists(fileref): ++ break ++ if not os.path.exists(fileref): ++ sys.stderr.write('Error: Could not locate ITS file %s\n' % href) ++ sys.exit(1) ++ root = etree.parse(fileref).getroot() + version = None +- if child.hasNsProp('version', None): +- version = child.nsProp('version', None) ++ version = root.get('version') ++ if version is None: ++ sys.stderr.write('Warning: ITS file %s missing version attribute\n' % ++ os.path.basename(href)) ++ elif version not in ('1.0', '2.0'): ++ sys.stderr.write('Warning: Skipping ITS file %s with unknown version %s\n' % ++ (os.path.basename(href), root.get('version'))) + else: +- root = child.doc.getRootElement() +- if root.hasNsProp('version', NS_ITS): +- version = root.nsProp('version', NS_ITS) +- else: +- sys.stderr.write('Warning: Local ITS rules missing version attribute\n') +- if version is not None and version not in ('1.0', '2.0'): +- sys.stderr.write('Warning: Skipping local ITS rules with unknown version %s\n' % +- version) +- else: +- self._localrules.append(child) +- pre_process(child) +- pre_process(self._doc) +- try: +- self._check_errors() +- except libxml2.parserError as e: +- sys.stderr.write('Error: Could not parse document:\n%s\n' % ustr(e)) +- sys.exit(1) ++ self._localrules.append(root) ++ version = child.get('version') ++ if version is None: ++ root = child.getroottree() ++ version = root.get('{' + NS_ITS + '}version') ++ if version is None: ++ sys.stderr.write('Warning: Local ITS rules missing version attribute\n') ++ elif version not in ('1.0', '2.0'): ++ sys.stderr.write('Warning: Skipping local ITS rules with unknown version %s\n' % ++ version) ++ else: ++ self._localrules.append(child) + self._msgs = messages + self._its_translate_nodes = {} + self._its_within_text_nodes = {} +@@ -556,13 +541,6 @@ class Document (object): + + self._clear_cache() + +- def __del__ (self): +- self._doc.freeDoc() +- +- def _check_errors(self): +- if self._xml_err: +- raise libxml2.parserError(self._xml_err) +- + def _clear_cache(self): + self._its_translate_nodes_cache = {} + self._its_locale_filters_cache = {} +@@ -570,123 +548,107 @@ class Document (object): + + def get_its_params(self, rules): + params = {} +- for child in xml_child_iter(rules): +- if xml_is_ns_name(child, NS_ITS, 'param'): +- params[child.nsProp('name', None)] = child.getContent() ++ for child in rules.iterchildren(): ++ if child.tag == '{' + NS_ITS + '}param': ++ params[child.get('name')] = xml_content(child) + return params + +- def register_its_params(self, xpath, params, userparams={}): +- for param in params: +- if param in userparams: +- xpath.xpathRegisterVariable(name, None, userparams[param]) ++ def register_its_params(self, var, params, userparams={}): ++ for name in params: ++ if name in userparams: ++ var[name] = userparams[name] + else: +- xpath.xpathRegisterVariable(name, None, params[param]) ++ var[name] = params[name] + + def apply_its_rule(self, rule, xpath): + self._clear_cache() +- if rule.type != 'element': +- return +- if xml_is_ns_name(rule, NS_ITS, 'translateRule'): +- if rule.nsProp('selector', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): +- self._its_translate_nodes[node] = rule.nsProp('translate', None) +- elif xml_is_ns_name(rule, NS_ITS, 'withinTextRule'): +- if rule.nsProp('selector', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): +- self._its_within_text_nodes[node] = rule.nsProp('withinText', None) +- elif xml_is_ns_name(rule, NS_ITST, 'preserveSpaceRule'): +- if rule.nsProp('selector', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): +- val = rule.nsProp('preserveSpace', None) ++ if rule.tag == '{' + NS_ITS + '}translateRule': ++ sel = rule.get('selector') ++ if sel is not None: ++ for node in self._try_xpath_eval(xpath, sel): ++ self._its_translate_nodes[node] = rule.get('translate') ++ elif rule.tag == '{' + NS_ITS + '}withinTextRule': ++ sel = rule.get('selector') ++ if sel is not None: ++ for node in self._try_xpath_eval(xpath, sel): ++ self._its_within_text_nodes[node] = rule.get('withinText') ++ elif rule.tag == '{' + NS_ITST + '}preserveSpaceRule': ++ sel = rule.get('selector') ++ if sel is not None: ++ for node in self._try_xpath_eval(xpath, sel): ++ val = rule.get('preserveSpace') + if val == 'yes': + self._its_preserve_space_nodes[node] = 'preserve' +- elif xml_is_ns_name(rule, NS_ITS, 'preserveSpaceRule'): +- if rule.nsProp('selector', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): +- self._its_preserve_space_nodes[node] = rule.nsProp('space', None) +- elif xml_is_ns_name(rule, NS_ITS, 'localeFilterRule'): +- if rule.nsProp('selector', None) is not None: +- if rule.hasNsProp('localeFilterList', None): +- lst = rule.nsProp('localeFilterList', None) +- else: +- lst = '*' +- if rule.hasNsProp('localeFilterType', None): +- typ = rule.nsProp('localeFilterType', None) +- else: +- typ = 'include' +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): ++ elif rule.tag == '{' + NS_ITS + '}preserveSpaceRule': ++ sel = rule.get('selector') ++ if sel is not None: ++ for node in self._try_xpath_eval(xpath, sel): ++ self._its_preserve_space_nodes[node] = rule.get('space') ++ elif rule.tag == '{' + NS_ITS + '}localeFilterRule': ++ sel = rule.get('selector') ++ if sel is not None: ++ lst = rule.get('localeFilterList', '*') ++ typ = rule.get('localeFilterType', 'include') ++ for node in self._try_xpath_eval(xpath, sel): + self._its_locale_filters[node] = (lst, typ) +- elif xml_is_ns_name(rule, NS_ITST, 'dropRule'): +- if rule.nsProp('selector', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): +- self._itst_drop_nodes[node] = rule.nsProp('drop', None) +- elif xml_is_ns_name(rule, NS_ITS, 'idValueRule'): +- sel = rule.nsProp('selector', None) +- idv = rule.nsProp('idValue', None) ++ elif rule.tag == '{' + NS_ITST + '}dropRule': ++ sel = rule.get('selector') ++ if sel is not None: ++ for node in self._try_xpath_eval(xpath, sel): ++ self._itst_drop_nodes[node] = rule.get('drop') ++ elif rule.tag == '{' + NS_ITS + '}idValueRule': ++ sel = rule.get('selector') ++ idv = rule.get('idValue') + if sel is not None and idv is not None: + for node in self._try_xpath_eval(xpath, sel): +- try: +- oldnode = xpath.contextNode() +- except: +- oldnode = None +- xpath.setContextNode(node) +- idvalue = self._try_xpath_eval(xpath, idv) ++ idvalue = self._try_xpath_eval(xpath, idv, node=node) + if isinstance(idvalue, string_types): + self._its_id_values[node] = idvalue + else: + for val in idvalue: +- self._its_id_values[node] = val.content ++ self._its_id_values[node] = xml_content(val) + break +- xpath.setContextNode(oldnode) + pass +- elif xml_is_ns_name(rule, NS_ITST, 'contextRule'): +- if rule.nsProp('selector', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): +- if rule.hasNsProp('context', None): +- self._itst_contexts[node] = rule.nsProp('context', None) +- elif rule.hasNsProp('contextPointer', None): +- try: +- oldnode = xpath.contextNode() +- except: +- oldnode = None +- xpath.setContextNode(node) +- ctxt = self._try_xpath_eval(xpath, rule.nsProp('contextPointer', None)) ++ elif rule.tag == '{' + NS_ITST + '}contextRule': ++ sel = rule.get('selector') ++ if sel is not None: ++ for node in self._try_xpath_eval(xpath, sel): ++ ctxt = rule.get('context') ++ cp = rule.get('contextPointer') ++ if ctxt is not None: ++ self._itst_contexts[node] = ctxt ++ elif cp is not None: ++ ctxt = self._try_xpath_eval(xpath, cp, node=node) + if isinstance(ctxt, string_types): + self._itst_contexts[node] = ctxt + else: + for ctxt in ctxt: +- self._itst_contexts[node] = ctxt.content ++ self._itst_contexts[node] = xml_content(ctxt) + break +- xpath.setContextNode(oldnode) +- elif xml_is_ns_name(rule, NS_ITS, 'locNoteRule'): ++ elif rule.tag == '{' + NS_ITS + '}locNoteRule': + locnote = None +- notetype = rule.nsProp('locNoteType', None) +- for child in xml_child_iter(rule): +- if xml_is_ns_name(child, NS_ITS, 'locNote'): +- locnote = LocNote(locnote=child.content, locnotetype=notetype) +- break ++ notetype = rule.get('locNoteType') ++ for child in rule.iterchildren('{' + NS_ITS + '}locNote'): ++ locnote = LocNote(locnote=xml_content(child), locnotetype=notetype) ++ break + if locnote is None: +- if rule.hasNsProp('locNoteRef', None): +- locnote = LocNote(locnoteref=rule.nsProp('locNoteRef', None), locnotetype=notetype) +- if rule.nsProp('selector', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): ++ if 'locNoteRef' in rule.attrib: ++ locnote = LocNote(locnoteref=rule.get('locNoteRef'), locnotetype=notetype) ++ sel = rule.get('selector') ++ if sel is not None: ++ for node in self._try_xpath_eval(xpath, sel): + if locnote is not None: + self._its_loc_notes.setdefault(node, []).append(locnote) + else: +- if rule.hasNsProp('locNotePointer', None): +- sel = rule.nsProp('locNotePointer', None) ++ if 'locNotePointer' in rule.attrib: ++ sel = rule.get('locNotePointer') + ref = False +- elif rule.hasNsProp('locNoteRefPointer', None): +- sel = rule.nsProp('locNoteRefPointer', None) ++ elif 'locNoteRefPointer' in rule.attrib: ++ sel = rule.get('locNoteRefPointer') + ref = True + else: + continue +- try: +- oldnode = xpath.contextNode() +- except: +- oldnode = None +- xpath.setContextNode(node) +- note = self._try_xpath_eval(xpath, sel) ++ note = self._try_xpath_eval(xpath, sel, node=node) + if isinstance(note, string_types): + if ref: + nodenote = LocNote(locnoteref=note, locnotetype=notetype) +@@ -695,55 +657,56 @@ class Document (object): + self._its_loc_notes.setdefault(node, []).append(nodenote) + else: + for note in note: ++ text = xml_content(note) + if ref: +- nodenote = LocNote(locnoteref=note.content, locnotetype=notetype) ++ nodenote = LocNote(locnoteref=text, locnotetype=notetype) + else: +- nodenote = LocNote(locnote=note.content, locnotetype=notetype, ++ nodenote = LocNote(locnote=text, locnotetype=notetype, + space=self.get_preserve_space(note)) + self._its_loc_notes.setdefault(node, []).append(nodenote) + break +- xpath.setContextNode(oldnode) +- elif xml_is_ns_name(rule, NS_ITS, 'langRule'): +- if rule.nsProp('selector', None) is not None and rule.nsProp('langPointer', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)): +- try: +- oldnode = xpath.contextNode() +- except: +- oldnode = None +- xpath.setContextNode(node) +- res = self._try_xpath_eval(xpath, rule.nsProp('langPointer', None)) ++ elif rule.tag == '{' + NS_ITS + '}langRule': ++ sel = rule.get('selector') ++ lp = rule.get('langPointer') ++ if sel is not None and lp is not None: ++ for node in self._try_xpath_eval(xpath, sel): ++ res = self._try_xpath_eval(xpath, lp, node=node) + if len(res) > 0: +- self._its_lang[node] = res[0].content ++ self._its_lang[node] = xml_content(res[0]) + # We need to construct language attributes, not just read + # language information. Technically, langPointer could be + # any XPath expression. But if it looks like an attribute + # accessor, just use the attribute name. +- if rule.nsProp('langPointer', None)[0] == '@': +- self._itst_lang_attr[node] = rule.nsProp('langPointer', None)[1:] +- xpath.setContextNode(oldnode) +- elif xml_is_ns_name(rule, NS_ITST, 'credits'): +- if rule.nsProp('appendTo', None) is not None: +- for node in self._try_xpath_eval(xpath, rule.nsProp('appendTo', None)): ++ # TODO: This should probably be skipped if langPointer ++ # equals '@xml:lang' which is the default. ++ if lp[0] == '@': ++ name = lp[1:] ++ if ':' in name: ++ prefix, lname = name.split(':', 2) ++ nsuri = node.nsmap.get(prefix) ++ if nsuri is None: ++ name = lname ++ else: ++ name = '{' + nsuri + '}' + lname ++ self._itst_lang_attr[node] = name ++ elif rule.tag == '{' + NS_ITST + '}credits': ++ sel = rule.get('appendTo') ++ if sel is not None: ++ for node in self._try_xpath_eval(xpath, sel): + self._itst_credits = (node, rule) + break +- elif (xml_is_ns_name(rule, NS_ITS, 'externalResourceRefRule') or +- xml_is_ns_name(rule, NS_ITST, 'externalRefRule')): +- sel = rule.nsProp('selector', None) +- if xml_is_ns_name(rule, NS_ITS, 'externalResourceRefRule'): +- ptr = rule.nsProp('externalResourceRefPointer', None) ++ elif (rule.tag == '{' + NS_ITS + '}externalResourceRefRule' or ++ rule.tag == '{' + NS_ITST + '}externalRefRule'): ++ sel = rule.get('selector') ++ if rule.tag == '{' + NS_ITS + '}externalResourceRefRule': ++ ptr = rule.get('externalResourceRefPointer') + else: +- ptr = rule.nsProp('refPointer', None) ++ ptr = rule.get('refPointer') + if sel is not None and ptr is not None: + for node in self._try_xpath_eval(xpath, sel): +- try: +- oldnode = xpath.contextNode() +- except: +- oldnode = None +- xpath.setContextNode(node) +- res = self._try_xpath_eval(xpath, ptr) ++ res = self._try_xpath_eval(xpath, ptr, node=node) + if len(res) > 0: +- self._its_externals[node] = res[0].content +- xpath.setContextNode(oldnode) ++ self._its_externals[node] = xml_content(res[0]) + + def apply_its_rules(self, builtins, userparams={}): + self._clear_cache() +@@ -773,94 +736,59 @@ class Document (object): + + def apply_its_file(self, filename, userparams={}): + self._clear_cache() +- doc = libxml2.parseFile(filename) +- root = doc.getRootElement() +- if not xml_is_ns_name(root, NS_ITS, 'rules'): ++ parser = etree.XMLParser(resolve_entities = False) ++ root = etree.parse(filename, parser).getroot() ++ if root.tag != '{' + NS_ITS + '}rules': + return +- version = None +- if root.hasNsProp('version', None): +- version = root.nsProp('version', None) +- else: ++ version = root.get('version') ++ if version is None: + sys.stderr.write('Warning: ITS file %s missing version attribute\n' % + os.path.basename(filename)) +- if version is not None and version not in ('1.0', '2.0'): ++ elif version not in ('1.0', '2.0'): + sys.stderr.write('Warning: Skipping ITS file %s with unknown version %s\n' % +- (os.path.basename(filename), root.nsProp('version', None))) ++ (os.path.basename(filename), root.get('version'))) + return + matched = True +- for match in xml_child_iter(root): +- if xml_is_ns_name(match, NS_ITST, 'match'): ++ for match in root.iterchildren(): ++ if match.tag == '{' + NS_ITST + '}match': + matched = False +- xpath = self._doc.xpathNewContext() +- par = match +- nss = {} +- while par is not None: +- nsdef = par.nsDefs() +- while nsdef is not None: +- if nsdef.name is not None: +- if nsdef.name not in nss: +- nss[nsdef.name] = nsdef.content +- xpath.xpathRegisterNs(nsdef.name, nsdef.content) +- nsdef = nsdef.next +- par = par.parent +- if match.hasNsProp('selector', None): +- if len(self._try_xpath_eval(xpath, match.nsProp('selector', None))) > 0: ++ sel = match.get('selector') ++ if sel is not None: ++ ns = { k: v for k, v in match.nsmap.items() if k is not None } ++ xpath = (ns, {}) ++ if len(self._try_xpath_eval(xpath, sel)) > 0: + matched = True + break + if matched == False: + return ++ ns = { k: v for k, v in match.nsmap.items() if k is not None } ++ var = {} + params = self.get_its_params(root) +- for rule in xml_child_iter(root): +- xpath = self._doc.xpathNewContext() +- par = match +- nss = {} +- while par is not None: +- nsdef = par.nsDefs() +- while nsdef is not None: +- if nsdef.name is not None: +- if nsdef.name not in nss: +- nss[nsdef.name] = nsdef.content +- xpath.xpathRegisterNs(nsdef.name, nsdef.content) +- nsdef = nsdef.next +- par = par.parent +- self.register_its_params(xpath, params, userparams=userparams) ++ self.register_its_params(var, params, userparams=userparams) ++ xpath = (ns, var) ++ for rule in root.iterchildren(): + self.apply_its_rule(rule, xpath) + + def apply_local_its_rules(self, userparams={}): + self._clear_cache() + for rules in self._localrules: +- def reg_ns(xpath, node): +- if node.parent is not None: +- reg_ns(xpath, node.parent) +- nsdef = node.nsDefs() +- while nsdef is not None: +- if nsdef.name is not None: +- xpath.xpathRegisterNs(nsdef.name, nsdef.content) +- nsdef = nsdef.next +- xpath = self._doc.xpathNewContext() +- reg_ns(xpath, rules) ++ var = {} + params = self.get_its_params(rules) +- self.register_its_params(xpath, params, userparams=userparams) +- for rule in xml_child_iter(rules): +- if rule.type != 'element': +- continue +- if rule.nsDefs() is not None: +- rule_xpath = self._doc.xpathNewContext() +- reg_ns(rule_xpath, rule) +- self.register_its_params(rule_xpath, params, userparams=userparams) +- else: +- rule_xpath = xpath ++ self.register_its_params(var, params, userparams=userparams) ++ for rule in rules.iterchildren(): ++ ns = { k: v for k, v in rule.nsmap.items() if k is not None } ++ rule_xpath = (ns, var) + self.apply_its_rule(rule, rule_xpath) + + def _append_credits(self, parent, node, trdata): +- if xml_is_ns_name(node, NS_ITST, 'for-each'): +- select = node.nsProp('select', None) ++ if node.tag == '{' + NS_ITST + '}for-each': ++ select = node.get('select') + if select == 'years': + for year in trdata[2].split(','): +- for child in xml_child_iter(node): ++ for child in node.iterchildren(): + self._append_credits(parent, child, trdata + (year.strip(),)) +- elif xml_is_ns_name(node, NS_ITST, 'value-of'): +- select = node.nsProp('select', None) ++ elif node.tag == '{' + NS_ITST + '}value-of': ++ select = node.get('select') + val = None + if select == 'name': + val = trdata[0] +@@ -873,11 +801,20 @@ class Document (object): + if val is not None: + if not PY3: + val = val.encode('utf-8') +- parent.addContent(val) ++ if len(parent): ++ if parent[-1].tail: ++ parent[-1].tail += val ++ else: ++ parent[-1].tail = val ++ else: ++ if parent.text: ++ parent.text += val ++ else: ++ parent.text = val + else: +- newnode = node.copyNode(2) +- parent.addChild(newnode) +- for child in xml_child_iter(node): ++ newnode = parent.makeelement(node.tag, node.attrib) ++ parent.append(newnode) ++ for child in node.iterchildren(): + self._append_credits(newnode, child, trdata) + + def merge_credits(self, translations, language, node): +@@ -895,7 +832,7 @@ class Document (object): + if not match: + continue + trdata = match.groups() +- for node in xml_child_iter(self._itst_credits[1]): ++ for node in self._itst_credits[1].iterchildren(): + self._append_credits(self._itst_credits[0], node, trdata) + + def join_translations(self, translations, node=None, strict=False): +@@ -903,29 +840,30 @@ class Document (object): + if node is None: + is_root = True + self.generate_messages(comments=False) +- node = self._doc.getRootElement() +- if node is None or node.type != 'element': ++ node = self._doc.getroot() ++ if node is None: + return + if self.get_itst_drop(node) == 'yes': +- prev = node.prev +- node.unlinkNode() +- node.freeNode() +- if prev is not None and prev.isBlankNode(): +- prev.unlinkNode() +- prev.freeNode() ++ xml_delete_node(node) + return + msg = self._msgs.get_message_by_node(node) + if msg is None: +- self.translate_attrs(node, node) +- children = [child for child in xml_child_iter(node)] +- for child in children: ++ #self.translate_attrs(node, node) ++ for child in node.iterchildren(): + self.join_translations(translations, node=child, strict=strict) + else: +- prevnode = None +- if node.prev is not None and node.prev.type == 'text': +- prevtext = node.prev.content +- if re.sub(r'\s+', '', prevtext) == '': +- prevnode = node.prev ++ prevtext = None ++ prev = node.getprevious() ++ if prev is None: ++ parent = node.getparent() ++ if parent is not None: ++ prevtext = parent.text ++ else: ++ prevtext = prev.tail ++ if prevtext is not None: ++ if not re.fullmatch(r'\s+', prevtext): ++ prevtext = None ++ i = 0 + for lang in sorted(list(translations.keys()), reverse=True): + locale = self.get_its_locale_filter(node) + lmatch = match_locale_list(locale[0], lang) +@@ -933,24 +871,25 @@ class Document (object): + continue + newnode = self.get_translated(node, translations[lang], strict=strict, lang=lang) + if newnode != node: +- newnode.setProp('xml:lang', lang) +- node.addNextSibling(newnode) +- if prevnode is not None: +- node.addNextSibling(prevnode.copyNode(0)) +- if is_root: +- # Because of the way we create nodes and rewrite the document, +- # we end up with lots of redundant namespace definitions. We +- # kill them off in one fell swoop at the end. +- fix_node_ns(node, {}) +- self._check_errors() ++ newnode.set('{' + NS_XML + '}lang', lang) ++ node.addnext(newnode) ++ if i == 0: ++ # Move tail to first new node ++ newnode.tail = node.tail ++ if prevtext is not None: ++ node.tail = prevtext ++ else: ++ if prevtext is not None: ++ newnode.tail = prevtext ++ i += 1 + + def merge_translations(self, translations, language, node=None, strict=False): + is_root = False + if node is None: + is_root = True + self.generate_messages(comments=False) +- node = self._doc.getRootElement() +- if node is None or node.type != 'element': ++ node = self._doc.getroot() ++ if node is None: + return + drop = False + locale = self.get_its_locale_filter(node) +@@ -962,26 +901,23 @@ class Document (object): + if match_locale_list(locale[0], language): + drop = True + if self.get_itst_drop(node) == 'yes' or drop: +- prev = node.prev +- node.unlinkNode() +- node.freeNode() +- if prev is not None and prev.isBlankNode(): +- prev.unlinkNode() +- prev.freeNode() ++ xml_delete_node(node) + return + if is_root: + self.merge_credits(translations, language, node) + msg = self._msgs.get_message_by_node(node) + if msg is None: + self.translate_attrs(node, node) +- children = [child for child in xml_child_iter(node)] +- for child in children: ++ for child in node.iterchildren(): + self.merge_translations(translations, language, node=child, strict=strict) + else: + newnode = self.get_translated(node, translations, strict=strict, lang=language) + if newnode != node: + self.translate_attrs(node, newnode) +- node.replaceNode(newnode) ++ newnode.tail = node.tail ++ parent = node.getparent() ++ if parent is not None: ++ parent.replace(node, newnode) + if is_root: + # Apply language attributes to untranslated nodes. We don't do + # this before processing, because then these attributes would +@@ -998,31 +934,27 @@ class Document (object): + origlang = self._its_lang.get(lcpar) + if origlang is not None: + break +- lcpar = lcpar.parent ++ lcpar = lcpar.getparent() + if origlang is not None: +- lcnode.setProp(attr, origlang) ++ lcnode.set(attr, origlang) + # And then set the language attribute on the root node. + if language is not None: + attr = self._itst_lang_attr.get(node) + if attr is not None: +- node.setProp(attr, language) +- # Because of the way we create nodes and rewrite the document, +- # we end up with lots of redundant namespace definitions. We +- # kill them off in one fell swoop at the end. +- fix_node_ns(node, {}) +- self._check_errors() ++ node.set(attr, language) + + def translate_attrs(self, oldnode, newnode): +- trans_attrs = [attr for attr in xml_attr_iter(oldnode) if self._its_translate_nodes.get(attr, 'no') == 'yes'] +- for attr in trans_attrs: +- srccontent = attr.get_content() ++ for attrname, srccontent in oldnode.items(): ++ attr = XMLAttr(oldnode, attrname) ++ if self._its_translate_nodes.get(attr, 'no') != 'yes': ++ continue + if not PY3: + srccontent = srccontent.decode('utf-8') + newcontent = translations.ugettext(srccontent) + if newcontent: + if not PY3: + newcontent = newcontent.encode('utf-8') +- newnode.setProp(attr.name, newcontent) ++ newnode.set(attrname, newcontent) + + def get_translated (self, node, translations, strict=False, lang=None): + msg = self._msgs.get_message_by_node(node) +@@ -1037,106 +969,90 @@ class Document (object): + trans = translations.ugettext(msgstr) + if trans is None: + return node +- nss = {} +- def reg_ns(node, nss): +- if node.parent is not None: +- reg_ns(node.parent, nss) +- nsdef = node.nsDefs() +- while nsdef is not None: +- nss[nsdef.name] = nsdef.content +- nsdef = nsdef.next +- reg_ns(node, nss) +- nss['_'] = NS_BLANK +- try: +- blurb = node.doc.intSubset().serialize('utf-8') +- except Exception: +- blurb = '' +- blurb += '<' + ustr(node.name, 'utf-8') +- for nsname in list(nss.keys()): ++ blurb = '' ++ doc = node.getroottree() ++ if doc.docinfo.internalDTD: ++ # This is an ugly hack to serialize the DTD. We copy the ++ # document, replace the document element, serialize the ++ # document and remove the last line which contains the ++ # document element, leaving only the DTD. ++ copy = deepcopy(doc) ++ root = copy.getroot() ++ newroot = root.makeelement(root.tag) ++ copy._setroot(newroot) ++ blurb = re.sub('.*$', '', etree.tostring(copy, encoding='unicode')) ++ localname = ustr(xml_localname(node), 'utf-8') ++ blurb += '<' + localname ++ blurb += ' xmlns:_="%s"' % NS_BLANK ++ for nsname, nsuri in node.nsmap.items(): + if nsname is None: +- blurb += ' xmlns="%s"' % nss[nsname] ++ blurb += ' xmlns="%s"' % nsuri + else: +- blurb += ' xmlns:%s="%s"' % (nsname, nss[nsname]) +- blurb += '>%s</%s>' % (trans, ustr(node.name, 'utf-8')) +- if not PY3: +- blurb = blurb.encode('utf-8') +- ctxt = libxml2.createDocParserCtxt(blurb) +- if self._load_dtd: +- ctxt.loadSubset(1) +- if self._keep_entities: +- ctxt.loadSubset(1) +- ctxt.ctxtUseOptions(libxml2.XML_PARSE_DTDLOAD) +- ctxt.replaceEntities(0) +- else: +- ctxt.replaceEntities(1) +- ctxt.parseDocument() +- trnode = ctxt.doc().getRootElement() ++ blurb += ' xmlns:%s="%s"' % (nsname, nsuri) ++ blurb += '>%s</%s>' % (trans, localname) ++ parser = etree.XMLParser(load_dtd = self._load_dtd or self._keep_entities, ++ resolve_entities = not(self._keep_entities)) + try: +- self._check_errors() +- except libxml2.parserError: ++ trnode = etree.fromstring(blurb, parser) ++ except: + if strict: + raise + else: + sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( +- (lang + ' ') if lang is not None else '', +- msgstr.encode('utf-8'))) +- self._xml_err = '' ++ (lang + ' ') if lang is not None else '', ++ msgstr.encode('utf-8'))) + return node +- def scan_node(node): +- children = [child for child in xml_child_iter(node)] +- for child in children: +- if child.type != 'element': ++ try: ++ for child in trnode.iterdescendants(): ++ if isinstance(child, (etree._Entity, etree._Comment, etree._ProcessingInstruction)): + continue +- if child.ns() is not None and child.ns().content == NS_BLANK: +- ph_node = msg.get_placeholder(child.name).node +- if self.has_child_elements(ph_node): ++ qname = etree.QName(child.tag) ++ if qname.namespace == NS_BLANK: ++ ph = msg.get_placeholder(qname.localname) ++ if ph is None: ++ sys.stderr.write('Warning: Could not find placeholder %s\n' % ( ++ qname.localname)) ++ continue ++ ph_node = ph.node ++ if len(ph_node): + self.merge_translations(translations, None, ph_node, strict=strict) +- newnode = ph_node.copyNode(1) +- newnode.setTreeDoc(self._doc) +- child.replaceNode(newnode) ++ newnode = deepcopy(ph_node) ++ newnode.tail = child.tail ++ child.getparent().replace(child, newnode) + else: + repl = self.get_translated(ph_node, translations, strict=strict, lang=lang) +- child.replaceNode(repl) +- scan_node(child) +- try: +- scan_node(trnode) ++ repl.tail = child.tail ++ child.getparent().replace(child, repl) + except: ++ raise + if strict: + raise + else: + sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( + (lang + ' ') if lang is not None else '', + msgstr.encode('utf-8'))) +- self._xml_err = '' +- ctxt.doc().freeDoc() + return node +- retnode = node.copyNode(2) +- retnode.setTreeDoc(self._doc) +- for child in xml_child_iter(trnode): +- newnode = child.copyNode(1) +- newnode.setTreeDoc(self._doc) +- retnode.addChild(newnode) ++ retnode = self._doc.getroot().makeelement(node.tag, node.attrib, node.nsmap) ++ retnode.text = trnode.text ++ for child in trnode.iterchildren(): ++ retnode.append(child) + +- ctxt.doc().freeDoc() + return retnode + + def generate_messages(self, comments=True): + if self._itst_credits is not None: + self._msgs.add_credits() +- for child in xml_child_iter(self._doc): +- if child.type == 'element': +- self.generate_message(child, None, comments=comments) +- break ++ if self._doc is not None: ++ self.generate_message(self._doc.getroot(), None, comments=comments) + + def generate_message(self, node, msg, comments=True, path=None): +- if node.type in ('text', 'cdata') and msg is not None: +- msg.add_text(node.content) ++ if isinstance(node, etree._Entity): ++ msg.add_entity_ref(node.name) + return +- if node.type == 'entity_ref': +- msg.add_entity_ref(node.name); +- if node.type != 'element': ++ # Only allow elements ++ if isinstance(node, XMLAttr) or not isinstance(node.tag, str): + return +- if node.hasNsProp('drop', NS_ITST) and node.nsProp('drop', NS_ITST) == 'yes': ++ if node.get('{' + NS_ITST + '}drop', 'no') == 'yes': + return + if self._itst_drop_nodes.get(node, 'no') == 'yes': + return +@@ -1158,9 +1074,7 @@ class Document (object): + if msg is not None: + msg.add_placeholder(node) + msg = Message() +- ctxt = None +- if node.hasNsProp('context', NS_ITST): +- ctxt = node.nsProp('context', NS_ITST) ++ ctxt = node.get('{' + NS_ITST + '}context') + if ctxt is None: + ctxt = self._itst_contexts.get(node) + if ctxt is not None: +@@ -1173,27 +1087,38 @@ class Document (object): + msg.set_preserve_space() + if self.get_its_locale_filter(node) != ('*', 'include'): + msg.set_locale_filter(self.get_its_locale_filter(node)) +- msg.add_source('%s:%i' % (self._doc.name, node.lineNo())) +- msg.add_marker('%s/%s' % (ustr(node.parent.name, 'utf-8'), ustr(node.name, 'utf-8'))) ++ msg.add_source('%s:%i' % (self._doc.docinfo.URL, node.sourceline)) ++ parent = node.getparent() ++ if parent is None: ++ ptag = '#root' ++ else: ++ ptag = xml_localname(parent) ++ msg.add_marker('%s/%s' % (ustr(ptag, 'utf-8'), ustr(xml_localname(node), 'utf-8'))) + else: + withinText = True + msg.add_start_tag(node) + + if not withinText: + # Add msg for translatable node attributes +- for attr in xml_attr_iter(node): ++ for attrname, attrval in node.items(): ++ attr = XMLAttr(node, attrname) + if self._its_translate_nodes.get(attr, 'no') == 'yes': + attr_msg = Message() + if self.get_preserve_space(attr): + attr_msg.set_preserve_space() +- attr_msg.add_source('%s:%i' % (self._doc.name, node.lineNo())) +- attr_msg.add_marker('%s/%s@%s' % (node.parent.name, node.name, attr.name)) +- attr_msg.add_text(attr.content) ++ attr_msg.add_source('%s:%i' % (self._doc.docinfo.URL, node.sourceline)) ++ attr_msg.add_marker('%s/%s@%s' % ( ++ xml_localname(node.getparent()), ++ xml_localname(node), ++ etree.QName(attrname).localname)) ++ attr_msg.add_text(attrval) + if comments: + for locnote in self.get_its_loc_notes(attr): + comment = Comment(locnote) + comment.add_marker ('%s/%s@%s' % ( +- node.parent.name, node.name, attr.name)) ++ xml_localname(node.getparent()), ++ xml_localname(node), ++ etree.QName(attrname).localname)) + attr_msg.add_comment(comment) + self._msgs.add_message(attr_msg, attr) + +@@ -1204,15 +1129,16 @@ class Document (object): + for locnote in self.get_its_loc_notes(cnode, inherit=(not withinText)): + comment = Comment(locnote) + if withinText: +- comment.add_marker('.%s/%s' % (path, cnode.name)) ++ comment.add_marker('.%s/%s' % (path, xml_localname(cnode))) + msg.add_comment(comment) + hasnote = True + if hasnote or not is_unit: + break +- cnode = cnode.parent ++ cnode = cnode.getparent() + + self.generate_external_resource_message(node) +- for attr in xml_attr_iter(node): ++ for attrname in node.keys(): ++ attr = XMLAttr(node, attrname) + self.generate_external_resource_message(attr) + idvalue = self.get_its_id_value(attr) + if idvalue is not None: +@@ -1220,9 +1146,13 @@ class Document (object): + msg.add_id_value(basename + '#' + idvalue) + + if withinText: +- path = path + '/' + node.name +- for child in xml_child_iter(node): ++ path = path + '/' + node.tag ++ if node.text is not None and msg is not None: ++ msg.add_text(node.text) ++ for child in node.iterchildren(): + self.generate_message(child, msg, comments=comments, path=path) ++ if child.tail is not None and msg is not None: ++ msg.add_text(child.tail) + + if translate: + if is_unit and not msg.is_empty(): +@@ -1234,12 +1164,17 @@ class Document (object): + if node not in self._its_externals: + return + resref = self._its_externals[node] +- if node.type == 'element': +- translate = self.get_its_translate(node) +- marker = '%s/%s' % (node.parent.name, node.name) ++ if isinstance(node, XMLAttr): ++ elem = node.getparent() ++ translate = self.get_its_translate(elem) ++ marker = '%s/%s/@%s' % ( ++ xml_localname(elem.getparent()), ++ xml_localname(elem), ++ xml_localname(node)) + else: +- translate = self.get_its_translate(node.parent) +- marker = '%s/%s/@%s' % (node.parent.parent.name, node.parent.name, node.name) ++ translate = self.get_its_translate(node) ++ marker = '%s/%s' % (xml_localname(node.getparent()), ++ xml_localname(node)) + if translate == 'no': + return + msg = Message() +@@ -1253,7 +1188,7 @@ class Document (object): + txt = "external ref='%s' md5='%s'" % (resref, filemd5) + msg.set_context('_') + msg.add_text(txt) +- msg.add_source('%s:%i' % (self._doc.name, node.lineNo())) ++ msg.add_source('%s:%i' % (self._doc.docinfo.URL, node.sourceline)) + msg.add_marker(marker) + msg.add_comment(Comment('This is a reference to an external file such as an image or' + ' video. When the file changes, the md5 hash will change to' +@@ -1265,44 +1200,41 @@ class Document (object): + def is_translation_unit (self, node): + return self.get_its_within_text(node) != 'yes' + +- def has_child_elements(self, node): +- return len([child for child in xml_child_iter(node) if child.type=='element']) +- + def get_preserve_space (self, node): +- while node.type in ('attribute', 'element'): +- if node.getSpacePreserve() == 1: ++ while node is not None: ++ if node.get('{' + NS_XML + '}space') == 'preserve': + return True + if node in self._its_preserve_space_nodes: + return (self._its_preserve_space_nodes[node] == 'preserve') +- node = node.parent ++ node = node.getparent() + return False + + def get_its_translate(self, node): + if node in self._its_translate_nodes_cache: + return self._its_translate_nodes_cache[node] + val = None +- if node.hasNsProp('translate', NS_ITS): +- val = node.nsProp('translate', NS_ITS) +- elif xml_is_ns_name(node, NS_ITS, 'span') and node.hasNsProp('translate', None): +- val = node.nsProp('translate', None) ++ if '{' + NS_ITS + '}translate' in node.attrib: ++ val = node.get('{' + NS_ITS + '}translate') ++ elif node.tag == '{' + NS_ITS + '}span' and 'translate' in node.attrib: ++ val = node.get('translate') + elif node in self._its_translate_nodes: + val = self._its_translate_nodes[node] + if val is not None: + self._its_translate_nodes_cache[node] = val + return val +- if node.type == 'attribute': ++ if isinstance(node, XMLAttr): + return 'no' +- if node.parent.type == 'element': +- parval = self.get_its_translate(node.parent) ++ if node.getparent() is not None: ++ parval = self.get_its_translate(node.getparent()) + self._its_translate_nodes_cache[node] = parval + return parval + return 'yes' + + def get_its_within_text(self, node): +- if node.hasNsProp('withinText', NS_ITS): +- val = node.nsProp('withinText', NS_ITS) +- elif xml_is_ns_name(node, NS_ITS, 'span') and node.hasNsProp('withinText', None): +- val = node.nsProp('withinText', None) ++ if '{' + NS_ITS + '}withinText' in node.attrib: ++ val = node.get('{' + NS_ITS + '}withinText') ++ elif node.tag == '{' + NS_ITS + '}span' and 'withinText' in node.attrib: ++ val = node.get('withinText') + else: + return self._its_within_text_nodes.get(node, 'no') + if val in ('yes', 'nested'): +@@ -1312,73 +1244,63 @@ class Document (object): + def get_its_locale_filter(self, node): + if node in self._its_locale_filters_cache: + return self._its_locale_filters_cache[node] +- if node.hasNsProp('localeFilterList', NS_ITS) or node.hasNsProp('localeFilterType', NS_ITS): +- if node.hasNsProp('localeFilterList', NS_ITS): +- lst = node.nsProp('localeFilterList', NS_ITS) +- else: +- lst = '*' +- if node.hasNsProp('localeFilterType', NS_ITS): +- typ = node.nsProp('localeFilterType', NS_ITS) +- else: +- typ = 'include' ++ if ('{' + NS_ITS + '}localeFilterList' in node.attrib or ++ '{' + NS_ITS + '}localeFilterType' in node.attrib): ++ lst = node.get('{' + NS_ITS + '}localeFilterList', '*') ++ typ = node.get('{' + NS_ITS + '}localeFilterType', 'include') + return (lst, typ) +- if (xml_is_ns_name(node, NS_ITS, 'span') and +- (node.hasNsProp('localeFilterList', None) or node.hasNsProp('localeFilterType', None))): +- if node.hasNsProp('localeFilterList', None): +- lst = node.nsProp('localeFilterList', None) +- else: +- lst = '*' +- if node.hasNsProp('localeFilterType', None): +- typ = node.nsProp('localeFilterType', None) +- else: +- typ = 'include' ++ if (node.tag == '{' + NS_ITS + '}span' and ++ ('localeFilterList' in node.attrib or 'localeFilterType' in node.attrib)): ++ lst = node.get('localeFilterList', '*') ++ typ = node.get('localeFilterType', 'include') + return (lst, typ) + if node in self._its_locale_filters: + return self._its_locale_filters[node] +- if node.parent.type == 'element': +- parval = self.get_its_locale_filter(node.parent) ++ if node.getparent() is not None: ++ parval = self.get_its_locale_filter(node.getparent()) + self._its_locale_filters_cache[node] = parval + return parval + return ('*', 'include') + + def get_itst_drop(self, node): +- if node.hasNsProp('drop', NS_ITST) and node.nsProp('drop', NS_ITST) == 'yes': ++ if node.get('{' + NS_ITST + '}drop') == 'yes': + return 'yes' + if self._itst_drop_nodes.get(node, 'no') == 'yes': + return 'yes' + return 'no' + + def get_its_id_value(self, node): +- if node.hasNsProp('id', NS_XML): +- return node.nsProp('id', NS_XML) ++ if '{' + NS_XML + '}id' in node.attrib: ++ return node.get('{' + NS_XML + '}id') + return self._its_id_values.get(node, None) + + def get_its_loc_notes(self, node, inherit=True): + if node in self._its_loc_notes_cache: + return self._its_loc_notes_cache[node] + ret = [] +- if ( node.hasNsProp('locNote', NS_ITS) or +- node.hasNsProp('locNoteRef', NS_ITS) or +- node.hasNsProp('locNoteType', NS_ITS) ): +- notetype = node.nsProp('locNoteType', NS_ITS) +- if node.hasNsProp('locNote', NS_ITS): +- ret.append(LocNote(locnote=node.nsProp('locNote', NS_ITS), locnotetype=notetype)) +- elif node.hasNsProp('locNoteRef', NS_ITS): +- ret.append(LocNote(locnoteref=node.nsProp('locNoteRef', NS_ITS), locnotetype=notetype)) +- elif xml_is_ns_name(node, NS_ITS, 'span'): +- if ( node.hasNsProp('locNote', None) or +- node.hasNsProp('locNoteRef', None) or +- node.hasNsProp('locNoteType', None) ): +- notetype = node.nsProp('locNoteType', None) +- if node.hasNsProp('locNote', None): +- ret.append(LocNote(locnote=node.nsProp('locNote', None), locnotetype=notetype)) +- elif node.hasNsProp('locNoteRef', None): +- ret.append(LocNote(locnoteref=node.nsProp('locNoteRef', None), locnotetype=notetype)) ++ if ( '{' + NS_ITS + '}locNote' in node.attrib or ++ '{' + NS_ITS + '}locNoteRef' in node.attrib or ++ '{' + NS_ITS + '}locNoteType' in node.attrib ): ++ notetype = node.get('{' + NS_ITS + '}locNoteType') ++ if '{' + NS_ITS + '}locNote' in node.attrib: ++ ret.append(LocNote(locnote=node.get('{' + NS_ITS + '}locNote'), locnotetype=notetype)) ++ elif '{' + NS_ITS + '}locNoteRef' in node.attrib: ++ ret.append(LocNote(locnoteref=node.get('{' + NS_ITS + '}locNoteRef'), locnotetype=notetype)) ++ elif node.tag == '{' + NS_ITS + '}span': ++ if ( 'locNote' in node.attrib or ++ 'locNoteRef' in node.attrib or ++ 'locNoteType' in node.attrib ): ++ notetype = node.get('locNoteType') ++ if 'locNote' in node.attrib: ++ ret.append(LocNote(locnote=node.get('locNote'), locnotetype=notetype)) ++ elif 'locNoteRef' in node.attrib: ++ ret.append(LocNote(locnoteref=node.get('locNoteRef'), locnotetype=notetype)) + for locnote in reversed(self._its_loc_notes.get(node, [])): + ret.append(locnote) + if (len(ret) == 0 and inherit and +- node.type != 'attribute' and node.parent is not None and node.parent.type == 'element'): +- parval = self.get_its_loc_notes(node.parent) ++ not isinstance(node, XMLAttr) and ++ node.getparent() is not None): ++ parval = self.get_its_loc_notes(node.getparent()) + self._its_loc_notes_cache[node] = parval + return parval + self._its_loc_notes_cache[node] = ret +@@ -1386,12 +1308,12 @@ class Document (object): + + def output_test_data(self, category, out, node=None): + if node is None: +- node = self._doc.getRootElement() ++ node = self._doc.getroot() + compval = '' + if category == 'translate': + compval = 'translate="%s"' % self.get_its_translate(node) + elif category == 'withinText': +- if node.type != 'attribute': ++ if not isinstance(node, XMLAttr): + compval = 'withinText="%s"' % self.get_its_within_text(node) + elif category == 'localeFilter': + compval = 'localeFilterList="%s"\tlocaleFilterType="%s"' % self.get_its_locale_filter(node) +@@ -1422,16 +1344,32 @@ class Document (object): + out.write('%s\t%s\r\n' % (xml_get_node_path(node), compval)) + else: + out.write('%s\r\n' % (xml_get_node_path(node))) +- for attr in sorted(xml_attr_iter(node), key=ustr): ++ for attrname in sorted(node.keys(), key=ustr): ++ attr = XMLAttr(node, attrname) + self.output_test_data(category, out, attr) +- for child in xml_child_iter(node): +- if child.type == 'element': +- self.output_test_data(category, out, child) ++ for child in node.iterchildren(): ++ self.output_test_data(category, out, child) + +- @staticmethod +- def _try_xpath_eval (xpath, expr): ++ def _try_xpath_eval (self, xpath, expr, node=None): ++ if node is None: ++ node = self._doc ++ elif isinstance(node, XMLAttr): ++ # lxml doesn't support attributes as XPath context nodes. ++ if expr == '.': ++ return [ node ] ++ sys.stderr.write('Warning: Unsupported XPath on attribute: %s\n' % expr) ++ return [] + try: +- return xpath.xpathEval(expr) ++ result = node.xpath(expr, namespaces=xpath[0], **xpath[1]) ++ if not isinstance(result, str): ++ for i in range(len(result)): ++ val = result[i] ++ # Use lxml's "smart string" feature to determine ++ # the attribute node. ++ if (isinstance(val, etree._ElementUnicodeResult) and ++ val.is_attribute): ++ result[i] = XMLAttr(val.getparent(), val.attrname) ++ return result + except: + sys.stderr.write('Warning: Invalid XPath: %s\n' % expr) + return [] +@@ -1636,11 +1574,11 @@ if __name__ == '__main__': + raise + sys.stderr.write('Error: Could not merge translations:\n%s\n' % ustr(e)) + sys.exit(1) +- serialized = doc._doc.serialize('utf-8') +- if PY3: +- # For some reason, under py3, our serialized data is returns as a str. +- # Let's encode it to bytes +- serialized = serialized.encode('utf-8') ++ # lxml generates XML declarations with single quotes. ++ serialized = ( ++ b'<?xml version="1.0" encoding="utf-8"?>\n' + ++ etree.tostring(doc._doc, encoding='utf-8') + ++ b'\n') + fout = out + fout_is_str = isinstance(fout, string_types) + if fout_is_str: +@@ -1675,11 +1613,11 @@ if __name__ == '__main__': + for itsfile in opts.itsfile: + doc.apply_its_file(itsfile, userparams=userparams) + doc.join_translations(translations, strict=opts.strict) +- serialized = doc._doc.serialize('utf-8') +- if PY3: +- # For some reason, under py3, our serialized data is returns as a str. +- # Let's encode it to bytes +- serialized = serialized.encode('utf-8') ++ # lxml generates XML declarations with single quotes. ++ serialized = ( ++ b'<?xml version="1.0" encoding="utf-8"?>\n' + ++ etree.tostring(doc._doc, encoding='utf-8') + ++ b'\n') + out.write(serialized) + out.flush() + diff --git a/textproc/jid/Makefile b/textproc/jid/Makefile index 9f92f4d71354..6de4eee55aa6 100644 --- a/textproc/jid/Makefile +++ b/textproc/jid/Makefile @@ -1,7 +1,7 @@ PORTNAME= jid PORTVERSION= 0.7.6 DISTVERSIONPREFIX= v -PORTREVISION= 28 +PORTREVISION= 29 CATEGORIES= textproc MAINTAINER= sbz@FreeBSD.org diff --git a/textproc/jql/Makefile b/textproc/jql/Makefile index ded26afcb5d5..42d51c05ee9b 100644 --- a/textproc/jql/Makefile +++ b/textproc/jql/Makefile @@ -1,7 +1,6 @@ PORTNAME= jql DISTVERSIONPREFIX= jql-v -DISTVERSION= 8.0.7 -PORTREVISION= 1 +DISTVERSION= 8.0.8 CATEGORIES= textproc MAINTAINER= yuri@FreeBSD.org @@ -25,9 +24,10 @@ CARGO_CRATES= addr2line-0.24.2 \ anstyle-parse-0.2.6 \ anstyle-query-1.1.2 \ anstyle-wincon-3.0.6 \ - anyhow-1.0.98 \ + anyhow-1.0.99 \ autocfg-1.4.0 \ backtrace-0.3.74 \ + bitflags-2.9.4 \ bumpalo-3.16.0 \ bytes-1.9.0 \ cast-0.3.0 \ @@ -36,14 +36,14 @@ CARGO_CRATES= addr2line-0.24.2 \ ciborium-0.2.2 \ ciborium-io-0.2.2 \ ciborium-ll-0.2.2 \ - clap-4.5.40 \ - clap_builder-4.5.40 \ - clap_derive-4.5.40 \ + clap-4.5.47 \ + clap_builder-4.5.47 \ + clap_derive-4.5.47 \ clap_lex-0.7.4 \ colorchoice-1.0.3 \ colored_json-5.0.0 \ - criterion-0.6.0 \ - criterion-plot-0.5.0 \ + criterion-0.7.0 \ + criterion-plot-0.6.0 \ crossbeam-deque-0.8.5 \ crossbeam-epoch-0.9.18 \ crossbeam-utils-0.8.20 \ @@ -54,16 +54,17 @@ CARGO_CRATES= addr2line-0.24.2 \ half-2.4.1 \ hashbrown-0.15.2 \ heck-0.5.0 \ - indexmap-2.9.0 \ + indexmap-2.11.0 \ + io-uring-0.7.10 \ is_terminal_polyfill-1.70.1 \ - itertools-0.10.5 \ itertools-0.13.0 \ itoa-1.0.14 \ js-sys-0.3.74 \ - libc-0.2.167 \ + libc-0.2.175 \ log-0.4.22 \ memchr-2.7.4 \ miniz_oxide-0.8.0 \ + mio-1.0.4 \ num-traits-0.2.19 \ object-0.36.5 \ once_cell-1.20.2 \ @@ -75,8 +76,8 @@ CARGO_CRATES= addr2line-0.24.2 \ proc-macro2-1.0.92 \ psm-0.1.24 \ quote-1.0.37 \ - rayon-1.10.0 \ - rayon-core-1.12.1 \ + rayon-1.11.0 \ + rayon-core-1.13.0 \ regex-1.11.1 \ regex-automata-0.4.9 \ regex-syntax-0.8.5 \ @@ -85,20 +86,22 @@ CARGO_CRATES= addr2line-0.24.2 \ same-file-1.0.6 \ serde-1.0.219 \ serde_derive-1.0.219 \ - serde_json-1.0.140 \ + serde_json-1.0.143 \ serde_stacker-0.1.12 \ shlex-1.3.0 \ + slab-0.4.11 \ stacker-0.1.17 \ strsim-0.11.1 \ syn-2.0.90 \ - thiserror-2.0.12 \ - thiserror-impl-2.0.12 \ + thiserror-2.0.16 \ + thiserror-impl-2.0.16 \ tinytemplate-1.2.1 \ - tokio-1.45.1 \ + tokio-1.47.1 \ tokio-macros-2.5.0 \ unicode-ident-1.0.14 \ utf8parse-0.2.2 \ walkdir-2.5.0 \ + wasi-0.11.1+wasi-snapshot-preview1 \ wasm-bindgen-0.2.97 \ wasm-bindgen-backend-0.2.97 \ wasm-bindgen-macro-0.2.97 \ @@ -116,7 +119,7 @@ CARGO_CRATES= addr2line-0.24.2 \ windows_x86_64_gnu-0.52.6 \ windows_x86_64_gnullvm-0.52.6 \ windows_x86_64_msvc-0.52.6 \ - winnow-0.7.11 \ + winnow-0.7.13 \ yansi-1.0.1 PLIST_FILES= bin/${PORTNAME} diff --git a/textproc/jql/distinfo b/textproc/jql/distinfo index 4a28d4c94810..2fe8d26d571c 100644 --- a/textproc/jql/distinfo +++ b/textproc/jql/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1753124573 +TIMESTAMP = 1756969445 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 @@ -17,12 +17,14 @@ SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d6789 SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969 SHA256 (rust/crates/anstyle-wincon-3.0.6.crate) = 2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125 SIZE (rust/crates/anstyle-wincon-3.0.6.crate) = 12271 -SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487 -SIZE (rust/crates/anyhow-1.0.98.crate) = 53334 +SHA256 (rust/crates/anyhow-1.0.99.crate) = b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100 +SIZE (rust/crates/anyhow-1.0.99.crate) = 53809 SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a SIZE (rust/crates/backtrace-0.3.74.crate) = 88516 +SHA256 (rust/crates/bitflags-2.9.4.crate) = 2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394 +SIZE (rust/crates/bitflags-2.9.4.crate) = 47950 SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677 SHA256 (rust/crates/bytes-1.9.0.crate) = 325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b @@ -39,22 +41,22 @@ SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce369 SIZE (rust/crates/ciborium-io-0.2.2.crate) = 6697 SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9 SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695 -SHA256 (rust/crates/clap-4.5.40.crate) = 40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f -SIZE (rust/crates/clap-4.5.40.crate) = 57419 -SHA256 (rust/crates/clap_builder-4.5.40.crate) = e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e -SIZE (rust/crates/clap_builder-4.5.40.crate) = 169191 -SHA256 (rust/crates/clap_derive-4.5.40.crate) = d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce -SIZE (rust/crates/clap_derive-4.5.40.crate) = 33470 +SHA256 (rust/crates/clap-4.5.47.crate) = 7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931 +SIZE (rust/crates/clap-4.5.47.crate) = 58354 +SHA256 (rust/crates/clap_builder-4.5.47.crate) = 2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6 +SIZE (rust/crates/clap_builder-4.5.47.crate) = 170016 +SHA256 (rust/crates/clap_derive-4.5.47.crate) = bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c +SIZE (rust/crates/clap_derive-4.5.47.crate) = 33550 SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990 SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923 SHA256 (rust/crates/colored_json-5.0.0.crate) = e35980a1b846f8e3e359fd18099172a0857140ba9230affc4f71348081e039b6 SIZE (rust/crates/colored_json-5.0.0.crate) = 12318 -SHA256 (rust/crates/criterion-0.6.0.crate) = 3bf7af66b0989381bd0be551bd7cc91912a655a58c6918420c9527b1fd8b4679 -SIZE (rust/crates/criterion-0.6.0.crate) = 119470 -SHA256 (rust/crates/criterion-plot-0.5.0.crate) = 6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1 -SIZE (rust/crates/criterion-plot-0.5.0.crate) = 22706 +SHA256 (rust/crates/criterion-0.7.0.crate) = e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928 +SIZE (rust/crates/criterion-0.7.0.crate) = 119908 +SHA256 (rust/crates/criterion-plot-0.6.0.crate) = 9b1bcc0dc7dfae599d84ad0b1a55f80cde8af3725da8313b528da95ef783e338 +SIZE (rust/crates/criterion-plot-0.6.0.crate) = 24495 SHA256 (rust/crates/crossbeam-deque-0.8.5.crate) = 613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d SIZE (rust/crates/crossbeam-deque-0.8.5.crate) = 21726 SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e @@ -75,26 +77,28 @@ SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3f SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478 SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea SIZE (rust/crates/heck-0.5.0.crate) = 11517 -SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e -SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 +SHA256 (rust/crates/indexmap-2.11.0.crate) = f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9 +SIZE (rust/crates/indexmap-2.11.0.crate) = 99851 +SHA256 (rust/crates/io-uring-0.7.10.crate) = 046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b +SIZE (rust/crates/io-uring-0.7.10.crate) = 103070 SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 -SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473 -SIZE (rust/crates/itertools-0.10.5.crate) = 115354 SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186 SIZE (rust/crates/itertools-0.13.0.crate) = 146261 SHA256 (rust/crates/itoa-1.0.14.crate) = d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674 SIZE (rust/crates/itoa-1.0.14.crate) = 11210 SHA256 (rust/crates/js-sys-0.3.74.crate) = a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705 SIZE (rust/crates/js-sys-0.3.74.crate) = 54505 -SHA256 (rust/crates/libc-0.2.167.crate) = 09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc -SIZE (rust/crates/libc-0.2.167.crate) = 757723 +SHA256 (rust/crates/libc-0.2.175.crate) = 6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543 +SIZE (rust/crates/libc-0.2.175.crate) = 788728 SHA256 (rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24 SIZE (rust/crates/log-0.4.22.crate) = 44027 SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 SIZE (rust/crates/memchr-2.7.4.crate) = 96670 SHA256 (rust/crates/miniz_oxide-0.8.0.crate) = e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1 SIZE (rust/crates/miniz_oxide-0.8.0.crate) = 56343 +SHA256 (rust/crates/mio-1.0.4.crate) = 78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c +SIZE (rust/crates/mio-1.0.4.crate) = 104212 SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 SIZE (rust/crates/num-traits-0.2.19.crate) = 51631 SHA256 (rust/crates/object-0.36.5.crate) = aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e @@ -117,10 +121,10 @@ SHA256 (rust/crates/psm-0.1.24.crate) = 200b9ff220857e53e184257720a14553b2f4aa02 SIZE (rust/crates/psm-0.1.24.crate) = 23294 SHA256 (rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af SIZE (rust/crates/quote-1.0.37.crate) = 28558 -SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa -SIZE (rust/crates/rayon-1.10.0.crate) = 180155 -SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2 -SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701 +SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f +SIZE (rust/crates/rayon-1.11.0.crate) = 182470 +SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91 +SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151 SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 SIZE (rust/crates/regex-1.11.1.crate) = 254170 SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908 @@ -137,26 +141,28 @@ SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854 SIZE (rust/crates/serde-1.0.219.crate) = 78983 SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 -SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 -SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 +SHA256 (rust/crates/serde_json-1.0.143.crate) = d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a +SIZE (rust/crates/serde_json-1.0.143.crate) = 155342 SHA256 (rust/crates/serde_stacker-0.1.12.crate) = 69c8defe6c780725cce4ec6ad3bd91e321baf6fa4e255df1f31e345d507ef01a SIZE (rust/crates/serde_stacker-0.1.12.crate) = 12975 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589 +SIZE (rust/crates/slab-0.4.11.crate) = 18549 SHA256 (rust/crates/stacker-0.1.17.crate) = 799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b SIZE (rust/crates/stacker-0.1.17.crate) = 14699 SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f SIZE (rust/crates/strsim-0.11.1.crate) = 14266 SHA256 (rust/crates/syn-2.0.90.crate) = 919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31 SIZE (rust/crates/syn-2.0.90.crate) = 290584 -SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 -SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 -SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d -SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 +SHA256 (rust/crates/thiserror-2.0.16.crate) = 3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0 +SIZE (rust/crates/thiserror-2.0.16.crate) = 29095 +SHA256 (rust/crates/thiserror-impl-2.0.16.crate) = 6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960 +SIZE (rust/crates/thiserror-impl-2.0.16.crate) = 21214 SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490 -SHA256 (rust/crates/tokio-1.45.1.crate) = 75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779 -SIZE (rust/crates/tokio-1.45.1.crate) = 811787 +SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038 +SIZE (rust/crates/tokio-1.47.1.crate) = 829790 SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 SHA256 (rust/crates/unicode-ident-1.0.14.crate) = adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83 @@ -165,6 +171,8 @@ SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faec SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499 SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b SIZE (rust/crates/walkdir-2.5.0.crate) = 23951 +SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b +SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477 SHA256 (rust/crates/wasm-bindgen-0.2.97.crate) = d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c SIZE (rust/crates/wasm-bindgen-0.2.97.crate) = 45515 SHA256 (rust/crates/wasm-bindgen-backend-0.2.97.crate) = 8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd @@ -199,9 +207,9 @@ SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681 SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 -SHA256 (rust/crates/winnow-0.7.11.crate) = 74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd -SIZE (rust/crates/winnow-0.7.11.crate) = 174175 +SHA256 (rust/crates/winnow-0.7.13.crate) = 21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf +SIZE (rust/crates/winnow-0.7.13.crate) = 174454 SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049 SIZE (rust/crates/yansi-1.0.1.crate) = 75497 -SHA256 (yamafaktory-jql-jql-v8.0.7_GH0.tar.gz) = 05448d17d1036373633e0d6a4556481ccc3b309832bdc9363d4c6f5d9d4311a4 -SIZE (yamafaktory-jql-jql-v8.0.7_GH0.tar.gz) = 447569 +SHA256 (yamafaktory-jql-jql-v8.0.8_GH0.tar.gz) = acb621bbfc26e44c2a0518e56a57ba67e8faee79c31f744e13cdc5f529a213b8 +SIZE (yamafaktory-jql-jql-v8.0.8_GH0.tar.gz) = 447809 diff --git a/textproc/kepubify/Makefile b/textproc/kepubify/Makefile index fc67b7e21d61..7411a623ccd6 100644 --- a/textproc/kepubify/Makefile +++ b/textproc/kepubify/Makefile @@ -1,7 +1,7 @@ PORTNAME= kepubify DISTVERSIONPREFIX= v DISTVERSION= 4.0.4 -PORTREVISION= 28 +PORTREVISION= 29 CATEGORIES= textproc converters MAINTAINER= fuz@FreeBSD.org diff --git a/textproc/kibana8/Makefile b/textproc/kibana8/Makefile index b253abe594bd..86e36625a02c 100644 --- a/textproc/kibana8/Makefile +++ b/textproc/kibana8/Makefile @@ -1,5 +1,6 @@ PORTNAME= kibana DISTVERSION= 8.11.3 +PORTREVISION= 1 DISTVERSIONSUFFIX= -linux-x86_64 CATEGORIES= textproc www MASTER_SITES= https://artifacts.elastic.co/downloads/kibana/ \ @@ -13,15 +14,12 @@ WWW= https://www.elastic.co/products/kibana LICENSE= APACHE20 -DEPRECATED= Depends on expired www/*node18 -EXPIRATION_DATE=2025-09-01 - -BUILD_DEPENDS= npm-node18>=9.7.2:www/npm-node18 +BUILD_DEPENDS= npm-node20>=9.7.2:www/npm-node20 LIB_DEPENDS= libre2.so:devel/re2 \ libuv.so:devel/libuv -RUN_DEPENDS= ${LOCALBASE}/bin/node:www/node18 +RUN_DEPENDS= ${LOCALBASE}/bin/node:www/node20 -USES= compiler:c++17-lang cpe nodejs:18,build,run python:build +USES= compiler:c++17-lang cpe nodejs:20,build,run python:build CPE_VENDOR= elastic USE_GITHUB= nodefault diff --git a/textproc/link-grammar/Makefile b/textproc/link-grammar/Makefile index 39948ec304c6..4f6589a90884 100644 --- a/textproc/link-grammar/Makefile +++ b/textproc/link-grammar/Makefile @@ -1,6 +1,5 @@ PORTNAME= link-grammar -DISTVERSION= 5.10.5 -PORTREVISION= 2 +DISTVERSION= 5.12.5 CATEGORIES= textproc MASTER_SITES= https://www.gnucash.org/${PORTNAME}/downloads/${PORTVERSION}/ @@ -26,7 +25,7 @@ LIB_DEPENDS= libpcre2-8.so:devel/pcre2 PLIST_SUB= VERSION=${PORTVERSION} OPTIONS_SUB= yes -OPTIONS_DEFINE= EDITLINE JAVA PERL SAT_SOLVER PYTHON +OPTIONS_DEFINE= EDITLINE JAVA PERL SAT_SOLVER OPTIONS_DEFAULT= EDITLINE HUNSPELL SAT_SOLVER OPTIONS_MULTI= SPELL @@ -54,7 +53,4 @@ SAT_SOLVER_CONFIGURE_ENABLE= sat-solver SAT_SOLVER_DESC= Use boolean SAT parser SAT_SOLVER_LIB_DEPENDS= libminisat.so:math/minisat -post-install: - @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/liblink-grammar.so.${DISTVERSION} # see https://github.com/opencog/link-grammar/issues/645 - .include <bsd.port.mk> diff --git a/textproc/link-grammar/distinfo b/textproc/link-grammar/distinfo index 985e37b63df0..a32a516e4f17 100644 --- a/textproc/link-grammar/distinfo +++ b/textproc/link-grammar/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1656160404 -SHA256 (link-grammar-5.10.5.tar.gz) = 324710cd8132975ff9ccb53509732f7558473b1c19f17892000a3dedb8618aed -SIZE (link-grammar-5.10.5.tar.gz) = 4637765 +TIMESTAMP = 1754743831 +SHA256 (link-grammar-5.12.5.tar.gz) = adf7e60a40248e261dd159b948ad6c6b8cd4f99142525888081dca140395da34 +SIZE (link-grammar-5.12.5.tar.gz) = 4727809 diff --git a/textproc/link-grammar/pkg-plist b/textproc/link-grammar/pkg-plist index 6074ba87cafa..23136aca5b46 100644 --- a/textproc/link-grammar/pkg-plist +++ b/textproc/link-grammar/pkg-plist @@ -1,6 +1,7 @@ bin/link-generator bin/link-parser include/link-grammar/dict-api.h +include/link-grammar/dict-atomese.h include/link-grammar/dict-structures.h include/link-grammar/link-features.h include/link-grammar/link-includes.h @@ -76,6 +77,9 @@ libdata/pkgconfig/link-grammar.pc %%DATADIR%%/de/4.0.dict %%DATADIR%%/de/4.0.knowledge %%DATADIR%%/de/4.0.regex +%%DATADIR%%/demo-atomese/4.0.affix +%%DATADIR%%/demo-atomese/atomese-dict.scm +%%DATADIR%%/demo-atomese/storage.dict %%DATADIR%%/demo-sql/4.0.affix %%DATADIR%%/demo-sql/4.0.constituent-knowledge %%DATADIR%%/demo-sql/4.0.knowledge @@ -139,6 +143,7 @@ libdata/pkgconfig/link-grammar.pc %%DATADIR%%/en/words/words.n.3-const %%DATADIR%%/en/words/words.n.3-vowel %%DATADIR%%/en/words/words.n.3.y +%%DATADIR%%/en/words/words.n.4-const %%DATADIR%%/en/words/words.n.t %%DATADIR%%/en/words/words.v.1.1 %%DATADIR%%/en/words/words.v.1.2 diff --git a/textproc/linux-rl9-libxml2/Makefile b/textproc/linux-rl9-libxml2/Makefile index 88e995c000d0..8ec5a8749b64 100644 --- a/textproc/linux-rl9-libxml2/Makefile +++ b/textproc/linux-rl9-libxml2/Makefile @@ -1,7 +1,7 @@ PORTNAME= libxml2 PORTVERSION= 2.9.13 -DISTVERSIONSUFFIX= -9.el9_6 -PORTREVISION= 7 +DISTVERSIONSUFFIX= -12.el9_6 +PORTREVISION= 8 CATEGORIES= textproc linux MAINTAINER= emulation@FreeBSD.org diff --git a/textproc/linux-rl9-libxml2/distinfo b/textproc/linux-rl9-libxml2/distinfo index 8ff3cb96a081..b4585099e48c 100644 --- a/textproc/linux-rl9-libxml2/distinfo +++ b/textproc/linux-rl9-libxml2/distinfo @@ -1,9 +1,9 @@ -TIMESTAMP = 1750640320 -SHA256 (rocky/l/libxml2-2.9.13-9.el9_6.aarch64.rpm) = fe512f3279b1b814caea17e5673d6cdba945b87257881e76ca67e9e44596e213 -SIZE (rocky/l/libxml2-2.9.13-9.el9_6.aarch64.rpm) = 746007 -SHA256 (rocky/l/libxml2-2.9.13-9.el9_6.i686.rpm) = ee3f310cba35d537a6d3c2def4ebbbd5272fe3db4e646021e59bfe62405c4232 -SIZE (rocky/l/libxml2-2.9.13-9.el9_6.i686.rpm) = 802196 -SHA256 (rocky/l/libxml2-2.9.13-9.el9_6.x86_64.rpm) = b396d041086c62dc315b697b34d9eed7a771999f10d86be1f37840adeba51da8 -SIZE (rocky/l/libxml2-2.9.13-9.el9_6.x86_64.rpm) = 763753 -SHA256 (rocky/l/libxml2-2.9.13-9.el9_6.src.rpm) = 4478c3f8fd5b3be120ae47c3aaff2e0b619ce2369fc891659db33c7629273fa5 -SIZE (rocky/l/libxml2-2.9.13-9.el9_6.src.rpm) = 3274891 +TIMESTAMP = 1757066192 +SHA256 (rocky/l/libxml2-2.9.13-12.el9_6.aarch64.rpm) = 68d659198ec432321b37ae8c4bbf3e1e04a3b6d875cab21125f1859af25baa1d +SIZE (rocky/l/libxml2-2.9.13-12.el9_6.aarch64.rpm) = 746118 +SHA256 (rocky/l/libxml2-2.9.13-12.el9_6.i686.rpm) = a265e2ebb73add49359f3865e8884e48124e8ce82e21af90f70f98a5e4118bbf +SIZE (rocky/l/libxml2-2.9.13-12.el9_6.i686.rpm) = 802620 +SHA256 (rocky/l/libxml2-2.9.13-12.el9_6.x86_64.rpm) = 10a8bd5bf4bbc1cf043bdc54860c51b5cf0b37e9f753c1098b35bc0de7bb3435 +SIZE (rocky/l/libxml2-2.9.13-12.el9_6.x86_64.rpm) = 763770 +SHA256 (rocky/l/libxml2-2.9.13-12.el9_6.src.rpm) = a4af001d40765ac975ff56cc37e42b726845b3346f8996f34bb9fb373942f419 +SIZE (rocky/l/libxml2-2.9.13-12.el9_6.src.rpm) = 3285239 diff --git a/textproc/markdownfmt/Makefile b/textproc/markdownfmt/Makefile index 2f3813ff8c9f..1a7bae3a3c3e 100644 --- a/textproc/markdownfmt/Makefile +++ b/textproc/markdownfmt/Makefile @@ -2,7 +2,7 @@ PORTNAME= markdownfmt DISTVERSIONPREFIX= v DISTVERSION= 1.1-67 DISTVERSIONSUFFIX= -g3438a10 -PORTREVISION= 30 +PORTREVISION= 31 CATEGORIES= textproc MAINTAINER= 0mp@FreeBSD.org diff --git a/textproc/md2roff/Makefile b/textproc/md2roff/Makefile index 48f43ef7257f..96514acbcb9d 100644 --- a/textproc/md2roff/Makefile +++ b/textproc/md2roff/Makefile @@ -2,7 +2,7 @@ PORTNAME= md2roff DISTVERSIONPREFIX= v DISTVERSION= 2.14.3-0.20200416233007 DISTVERSIONSUFFIX= -c4dfa597b8d5 -PORTREVISION= 14 +PORTREVISION= 15 CATEGORIES= textproc print MAINTAINER= fuz@FreeBSD.org diff --git a/textproc/mdtt/Makefile b/textproc/mdtt/Makefile index cbae195165d7..55817e6eb6dd 100644 --- a/textproc/mdtt/Makefile +++ b/textproc/mdtt/Makefile @@ -1,7 +1,7 @@ PORTNAME= mdtt DISTVERSIONPREFIX= v DISTVERSION= 0.3.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= textproc MAINTAINER= olgeni@FreeBSD.org diff --git a/textproc/miller/Makefile b/textproc/miller/Makefile index bded2755c616..cd642cb47737 100644 --- a/textproc/miller/Makefile +++ b/textproc/miller/Makefile @@ -1,7 +1,7 @@ PORTNAME= miller DISTVERSIONPREFIX= v DISTVERSION= 6.13.0 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= textproc MASTER_SITES= https://raw.githubusercontent.com/johnkerl/${PORTNAME}/${DISTVERSIONFULL}/:gomod DISTFILES= go.mod:gomod diff --git a/textproc/minify/Makefile b/textproc/minify/Makefile index b33b0b16f1a4..4497b214a850 100644 --- a/textproc/minify/Makefile +++ b/textproc/minify/Makefile @@ -1,7 +1,7 @@ PORTNAME= minify PORTVERSION= 2.20.37 DISTVERSIONPREFIX= v -PORTREVISION= 7 +PORTREVISION= 8 CATEGORIES= textproc www MAINTAINER= sunpoet@FreeBSD.org diff --git a/textproc/nerdlog/Makefile b/textproc/nerdlog/Makefile index 12535b5cd52b..004d8bfa4fc5 100644 --- a/textproc/nerdlog/Makefile +++ b/textproc/nerdlog/Makefile @@ -1,7 +1,7 @@ PORTNAME= nerdlog DISTVERSIONPREFIX= v DISTVERSION= 1.10.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= textproc MAINTAINER= lwhsu@FreeBSD.org diff --git a/textproc/opensearch-dashboards210/Makefile b/textproc/opensearch-dashboards210/Makefile deleted file mode 100644 index 704005f50f67..000000000000 --- a/textproc/opensearch-dashboards210/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -DISTVERSION= 2.10.0 - -PORTREVISION= 1 - -PKGNAMESUFFIX= 210 - -COMMENT= Visualization dashboards for OpenSearch - -CONFLICTS= opensearch-dashboards opensearch-dashboards213 opensearch-dashboards216 - -DISTINFO_FILE= ${.CURDIR}/distinfo - -MASTERDIR= ${.CURDIR}/../../textproc/opensearch-dashboards216 - -.include "${MASTERDIR}/Makefile" diff --git a/textproc/opensearch-dashboards210/distinfo b/textproc/opensearch-dashboards210/distinfo deleted file mode 100644 index 8153ae230e27..000000000000 --- a/textproc/opensearch-dashboards210/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1702759624 -SHA256 (opensearch-dashboards-2.10.0-linux-x64.tar.gz) = df1463540f3831de79ceb03cf2d4c691ac4f63b244943fb84ca67636877bb6d1 -SIZE (opensearch-dashboards-2.10.0-linux-x64.tar.gz) = 324084481 diff --git a/textproc/opensearch-dashboards213/Makefile b/textproc/opensearch-dashboards213/Makefile deleted file mode 100644 index 1dd11446754c..000000000000 --- a/textproc/opensearch-dashboards213/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -DISTVERSION= 2.13.0 - -PORTREVISION= 1 - -PKGNAMESUFFIX= 213 - -COMMENT= Visualization dashboards for OpenSearch - -CONFLICTS= opensearch-dashboards opensearch-dashboards210 - -DISTINFO_FILE= ${.CURDIR}/distinfo - -MASTERDIR= ${.CURDIR}/../../textproc/opensearch-dashboards216 - -.include "${MASTERDIR}/Makefile" diff --git a/textproc/opensearch-dashboards213/distinfo b/textproc/opensearch-dashboards213/distinfo deleted file mode 100644 index 9d1adcd3dff1..000000000000 --- a/textproc/opensearch-dashboards213/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1732498735 -SHA256 (opensearch-dashboards-2.13.0-linux-x64.tar.gz) = 97264961f3913d627dda1dcf6088a656de161a96ba77e65902d49d4c029374a7 -SIZE (opensearch-dashboards-2.13.0-linux-x64.tar.gz) = 319095349 diff --git a/textproc/opensearch-dashboards216/Makefile b/textproc/opensearch-dashboards216/Makefile deleted file mode 100644 index 227521da1181..000000000000 --- a/textproc/opensearch-dashboards216/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -PORTNAME= opensearch-dashboards -DISTVERSION?= 2.16.0 -PORTREVISION?= 0 -DISTVERSIONSUFFIX= -linux-x64 -CATEGORIES= textproc www -MASTER_SITES= https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${DISTVERSION}/ -PKGNAMESUFFIX?= 216 - -MAINTAINER= opensearch@FreeBSD.org -COMMENT?= Visualization dashboards for OpenSearch -WWW= https://opensearch.org - -LICENSE= APACHE20 -LICENSE_FILE= ${WRKSRC}/LICENSE.txt - -DEPRECATED= Depends on expired www/npm-node18 -EXPIRATION_DATE=2025-09-01 - -CONFLICTS?= opensearch-dashboards opensearch-dashboards210 opensearch-dashboards213 - -BUILD_DEPENDS= npm-node18>0:www/npm-node18 - -USES= nodejs:18,build,run python:build -USE_RC_SUBR= ${PORTNAME} - -SUB_FILES= pkg-deinstall -SUB_LIST= PORTNAME="${PORTNAME}" \ - PKGNAMESUFFIX="${PKGNAMESUFFIX}" \ - WWWDIR=${WWWDIR} - -WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} - -NODE_VER= 18.18.0 -NO_BUILD= yes - -_DEVDIR= ${WRKDIR}/.devdir - -post-patch: - @${REINPLACE_CMD} -e 's|14.20.1|${NODE_VER}|g' ${WRKSRC}/package.json - ${RM} \ - ${WRKSRC}/bin/*.orig \ - ${WRKSRC}/bin/*.bak \ - ${WRKSRC}/package.json.bak - ${RM} -r ${WRKSRC}/plugins/reportsDashboards/.chromium - -do-install: - ${MKDIR} ${STAGEDIR}${WWWDIR} ${STAGEDIR}${ETCDIR} - ${INSTALL_DATA} ${WRKSRC}/config/opensearch_dashboards.yml ${STAGEDIR}${ETCDIR}/opensearch_dashboards.yml.sample - (cd ${WRKSRC} && \ - ${COPYTREE_SHARE} "data node_modules package.json plugins src" ${STAGEDIR}${WWWDIR} && \ - ${COPYTREE_BIN} bin ${STAGEDIR}${WWWDIR}) - -post-install: - ${ECHO} "@sample ${ETCDIR}/opensearch_dashboards.yml.sample" >> ${TMPPLIST} - ${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \ - ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST} - ${ECHO} "@dir(www,www) ${WWWDIR}/data" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/legacy" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/fixed" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/dynamic" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/examples/fixed" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/examples/dynamic" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/observabilityDashboards/server/adaptors/integrations/__test__" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/observabilityDashboards/server/adaptors/integrations/repository/__test__" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Alerts/components/AlertFlyout" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/CreateDetector/components/ConfigureAlerts/components/AlertCondition" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/AlertTriggerView" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/DetectorBasicDetailsView" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/DetectorRulesView" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/FieldMappingsView" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/UpdateAlertConditions" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/UpdateDetectorBasicDetails" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/UpdateDetectorRules" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/UpdateFieldMappings" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/AlertTriggersView" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/DetectorDetails" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/DetectorDetailsView" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/Detectors" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/EditFieldMappings" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Rules/components/DeleteModal" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Rules/components/RuleEditor/components" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Rules/components/RulesTable" >> ${TMPPLIST} - ${ECHO} "@dir ${WWWDIR}/plugins/securityDashboards/server/multitenancy/test" >> ${TMPPLIST} - -.include <bsd.port.mk> diff --git a/textproc/opensearch-dashboards216/distinfo b/textproc/opensearch-dashboards216/distinfo deleted file mode 100644 index 9bd52da5a3f6..000000000000 --- a/textproc/opensearch-dashboards216/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1746825057 -SHA256 (opensearch-dashboards-2.16.0-linux-x64.tar.gz) = e3ebdd00c21cf7508609c93bfca5aa3d99b66a2681add231af38383bed33d12a -SIZE (opensearch-dashboards-2.16.0-linux-x64.tar.gz) = 327600245 diff --git a/textproc/opensearch-dashboards216/files/opensearch-dashboards.in b/textproc/opensearch-dashboards216/files/opensearch-dashboards.in deleted file mode 100644 index 7043fa9301a9..000000000000 --- a/textproc/opensearch-dashboards216/files/opensearch-dashboards.in +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -# PROVIDE: opensearch_dashboards -# REQUIRE: DAEMON -# BEFORE: LOGIN -# KEYWORD: shutdown - -. /etc/rc.subr - -name=opensearch_dashboards -rcvar=opensearch_dashboards_enable - -load_rc_config $name - -: ${opensearch_dashboards_enable:="NO"} -: ${opensearch_dashboards_config:="%%ETCDIR%%/opensearch_dashboards.yml"} -: ${opensearch_dashboards_user:="www"} -: ${opensearch_dashboards_group:="www"} -: ${opensearch_dashboards_log:="/var/log/opensearch_dashboards.log"} -: ${opensearch_dashboards_syslog_output_enable:="NO"} - -start_precmd="opensearch_dashboards_start_precmd" -reload_cmd="opensearch_dashboards_reload_cmd" -extra_commands="reload" - -if checkyesno opensearch_dashboards_syslog_output_enable; then - if [ -n "${opensearch_dashboards_syslog_output_tag}" ]; then - opensearch_dashboards_syslog_output_flags="-T ${opensearch_dashboards_syslog_output_tag}" - else - opensearch_dashboards_syslog_output_flags="-T ${name}" - fi - if [ -n "${opensearch_dashboards_syslog_output_priority}" ]; then - opensearch_dashboards_syslog_output_flags="${opensearch_dashboards_syslog_output_flags} -s ${opensearch_dashboards_syslog_output_priority}" - fi - if [ -n "${opensearch_dashboards_syslog_output_facility}" ]; then - opensearch_dashboards_syslog_output_flags="${opensearch_dashboards_syslog_output_flags} -l ${opensearch_dashboards_syslog_output_facility}" - fi -fi - -NODE="%%LOCALBASE%%/bin/node" - -required_files="${opensearch_dashboards_config}" -pidfile="/var/run/${name}.pid" - -command="/usr/sbin/daemon" -command_args="-f ${opensearch_dashboards_syslog_output_flags} -P ${pidfile} -t ${name} \ - /usr/bin/env NODE_ENV=production ${opensearch_dashboards_env} \ - ${NODE} %%WWWDIR%%/src/cli/dist serve \ - --config ${opensearch_dashboards_config} --log-file ${opensearch_dashboards_log} \ - ${opensearch_dashboards_args}" - -opensearch_dashboards_start_precmd() -{ - if [ ! -e "${pidfile}" ]; then - install -m 0600 -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_group} /dev/null ${pidfile} - fi - if [ ! -f ${opensearch_dashboards_log} ]; then - install -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_group} -m 640 /dev/null ${opensearch_dashboards_log} - fi - if [ ! -d %%WWWDIR%%/optimize ]; then - install -d -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_group} %%WWWDIR%%/optimize - else - # We may have installed a plugin as root which will cause files in here - # to be owned by root:wheel. Fix with a chown. - chown -R ${opensearch_dashboards_user}:${opensearch_dashboards_group} %%WWWDIR%%/optimize - fi -} - -opensearch_dashboards_reload_cmd() -{ - if [ -z "$rc_pid" ]; then - _run_rc_notrunning - return 1 - else - pkill -HUP -P ${rc_pid} - fi -} - -run_rc_command "$1" diff --git a/textproc/opensearch-dashboards216/files/pkg-deinstall.in b/textproc/opensearch-dashboards216/files/pkg-deinstall.in deleted file mode 100644 index 0699ab559805..000000000000 --- a/textproc/opensearch-dashboards216/files/pkg-deinstall.in +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -case "$2" in -POST-DEINSTALL) - if [ -d %%WWWDIR%%/optimize ]; then - /usr/bin/find %%WWWDIR%%/optimize/ -delete - fi - - cat <<EOMSG - -If %%PORTNAME%%%%PKGNAMESUFFIX%% is being deleted permanently, and you do not wish to keep any -data that was in the cluster, then you may wish to delete the -%%WWWDIR%% directory. This can be done by with the command: - - # rm -rf %%WWWDIR%% - -Please ignore this if %%PORTNAME%%%%PKGNAMESUFFIX%% is being upgraded -EOMSG - ;; -esac diff --git a/textproc/opensearch-dashboards216/pkg-descr b/textproc/opensearch-dashboards216/pkg-descr deleted file mode 100644 index 2669760829b1..000000000000 --- a/textproc/opensearch-dashboards216/pkg-descr +++ /dev/null @@ -1,3 +0,0 @@ -OpenSearch Dashboards is the default visualization tool for data in OpenSearch. -It also serves as a user interface for many of the OpenSearch plugins, -including security, alerting, Index State Management, SQL, and more. diff --git a/textproc/ov/Makefile b/textproc/ov/Makefile index 6721f6f4871a..660ed75c2a76 100644 --- a/textproc/ov/Makefile +++ b/textproc/ov/Makefile @@ -1,7 +1,7 @@ PORTNAME= ov DISTVERSIONPREFIX= v DISTVERSION= 0.15.0 -PORTREVISION= 17 +PORTREVISION= 18 CATEGORIES= textproc MAINTAINER= lcook@FreeBSD.org diff --git a/textproc/peco/Makefile b/textproc/peco/Makefile index 6641350fe7a6..d30b4f35e1f3 100644 --- a/textproc/peco/Makefile +++ b/textproc/peco/Makefile @@ -1,7 +1,7 @@ PORTNAME= peco DISTVERSIONPREFIX= v DISTVERSION= 0.5.11 -PORTREVISION= 17 +PORTREVISION= 18 CATEGORIES= textproc MAINTAINER= tagattie@FreeBSD.org diff --git a/textproc/pup/Makefile b/textproc/pup/Makefile index 3e5e5bb18d7d..d00820c403bf 100644 --- a/textproc/pup/Makefile +++ b/textproc/pup/Makefile @@ -2,7 +2,7 @@ PORTNAME= pup DISTVERSIONPREFIX= v DISTVERSION= 0.4.0-10 DISTVERSIONSUFFIX= -g681d7bb -PORTREVISION= 29 +PORTREVISION= 30 CATEGORIES= textproc PATCH_SITES= https://github.com/ericchiang/pup/pull/ PATCHFILES= 107.patch:-p1 \ diff --git a/textproc/py-charset-normalizer/Makefile b/textproc/py-charset-normalizer/Makefile index f588d08bedc4..9f737e705d69 100644 --- a/textproc/py-charset-normalizer/Makefile +++ b/textproc/py-charset-normalizer/Makefile @@ -1,5 +1,5 @@ PORTNAME= charset-normalizer -PORTVERSION= 3.4.2 +PORTVERSION= 3.4.3 CATEGORIES= textproc python MASTER_SITES= PYPI \ https://github.com/jawah/charset_normalizer/releases/download/${PORTVERSION}/ diff --git a/textproc/py-charset-normalizer/distinfo b/textproc/py-charset-normalizer/distinfo index 156ab3cfccea..50827d200a14 100644 --- a/textproc/py-charset-normalizer/distinfo +++ b/textproc/py-charset-normalizer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747546584 -SHA256 (charset_normalizer-3.4.2.tar.gz) = 5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63 -SIZE (charset_normalizer-3.4.2.tar.gz) = 126367 +TIMESTAMP = 1755062578 +SHA256 (charset_normalizer-3.4.3.tar.gz) = 6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14 +SIZE (charset_normalizer-3.4.3.tar.gz) = 122371 diff --git a/textproc/py-charset-normalizer/files/patch-pyproject.toml b/textproc/py-charset-normalizer/files/patch-pyproject.toml deleted file mode 100644 index 53436d36b469..000000000000 --- a/textproc/py-charset-normalizer/files/patch-pyproject.toml +++ /dev/null @@ -1,9 +0,0 @@ ---- pyproject.toml.orig 2025-05-02 06:41:54 UTC -+++ pyproject.toml -@@ -1,5 +1,5 @@ - [build-system] --requires = ["setuptools", "setuptools-scm", "mypy>=1.4.1,<=1.15.0"] -+requires = ["setuptools", "setuptools-scm"] - build-backend = "setuptools.build_meta" - - [project] diff --git a/textproc/py-elastic-transport/Makefile b/textproc/py-elastic-transport/Makefile new file mode 100644 index 000000000000..7e2340e807c9 --- /dev/null +++ b/textproc/py-elastic-transport/Makefile @@ -0,0 +1,26 @@ +PORTNAME= elastic-transport +PORTVERSION= 8.17.1 +CATEGORIES= textproc python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTNAME= elastic_transport-${PORTVERSION} + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= Transport classes and utilities shared among Python Elastic client libraries +WWW= https://elastic-transport-python.readthedocs.io/en/latest/ \ + https://github.com/elastic/elastic-transport-python + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>=0:security/py-certifi@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}urllib3>=1.26.2,1<3,1:net/py-urllib3@${PY_FLAVOR} + +USES= python +USE_PYTHON= autoplist concurrent pep517 + +NO_ARCH= yes + +.include <bsd.port.mk> diff --git a/textproc/py-elastic-transport/distinfo b/textproc/py-elastic-transport/distinfo new file mode 100644 index 000000000000..62d8b2c356d7 --- /dev/null +++ b/textproc/py-elastic-transport/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1755062436 +SHA256 (elastic_transport-8.17.1.tar.gz) = 5edef32ac864dca8e2f0a613ef63491ee8d6b8cfb52881fa7313ba9290cac6d2 +SIZE (elastic_transport-8.17.1.tar.gz) = 73425 diff --git a/textproc/py-elastic-transport/pkg-descr b/textproc/py-elastic-transport/pkg-descr new file mode 100644 index 000000000000..f1bfec4d7b81 --- /dev/null +++ b/textproc/py-elastic-transport/pkg-descr @@ -0,0 +1,4 @@ +Transport classes and utilities shared among Python Elastic client libraries + +This library was lifted from elasticsearch-py and then transformed to be used +across all Elastic services rather than only Elasticsearch. diff --git a/textproc/py-elasticsearch/Makefile b/textproc/py-elasticsearch/Makefile index 7f256d4959a1..076496d45275 100644 --- a/textproc/py-elasticsearch/Makefile +++ b/textproc/py-elasticsearch/Makefile @@ -1,5 +1,5 @@ PORTNAME= elasticsearch -PORTVERSION= 7.17.12 +PORTVERSION= 8.19.0 CATEGORIES= textproc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -12,19 +12,18 @@ WWW= https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/in LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} -RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>=0:security/py-certifi@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}urllib3>=1.21.1,1<2,1:net/py-urllib3@${PY_FLAVOR} +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}elastic-transport>=8.15.1<9:textproc/py-elastic-transport@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-dateutil>=0:devel/py-python-dateutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typing-extensions>=0:devel/py-typing-extensions@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=0:devel/py-coverage@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mock>=0:devel/py-mock@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pytest>=0,1:devel/py-pytest@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>=2.0.0<3.0.0:www/py-requests@${PY_FLAVOR} USES= cpe python -USE_PYTHON= autoplist concurrent nose pep517 +USE_PYTHON= autoplist concurrent pep517 pytest NO_ARCH= yes diff --git a/textproc/py-elasticsearch/distinfo b/textproc/py-elasticsearch/distinfo index cd404d6ee02c..e439725d3ac8 100644 --- a/textproc/py-elasticsearch/distinfo +++ b/textproc/py-elasticsearch/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1753796098 -SHA256 (elasticsearch-7.17.12.tar.gz) = a1f5733ae8cf1dbf0a78593389f2503c87dd97429976099832bf0626cdfaac8b -SIZE (elasticsearch-7.17.12.tar.gz) = 248018 +TIMESTAMP = 1755062580 +SHA256 (elasticsearch-8.19.0.tar.gz) = 66fe755e55127afc47c68eca6858006932d9d128b68834a15e7e9894517cfb67 +SIZE (elasticsearch-8.19.0.tar.gz) = 777512 diff --git a/textproc/py-elasticsearch7/Makefile b/textproc/py-elasticsearch7/Makefile new file mode 100644 index 000000000000..8c3af7b11b90 --- /dev/null +++ b/textproc/py-elasticsearch7/Makefile @@ -0,0 +1,44 @@ +PORTNAME= elasticsearch +PORTVERSION= 7.17.12 +CATEGORIES= textproc python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +PKGNAMESUFFIX= 7 + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= Official Python low-level client for Elasticsearch +WWW= https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html \ + https://github.com/elastic/elasticsearch-py + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>=0:security/py-certifi@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}urllib3>=1.21.1,1<2,1:net/py-urllib3@${PY_FLAVOR} +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}coverage>=0:devel/py-coverage@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mock>=0:devel/py-mock@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytest>=0,1:devel/py-pytest@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests>=2.0.0<3.0.0:www/py-requests@${PY_FLAVOR} + +USES= cpe python +USE_PYTHON= autoplist concurrent nose pep517 + +NO_ARCH= yes + +CPE_VENDOR= elastic + +PORTSCOUT= limit:^7\. + +OPTIONS_DEFINE= ASYNC REQUESTS +OPTIONS_DEFAULT=REQUESTS +ASYNC_DESC= Asynchronous support +REQUESTS_DESC= Enable requests support + +ASYNC_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp>=3<4:www/py-aiohttp@${PY_FLAVOR} +REQUESTS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=2.4.0<3.0.0:www/py-requests@${PY_FLAVOR} + +.include <bsd.port.mk> diff --git a/textproc/py-elasticsearch7/distinfo b/textproc/py-elasticsearch7/distinfo new file mode 100644 index 000000000000..cd404d6ee02c --- /dev/null +++ b/textproc/py-elasticsearch7/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1753796098 +SHA256 (elasticsearch-7.17.12.tar.gz) = a1f5733ae8cf1dbf0a78593389f2503c87dd97429976099832bf0626cdfaac8b +SIZE (elasticsearch-7.17.12.tar.gz) = 248018 diff --git a/textproc/py-elasticsearch7/pkg-descr b/textproc/py-elasticsearch7/pkg-descr new file mode 100644 index 000000000000..1ff006ebff06 --- /dev/null +++ b/textproc/py-elasticsearch7/pkg-descr @@ -0,0 +1,15 @@ +Official low-level client for Elasticsearch. Its goal is to provide common +ground for all Elasticsearch-related code in Python; because of this it tries to +be opinion-free and very extendable. + +For a more high level client library with more limited scope, have a look at +elasticsearch-dsl - a more pythonic library sitting on top of elasticsearch-py. + +It provides a more convenient and idiomatic way to write and manipulate queries. +It stays close to the Elasticsearch JSON DSL, mirroring its terminology and +structure while exposing the whole range of the DSL from Python either directly +using defined classes or a queryset-like expressions. + +It also provides an optional persistence layer for working with documents as +Python objects in an ORM-like fashion: defining mappings, retrieving and saving +documents, wrapping the document data in user-defined classes. diff --git a/textproc/py-mathics-pygments/Makefile b/textproc/py-mathics-pygments/Makefile index 78c3432988da..730975f0752f 100644 --- a/textproc/py-mathics-pygments/Makefile +++ b/textproc/py-mathics-pygments/Makefile @@ -1,5 +1,6 @@ PORTNAME= mathics_pygments PORTVERSION= 1.0.4 +PORTREVISION= 1 CATEGORIES= textproc math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -11,10 +12,10 @@ WWW= https://mathics.org/ LICENSE= MIT BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}mathics_scanner>0:math/py-mathics-scanner + ${PYTHON_PKGNAMEPREFIX}Mathics_Scanner>0:math/py-mathics-scanner RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}types_pygments>0:devel/py-types-Pygments@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}mathics_scanner>0:math/py-mathics-scanner + ${PYTHON_PKGNAMEPREFIX}Mathics_Scanner>0:math/py-mathics-scanner #USE_GITHUB= yes #GH_ACCOUNT= Mathics3 diff --git a/textproc/py-mkdocs-include-markdown-plugin/Makefile b/textproc/py-mkdocs-include-markdown-plugin/Makefile index a55ff4800c34..ca344e5edc98 100644 --- a/textproc/py-mkdocs-include-markdown-plugin/Makefile +++ b/textproc/py-mkdocs-include-markdown-plugin/Makefile @@ -1,5 +1,5 @@ PORTNAME= mkdocs-include-markdown-plugin -DISTVERSION= 7.1.6 +DISTVERSION= 7.1.7 CATEGORIES= textproc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/textproc/py-mkdocs-include-markdown-plugin/distinfo b/textproc/py-mkdocs-include-markdown-plugin/distinfo index b071448d487b..499415975b84 100644 --- a/textproc/py-mkdocs-include-markdown-plugin/distinfo +++ b/textproc/py-mkdocs-include-markdown-plugin/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749914985 -SHA256 (mkdocs_include_markdown_plugin-7.1.6.tar.gz) = a0753cb82704c10a287f1e789fc9848f82b6beb8749814b24b03dd9f67816677 -SIZE (mkdocs_include_markdown_plugin-7.1.6.tar.gz) = 23391 +TIMESTAMP = 1756792428 +SHA256 (mkdocs_include_markdown_plugin-7.1.7.tar.gz) = 677637e04c2d3497c50340be522e2a7f614124f592c7982d88b859f88d527a4c +SIZE (mkdocs_include_markdown_plugin-7.1.7.tar.gz) = 23451 diff --git a/textproc/py-towncrier/Makefile b/textproc/py-towncrier/Makefile index 026787f85914..5a358a1aa2ba 100644 --- a/textproc/py-towncrier/Makefile +++ b/textproc/py-towncrier/Makefile @@ -1,5 +1,5 @@ PORTNAME= towncrier -PORTVERSION= 24.8.0 +PORTVERSION= 25.8.0 CATEGORIES= textproc MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/textproc/py-towncrier/distinfo b/textproc/py-towncrier/distinfo index ee4bd46189e2..40850e8114cc 100644 --- a/textproc/py-towncrier/distinfo +++ b/textproc/py-towncrier/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1724486427 -SHA256 (towncrier-24.8.0.tar.gz) = 013423ee7eed102b2f393c287d22d95f66f1a3ea10a4baa82d298001a7f18af3 -SIZE (towncrier-24.8.0.tar.gz) = 61635 +TIMESTAMP = 1756801504 +SHA256 (towncrier-25.8.0.tar.gz) = eef16d29f831ad57abb3ae32a0565739866219f1ebfbdd297d32894eb9940eb1 +SIZE (towncrier-25.8.0.tar.gz) = 76322 diff --git a/textproc/rubygem-asciidoctor-pdf/Makefile b/textproc/rubygem-asciidoctor-pdf/Makefile index 5a621dd08beb..6cc7d285371d 100644 --- a/textproc/rubygem-asciidoctor-pdf/Makefile +++ b/textproc/rubygem-asciidoctor-pdf/Makefile @@ -1,6 +1,6 @@ PORTNAME= asciidoctor-pdf PORTVERSION= 2.3.19 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= textproc rubygems MASTER_SITES= RG @@ -17,7 +17,7 @@ RUN_DEPENDS= rubygem-asciidoctor>=2.0<3:textproc/rubygem-asciidoctor \ rubygem-matrix>=0.4<1:math/rubygem-matrix \ rubygem-prawn24>=2.4.0<2.5:print/rubygem-prawn24 \ rubygem-prawn-icon3>=3.1.0<3.2:print/rubygem-prawn-icon3 \ - rubygem-prawn-svg>=0.36.1<0.37:print/rubygem-prawn-svg \ + rubygem-prawn-svg036>=0.36.1<0.37:print/rubygem-prawn-svg036 \ rubygem-prawn-table>=0.2.0<0.3:print/rubygem-prawn-table \ rubygem-prawn-templates>=0.1.0<0.2:print/rubygem-prawn-templates \ rubygem-treetop>=1.6.0<1.7:devel/rubygem-treetop \ diff --git a/textproc/rubygem-elasticsearch-api/Makefile b/textproc/rubygem-elasticsearch-api/Makefile index 5f4a34edbb62..4dae1c8b1533 100644 --- a/textproc/rubygem-elasticsearch-api/Makefile +++ b/textproc/rubygem-elasticsearch-api/Makefile @@ -1,5 +1,5 @@ PORTNAME= elasticsearch-api -PORTVERSION= 9.0.0 +PORTVERSION= 9.1.0 CATEGORIES= textproc rubygems MASTER_SITES= RG diff --git a/textproc/rubygem-elasticsearch-api/distinfo b/textproc/rubygem-elasticsearch-api/distinfo index 07e9b5f96cce..379a489f747e 100644 --- a/textproc/rubygem-elasticsearch-api/distinfo +++ b/textproc/rubygem-elasticsearch-api/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745936424 -SHA256 (rubygem/elasticsearch-api-9.0.0.gem) = 00af6b58bd5786d994d12f9899b787789a345a74a9ea887b1926790a432a50c7 -SIZE (rubygem/elasticsearch-api-9.0.0.gem) = 217088 +TIMESTAMP = 1755062618 +SHA256 (rubygem/elasticsearch-api-9.1.0.gem) = 6454dc3955ff39ccd8dd74929e9c592611f823d850057f64b4abb684105a18e6 +SIZE (rubygem/elasticsearch-api-9.1.0.gem) = 228864 diff --git a/textproc/rubygem-elasticsearch-api8/Makefile b/textproc/rubygem-elasticsearch-api8/Makefile index 7cf6a33e7765..74a0107e2ba2 100644 --- a/textproc/rubygem-elasticsearch-api8/Makefile +++ b/textproc/rubygem-elasticsearch-api8/Makefile @@ -1,5 +1,5 @@ PORTNAME= elasticsearch-api -PORTVERSION= 8.18.0 +PORTVERSION= 8.19.0 CATEGORIES= textproc rubygems MASTER_SITES= RG PKGNAMESUFFIX= 8 diff --git a/textproc/rubygem-elasticsearch-api8/distinfo b/textproc/rubygem-elasticsearch-api8/distinfo index 52c33b2c26b3..51409acfa1ba 100644 --- a/textproc/rubygem-elasticsearch-api8/distinfo +++ b/textproc/rubygem-elasticsearch-api8/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745178236 -SHA256 (rubygem/elasticsearch-api-8.18.0.gem) = 56ea86d763a8dd781374b76eba6b45977e267510c09e979d1ebe018463379666 -SIZE (rubygem/elasticsearch-api-8.18.0.gem) = 209920 +TIMESTAMP = 1755062620 +SHA256 (rubygem/elasticsearch-api-8.19.0.gem) = 1f820f666576cbe333bc8564c410574668f6dcd08690889281466bf0506f34c0 +SIZE (rubygem/elasticsearch-api-8.19.0.gem) = 213504 diff --git a/textproc/rubygem-elasticsearch/Makefile b/textproc/rubygem-elasticsearch/Makefile index 8f2e578b93ce..8ee1e6e143c0 100644 --- a/textproc/rubygem-elasticsearch/Makefile +++ b/textproc/rubygem-elasticsearch/Makefile @@ -1,5 +1,5 @@ PORTNAME= elasticsearch -PORTVERSION= 9.0.0 +PORTVERSION= 9.1.0 CATEGORIES= textproc rubygems MASTER_SITES= RG diff --git a/textproc/rubygem-elasticsearch/distinfo b/textproc/rubygem-elasticsearch/distinfo index e5c6de6ab54f..228f21d18cc5 100644 --- a/textproc/rubygem-elasticsearch/distinfo +++ b/textproc/rubygem-elasticsearch/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745936422 -SHA256 (rubygem/elasticsearch-9.0.0.gem) = f5e37ae4256c976dbf38e3b1298e1e32addd936b424c1f16ff89306ce3479329 -SIZE (rubygem/elasticsearch-9.0.0.gem) = 15872 +TIMESTAMP = 1755062616 +SHA256 (rubygem/elasticsearch-9.1.0.gem) = 16832abc97dd44a2a94fad7f1e61fe1698d1992ba3cdc15719bbcaebb3e23478 +SIZE (rubygem/elasticsearch-9.1.0.gem) = 15872 diff --git a/textproc/rubygem-elasticsearch8/Makefile b/textproc/rubygem-elasticsearch8/Makefile index ea654f6a006a..9168a5c5ea0f 100644 --- a/textproc/rubygem-elasticsearch8/Makefile +++ b/textproc/rubygem-elasticsearch8/Makefile @@ -1,5 +1,5 @@ PORTNAME= elasticsearch -PORTVERSION= 8.18.0 +PORTVERSION= 8.19.0 CATEGORIES= textproc rubygems MASTER_SITES= RG PKGNAMESUFFIX= 8 diff --git a/textproc/rubygem-elasticsearch8/distinfo b/textproc/rubygem-elasticsearch8/distinfo index 625d76138955..4905a61bc7e4 100644 --- a/textproc/rubygem-elasticsearch8/distinfo +++ b/textproc/rubygem-elasticsearch8/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745178234 -SHA256 (rubygem/elasticsearch-8.18.0.gem) = 2bad7699b49dfd3a66b9a2fefa86460d884bbc6600eba189df46822134a45671 -SIZE (rubygem/elasticsearch-8.18.0.gem) = 25088 +TIMESTAMP = 1755062622 +SHA256 (rubygem/elasticsearch-8.19.0.gem) = 59f5368a89f5fe29e9da13684d0295360c8efcbeff8ad4b06c1854dc777a508b +SIZE (rubygem/elasticsearch-8.19.0.gem) = 25088 diff --git a/textproc/sift/Makefile b/textproc/sift/Makefile index abc4a696af19..3035f880bcab 100644 --- a/textproc/sift/Makefile +++ b/textproc/sift/Makefile @@ -1,7 +1,7 @@ PORTNAME= sift PORTVERSION= 0.9.0 DISTVERSIONPREFIX= v -PORTREVISION= 51 +PORTREVISION= 52 CATEGORIES= textproc MAINTAINER= sunpoet@FreeBSD.org diff --git a/textproc/sttr/Makefile b/textproc/sttr/Makefile index fd8fbe0b5ecc..18a783562e0c 100644 --- a/textproc/sttr/Makefile +++ b/textproc/sttr/Makefile @@ -1,6 +1,7 @@ PORTNAME= sttr DISTVERSIONPREFIX= v DISTVERSION= 0.2.27 +PORTREVISION= 1 CATEGORIES= textproc MAINTAINER= se@FreeBSD.org diff --git a/textproc/textnote/Makefile b/textproc/textnote/Makefile index 5f64ea2e1d32..78c5694b4d51 100644 --- a/textproc/textnote/Makefile +++ b/textproc/textnote/Makefile @@ -1,7 +1,7 @@ PORTNAME= textnote DISTVERSIONPREFIX= v DISTVERSION= 1.3.0 -PORTREVISION= 28 +PORTREVISION= 29 CATEGORIES= textproc MAINTAINER= 0mp@FreeBSD.org diff --git a/textproc/textql/Makefile b/textproc/textql/Makefile index fd97f442d716..9758a75c6a2b 100644 --- a/textproc/textql/Makefile +++ b/textproc/textql/Makefile @@ -1,6 +1,6 @@ PORTNAME= textql PORTVERSION= g20210706 -PORTREVISION= 22 +PORTREVISION= 23 CATEGORIES= textproc MAINTAINER= ume@FreeBSD.org diff --git a/textproc/trdsql/Makefile b/textproc/trdsql/Makefile index f2a20df22cc9..21245c080909 100644 --- a/textproc/trdsql/Makefile +++ b/textproc/trdsql/Makefile @@ -1,7 +1,7 @@ PORTNAME= trdsql DISTVERSIONPREFIX= v DISTVERSION= 0.20.0 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= textproc MAINTAINER= lcook@FreeBSD.org diff --git a/textproc/uni/Makefile b/textproc/uni/Makefile index ca32b88876c9..a94a411470fe 100644 --- a/textproc/uni/Makefile +++ b/textproc/uni/Makefile @@ -1,7 +1,7 @@ PORTNAME= uni PORTVERSION= 2.8.0 DISTVERSIONPREFIX= v -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= textproc MAINTAINER= thierry@FreeBSD.org diff --git a/textproc/up/Makefile b/textproc/up/Makefile index a7a2a9871a24..16e10c18cb23 100644 --- a/textproc/up/Makefile +++ b/textproc/up/Makefile @@ -1,7 +1,7 @@ PORTNAME= up DISTVERSIONPREFIX= v DISTVERSION= 0.4 -PORTREVISION= 28 +PORTREVISION= 29 CATEGORIES= textproc MAINTAINER= 0mp@FreeBSD.org diff --git a/textproc/vale/Makefile b/textproc/vale/Makefile index a8bf534673ce..c59e5c74ff5b 100644 --- a/textproc/vale/Makefile +++ b/textproc/vale/Makefile @@ -1,7 +1,7 @@ PORTNAME= vale DISTVERSIONPREFIX= v DISTVERSION= 3.12.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= textproc MAINTAINER= bofh@FreeBSD.org diff --git a/textproc/vgrep/Makefile b/textproc/vgrep/Makefile index d4c26dcfe178..84f9f65e81f1 100644 --- a/textproc/vgrep/Makefile +++ b/textproc/vgrep/Makefile @@ -1,7 +1,7 @@ PORTNAME= vgrep DISTVERSIONPREFIX= v DISTVERSION= 2.8.0 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= textproc MAINTAINER= lcook@FreeBSD.org diff --git a/textproc/yamlfmt/Makefile b/textproc/yamlfmt/Makefile index 1330f69987b4..23dd599bb736 100644 --- a/textproc/yamlfmt/Makefile +++ b/textproc/yamlfmt/Makefile @@ -1,7 +1,7 @@ PORTNAME= yamlfmt DISTVERSIONPREFIX= v DISTVERSION= 0.17.2 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= textproc MAINTAINER= meta@FreeBSD.org diff --git a/textproc/ytt/Makefile b/textproc/ytt/Makefile index 1a53f933b086..7985896042fd 100644 --- a/textproc/ytt/Makefile +++ b/textproc/ytt/Makefile @@ -1,7 +1,7 @@ PORTNAME= ytt DISTVERSIONPREFIX= v DISTVERSION= 0.52.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= textproc MAINTAINER= yuri@FreeBSD.org |