git: 3e4b401dd846 - main - textproc/afrim-fcitx: New port: AFRIM support for Fcitx5

Hiroki Tagato <[email protected]> Tue, 04 Aug 2026 13:18:25 +0000
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <[email protected]>
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3e4b401dd846389a117109ab6ee65f9ad2917455

commit 3e4b401dd846389a117109ab6ee65f9ad2917455
Author:     Brady Fomegne <[email protected]>
AuthorDate: 2026-07-10 19:33:14 +0000
Commit:     Hiroki Tagato <[email protected]>
CommitDate: 2026-08-04 13:17:41 +0000

    textproc/afrim-fcitx: New port: AFRIM support for Fcitx5
    
    afrim support for Fcitx5 input method framework.
    
    The afrim manual is available at https://fodydev.github.io/afrim-man/
    and the datasets can be found at https://github.com/fodydev/afrim-data/
    
    Feel free to contribute to the project either by providing more datasets,
    https://github.com/fodydev/afrim-data/
    or by contributing to afrim and the fcitx5 support.
    https://github.com/fodydev/afrim
    https://github.com/fodydev/fcitx5-afrim
    
    WWW: https://github.com/fodydev/fcitx5-afrim
    
    PR:             296717
    Reported by:    Brady Fomegne <[email protected]> (new maintainer)
    Reviewed by:    mce
---
 textproc/Makefile                     |   1 +
 textproc/fcitx5-afrim/Makefile        |  31 ++++++++
 textproc/fcitx5-afrim/Makefile.crates |  65 +++++++++++++++++
 textproc/fcitx5-afrim/distinfo        | 133 ++++++++++++++++++++++++++++++++++
 textproc/fcitx5-afrim/pkg-descr       |  10 +++
 5 files changed, 240 insertions(+)

diff --git a/textproc/Makefile b/textproc/Makefile
index c424e473dec3..0fac6c9453de 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -207,6 +207,7 @@
     SUBDIR += fcitx-qt5
     SUBDIR += fcitx-table-other
     SUBDIR += fcitx5
+    SUBDIR += fcitx5-afrim
     SUBDIR += fcitx5-configtool
     SUBDIR += fcitx5-gtk
     SUBDIR += fcitx5-gtk-common
