Package Details: typst-lsp 0.12.0-2

Git Clone URL: (read-only, click to copy)
Package Base: typst-lsp
Description: Language server for Typst
Upstream URL:
Licenses: MIT, Apache
Submitter: Chocobo1
Maintainer: alerque
Last Packager: alerque
Votes: 4
Popularity: 0.61
First Submitted: 2023-04-05 18:23 (UTC)
Last Updated: 2023-12-04 20:17 (UTC)

Latest Comments

Derson5 commented on 2023-10-04 02:35 (UTC)

@alerque Thanks!

alerque commented on 2023-10-02 19:51 (UTC)

@Derson5 My months-old orphan request finally went through and I've adopted this and merged my patch from June with fixed a number of Rust build related issues.

As for your linker errors, it is actually not necessary to disable LTO entirely. The issue you had wasn't mold specific either, the Arch Linux default chroot builder using lld has similar issues. I've added the correct fix to the PKGBUILD. It now builds cleanly in a chroot and has a few accommodations to make it easier to build directly on a host system too.

Derson5 commented on 2023-09-27 08:59 (UTC)

Chocobo1 commented on 2023-09-26 04:57 (UTC)

Could you add options=(!lto)? I have hard edited makepkg.con and without this in PKGFILE I can't build it.

I'm curious. Can you post your build log?

Derson5 commented on 2023-09-26 00:41 (UTC)

Could you add options=(!lto)? I have hard edited makepkg.con and without this in PKGFILE I can't build it.

alerque commented on 2023-06-21 23:38 (UTC) (edited on 2023-06-21 23:38 (UTC) by alerque)

If you can't be bothered to follow packaging guidelines can you please consider disowning or at least adding me as a co-maintainer yet. This package doesn't have enough usage yet for me to justify moving it to official repos. If we get some votes and/or usage showing up in pkgstats I will probably do that eventually.

Also it can't be that much of a bother to copy the patch I sent to a file and apply it with a single command, then push it. I already handled all the guideline fixes for you.

Chocobo1 commented on 2023-06-19 17:00 (UTC)

Can you please overhaul this a bit to follow the Arch Rust package guidelines.

Lets say I have other considerations and I don't really want to deal with it. Could you please consider bringing this package into (arch) official repo and maintain it? I believe it would be the best for all users.

alerque commented on 2023-06-15 20:01 (UTC)

This patch can be saved to a file and applied with git am file.patch and covers the issues I mentioned:

From fc7bf6102b7b843ea2878a4f9d91e7186d98ea08 Mon Sep 17 00:00:00 2001
From: Caleb Maclennan <>
Date: Thu, 15 Jun 2023 22:34:38 +0300
Subject: [PATCH] Overhaul to fix cargo build/package split and other

Signed-off-by: Caleb Maclennan <>
 .SRCINFO |  7 ++++---
 PKGBUILD | 51 +++++++++++++++++++++++++--------------------------
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/.SRCINFO b/.SRCINFO
index dc3b6e9..1cb9a32 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,15 +1,16 @@
 pkgbase = typst-lsp
    pkgdesc = Language server for Typst
    pkgver = 0.6.2
-   pkgrel = 1
+   pkgrel = 2
    url =
    arch = i686
    arch = x86_64
    license = Apache
    license = MIT
-   makedepends = rust
+   makedepends = cargo
    depends = gcc-libs
-   source = typst-lsp-0.6.2-src.tar.gz::
+   depends = glibc
+   source =
    sha256sums = 197be73f657c4c5f26ce43310e83b56352b4ecf9b59d22d765ec1bbb0e76027b

 pkgname = typst-lsp
diff --git a/PKGBUILD b/PKGBUILD
index 3cf9320..d122018 100644
@@ -1,42 +1,41 @@
 # Maintainer: Chocobo1 <chocobo1 AT archlinux DOT net>
+# Contributor: Caleb Maclennan <>

-pkgdesc="Language server for Typst"
-arch=('i686' 'x86_64')
-license=('Apache' 'MIT')
+pkgdesc='Language server for Typst'
+arch=(i686 x86_64)
+license=(Apache MIT)
+         glibc)

 prepare() {
-  cd "typst-lsp-$pkgver"
+   cd "$_archive"
+   cargo fetch --locked --target "$CARCH-unknown-linux-gnu"

-  if [ ! -f "Cargo.lock" ]; then
-    cargo update
-  fi
-  cargo fetch
+build() {
+   cd "$_archive"
+   export RUSTUP_TOOLCHAIN=stable
+   export CARGO_TARGET_DIR=target
+   cargo build --frozen --release --all-features

 check() {
-  cd "typst-lsp-$pkgver"
-  #cargo test \
-  #  --frozen
+   cd "$_archive"
+   export RUSTUP_TOOLCHAIN=stable
+   cargo test  --frozen --all-features

 package() {
-  cd "typst-lsp-$pkgver"
-  cargo install \
-    --locked \
-    --no-track \
-    --root "$pkgdir/usr" \
-    --path .
-  install -Dm644 "LICENSE-MIT.txt" -t "$pkgdir/usr/share/licenses/typst-lsp"
+   cd "$_archive"
+   install -Dm0755 -t "$pkgdir/usr/bin/" "target/release/$pkgname"
+   install -Dm644 "LICENSE-MIT.txt" -t "$pkgdir/usr/share/licenses/typst-lsp"

alerque commented on 2023-06-15 06:32 (UTC)

Can you please overhaul this a bit to follow the Arch Rust package guidelines. Just on a quick inspection there are quite a few things missing. First, upstream has a lock file so use it, don't silently create it if missing. If they miss it or don't update it it should fail. Also the fetch should be limited to the architecture. Then a build function should be added and used instead of cargo install (unless that is absolutely unavoidable). A couple of environment variables also need setting to get the right toolchain in case people have defaulted to a nightly Rust toolchain, etc. The Wiki explains all these.