| .forgejo/workflows | ||
| data | ||
| .gitignore | ||
| build | ||
| install | ||
| LICENSE | ||
| org.pharo.Pharo.yaml | ||
| package | ||
| pharo-flatpak-host-library-path.patch | ||
| README.md | ||
Pharo VM Flatpak
This repository builds a Flatpak for the Pharo virtual machine.
The Flatpak application id is org.pharo.Pharo. It exports the Pharo VM as the
main application and also includes a secondary Pulsar desktop launcher:
org.pharo.Pharo.desktoporg.pharo.Pharo.Pulsar.desktop
The package is based on the GNOME 50 runtime and includes the native libraries needed by Pharo/Pulsar integrations, including GTK 4, libadwaita, libpanel, VTE, librsvg, libgit2, and libssh2.
The VM launcher is patched for Flatpak so Pharo can find its packaged native
libraries first, while still allowing explicit access to host libraries and
host executables through /run/host.
Install
Download the bundle:
curl -OJ https://forge.smallworks.eu/api/packages/pharo/generic/pharo-vm-full-linux-flatpak/v10.3.9-1/pharo-vm-full-linux-flatpak-v10.3.9-1.flatpak
Install it for the current user:
flatpak install --user pharo-vm-full-linux-flatpak-v10.3.9-1.flatpak
Run Pharo:
flatpak run org.pharo.Pharo --version
If you want to run it directly as org.pharo.Pharo, make sure Flatpak's user
export directory is in your shell PATH:
export PATH="$HOME/.local/share/flatpak/exports/bin:$PATH"
For fish:
fish_add_path -U ~/.local/share/flatpak/exports/bin
Then:
org.pharo.Pharo --version
Flatpak exports the host command using the application id, so it does not
install a plain pharo command automatically. To create one, add a small
wrapper in ~/.local/bin:
mkdir -p ~/.local/bin
cat > ~/.local/bin/pharo <<'EOF'
#!/bin/sh
exec flatpak run org.pharo.Pharo "$@"
EOF
chmod +x ~/.local/bin/pharo
Make sure ~/.local/bin is in your shell PATH; then you can run:
pharo --version
To run Pulsar from a local image:
org.pharo.Pharo --worker /path/to/Pulsar.image openPulsar
The installed desktop environment should also show two launchers: Pharo and
Pulsar. The Pulsar launcher uses the secondary desktop id
org.pharo.Pharo.Pulsar.
Build
Build and install locally:
flatpak-builder --user --install --force-clean build-dir org.pharo.Pharo.yaml
Create the distributable bundle:
./package
The generated bundle is pharo.flatpak.
Release
The Forgejo release workflow runs when a v* tag is pushed. It builds
pharo-vm-full-linux-flatpak-$TAG_NAME.flatpak and uploads it to the generic
package pharo-vm-full-linux-flatpak using the tag name as the package version.
This workflow uses the Forgejo docker runner. The runner must be configured
with container.privileged: true, because flatpak-builder needs Bubblewrap
namespace support while building modules inside the job container.
License
This repository is licensed under the GNU General Public License v3.0 or later
(GPL-3.0-or-later). See the LICENSE file for details.