GatewayNode

Installing Phosh in a PureOS VM

First we'll need some dependencies that are in the laboratory repo. So we need to copy the default entry in /etc/apt/sources.list and change the word "green" to "laboratory".

Next we install the dependencies: sudo apt-get install libgnome-desktop-3-dev libgtk-3-dev libpam0g-dev libupower-glib-dev libwayland-dev meson

Got it?

But wait there's more, we need to install git and checkout some repos as libhandy is dependency. So sudo apt-get install git then download libhandy:

sudo apt-get -y install gtk-doc-tools libgirepository1.0-dev libgnome-desktop-3-dev libgtk-3-dev meson pkg-config valac

cd libhandy cause of course we need to actually build this first...

meson . _build

Did that complete ok?

ninja -C _build (not even sure what "ninja" is at this point)

sudo ninja -C _build install

Note

Don't forget the sudo on the last part... I'm not sure that sudo is necessary, it probably shouldn't be, but for me it didn't install without admin rights.

It's basically the same build steps for phosh. When I first did this I followed the directions and tried the _build/run command but got a can't open shared object file for the libhandy .so file. Ok, so maybe the objects need to be symlinked in /usr/lib so dynamic linking works for libhandy

cd /usr/lib/

link -s ~/PLACE_WE_DOWNLOADED_OUR_REPOS/_build/src/libhandy.0.0.so.0

Let's try that. Still no dice.

vm:~/code/phosh$ _build/run
+ exec /home/bond/code/phosh/_build/src/phosh

(process:15399): Gtk-WARNING **: 20:13:21.723: Locale not supported by C library.
Using the fallback 'C' locale.

(phosh:15399): Gdk-CRITICAL **: 20:13:21.896: gdk_wayland_display_get_wl_display: assertion 'GDK_IS_WAYLAND_DISPLAY (display)' failed

(phosh:15399): phosh-phosh-ERROR **: 20:13:21.896: Failed to get display: Success

Trace/breakpoint trap

Well crap, "Failed to get display: Success", is never good (hilarious, but not good). Maybe this has something to due with the wlroots thing I've seen before which might be a necessary shim into Wayland. A quick look and it looks like it is our compositor, <sarcasm>kind of an important thing if we want to work with the display</sarcasm>.

Note

I'll rewrite all this up as a straight forward, end to end tutorial, but for now I think there is value in just sharing the steps of exploring this environment setup.

Ouroboros, you know the snake that eats itself...