aboutsummaryrefslogtreecommitdiffstats
path: root/community/meilisearch/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/meilisearch/APKBUILD')
-rw-r--r--community/meilisearch/APKBUILD109
1 files changed, 109 insertions, 0 deletions
diff --git a/community/meilisearch/APKBUILD b/community/meilisearch/APKBUILD
new file mode 100644
index 00000000000..65ee9e26568
--- /dev/null
+++ b/community/meilisearch/APKBUILD
@@ -0,0 +1,109 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=meilisearch
+pkgver=1.1.1
+pkgrel=4
+pkgdesc="A lightning-fast search engine that fits into your apps, websites and workflow"
+url="https://www.meilisearch.com/"
+# ppc64le, riscv64, s390x: fails to build ring crate
+# armhf, armv7, x86: unsupported by upstream
+arch="all !armhf !armv7 !ppc64le !riscv64 !s390x !x86"
+license="MIT"
+depends="ca-certificates"
+makedepends="
+ cargo
+ cargo-auditable
+ mimalloc2-dev
+ "
+pkgusers="meilisearch"
+pkggroups="meilisearch"
+install="$pkgname.pre-install $pkgname.post-upgrade"
+subpackages="$pkgname-openrc"
+_actixtls_ver=tls-v3.0.3
+_deserr_rev=4657d42d2c6efb839345718182ab193730db5817
+source="https://github.com/meilisearch/meilisearch/archive/v$pkgver/meilisearch-$pkgver.tar.gz
+ https://github.com/actix/actix-net/archive/$_actixtls_ver/actix-net-$_actixtls_ver.tar.gz
+ https://github.com/meilisearch/deserr/archive/$_deserr_rev/deserr-$_deserr_rev.tar.gz
+ reformat-config.patch
+ unbundle-ca-certs.patch
+ tokenizer-flags.patch
+ deserr-features.patch
+ syslog.patch
+ config.patch
+ cargo-update-libc-lfs64.patch
+ $pkgname.initd
+ $pkgname.confd
+ "
+options="!check" # FIXME: tests run out of file descriptors
+
+# Disable analytics (telemetry / data collection), mini-dashboard (JS project)
+# and specialized tokenizers (they are huge).
+_cargo_opts="--frozen --no-default-features"
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL=2
+
+prepare() {
+ cargo fetch --target="$CTARGET" --locked
+
+ mkdir -p vendor
+ mv "$srcdir"/actix-net-$_actixtls_ver vendor/actix-net
+ mv "$srcdir"/deserr-$_deserr_rev vendor/deserr
+
+ default_prepare
+
+ # Build with patched actix-tls and deserr.
+ # NOTE: Web patch actix-tls to get rid of f*cking bundled CA certificates
+ # (https://github.com/actix/actix-net/issues/462).
+ # TODO: Remove deserr after https://github.com/meilisearch/deserr/pull/35 is released.
+ cat >> Cargo.toml <<-EOF
+
+ [patch.crates-io]
+ actix-tls = { path = "./vendor/actix-net/actix-tls" }
+ deserr = { path = "./vendor/deserr" }
+ EOF
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided mimalloc.
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ mimalloc = { rustc-link-lib = ["mimalloc"] }
+ EOF
+
+ cargo fetch --target="$CTARGET" # update after patching
+}
+
+build() {
+ cargo auditable build $_cargo_opts --release
+}
+
+check() {
+ cargo test $_cargo_opts --workspace
+}
+
+package() {
+ install -D -m755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+ install -D -m640 -g "$pkggroups" config.toml "$pkgdir"/etc/meilisearch/config.toml
+
+ install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+
+ install -d -m755 -o "$pkgusers" -g "$pkggroups" "$pkgdir"/var/lib/$pkgname
+}
+
+sha512sums="
+22508f10b782c72609d114b5629bc245331c4d5b03306286f25a96ce27c3ce5038b0f1821184bbd3de926ec5884dcaf7d156d3b3206e8cc2db719cf59ae419fa meilisearch-1.1.1.tar.gz
+52bb0556cf9e7462d267ec9878d2222d14bbee7176b80acc68d9b35005efa07375d4428b7cad2814d28895f43e6c35b5057ef2276bd3e252a04eed46e7e47a59 actix-net-tls-v3.0.3.tar.gz
+332f36c2f3a2615cefd5fcf211e96b4da83921881b7faf761bbf1552170b76870fc70d780534f258e4eb4961f0bd95d47832c33a203d457e98941fac1c58eeb1 deserr-4657d42d2c6efb839345718182ab193730db5817.tar.gz
+9a4966501267688b9e98e8b555d486e044386f781f5133cc1ec7576bc1dbefcf59ffaa675be1b9a6a9787cd723c8f903e634da86aa44ff2fb94925653bb99037 reformat-config.patch
+63e29d8bb477431d1f5cf9b9589ca77694edba97f695e01beb5dc2041544cee72dc13ced786445173409c06d44488163aceb230233795140f93081420b00595b unbundle-ca-certs.patch
+62f74c28a2e755bf2f9e65653b71281e5065ff7276993ed98e2457eca4315a2729181b8238af1ec74911b98c80a4a2955d19223d507215d14f98ebf05f4c44e9 tokenizer-flags.patch
+1e934f6ac31352b1c57a90e4c50fc26b1483134f2edaabd8c981f118c9c2a7729213aab6704f8f61e371429a8c59d80df5309075f7be66fbe746ce38a4baec2e deserr-features.patch
+bacc82d2d4654930cff3173fb09ece051c45adcb288458fce4be1930c80b59cdac5c4efaa81c2997be0f3833a96811a2485a0f1ef318eabffaa4b6b3ae964eac syslog.patch
+41b7a6c0fa049216437e00d8f1cbea336e30d527d8cc626b9bd1885f5d817a67f30af324efc2a498611bd3b781e926de6150dfeb89029433d6163191c671681b config.patch
+f8eb5382934a40ff6677c6b8b015e8cb3689ea65e2505c73ab15402d6ec313fd92617975ffe4569e65d4e9b07c0436a3162b33bb481d4c6e27daf83880f57362 cargo-update-libc-lfs64.patch
+cc2ca5cc2d7baa3d17bb2d0798211599264d11017e2f8139bec07e719b6bf99de2bb0e2eb64ba99f74ed0c299c30f12a7867c76abfe57279a714a14c030e8543 meilisearch.initd
+601a8cd3509a6fc24a6445fd09acca00f082e7767db1d36bfa496ab06c91414a43881e3cdcd2176620c9844776e4a2f1954051a4ec34cc13bba6d5316a0c9e96 meilisearch.confd
+"