build(linux): update snapcraft for insiders
This commit is contained in:
parent
6a0df191ba
commit
fc5bc75ba8
5 changed files with 104 additions and 152 deletions
|
@ -1,70 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
CALLER_DIR=$( pwd )
|
|
||||||
|
|
||||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
|
||||||
|
|
||||||
# Include utilities
|
|
||||||
. ../../utils.sh
|
|
||||||
|
|
||||||
SNAP_VERSION=$( echo "${RELEASE_VERSION}" | sed 's|\-insider||' )
|
|
||||||
ICON_NAME="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
|
||||||
|
|
||||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
|
||||||
ICON_NAME="${ICON_NAME}-insiders"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf build
|
|
||||||
mkdir -p build/snap/gui
|
|
||||||
|
|
||||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
|
||||||
DEB_ARCHIVE=$( ls ../../vscode/.build/linux/deb/amd64/deb/*.deb )
|
|
||||||
else
|
|
||||||
# Get GitHub releases
|
|
||||||
wget --quiet "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases" -O gh_latest.json
|
|
||||||
|
|
||||||
DEB_URL=$( jq -r 'map(select(.tag_name == "'"${RELEASE_VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${ARCHITECTURE}.deb"'"))' gh_latest.json )
|
|
||||||
DEB_ARCHIVE=$( basename "${DEB_URL}" )
|
|
||||||
|
|
||||||
# Downloading .deb
|
|
||||||
wget "${DEB_URL}" -O "${DEB_ARCHIVE}"
|
|
||||||
|
|
||||||
rm gh_latest.json
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Unpacking .deb
|
|
||||||
dpkg -x "${DEB_ARCHIVE}" build/deb
|
|
||||||
|
|
||||||
mkdir -p build/snap/local/usr/share
|
|
||||||
mv "build/deb/usr/share/${BINARY_NAME}" "build/snap/local/usr/share/${BINARY_NAME}"
|
|
||||||
|
|
||||||
# Prepare snapcraft.yaml
|
|
||||||
cp ${VSCODE_QUALITY}/snapcraft.yaml build/snap/snapcraft.yaml
|
|
||||||
|
|
||||||
replace "s|@@SNAP_NAME@@|${BINARY_NAME}|g" build/snap/snapcraft.yaml
|
|
||||||
replace "s|@@SNAP_VERSION@@|${SNAP_VERSION}|g" build/snap/snapcraft.yaml
|
|
||||||
|
|
||||||
# Prepare electron-launch
|
|
||||||
cp ${VSCODE_QUALITY}/electron-launch build/electron-launch
|
|
||||||
|
|
||||||
# Prepare GUI
|
|
||||||
cp "../../src/${VSCODE_QUALITY}/resources/linux/code.png" "build/snap/gui/${BINARY_NAME}.png"
|
|
||||||
cp build/deb/usr/share/applications/*.desktop build/snap/gui
|
|
||||||
|
|
||||||
sed -i "s|Exec=/usr/share/${BINARY_NAME}/${BINARY_NAME}|Exec=${BINARY_NAME} --force-user-env|g" "build/snap/gui/${BINARY_NAME}.desktop"
|
|
||||||
sed -i "s|Exec=/usr/share/${BINARY_NAME}/${BINARY_NAME}|Exec=${BINARY_NAME} --force-user-env|g" "build/snap/gui/${BINARY_NAME}-url-handler.desktop"
|
|
||||||
sed -i "s|Icon=${ICON_NAME}|Icon=\${SNAP}/meta/gui/${BINARY_NAME}.png|g" "build/snap/gui/${BINARY_NAME}.desktop"
|
|
||||||
sed -i "s|Icon=${ICON_NAME}|Icon=\${SNAP}/meta/gui/${BINARY_NAME}.png|g" "build/snap/gui/${BINARY_NAME}-url-handler.desktop"
|
|
||||||
|
|
||||||
# Clean up
|
|
||||||
rm -rf build/deb
|
|
||||||
|
|
||||||
cd build
|
|
||||||
|
|
||||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
|
||||||
snapcraft --use-lxd --debug
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "${CALLER_DIR}"
|
|
103
stores/snapcraft/insider/snap/snapcraft.yaml
Normal file
103
stores/snapcraft/insider/snap/snapcraft.yaml
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
name: codium-insiders
|
||||||
|
adopt-info: codium-insiders
|
||||||
|
summary: Code editing. Redefined.
|
||||||
|
description: |
|
||||||
|
Binary releases of Visual Studio Code - Insiders without branding/telemetry/licensing
|
||||||
|
|
||||||
|
base: core20
|
||||||
|
grade: stable
|
||||||
|
confinement: classic
|
||||||
|
compression: lzo
|
||||||
|
|
||||||
|
parts:
|
||||||
|
codium-insiders:
|
||||||
|
plugin: nil
|
||||||
|
override-build: |
|
||||||
|
set -eu
|
||||||
|
# Get .deb url
|
||||||
|
wget --quiet https://api.github.com/repos/VSCodium/vscodium-insiders/releases -O latest.json
|
||||||
|
VERSION=$( jq -r 'sort_by(.tag_name)|last.tag_name' latest.json )
|
||||||
|
DEB_URL=$( jq -r 'map(select(.tag_name == "'"${VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${SNAPCRAFT_TARGET_ARCH}.deb"'"))' latest.json )
|
||||||
|
DEB_NAME=$( basename "${DEB_URL}" )
|
||||||
|
# Downloading .deb
|
||||||
|
wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}"
|
||||||
|
# Unpacking .deb
|
||||||
|
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}" "${SNAPCRAFT_PART_INSTALL}"
|
||||||
|
# Clean up
|
||||||
|
rm -f latest.json
|
||||||
|
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}"
|
||||||
|
# Set version
|
||||||
|
snapcraftctl set-version "${VERSION}"
|
||||||
|
# Prepare GUI
|
||||||
|
mkdir -p "${SNAPCRAFT_PART_INSTALL}/meta/gui"
|
||||||
|
cp "${SNAPCRAFT_PART_INSTALL}/usr/share/codium-insiders/resources/app/resources/linux/code.png" "${SNAPCRAFT_PART_INSTALL}/meta/gui/codium-insiders.png"
|
||||||
|
# Update paths
|
||||||
|
sed -i 's|Exec=/usr/share/codium/codium-insiders|Exec=codium-insiders --force-user-env|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders.desktop"
|
||||||
|
sed -i 's|Exec=/usr/share/codium/codium-insiders|Exec=codium-insiders --force-user-env|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders-url-handler.desktop"
|
||||||
|
sed -i 's|Icon=vscodium-insiders|Icon=${SNAP}/meta/gui/codium-insiders.png|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders.desktop"
|
||||||
|
sed -i 's|Icon=vscodium-insiders|Icon=${SNAP}/meta/gui/codium-insiders.png|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders-url-handler.desktop"
|
||||||
|
build-packages:
|
||||||
|
- wget
|
||||||
|
- jq
|
||||||
|
stage-packages:
|
||||||
|
- ca-certificates
|
||||||
|
- libasound2
|
||||||
|
- libatk-bridge2.0-0
|
||||||
|
- libatk1.0-0
|
||||||
|
- libatspi2.0-0
|
||||||
|
- libcairo2
|
||||||
|
- libcanberra-gtk3-module
|
||||||
|
- libcurl3-gnutls
|
||||||
|
- libcurl3-nss
|
||||||
|
- libcurl4
|
||||||
|
- libdrm2
|
||||||
|
- libgbm1
|
||||||
|
- libgl1
|
||||||
|
- libglib2.0-0
|
||||||
|
- libgtk-3-0
|
||||||
|
- libibus-1.0-5
|
||||||
|
- libnss3
|
||||||
|
- libpango-1.0-0
|
||||||
|
- libsecret-1-0
|
||||||
|
- libxcomposite1
|
||||||
|
- libxdamage1
|
||||||
|
- libxfixes3
|
||||||
|
- libxkbcommon0
|
||||||
|
- libxkbfile1
|
||||||
|
- libxrandr2
|
||||||
|
- libxss1
|
||||||
|
- locales-all
|
||||||
|
- packagekit-gtk3-module
|
||||||
|
- xdg-utils
|
||||||
|
prime:
|
||||||
|
- -usr/share/doc
|
||||||
|
- -usr/share/fonts
|
||||||
|
- -usr/share/icons
|
||||||
|
- -usr/share/lintian
|
||||||
|
- -usr/share/man
|
||||||
|
- -usr/share/codium/chrome-sandbox
|
||||||
|
build-attributes:
|
||||||
|
- enable-patchelf
|
||||||
|
override-prime: |
|
||||||
|
set -eux
|
||||||
|
snapcraftctl prime
|
||||||
|
for snap in "core20"; do
|
||||||
|
cd "/snap/${snap}/current/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}"
|
||||||
|
find . -type f,l -name "*.so*" -exec bash -c "rm -f ${SNAPCRAFT_PRIME}/{}*" \;
|
||||||
|
done
|
||||||
|
|
||||||
|
electron-launch:
|
||||||
|
after:
|
||||||
|
- codium-insiders
|
||||||
|
plugin: dump
|
||||||
|
source: snap/local/bin
|
||||||
|
|
||||||
|
apps:
|
||||||
|
codium:
|
||||||
|
command: electron-launch $SNAP/usr/share/codium-insiders/bin/codium-insiders --no-sandbox
|
||||||
|
desktop: usr/share/applications/codium-insiders.desktop
|
||||||
|
common-id: codium-insiders.desktop
|
||||||
|
|
||||||
|
url-handler:
|
||||||
|
command: electron-launch $SNAP/usr/share/codium-insiders/bin/codium-insiders --open-url --no-sandbox
|
||||||
|
desktop: usr/share/applications/codium-insiders-url-handler.desktop
|
|
@ -1,81 +0,0 @@
|
||||||
name: @@SNAP_NAME@@
|
|
||||||
version: '@@SNAP_VERSION@@'
|
|
||||||
summary: Code editing. Redefined.
|
|
||||||
description: |
|
|
||||||
Binary releases of Visual Studio Code - Insiders without branding/telemetry/licensing
|
|
||||||
|
|
||||||
base: core20
|
|
||||||
grade: stable
|
|
||||||
confinement: classic
|
|
||||||
compression: lzo
|
|
||||||
|
|
||||||
parts:
|
|
||||||
@@SNAP_NAME@@:
|
|
||||||
plugin: dump
|
|
||||||
source: .
|
|
||||||
stage-packages:
|
|
||||||
- ca-certificates
|
|
||||||
- libasound2
|
|
||||||
- libatk-bridge2.0-0
|
|
||||||
- libatk1.0-0
|
|
||||||
- libatspi2.0-0
|
|
||||||
- libcairo2
|
|
||||||
- libcanberra-gtk3-module
|
|
||||||
- libcurl3-gnutls
|
|
||||||
- libcurl3-nss
|
|
||||||
- libcurl4
|
|
||||||
- libdrm2
|
|
||||||
- libgbm1
|
|
||||||
- libgl1
|
|
||||||
- libglib2.0-0
|
|
||||||
- libgtk-3-0
|
|
||||||
- libibus-1.0-5
|
|
||||||
- libnss3
|
|
||||||
- libpango-1.0-0
|
|
||||||
- libsecret-1-0
|
|
||||||
- libxcomposite1
|
|
||||||
- libxdamage1
|
|
||||||
- libxfixes3
|
|
||||||
- libxkbcommon0
|
|
||||||
- libxkbfile1
|
|
||||||
- libxrandr2
|
|
||||||
- libxss1
|
|
||||||
- locales-all
|
|
||||||
- packagekit-gtk3-module
|
|
||||||
- xdg-utils
|
|
||||||
prime:
|
|
||||||
- -usr/share/doc
|
|
||||||
- -usr/share/fonts
|
|
||||||
- -usr/share/icons
|
|
||||||
- -usr/share/lintian
|
|
||||||
- -usr/share/man
|
|
||||||
build-attributes:
|
|
||||||
- enable-patchelf
|
|
||||||
build-packages:
|
|
||||||
- patchelf
|
|
||||||
override-build: |
|
|
||||||
snapcraftctl build
|
|
||||||
patchelf --force-rpath --set-rpath '$ORIGIN/../../lib/x86_64-linux-gnu:$ORIGIN:/core20/current/lib/x86_64-linux-gnu' $SNAPCRAFT_PART_INSTALL/snap/usr/share/@@SNAP_NAME@@/chrome_crashpad_handler
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
after:
|
|
||||||
- @@SNAP_NAME@@
|
|
||||||
plugin: nil
|
|
||||||
build-snaps:
|
|
||||||
- core20
|
|
||||||
build-packages:
|
|
||||||
- patchelf
|
|
||||||
override-prime: |
|
|
||||||
set -eux
|
|
||||||
for snap in "core20"; do
|
|
||||||
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$SNAPCRAFT_PRIME/{}" \;
|
|
||||||
done
|
|
||||||
patchelf --print-rpath $SNAPCRAFT_PRIME/snap/usr/share/@@SNAP_NAME@@/chrome_crashpad_handler
|
|
||||||
|
|
||||||
apps:
|
|
||||||
@@SNAP_NAME@@:
|
|
||||||
command: electron-launch $SNAP/snap/usr/share/@@SNAP_NAME@@/bin/@@SNAP_NAME@@ --no-sandbox
|
|
||||||
common-id: @@SNAP_NAME@@.desktop
|
|
||||||
|
|
||||||
url-handler:
|
|
||||||
command: electron-launch $SNAP/snap/usr/share/@@SNAP_NAME@@/bin/@@SNAP_NAME@@ --open-url --no-sandbox
|
|
|
@ -2,7 +2,7 @@ name: codium
|
||||||
adopt-info: codium
|
adopt-info: codium
|
||||||
summary: Code editing. Redefined.
|
summary: Code editing. Redefined.
|
||||||
description: |
|
description: |
|
||||||
Binary releases of Code without branding/telemetry/licensing
|
Binary releases of Visual Studio Code without branding/telemetry/licensing
|
||||||
|
|
||||||
base: core20
|
base: core20
|
||||||
grade: stable
|
grade: stable
|
||||||
|
|
Loading…
Reference in a new issue