From 254c4ce0872df2ea4ef432c92d6fbf8bf317c172 Mon Sep 17 00:00:00 2001 From: Myriad-Dreamin <35292584+Myriad-Dreamin@users.noreply.github.com> Date: Fri, 22 Nov 2024 17:53:09 +0800 Subject: [PATCH] fix: cross build with `vendor-openssl` feature and bump version to 0.12.4-rc2 (#884) * fix: cross build with `vendor-openssl` feature * build: bump version to 0.12.4-rc2 --- .github/workflows/release.yml | 26 ++++++++----------- Cargo.lock | 46 +++++++++++++++++++++------------- Cargo.toml | 4 +-- contrib/typlite/Cargo.toml | 6 +++++ crates/tinymist/Cargo.toml | 4 +++ editors/vscode/package.json | 2 +- syntaxes/textmate/package.json | 2 +- 7 files changed, 53 insertions(+), 37 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 378cfdf67..3fc708af4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,14 +50,17 @@ jobs: platform: linux arch: x64 regular_build: 'true' + cross: true - os: ubuntu-20.04 rust-target: aarch64-unknown-linux-gnu platform: linux arch: arm64 + cross: true - os: ubuntu-20.04 rust-target: arm-unknown-linux-gnueabihf platform: linux arch: armhf + cross: true - os: macos-13 rust-target: x86_64-apple-darwin platform: darwin @@ -109,29 +112,20 @@ jobs: with: targets: ${{ matrix.rust-target }} if: (fromJson(env.isRelease) || fromJson(env.isNightly)) - - name: Install llvm - if: matrix.platform == 'linux' && (fromJson(env.isRelease) || fromJson(env.isNightly)) - run: | - sudo apt-get update - sudo apt-get install llvm - - name: Install AArch64 target toolchain - if: matrix.rust-target == 'aarch64-unknown-linux-gnu' && (fromJson(env.isRelease) || fromJson(env.isNightly)) - run: | - sudo apt-get update - sudo apt-get install gcc-aarch64-linux-gnu - - name: Install ARM target toolchain - if: matrix.rust-target == 'arm-unknown-linux-gnueabihf' && (fromJson(env.isRelease) || fromJson(env.isNightly)) - run: | - sudo apt-get update - sudo apt-get install gcc-arm-linux-gnueabihf - name: Run rust-cache uses: Swatinem/rust-cache@v2 if: (fromJson(env.isRelease) || fromJson(env.isNightly)) + - name: Build tinymist binary (cross) + shell: pwsh + run: | + cargo install cross --git https://github.com/cross-rs/cross.git --locked --rev 085092ca + cross build --profile=gh-release -p tinymist --target ${{ matrix.rust-target }} --features vendor-openssl + if: matrix.cross && (startsWith(github.ref, 'refs/tags/') || matrix.regular_build == 'true') - name: Build tinymist binary shell: pwsh run: | cargo build --profile=gh-release -p tinymist --target ${{ matrix.rust-target }} - if: startsWith(github.ref, 'refs/tags/') || matrix.regular_build == 'true' + if: "!matrix.cross && (startsWith(github.ref, 'refs/tags/') || matrix.regular_build == 'true')" - name: Rename debug symbols for windows if: matrix.platform == 'win32' && (fromJson(env.isRelease) || fromJson(env.isNightly)) run: | diff --git a/Cargo.lock b/Cargo.lock index a005a216e..1cbfed29f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2414,6 +2414,15 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-src" +version = "300.4.1+3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" +dependencies = [ + "cc", +] + [[package]] name = "openssl-sys" version = "0.9.104" @@ -2422,6 +2431,7 @@ checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", + "openssl-src", "pkg-config", "vcpkg", ] @@ -3770,7 +3780,7 @@ dependencies = [ [[package]] name = "sync-lsp" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "anyhow", "clap", @@ -3892,7 +3902,7 @@ dependencies = [ [[package]] name = "tests" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "insta", "lsp-server", @@ -4015,7 +4025,7 @@ dependencies = [ [[package]] name = "tinymist" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "anyhow", "async-trait", @@ -4056,7 +4066,7 @@ dependencies = [ "serde_yaml", "strum", "sync-lsp", - "tinymist-assets 0.12.4-rc1 (registry+https://github.com/rust-lang/crates.io-index)", + "tinymist-assets 0.12.4-rc2 (registry+https://github.com/rust-lang/crates.io-index)", "tinymist-query", "tinymist-render", "tinymist-world", @@ -4067,6 +4077,7 @@ dependencies = [ "typst", "typst-ansi-hl", "typst-assets", + "typst-kit", "typst-pdf", "typst-preview", "typst-render", @@ -4082,7 +4093,7 @@ dependencies = [ [[package]] name = "tinymist-analysis" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "base64", "comemo 0.4.0", @@ -4099,17 +4110,17 @@ dependencies = [ [[package]] name = "tinymist-assets" -version = "0.12.4-rc1" +version = "0.12.4-rc2" [[package]] name = "tinymist-assets" -version = "0.12.4-rc1" +version = "0.12.4-rc2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b5a6ef8667c6570b234ffd7c3527de3ae0f80f23d55c5c19313384bf4f0905" +checksum = "f3f15b9924413b373fadf822c5a1c9dab36e5083a3e71471fb24a895bd1a2522" [[package]] name = "tinymist-derive" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "quote", "syn 2.0.87", @@ -4117,7 +4128,7 @@ dependencies = [ [[package]] name = "tinymist-query" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "anyhow", "base64", @@ -4171,7 +4182,7 @@ dependencies = [ [[package]] name = "tinymist-render" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "base64", "log", @@ -4182,7 +4193,7 @@ dependencies = [ [[package]] name = "tinymist-world" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "anyhow", "chrono", @@ -4195,7 +4206,7 @@ dependencies = [ "reflexo-typst-shim", "serde", "serde_json", - "tinymist-assets 0.12.4-rc1 (registry+https://github.com/rust-lang/crates.io-index)", + "tinymist-assets 0.12.4-rc2 (registry+https://github.com/rust-lang/crates.io-index)", "typst", "typst-assets", "typst-kit", @@ -4480,7 +4491,7 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "typlite" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "base64", "comemo 0.4.0", @@ -4502,6 +4513,7 @@ dependencies = [ "ecow 0.2.3", "tinymist-world", "typlite", + "typst-kit", ] [[package]] @@ -4653,7 +4665,7 @@ dependencies = [ [[package]] name = "typst-preview" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "clap", "comemo 0.4.0", @@ -4666,7 +4678,7 @@ dependencies = [ "reflexo-vec2svg", "serde", "serde_json", - "tinymist-assets 0.12.4-rc1 (registry+https://github.com/rust-lang/crates.io-index)", + "tinymist-assets 0.12.4-rc2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio", "typst", "typst-assets", @@ -4693,7 +4705,7 @@ dependencies = [ [[package]] name = "typst-shim" -version = "0.12.4-rc1" +version = "0.12.4-rc2" dependencies = [ "cfg-if", "typst", diff --git a/Cargo.toml b/Cargo.toml index 652e3e027..f4d6f558d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [workspace.package] description = "An integrated language service for Typst." authors = ["Myriad-Dreamin ", "Nathan Varner"] -version = "0.12.4-rc1" +version = "0.12.4-rc2" edition = "2021" readme = "README.md" license = "Apache-2.0" @@ -145,7 +145,7 @@ insta = { version = "1.39", features = ["glob"] } # Our Own Crates typst-preview = { path = "./crates/typst-preview" } -tinymist-assets = { version = "0.12.4-rc1" } +tinymist-assets = { version = "0.12.4-rc2" } tinymist = { path = "./crates/tinymist/" } tinymist-derive = { path = "./crates/tinymist-derive/" } tinymist-analysis = { path = "./crates/tinymist-analysis/" } diff --git a/contrib/typlite/Cargo.toml b/contrib/typlite/Cargo.toml index 407b43590..788278a37 100644 --- a/contrib/typlite/Cargo.toml +++ b/contrib/typlite/Cargo.toml @@ -13,8 +13,14 @@ repository.workspace = true name = "typlite" path = "src/main.rs" +[features] + +# Whether to vendor OpenSSL. Not applicable to Windows and macOS builds. +vendor-openssl = ["typst-kit/vendor-openssl"] + [dependencies] typlite.workspace = true clap.workspace = true tinymist-world.workspace = true ecow.workspace = true +typst-kit.workspace = true diff --git a/crates/tinymist/Cargo.toml b/crates/tinymist/Cargo.toml index 2ec0dc983..c64aa0a9e 100644 --- a/crates/tinymist/Cargo.toml +++ b/crates/tinymist/Cargo.toml @@ -81,6 +81,7 @@ open = { workspace = true, optional = true } dirs.workspace = true base64.workspace = true rayon.workspace = true +typst-kit.workspace = true typst-ansi-hl = "0.2.0" @@ -99,6 +100,9 @@ dhat-heap = ["dhat"] # into the binary. embed-fonts = ["typst-assets/fonts"] +# Whether to vendor OpenSSL. Not applicable to Windows and macOS builds. +vendor-openssl = ["typst-kit/vendor-openssl"] + # Disable the default content hint. # This requires modifying typst. no-content-hint = [ diff --git a/editors/vscode/package.json b/editors/vscode/package.json index 2efc031c0..9a465f72c 100644 --- a/editors/vscode/package.json +++ b/editors/vscode/package.json @@ -1,6 +1,6 @@ { "name": "tinymist", - "version": "0.12.4-rc1", + "version": "0.12.4-rc2", "description": "An integrated language service for Typst", "keywords": [ "typst", diff --git a/syntaxes/textmate/package.json b/syntaxes/textmate/package.json index 1d562a652..83323075e 100644 --- a/syntaxes/textmate/package.json +++ b/syntaxes/textmate/package.json @@ -1,6 +1,6 @@ { "name": "typst-textmate", - "version": "0.12.4-rc1", + "version": "0.12.4-rc2", "private": true, "scripts": { "compile": "npx tsc && node ./dist/main.mjs",