Add scripts and configuration for building snap package (#25064)
Release Notes: - N/A --------- Co-authored-by: Soumyadeep Ghosh <soumyadeepghosh2004@zohomail.in>
This commit is contained in:
parent
2d1a028de5
commit
ea40c1d9b3
4 changed files with 111 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -26,6 +26,7 @@
|
||||||
/dev.zed.Zed*.json
|
/dev.zed.Zed*.json
|
||||||
/plugins/bin
|
/plugins/bin
|
||||||
/script/node_modules
|
/script/node_modules
|
||||||
|
/snap
|
||||||
/zed.xcworkspace
|
/zed.xcworkspace
|
||||||
DerivedData/
|
DerivedData/
|
||||||
Packages
|
Packages
|
||||||
|
|
58
crates/zed/resources/snap/snapcraft.yaml.in
Normal file
58
crates/zed/resources/snap/snapcraft.yaml.in
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
name: zed
|
||||||
|
title: Zed
|
||||||
|
base: core24
|
||||||
|
version: "$RELEASE_VERSION"
|
||||||
|
summary: The editor for what's next
|
||||||
|
description: |
|
||||||
|
Zed is a modern open-source code editor, built from the ground up in Rust with
|
||||||
|
a GPU-accelerated renderer. We help you build software faster than ever before.
|
||||||
|
grade: stable
|
||||||
|
confinement: classic
|
||||||
|
compression: lzo
|
||||||
|
icon: crates/zed/resources/app-icon.png
|
||||||
|
website: https://zed.dev/
|
||||||
|
source-code: https://github.com/zed-industries/zed
|
||||||
|
issues: https://github.com/zed-industries/zed/issues
|
||||||
|
contact: https://zed.dev/community-links#support-and-feedback
|
||||||
|
|
||||||
|
parts:
|
||||||
|
zed:
|
||||||
|
plugin: dump
|
||||||
|
source: "https://github.com/zed-industries/zed/releases/download/v$RELEASE_VERSION/zed-linux-x86_64.tar.gz"
|
||||||
|
|
||||||
|
organize:
|
||||||
|
# These renames seem to not be necessary, but it's tidier.
|
||||||
|
bin: usr/bin
|
||||||
|
libexec: usr/libexec
|
||||||
|
|
||||||
|
stage-packages:
|
||||||
|
- libasound2t64
|
||||||
|
# snapcraft has a lint that this is unused, but without it Zed exits with
|
||||||
|
# "Missing Vulkan entry points: LibraryLoadFailure" in blade_graphics.
|
||||||
|
- libvulkan1
|
||||||
|
# snapcraft has a lint that this is unused, but without it Zed exits with
|
||||||
|
# "NoWaylandLib" when run with Wayland.
|
||||||
|
- libwayland-client0
|
||||||
|
- libxcb1
|
||||||
|
- libxkbcommon-x11-0
|
||||||
|
- libxkbcommon0
|
||||||
|
|
||||||
|
build-attributes:
|
||||||
|
- enable-patchelf
|
||||||
|
|
||||||
|
prime:
|
||||||
|
# Omit unneeded files from the tarball
|
||||||
|
- -lib
|
||||||
|
- -licenses.md
|
||||||
|
- -share
|
||||||
|
|
||||||
|
# Omit unneeded files from stage-packages
|
||||||
|
- -etc
|
||||||
|
- -usr/share/doc
|
||||||
|
- -usr/share/lintian
|
||||||
|
- -usr/share/man
|
||||||
|
|
||||||
|
apps:
|
||||||
|
zed:
|
||||||
|
command: usr/bin/zed
|
||||||
|
common-id: dev.zed.Zed
|
27
script/snap-build
Executable file
27
script/snap-build
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
if [ "$#" -ne 1 ]; then
|
||||||
|
echo "Usage: $0 <release_version>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p snap/gui
|
||||||
|
|
||||||
|
export DO_STARTUP_NOTIFY="true"
|
||||||
|
export APP_NAME="Zed"
|
||||||
|
export APP_CLI="zed"
|
||||||
|
export APP_ICON="\${SNAP}/meta/gui/zed.png"
|
||||||
|
export APP_ARGS="%U"
|
||||||
|
envsubst < "crates/zed/resources/zed.desktop.in" > "snap/gui/zed.desktop"
|
||||||
|
cp "crates/zed/resources/app-icon.png" "snap/gui/zed.png"
|
||||||
|
|
||||||
|
RELEASE_VERSION="$1" envsubst < crates/zed/resources/snap/snapcraft.yaml.in > snap/snapcraft.yaml
|
||||||
|
|
||||||
|
# Clean seems to be needed to actually check that the snapcraft.yaml
|
||||||
|
# works. For example, when a `stage-package` is removed, it will
|
||||||
|
# still remain on rebuild.
|
||||||
|
snapcraft clean
|
||||||
|
|
||||||
|
snapcraft
|
25
script/snap-try
Executable file
25
script/snap-try
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# This script is intended to be run after `snap-build`.
|
||||||
|
#
|
||||||
|
# It expects a version to be passed as the first argument, and expects
|
||||||
|
# the built `.snap` for that version to be in the current directory.
|
||||||
|
#
|
||||||
|
# This will uninstall the current `zed` snap, replacing it with a snap
|
||||||
|
# that directly uses the `snap/unpacked` directory.
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
if [ "$#" -ne 1 ]; then
|
||||||
|
echo "Usage: $0 <release_version>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rerun as root
|
||||||
|
[ "$UID" -eq 0 ] || exec sudo bash -e "$0" "$@"
|
||||||
|
|
||||||
|
snap remove zed || true
|
||||||
|
mkdir -p snap
|
||||||
|
rm -rf snap/unpacked
|
||||||
|
unsquashfs -dest snap/unpacked "zed_$1_amd64.snap"
|
||||||
|
snap try --classic snap/unpacked
|
Loading…
Add table
Add a link
Reference in a new issue