mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
Done via: ``` git grep -l virtual/zlib$ | xargs sed -i -e 's@virtual/zlib$@&:=@' ``` Signed-off-by: Michał Górny <mgorny@gentoo.org>
233 lines
13 KiB
Bash
233 lines
13 KiB
Bash
# Copyright 2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
# Autogenerated by pycargoebuild 0.15.0
|
|
|
|
EAPI=8
|
|
|
|
CRATES="
|
|
"
|
|
|
|
declare -A GIT_CRATES=(
|
|
[async-pipe]='https://github.com/zed-industries/async-pipe-rs;82d00a04211cf4e1236029aa03e6b6ce2a74c553;async-pipe-rs-%commit%'
|
|
[candle-core]='https://github.com/zed-industries/candle;724d75eb3deebefe83f2a7381a45d4fac6eda383;candle-%commit%/candle-core'
|
|
[candle-nn]='https://github.com/zed-industries/candle;724d75eb3deebefe83f2a7381a45d4fac6eda383;candle-%commit%/candle-nn'
|
|
[candle-onnx]='https://github.com/zed-industries/candle;724d75eb3deebefe83f2a7381a45d4fac6eda383;candle-%commit%/candle-onnx'
|
|
[dap-types]='https://github.com/zed-industries/dap-types;1b461b310481d01e02b2603c16d7144b926339f8;dap-types-%commit%/dap-types'
|
|
[jupyter-protocol]='https://github.com/ConradIrwin/runtimed;7130c804216b6914355d15d0b91ea91f6babd734;runtimed-%commit%/crates/jupyter-protocol'
|
|
[jupyter-websocket-client]='https://github.com/ConradIrwin/runtimed;7130c804216b6914355d15d0b91ea91f6babd734;runtimed-%commit%/crates/jupyter-websocket-client'
|
|
[libwebrtc]='https://github.com/zed-industries/livekit-rust-sdks;5f04705ac3f356350ae31534ffbc476abc9ea83d;livekit-rust-sdks-%commit%/libwebrtc'
|
|
[livekit-api]='https://github.com/zed-industries/livekit-rust-sdks;5f04705ac3f356350ae31534ffbc476abc9ea83d;livekit-rust-sdks-%commit%/livekit-api'
|
|
[livekit-protocol]='https://github.com/zed-industries/livekit-rust-sdks;5f04705ac3f356350ae31534ffbc476abc9ea83d;livekit-rust-sdks-%commit%/livekit-protocol'
|
|
[livekit-runtime]='https://github.com/zed-industries/livekit-rust-sdks;5f04705ac3f356350ae31534ffbc476abc9ea83d;livekit-rust-sdks-%commit%/livekit-runtime'
|
|
[livekit]='https://github.com/zed-industries/livekit-rust-sdks;5f04705ac3f356350ae31534ffbc476abc9ea83d;livekit-rust-sdks-%commit%/livekit'
|
|
[lsp-types]='https://github.com/zed-industries/lsp-types;0874f8742fe55b4dc94308c1e3c0069710d8eeaf;lsp-types-%commit%'
|
|
[nbformat]='https://github.com/ConradIrwin/runtimed;7130c804216b6914355d15d0b91ea91f6babd734;runtimed-%commit%/crates/nbformat'
|
|
[notify-types]='https://github.com/zed-industries/notify;bbb9ea5ae52b253e095737847e367c30653a2e96;notify-%commit%/notify-types'
|
|
[notify]='https://github.com/zed-industries/notify;bbb9ea5ae52b253e095737847e367c30653a2e96;notify-%commit%/notify'
|
|
[nvim-rs]='https://github.com/KillTheMule/nvim-rs;764dd270c642f77f10f3e19d05cc178a6cbe69f3;nvim-rs-%commit%'
|
|
[pet-conda]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-conda'
|
|
[pet-core]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-core'
|
|
[pet-env-var-path]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-env-var-path'
|
|
[pet-fs]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-fs'
|
|
[pet-global-virtualenvs]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-global-virtualenvs'
|
|
[pet-homebrew]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-homebrew'
|
|
[pet-jsonrpc]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-jsonrpc'
|
|
[pet-linux-global-python]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-linux-global-python'
|
|
[pet-mac-commandlinetools]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-mac-commandlinetools'
|
|
[pet-mac-python-org]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-mac-python-org'
|
|
[pet-mac-xcode]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-mac-xcode'
|
|
[pet-pipenv]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-pipenv'
|
|
[pet-pixi]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-pixi'
|
|
[pet-poetry]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-poetry'
|
|
[pet-pyenv]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-pyenv'
|
|
[pet-python-utils]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-python-utils'
|
|
[pet-reporter]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-reporter'
|
|
[pet-telemetry]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-telemetry'
|
|
[pet-venv]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-venv'
|
|
[pet-virtualenv]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-virtualenv'
|
|
[pet-virtualenvwrapper]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-virtualenvwrapper'
|
|
[pet-windows-registry]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-windows-registry'
|
|
[pet-windows-store]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet-windows-store'
|
|
[pet]='https://github.com/microsoft/python-environment-tools;845945b830297a50de0e24020b980a65e4820559;python-environment-tools-%commit%/crates/pet'
|
|
[rodio]='https://github.com/RustAudio/rodio;e2074c6c2acf07b57cf717e076bdda7a9ac6e70b;rodio-%commit%'
|
|
[runtimelib]='https://github.com/ConradIrwin/runtimed;7130c804216b6914355d15d0b91ea91f6babd734;runtimed-%commit%/crates/runtimelib'
|
|
[tiktoken-rs]='https://github.com/zed-industries/tiktoken-rs;30c32a4522751699adeda0d5840c71c3b75ae73d;tiktoken-rs-%commit%/tiktoken-rs'
|
|
[tree-sitter-cpp]='https://github.com/tree-sitter/tree-sitter-cpp;5cb9b693cfd7bfacab1d9ff4acac1a4150700609;tree-sitter-cpp-%commit%'
|
|
[tree-sitter-gitcommit]='https://github.com/zed-industries/tree-sitter-git-commit;88309716a69dd13ab83443721ba6e0b491d37ee9;tree-sitter-git-commit-%commit%'
|
|
[tree-sitter-gomod]='https://github.com/camdencheek/tree-sitter-go-mod;6efb59652d30e0e9cd5f3b3a669afd6f1a926d3c;tree-sitter-go-mod-%commit%'
|
|
[tree-sitter-gowork]='https://github.com/zed-industries/tree-sitter-go-work;acb0617bf7f4fda02c6217676cc64acb89536dc7;tree-sitter-go-work-%commit%'
|
|
[tree-sitter-heex]='https://github.com/zed-industries/tree-sitter-heex;1dd45142fbb05562e35b2040c6129c9bca346592;tree-sitter-heex-%commit%'
|
|
[tree-sitter-md]='https://github.com/tree-sitter-grammars/tree-sitter-markdown;9a23c1a96c0513d8fc6520972beedd419a973539;tree-sitter-markdown-%commit%'
|
|
[tree-sitter-yaml]='https://github.com/zed-industries/tree-sitter-yaml;baff0b51c64ef6a1fb1f8390f3ad6015b83ec13a;tree-sitter-yaml-%commit%'
|
|
[webrtc-sys-build]='https://github.com/zed-industries/livekit-rust-sdks;5f04705ac3f356350ae31534ffbc476abc9ea83d;livekit-rust-sdks-%commit%/webrtc-sys/build'
|
|
[webrtc-sys]='https://github.com/zed-industries/livekit-rust-sdks;5f04705ac3f356350ae31534ffbc476abc9ea83d;livekit-rust-sdks-%commit%/webrtc-sys'
|
|
[windows-capture]='https://github.com/zed-industries/windows-capture;f0d6c1b6691db75461b732f6d5ff56eed002eeb9;windows-capture-%commit%'
|
|
[xim-ctext]='https://github.com/zed-industries/xim-rs;16f35a2c881b815a2b6cdfd6687988e84f8447d8;xim-rs-%commit%/xim-ctext'
|
|
[xim-parser]='https://github.com/zed-industries/xim-rs;16f35a2c881b815a2b6cdfd6687988e84f8447d8;xim-rs-%commit%/xim-parser'
|
|
[zed-font-kit]='https://github.com/zed-industries/font-kit;110523127440aefb11ce0cf280ae7c5071337ec5;font-kit-%commit%'
|
|
[zed-reqwest]='https://github.com/zed-industries/reqwest;c15662463bda39148ba154100dd44d3fba5873a4;reqwest-%commit%'
|
|
[zed-scap]='https://github.com/zed-industries/scap;4afea48c3b002197176fb19cd0f9b180dd36eaac;scap-%commit%'
|
|
[zed-xim]='https://github.com/zed-industries/xim-rs;16f35a2c881b815a2b6cdfd6687988e84f8447d8;xim-rs-%commit%'
|
|
)
|
|
|
|
LLVM_COMPAT=( 20 )
|
|
RUST_MIN_VER="1.90.0"
|
|
RUST_NEEDS_LLVM=1
|
|
WEBRTC_COMMIT="b99fd2c-6"
|
|
|
|
inherit cargo check-reqs desktop flag-o-matic llvm-r1 toolchain-funcs xdg
|
|
|
|
DESCRIPTION="The fast, collaborative code editor"
|
|
HOMEPAGE="https://zed.dev https://github.com/zed-industries/zed"
|
|
SRC_URI="
|
|
https://github.com/zed-industries/zed/archive/refs/tags/v${PV/_/-}.tar.gz -> ${P}.tar.gz
|
|
https://github.com/gentoo-crate-dist/zed/releases/download/v${PV/_/-}/${P/_/-}-crates.tar.xz
|
|
amd64? (
|
|
https://github.com/livekit/rust-sdks/releases/download/webrtc-${WEBRTC_COMMIT}/webrtc-linux-x64-release.zip ->
|
|
webrtc-${WEBRTC_COMMIT}-linux-x64-release.zip
|
|
)
|
|
arm64? (
|
|
https://github.com/livekit/rust-sdks/releases/download/webrtc-${WEBRTC_COMMIT}/webrtc-linux-arm64-release.zip ->
|
|
webrtc-${WEBRTC_COMMIT}-linux-arm64-release.zip
|
|
)
|
|
${CARGO_CRATE_URIS}"
|
|
|
|
S="${WORKDIR}/${PN}-${PV/_/-}"
|
|
LICENSE="GPL-3+"
|
|
# Dependent crate licenses
|
|
LICENSE+="
|
|
Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0 ISC
|
|
LGPL-3 MIT MIT-0 MPL-2.0 UoI-NCSA openssl Unicode-3.0 ZLIB
|
|
"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~arm64"
|
|
CHECKREQS_DISK_BUILD="14G"
|
|
CHECKREQS_MEMORY="8G"
|
|
|
|
DEPEND="
|
|
app-arch/zstd:=
|
|
app-misc/jq
|
|
dev-db/sqlite:3
|
|
>=dev-libs/libgit2-1.9.0:=
|
|
dev-libs/mimalloc
|
|
dev-libs/openssl:0/3
|
|
dev-libs/protobuf
|
|
dev-libs/wayland
|
|
dev-libs/wayland-protocols
|
|
dev-util/wayland-scanner
|
|
dev-util/vulkan-tools
|
|
|| (
|
|
media-fonts/dejavu
|
|
media-fonts/cantarell
|
|
media-fonts/noto
|
|
media-fonts/ubuntu-font-family
|
|
)
|
|
media-libs/alsa-lib
|
|
media-libs/fontconfig
|
|
media-libs/vulkan-loader[X]
|
|
net-misc/curl
|
|
virtual/zlib:=
|
|
x11-libs/libX11
|
|
x11-libs/libxcb:=
|
|
x11-libs/libxkbcommon[X]
|
|
"
|
|
RDEPEND="${DEPEND}"
|
|
BDEPEND="
|
|
app-arch/unzip
|
|
dev-build/cmake
|
|
dev-util/vulkan-headers
|
|
sys-devel/gettext
|
|
sys-devel/mold
|
|
$(llvm_gen_dep '
|
|
llvm-core/clang:${LLVM_SLOT}=
|
|
llvm-core/llvm:${LLVM_SLOT}=
|
|
')
|
|
"
|
|
|
|
QA_FLAGS_IGNORED="usr/bin/zedit"
|
|
|
|
pkg_setup() {
|
|
if tc-is-lto; then
|
|
if tc-is-gcc; then
|
|
export CARGO_PROFILE_RELEASE_LTO="true"
|
|
elif tc-is-clang; then
|
|
export CARGO_PROFILE_RELEASE_LTO="thin"
|
|
fi
|
|
else
|
|
export CARGO_PROFILE_RELEASE_LTO="false"
|
|
fi
|
|
|
|
strip-unsupported-flags
|
|
# flags from upstream
|
|
export RUSTFLAGS="${RUSTFLAGS} -C symbol-mangling-version=v0 --cfg tokio_unstable -C link-arg=-fuse-ld=mold -C link-args=-Wl,--disable-new-dtags,-rpath,\$ORIGIN/../lib"
|
|
# fix error in livekit-rust-sdks
|
|
export RUSTFLAGS="${RUSTFLAGS} -A unexpected_cfgs"
|
|
llvm-r1_pkg_setup
|
|
rust_pkg_setup
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
export APP_CLI="zedit"
|
|
export APP_ICON="zed"
|
|
if [[ "${PV}" == *pre ]]; then
|
|
export APP_ID="dev.zed.Zed-Preview"
|
|
else
|
|
export APP_ID="dev.zed.Zed"
|
|
fi
|
|
export APP_NAME="Zed"
|
|
export APP_ARGS="%U"
|
|
export DO_STARTUP_NOTIFY="true"
|
|
envsubst < "crates/zed/resources/zed.desktop.in" > ${APP_ID}.desktop || die
|
|
|
|
# Cargo offline fetch workaround
|
|
local NOTIFY_COMMIT="bbb9ea5ae52b253e095737847e367c30653a2e96"
|
|
local NOTIFY_GIT="notify = { git = \"https://github.com/zed-industries/notify.git\", rev = \"${NOTIFY_COMMIT}\""
|
|
local NOTIFY_PATH="notify = \\{ path = \"${WORKDIR}/notify-${NOTIFY_COMMIT}/notify\""
|
|
local NOTIFY_TYPES_GIT="notify-types = { git = \"https://github.com/zed-industries/notify.git\", rev = \"${NOTIFY_COMMIT}\""
|
|
local NOTIFY_TYPES_PATH="notify-types = \\{ path = \"${WORKDIR}/notify-${NOTIFY_COMMIT}/notify-types\""
|
|
|
|
local WIN_CAP_COMMIT="f0d6c1b6691db75461b732f6d5ff56eed002eeb9"
|
|
local WIN_CAP_GIT="windows-capture = { git = \"https://github.com/zed-industries/windows-capture.git\", rev = \"${WIN_CAP_COMMIT}\""
|
|
local WIN_CAP_PATH="windows-capture = \\{ path = \"${WORKDIR}/windows-capture-${WIN_CAP_COMMIT}\""
|
|
|
|
sed -e "s#${NOTIFY_GIT}#${NOTIFY_PATH}#" \
|
|
-e "s#${NOTIFY_TYPES_GIT}#${NOTIFY_TYPES_PATH}#" \
|
|
-e "s#${WIN_CAP_GIT}#${WIN_CAP_PATH}#" \
|
|
-i "${S}/Cargo.toml" || die "Cargo fetch workaround failed"
|
|
}
|
|
|
|
src_configure() {
|
|
cargo_src_configure --all-features
|
|
}
|
|
|
|
src_compile() {
|
|
export RELEASE_VERSION="${PV}"
|
|
export ZED_UPDATE_EXPLANATION='Updates are handled by portage'
|
|
if use arm64; then
|
|
export LK_CUSTOM_WEBRTC="${WORKDIR}/linux-arm64-release"
|
|
elif use amd64; then
|
|
export LK_CUSTOM_WEBRTC="${WORKDIR}/linux-x64-release"
|
|
fi
|
|
cargo_src_compile --package zed --package cli
|
|
}
|
|
|
|
src_install() {
|
|
newbin $(cargo_target_dir)/cli ${APP_CLI}
|
|
exeinto "/usr/libexec"
|
|
newexe $(cargo_target_dir)/zed zed-editor
|
|
|
|
newicon -s 512 crates/zed/resources/app-icon.png zed.png
|
|
newicon -s 1024 crates/zed/resources/app-icon@2x.png zed.png
|
|
domenu "${S}/${APP_ID}.desktop"
|
|
}
|
|
|
|
src_test () {
|
|
mkdir -p "${HOME}/.config/zed" || die
|
|
mkdir -p "${HOME}/.local/share/zed/logs/" || die
|
|
|
|
SHELL=/usr/bin/sh RUST_BACKTRACE=full cargo_src_test -vv
|
|
}
|