3. Installation

Tip

When using DevEnv, the Control UI Toolkit comes preinstalled in it. It is delivered using RPM packages elt-cut and elt-cut-devel.

3.1. Using RPM Packages

In case it is not installed, the user may install it executing as root:

$ dnf -y install elt-cut-devel

Testing versions are delivered using the Beta repository. Under DevEnv 4.X versions, please enable eso-elt-beta repository:

$ dnf -y --enablerepo=eso-elt-beta upgrade elt-cut-devel

Under DevEnv 3.X versions, please enable ESO-Beta-CentOS-8 repository:

$ dnf -y --enablerepo=ESO-Beta-CentOS-8 upgrade elt-cut-devel

3.2. Manual Compilation

If the user wants to compile and test a development version of the Control UI Toolkit all dependencies are satisfied by the DevEnv. Use the following procedure to produce a compiled version of CUT.

  1. Start the Display Manager executing as root (not required but recommended)

    $ systemctl set-default graphical.target
    
  2. Append the following lines to your $HOME/modulefiles/private.lua

    local homedir = os.getenv("HOME")
    local introot = pathJoin(homedir .. "/INTROOT")
    local dataroot = pathJoin(homedir .. "/DATAROOT")
    setenv("PREFIX", introot)
    setenv("INTROOT", introot)
    setenv("DATAROOT", dataroot)
    prepend_path("MODULEPATH", pathJoin(introot, "/etc/modulefiles"))
    load("introot")
    
    -- We unload the preinstalled cut module, and provide the necessary instructions
    -- to modify QT_PLUGIN_PATH _after_ unloading.
    unload("cut")
    prepend_path("QT_PLUGIN_PATH", "/opt/Qt/5.14.0/gcc_64/plugins") -- DevEnv 3.X
    prepend_path("QT_PLUGIN_PATH", "/usr/lib64/qt5/plugins/") -- DevEnv 4.X
    prepend_path("QT_PLUGIN_PATH", introot .. "/lib64")
    -- We force a DESKTOP ENVIRONMENT to be set, so that Qt knows were to get color schemes
    -- default values and icons from.
    if not os.getenv("XDG_CURRENT_DESKTOP") then
        setenv("XDG_CURRENT_DESKTOP", "XFCE")
    end
    if not os.execute("xfconf-query -c xfwm4 -p /general/theme -t string > /dev/null 2>&1") then
        os.execute("xfconf-query -c xfwm4 -p /general/theme -t string -s Adwaita --create > /dev/null 2>&1 ")
    end
    

3. Logout of the session, and log back in. If you are currently in a graphical terminal, you need to logout of the graphical session as well.

  1. Execute the following lines in your personal account:

$ getTemplate -d introot $INTROOT
$ git clone git@gitlab.eso.org:ecos/cut.git
$ cd cut
$ waf configure build install

As a result, CUT will be installed at the $INTROOT location.

3.3. Vagrant Virtual Machine

ELT DevEnv is delivered also as a Vagrant box https://app.vagrantup.com/eltdev/boxes/eltdev-4.

For GUI development it is recommended to use a local VM to get the lowest latency.

Tip

In case you need a local VM, we suggest to use vagrant. CUT has a vagrant module that is able to provide a local VM.

This Vagrantfile and provisioning script allows to update to the latest DevEnv version or to adopt the Beta release. Please refer to the Vagrantfile to instructions on how to use it.