Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add com.vscodium.codium #1433

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.flatpak-builder/
.vscode/
build-dir/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "shared-modules"]
path = shared-modules
url = https://github.com/flathub/shared-modules.git
24 changes: 24 additions & 0 deletions codium.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

set -e

FIRST_RUN="${XDG_CONFIG_HOME}/flatpak-vscodium-first-run"

if [ ! -f ${FIRST_RUN} ]; then
WARNING_FILE="/app/share/codium/flatpak-warning.txt"
touch ${FIRST_RUN}
fi

IFS=',' read -ra SDK <<< "$FLATPAK_ENABLE_SDK"
for i in "${SDK[@]}"; do
if [[ -d /usr/lib/sdk/$i ]]; then
if [[ -f /usr/lib/sdk/$i/enable.sh ]]; then
. /usr/lib/sdk/$i/enable.sh
else
export PATH=$PATH:/usr/lib/sdk/$i/bin
fi
fi
done

exec env PATH="${PATH}:${XDG_DATA_HOME}/node_modules/bin" \
zypak-wrapper /app/share/codium/bin/codium --extensions-dir=${XDG_DATA_HOME}/codium/extensions "$@" ${WARNING_FILE}
18 changes: 18 additions & 0 deletions com.vscodium.codium.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[Desktop Entry]
Name=VSCodium
Comment=Code Editing. Redefined.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The desktop file & metainfo should be ideally upstreamed.

Copy link
Author

@noonsleeper noonsleeper Apr 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bilelmoussaoui, thanks for the review. I'll suggest this to @stripedpajamas

GenericName=Text Editor
Exec=codium --unity-launch --reuse-window %F
Icon=com.vscodium.codium
Type=Application
StartupNotify=true
StartupWMClass=VSCodium
Categories=Utility;TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;
Actions=new-empty-window;
Keywords=vscode;

[Desktop Action new-empty-window]
Name=New Empty Window
Exec=codium --new-window %F
Icon=com.vscodium.codium
27 changes: 27 additions & 0 deletions com.vscodium.codium.metainfo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2020 NoonSleeper -->
<component type="desktop-application">
<id>com.vscodium.codium</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT</project_license>
<name>VSCodium</name>
<developer_name>Peter Squicciarini</developer_name>
<url type="homepage">https://vscodium.com/</url>
<summary>VSCodium. Code editing. Redefined.</summary>
<description>
<p>VSCodium is a new choice of tool that combines the simplicity of a code editor with what developers need for the core edit-build-debug cycle.</p>
<p>This is the The Telemtetry less version of Visual Studio Code, packaged into a Flatpak. This repackaging is not supported by Microsoft.</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://vscodium.com/img/vscodium.png</image>
<caption>Editing C in Codium</caption>
</screenshot>
</screenshots>
<launchable type="desktop-id">com.vscodium.codium.desktop</launchable>
<content_rating type="oars-1.0" />
<releases>
<release version="1.44.2" date="2020-04-25"/>
<release version="1.43.2" date="2020-03-31"/>
</releases>
</component>
82 changes: 82 additions & 0 deletions com.vscodium.codium.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
app-id: com.vscodium.codium
base: org.electronjs.Electron2.BaseApp
base-version: '19.08'
runtime: org.freedesktop.Sdk
runtime-version: '19.08'
sdk: org.freedesktop.Sdk
command: codium
desktop-file-name-suffix: ' (Flatpak)'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand you want to differentiate it but I don't think it's the way to go.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohh no! I miss that change, let me fix that.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you contacted upstream team about publishing their application on Flathub?

Yes, @stripedpajamas is the developer of VSCodium

Maintainer of VSCodium here-- I don't have capacity to maintain the flatpak version myself, but would be happy to help @noonsleeper etc whenever/however.