diff --git a/textproc/fcitx5-afrim/Makefile b/textproc/fcitx5-afrim/Makefile
new file mode 100644
index 000000000000..4410a4c15193
--- /dev/null
+++ b/textproc/fcitx5-afrim/Makefile
@@ -0,0 +1,31 @@
+PORTNAME=	fcitx5-afrim
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1.0
+CATEGORIES=	textproc
+
+MAINTAINER=	[email protected]
+COMMENT=	AFRIM support for Fcitx5
+WWW=		https://fodydev.github.io/afrim-man/ \
+		https://github.com/fodydev/fcitx5-afrim
+
+LICENSE=	LGPL21
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	cbindgen:devel/rust-cbindgen \
+		corrosion>=0:devel/corrosion
+LIB_DEPENDS=	libFcitx5Core.so:textproc/fcitx5
+
+USES=		cargo cmake kde:6 pkgconfig
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	fodydev
+
+USE_KDE=	ecm
+
+PLIST_FILES=	lib/fcitx5/libafrim.so \
+		share/fcitx5/addon/afrim.conf \
+		share/fcitx5/inputmethod/afrim.conf
+
+CARGO_SRC_SUBDIR=	afrim
+
+.include <bsd.port.mk>
diff --git a/textproc/fcitx5-afrim/Makefile.crates b/textproc/fcitx5-afrim/Makefile.crates
new file mode 100644
index 000000000000..58ea6f319b76
--- /dev/null
+++ b/textproc/fcitx5-afrim/Makefile.crates
@@ -0,0 +1,65 @@
+CARGO_CRATES=	afrim-config-0.4.8 \
+		afrim-memory-0.4.2 \
+		afrim-preprocessor-0.7.0 \
+		afrim-translator-0.2.4 \
+		ahash-0.8.12 \
+		anyhow-1.0.104 \
+		autocfg-1.5.1 \
+		bitflags-2.13.1 \
+		bumpalo-3.20.3 \
+		cfg-if-1.0.4 \
+		const-random-0.1.18 \
+		const-random-macro-0.1.16 \
+		crunchy-0.2.4 \
+		equivalent-1.0.2 \
+		futures-core-0.3.33 \
+		futures-task-0.3.33 \
+		futures-util-0.3.33 \
+		getrandom-0.2.17 \
+		getrandom-0.3.4 \
+		hashbrown-0.17.1 \
+		indexmap-2.14.0 \
+		js-sys-0.3.103 \
+		keyboard-types-0.8.3 \
+		libc-0.2.189 \
+		num-traits-0.2.19 \
+		once_cell-1.21.4 \
+		pin-project-lite-0.2.17 \
+		portable-atomic-1.14.0 \
+		proc-macro2-1.0.107 \
+		quote-1.0.47 \
+		r-efi-5.3.0 \
+		rhai-1.25.1 \
+		rhai_codegen-3.2.0 \
+		rustversion-1.0.23 \
+		serde-1.0.229 \
+		serde_core-1.0.229 \
+		serde_derive-1.0.229 \
+		serde_spanned-1.1.1 \
+		slab-0.4.12 \
+		smallvec-1.15.2 \
+		smartstring-1.0.1 \
+		static_assertions-1.1.0 \
+		strsim-0.11.1 \
+		syn-2.0.119 \
+		syn-3.0.3 \
+		thin-vec-0.2.19 \
+		tiny-keccak-2.0.2 \
+		toml-1.1.4+spec-1.1.0 \
+		toml_datetime-1.1.1+spec-1.1.0 \
+		toml_parser-1.1.3+spec-1.1.0 \
+		toml_writer-1.1.2+spec-1.1.0 \
+		unicode-ident-1.0.24 \
+		unicode-segmentation-1.13.3 \
+		version_check-0.9.5 \
+		wasi-0.11.1+wasi-snapshot-preview1 \
+		wasip2-1.0.4+wasi-0.2.12 \
+		wasm-bindgen-0.2.126 \
+		wasm-bindgen-macro-0.2.126 \
+		wasm-bindgen-macro-support-0.2.126 \
+		wasm-bindgen-shared-0.2.126 \
+		web-time-1.1.0 \
+		winnow-1.0.4 \
+		wit-bindgen-0.57.1 \
+		zerocopy-0.8.55 \
+		zerocopy-derive-0.8.55
diff --git a/textproc/fcitx5-afrim/distinfo b/textproc/fcitx5-afrim/distinfo
new file mode 100644
index 000000000000..502f8a999816
--- /dev/null
+++ b/textproc/fcitx5-afrim/distinfo
@@ -0,0 +1,133 @@
+TIMESTAMP = 1785416937
+SHA256 (rust/crates/afrim-config-0.4.8.crate) = e4c5ac7848b0dbee9aaa8ddddc36608c44c545d3efa35fe4a57352933b17a3d7
+SIZE (rust/crates/afrim-config-0.4.8.crate) = 10655
+SHA256 (rust/crates/afrim-memory-0.4.2.crate) = 44431d38c46ecff3cfcaf9087c9d0e0bb7113f3d3a6a1020fa2c886f430551e0
+SIZE (rust/crates/afrim-memory-0.4.2.crate) = 6531
+SHA256 (rust/crates/afrim-preprocessor-0.7.0.crate) = 20e3ec36f3c241628e7c4db821596dc72ecad43249e659522070f69b37d5a957
+SIZE (rust/crates/afrim-preprocessor-0.7.0.crate) = 6005
+SHA256 (rust/crates/afrim-translator-0.2.4.crate) = 73b26cb491969eba59baeb6629d5808e4dd49771d23ee779817b8497e6e32394
+SIZE (rust/crates/afrim-translator-0.2.4.crate) = 12339
+SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
+SIZE (rust/crates/ahash-0.8.12.crate) = 43413
+SHA256 (rust/crates/anyhow-1.0.104.crate) = 330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470
+SIZE (rust/crates/anyhow-1.0.104.crate) = 48819
+SHA256 (rust/crates/autocfg-1.5.1.crate) = f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53
+SIZE (rust/crates/autocfg-1.5.1.crate) = 18911
+SHA256 (rust/crates/bitflags-2.13.1.crate) = b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da
+SIZE (rust/crates/bitflags-2.13.1.crate) = 51395
+SHA256 (rust/crates/bumpalo-3.20.3.crate) = 72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649
+SIZE (rust/crates/bumpalo-3.20.3.crate) = 98671
+SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801
+SIZE (rust/crates/cfg-if-1.0.4.crate) = 9360
+SHA256 (rust/crates/const-random-0.1.18.crate) = 87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359
+SIZE (rust/crates/const-random-0.1.18.crate) = 6646
+SHA256 (rust/crates/const-random-macro-0.1.16.crate) = f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e
+SIZE (rust/crates/const-random-macro-0.1.16.crate) = 6657
+SHA256 (rust/crates/crunchy-0.2.4.crate) = 460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5
+SIZE (rust/crates/crunchy-0.2.4.crate) = 3887
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/futures-core-0.3.33.crate) = 2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7
+SIZE (rust/crates/futures-core-0.3.33.crate) = 14691
+SHA256 (rust/crates/futures-task-0.3.33.crate) = b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109
+SIZE (rust/crates/futures-task-0.3.33.crate) = 11381
+SHA256 (rust/crates/futures-util-0.3.33.crate) = a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa
+SIZE (rust/crates/futures-util-0.3.33.crate) = 169725
+SHA256 (rust/crates/getrandom-0.2.17.crate) = ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0
+SIZE (rust/crates/getrandom-0.2.17.crate) = 40780
+SHA256 (rust/crates/getrandom-0.3.4.crate) = 899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd
+SIZE (rust/crates/getrandom-0.3.4.crate) = 50932
+SHA256 (rust/crates/hashbrown-0.17.1.crate) = ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a
+SIZE (rust/crates/hashbrown-0.17.1.crate) = 155512
+SHA256 (rust/crates/indexmap-2.14.0.crate) = d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9
+SIZE (rust/crates/indexmap-2.14.0.crate) = 104085
+SHA256 (rust/crates/js-sys-0.3.103.crate) = 53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102
+SIZE (rust/crates/js-sys-0.3.103.crate) = 108366
+SHA256 (rust/crates/keyboard-types-0.8.3.crate) = 0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d
+SIZE (rust/crates/keyboard-types-0.8.3.crate) = 97188
+SHA256 (rust/crates/libc-0.2.189.crate) = 3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2
+SIZE (rust/crates/libc-0.2.189.crate) = 851502
+SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
+SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
+SHA256 (rust/crates/once_cell-1.21.4.crate) = 9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50
+SIZE (rust/crates/once_cell-1.21.4.crate) = 35010
+SHA256 (rust/crates/pin-project-lite-0.2.17.crate) = a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd
+SIZE (rust/crates/pin-project-lite-0.2.17.crate) = 31034
+SHA256 (rust/crates/portable-atomic-1.14.0.crate) = 3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3
+SIZE (rust/crates/portable-atomic-1.14.0.crate) = 200703
+SHA256 (rust/crates/proc-macro2-1.0.107.crate) = 985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9
+SIZE (rust/crates/proc-macro2-1.0.107.crate) = 59588
+SHA256 (rust/crates/quote-1.0.47.crate) = 1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001
+SIZE (rust/crates/quote-1.0.47.crate) = 31622
+SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f
+SIZE (rust/crates/r-efi-5.3.0.crate) = 64532
+SHA256 (rust/crates/rhai-1.25.1.crate) = dd4dd0f8c36625202a4ba553c416c19b719947cd2a31d1bda06126e4a5727daf
+SIZE (rust/crates/rhai-1.25.1.crate) = 340087
+SHA256 (rust/crates/rhai_codegen-3.2.0.crate) = 3cd3a7535e50bf36857e7be7bec276d334e8c2dfa469c2201226fd01638ea5ca
+SIZE (rust/crates/rhai_codegen-3.2.0.crate) = 41077
+SHA256 (rust/crates/rustversion-1.0.23.crate) = cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f
+SIZE (rust/crates/rustversion-1.0.23.crate) = 21013
+SHA256 (rust/crates/serde-1.0.229.crate) = 4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba
+SIZE (rust/crates/serde-1.0.229.crate) = 83669
+SHA256 (rust/crates/serde_core-1.0.229.crate) = 67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48
+SIZE (rust/crates/serde_core-1.0.229.crate) = 63100
+SHA256 (rust/crates/serde_derive-1.0.229.crate) = e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348
+SIZE (rust/crates/serde_derive-1.0.229.crate) = 59864
+SHA256 (rust/crates/serde_spanned-1.1.1.crate) = 6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26
+SIZE (rust/crates/serde_spanned-1.1.1.crate) = 11025
+SHA256 (rust/crates/slab-0.4.12.crate) = 0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5
+SIZE (rust/crates/slab-0.4.12.crate) = 19080
+SHA256 (rust/crates/smallvec-1.15.2.crate) = 8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90
+SIZE (rust/crates/smallvec-1.15.2.crate) = 34899
+SHA256 (rust/crates/smartstring-1.0.1.crate) = 3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29
+SIZE (rust/crates/smartstring-1.0.1.crate) = 29555
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/syn-2.0.119.crate) = 872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297
+SIZE (rust/crates/syn-2.0.119.crate) = 307407
+SHA256 (rust/crates/syn-3.0.3.crate) = 53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3
+SIZE (rust/crates/syn-3.0.3.crate) = 312999
+SHA256 (rust/crates/thin-vec-0.2.19.crate) = 79def32ffcd477db1ff26f76dab9e3a91f0bd42a85ca96577089b24623056f9d
+SIZE (rust/crates/thin-vec-0.2.19.crate) = 39711
+SHA256 (rust/crates/tiny-keccak-2.0.2.crate) = 2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237
+SIZE (rust/crates/tiny-keccak-2.0.2.crate) = 20129
+SHA256 (rust/crates/toml-1.1.4+spec-1.1.0.crate) = 3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5
+SIZE (rust/crates/toml-1.1.4+spec-1.1.0.crate) = 56447
+SHA256 (rust/crates/toml_datetime-1.1.1+spec-1.1.0.crate) = 3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7
+SIZE (rust/crates/toml_datetime-1.1.1+spec-1.1.0.crate) = 17982
+SHA256 (rust/crates/toml_parser-1.1.3+spec-1.1.0.crate) = 1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56
+SIZE (rust/crates/toml_parser-1.1.3+spec-1.1.0.crate) = 35888
+SHA256 (rust/crates/toml_writer-1.1.2+spec-1.1.0.crate) = 7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2
+SIZE (rust/crates/toml_writer-1.1.2+spec-1.1.0.crate) = 18968
+SHA256 (rust/crates/unicode-ident-1.0.24.crate) = e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75
+SIZE (rust/crates/unicode-ident-1.0.24.crate) = 49298
+SHA256 (rust/crates/unicode-segmentation-1.13.3.crate) = c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8
+SIZE (rust/crates/unicode-segmentation-1.13.3.crate) = 112325
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+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/wasip2-1.0.4+wasi-0.2.12.crate) = b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487
+SIZE (rust/crates/wasip2-1.0.4+wasi-0.2.12.crate) = 135311
+SHA256 (rust/crates/wasm-bindgen-0.2.126.crate) = 4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4
+SIZE (rust/crates/wasm-bindgen-0.2.126.crate) = 67461
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.126.crate) = 167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1
+SIZE (rust/crates/wasm-bindgen-macro-0.2.126.crate) = 9303
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.126.crate) = f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.126.crate) = 82688
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.126.crate) = dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24
+SIZE (rust/crates/wasm-bindgen-shared-0.2.126.crate) = 11287
+SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb
+SIZE (rust/crates/web-time-1.1.0.crate) = 18026
+SHA256 (rust/crates/winnow-1.0.4.crate) = 23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81
+SIZE (rust/crates/winnow-1.0.4.crate) = 188513
+SHA256 (rust/crates/wit-bindgen-0.57.1.crate) = 1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e
+SIZE (rust/crates/wit-bindgen-0.57.1.crate) = 71227
+SHA256 (rust/crates/zerocopy-0.8.55.crate) = b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb
+SIZE (rust/crates/zerocopy-0.8.55.crate) = 284957
+SHA256 (rust/crates/zerocopy-derive-0.8.55.crate) = 0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb
+SIZE (rust/crates/zerocopy-derive-0.8.55.crate) = 103316
+SHA256 (fodydev-fcitx5-afrim-v0.1.0_GH0.tar.gz) = ecb866b4320c96f09c45abeed133bd8eb5ccd398a091eec5f3e3a04ef77b2500
+SIZE (fodydev-fcitx5-afrim-v0.1.0_GH0.tar.gz) = 20540
diff --git a/textproc/fcitx5-afrim/pkg-descr b/textproc/fcitx5-afrim/pkg-descr
new file mode 100644
index 000000000000..a65a46612658
--- /dev/null
+++ b/textproc/fcitx5-afrim/pkg-descr
@@ -0,0 +1,10 @@
+afrim support for Fcitx5 input method framework.
+
+The afrim manual is available at https://fodydev.github.io/afrim-man/
+and the datasets can be found at https://github.com/fodydev/afrim-data/
+
+Feel free to contribute to the project either by providing more datasets,
+https://github.com/fodydev/afrim-data/
+or by contributing to afrim and the fcitx5 support.
+https://github.com/fodydev/afrim
+https://github.com/fodydev/fcitx5-afrim