Skip to content

Nuvola Core Developer Kit

Jiří Janoušek edited this page Nov 10, 2018 · 19 revisions

Nuvola Core Developer Kit (Nuvola CDK) is a Flatpak runtime for the development of the Nuvola itself. There is also Nuvola App Developer Kit for the development of Web App scripts for the Nuvola Apps runtime.

Nuvola CDK

  • contains all dependencies to build and run Nuvola;
  • is based on the same GNOME SDK runtime as the Nuvola flatpak package;
  • is easy to install;
  • and is mostly isolated from your system.

Questions & Feedback

Having trouble? Are these instructions confusing? Do have a question? We'd like to help! Post a question in the nuvola-player-devel mailing list.

Changelog

In case you come here again later, this will help you to find out what has changed since then.

  • November 10th, 2018: Nuvola CDK no longer ships LxTerminal.
  • September 15th, 2018:
    • Flatpak packaging of Nuvola CDK has changed. You may need to update your Bash aliases.
    • Installation instructions were simplified.
  • January 19th, 2018:
    • Nuvola uses GNOME Platform 3.26.
    • The master branch of CDK contains dependencies to build ValaCEF.
    • The master branch of CDK includes JavaScript Standard Code Style checker (a command standard).
    • Added instructions how to build ValaCEF.

Installation

  • Install Flatpak and XDG Desktop Portal
  • Add Flathub repository: flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
  • Add Nuvola Flatpak repository: flatpak remote-add nuvola https://dl.tiliado.eu/flatpak/nuvola.flatpakrepo
  • Then install Nuvola CDK from the master or stable branch.
  • From the master branch - flatpak install nuvola eu.tiliado.NuvolaCdk//master
  • From the stable branch - flatpak install nuvola eu.tiliado.NuvolaCdk//stable

Running and set-up

Check out git repositories

These instructions assume that you have checked out the Diorite git repository at ~/projects/diorite, the ValaCEF git repository at ~/projects/valacef (for, the Nuvola git repository at ~/projects/nuvola and the Nuvola SDK git repository at ~/projects/nuvolasdk. Change these paths according to your needs.

mkdir ~/projects
cd projects/
git clone git@github.com:tiliado/diorite.git diorite
git clone git@github.com:tiliado/valacef.git valacef
git clone git@github.com:tiliado/nuvolaplayer.git nuvola
git clone git@github.com:tiliado/nuvolasdk.git nuvolasdk

Set Bash alias and launch the CDK

It is convenient to set a following alias (e.g. in ~/.bash_aliases):

alias nuvola-cdk="flatpak run -d --filesystem=~/projects eu.tiliado.NuvolaCdk"

In a new shell (or after source ~/.bash_aliases), you can type nuvola-cdk to launch Bash from Nuvola CDK environment but in the current terminal emulator.

It might be helpful to configure Bash in the CDK:

$ nano ~/.bashrc
# Change prompt
export PS1="\$? \A \[\e[33m\]\w\[\e[m\]\n\\$ "
# History - ignore duplicates and commands with leading spaces
HISTCONTROL=ignoreboth

$ . ~/.bashrc

Steps to build Diorite

Build Diorite library inside the Nuvola CDK environment (nuvola-cdk):

cd ~/projects/diorite
. setup_env.sh
rebuild

Then set DIORITE_PATH:

$ nano ~/.bashrc
...
export DIORITE_PATH="$HOME/projects/diorite"
...
$ . ~/.bashrc

Steps to build ValaCEF

Build ValaCEF library inside the Nuvola CDK environment (nuvola-cdk):

cd ~/projects/valacef
make rebuild

Then set VALACEF_PATH:

$ nano ~/.bashrc
...
export VALACEF_PATH="$HOME/projects/valacef"
...
$ . ~/.bashrc

Steps to build Nuvola

Make sure DIORITE_PATH and VALACEF_PATH is set in ~/.bashrc. Then build Nuvola in a new Nuvola CDK shell (not in that of Diorite library).

cd ~/projects/nuvola
. setup_nuvolacdk.sh
rebuild
run-service
run-app ~/project/my-nuvola-apps/my-app-1
...

Steps to build Nuvola SDK

There is no need to build/install Nuvola SDK. However, you have to set a proper PYTHONPATH and use python3 -m nuvolasdk instead of a plain nuvolasdk (or create an alias).

$ nano ~/.bashrc
...
export PYTHONPATH="$HOME/projects/nuvolasdk"
alias nuvolasdk="python3 -m nuvolasdk"
...
$ . ~/.bashrc
$ nuvolasdk --help