separate-locales: false
finish-args:
- --require-version=0.10.3
- --share=ipc
- --socket=x11
- --socket=pulseaudio
- --socket=ssh-auth
- --share=network
- --device=all
- --filesystem=host
- --allow=devel
- --talk-name=org.freedesktop.Notifications
- --talk-name=org.freedesktop.secrets
- --talk-name=org.freedesktop.Flatpak
- --env=NPM_CONFIG_GLOBALCONFIG=/app/etc/npmrc
- --env=LD_LIBRARY_PATH=/app/lib
- --filesystem=xdg-config/kdeglobals:ro
- --talk-name=com.canonical.AppMenu.Registrar
- --talk-name=com.canonical.AppMenu.Registrar.*
cleanup:
- /include
- /lib/pkgconfig
- /share/gtk-doc
- '*.la'
modules:
- shared-modules/libsecret/libsecret.json
- name: codium
buildsystem: simple
build-commands:
- install -D codium.sh /app/bin/codium
- install -Dm644 codium_64.png /app/share/icons/hicolor/64x64/apps/com.vscodium.codium.png
- install -Dm644 codium_128.png /app/share/icons/hicolor/128x128/apps/com.vscodium.codium.png
- install -Dm644 codium_256.png /app/share/icons/hicolor/256x256/apps/com.vscodium.codium.png
- install -Dm644 codium_512.png /app/share/icons/hicolor/512x512/apps/com.vscodium.codium.png
- install -Dm644 codium.svg /app/share/icons/hicolor/scalable/apps/com.vscodium.codium.svg
- install -Dm644 com.vscodium.codium.metainfo.xml -t /app/share/metainfo
- install -Dm644 com.vscodium.codium.desktop -t /app/share/applications
- install -Dm644 npmrc -t /app/etc
- cp /usr/bin/ar /app/bin
- ARCH_TRIPLE=$(gcc --print-multiarch) && cp /usr/lib/${ARCH_TRIPLE}/libbfd-*.so
/app/lib
- ARCH_TRIPLE=$(gcc --print-multiarch) && ln -s /usr/lib/${ARCH_TRIPLE}/libtinfo.so/app/lib/libtinfo.so.5
- ar x codium.deb
- tar xf data.tar.xz
- mv usr/share/codium /app/share
- rm -r codium.deb control.tar.gz data.tar.xz debian-binary usr
- install -Dm644 flatpak-warning.txt -t /app/share/codium
sources:
- type: file
path: codium.sh
- type: file
url: https://github.com/VSCodium/vscodium/releases/download/1.44.2/codium_1.44.2-1587206561_amd64.deb
sha256: a42a78600716213b20c1d4f8753b225e9e6069de27393021375f2401d383171d
dest-filename: codium.deb
- type: file
url: https://raw.githubusercontent.com/VSCodium/vscodium/master/src/src/vs/workbench/contrib/update/browser/media/code-icon.svg
sha256: 4b0b8f198fda18a79bfd293f6ef7ba3db167f35324c97cbafda881840be8a981
dest-filename: codium.svg
- type: file
path: flatpak-warning.txt
- type: file
path: npmrc
- type: file
path: com.vscodium.codium.metainfo.xml
- type: file
path: com.vscodium.codium.desktop
- type: file
path: icons/codium_64.png
- type: file
path: icons/codium_128.png
- type: file
path: icons/codium_256.png
- type: file
path: icons/codium_512.png
3 changes: 3 additions & 0 deletions flathub.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"only-arches": ["x86_64"]
}
43 changes: 43 additions & 0 deletions flatpak-warning.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@

https://www.flathub.org

------------------------------------------------------------------------------------
| Warning: You are running an unofficial Flatpak version of VSCodium !!! |
------------------------------------------------------------------------------------

Please open issues under: https://github.com/flathub/com.vscodium.codium/issues


This version is running inside a container and is therefore not able
to access SDKs on your host system!

To execute commands on the host system, run inside the sandbox:

$ flatpak-spawn --host <COMMAND>

To make the Integrated Terminal automatically use the host system's shell,
you can add this to the settings:

{
"terminal.integrated.shell.linux": "/usr/bin/env",
"terminal.integrated.shellArgs.linux": ["--", "flatpak-spawn", "--host", "bash"]
}

This flatpak provides a standard development environment (gcc, python, etc).
To see what's available:

$ flatpak run --command=sh com.vscodium.codium
$ ls /usr/bin (shared runtime)
$ ls /app/bin (bundled with this flatpak)

To get support for additional languages, you have to install SDK extensions, e.g.

$ flatpak install flathub org.freedesktop.Sdk.Extension.dotnet
$ flatpak install flathub org.freedesktop.Sdk.Extension.golang
$ FLATPAK_ENABLE_SDK=dotnet,golang flatpak run com.vscodium.codium

You can use

$ flatpak search <TEXT>

to find others.
Binary file added icons/codium_128.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icons/codium_256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icons/codium_512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icons/codium_64.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
; We want to be completely separate from the host modules
; which means not touching $HOME
userconfig=${XDG_CONFIG_HOME}/npmrc
prefix=${XDG_DATA_HOME}/node_modules
init-module=${XDG_CONFIG_HOME}/npm-init.js
tmp=${XDG_CACHE_HOME}
1 change: 1 addition & 0 deletions shared-modules
Submodule shared-modules added at 8ce643