A flatpak builder for the pharo-vm with full dependencies for pulsar
Find a file
2026-06-02 11:44:55 +02:00
.forgejo/workflows do not try to run the flatpak inside 2026-05-31 19:11:15 +02:00
data attempt to fix icons for ubuntu 2026-06-02 08:57:35 +02:00
.gitignore Add Pharo Flatpak build manifest 2026-05-31 11:47:00 +02:00
build Add Pharo Flatpak build manifest 2026-05-31 11:47:00 +02:00
install Add Pharo Flatpak build manifest 2026-05-31 11:47:00 +02:00
LICENSE add license 2026-06-02 11:39:11 +02:00
org.pharo.Pharo.yaml attempt to fix icons for ubuntu 2026-06-02 08:57:35 +02:00
package Add Pharo Flatpak build manifest 2026-05-31 11:47:00 +02:00
pharo-flatpak-host-library-path.patch attempt to fix icons for ubuntu 2026-06-02 08:57:35 +02:00
README.md using the good license (GPL-3.0-or-later) 2026-06-02 11:44:55 +02:00

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.desktop
  • org.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.