The Manabu Desktop is a GUI interface built on GTK for the Manabu Gaku Engine client.
Manabu Desktop is currently very much a work in progress.
Either install the gem:
gem install manabu-desktop
or clone this repository and the manabu client in the same path and bundle:
git clone [email protected]:GAKUEngine/manabu.git
git clone [email protected]:GAKUEngine/manabu-desktop.git
cd manabu-desktop
bundle install
If you installed the gem simply run the manabu-desktop
command.
Otherwise, navigate to the manabu-desktop directory and run bundle exec bin/manabu-desktop
You can test against a live GAKU Engine server or with a testing container.
Test server:
- URL: localhost
- Port: 9000
- HTTPS/SSL: No/Disabled
Test admin user:
- username: admin
- password: 123456
Due to limitations in the Ruby GTK implementation most of manabu-desktop is implemented in
C++ with GTK+. However, to facilitate various extensibility features there is a bridge to
Ruby and a set of simplified interfaces for most parts of the client, including a Ruby native
login screen, student roster, etc. Using this bridge and these basic interfaces can help you
build individual extension modules such as GUI student importers/exporters and visual
tools for generating printables.
Manabu Desktop requires CMake, GTK MM, and libmanabu to build. You can build libmanabu separately or use an installed/packaged version. The process to obtain CMake and GTK MM will be different depending on your system. If you build libmanabu in the directory next to manabu-desktop (libraries will be built in; ../libmanabu/build) CMake will detect this and use these libraries - prioritizing them over any libmanabu binaries installed on the system.
If you have all dependencies ready the rest of the process is a fairly standard CMake build:
cd manabu-desktop
mkdir build
cd build
cmake ..
make
If you are working with a development verison of libmanabu you'll need to specify where you have
built it with the -Dmanabu_DIR argument passed to cmake. Say for example you cloned libmanabu
right next to the manabu-desktop folder in your directory structure and built it in the standard
build directory, your relative path would be ../libmanabu/build, which would make the cmake
command cmake -Dmanabu_DIR=../libmanabu/build ..
. So the whole cmake build flow would look
something like this:
cd manabu-desktop
mkdir build
cd build
cmake -DManabu_DIR=../libmanabu/build ..
make
Other than basic build tools you'll mostly only need the GTK MM v3 libraries and headers
(and their dependencies). You can obtain these on Debian/Ubuntu based systems with
sudo apt-get install libgtkmm-3.0-dev
.
Building with msys2 is generally recommended simply because we build most components within
this environment and you'll likely be building libmanabu with msys2 as well. Unfortunately
only the GTK+ libraries available through msys2 at the time of this writing are up to date
and usable, so we have to build the gtkmm libraries manually. To build gtkmm you're going to
first need the GTK common build tools called "mm-common" and the GTK3 base libraries. The
GTK3 base libraries packaged on msys2 seem to work fine for development, so we can obtain
those with pacman -S mingw-w64-x86_64-gtk3
. Assuming you have build tools and general
libraries installed (which you likely do if you built libmanabu) you can build and install
mm-common with:
git clone https://gitlab.gnome.org/GNOME/mm-common.git
cd mm-common
./autogen.sh
make
make install
Then, clone and build gtkmm. We specifically need to check out the lastest branch for version 3, so you should check "git branch -a" to see if there is a newer version branch than the instructions below. To quickly build and install gtkmm you can do something like:
git clone https://gitlab.gnome.org/GNOME/gtkmm.git
cd gtkmm
git checkout gtkmm-3-24
./autogen.sh
make
make install
!NOTICE! If you have problems building, the GTK3 package you obtained from msys2/pacman may be incompatible with the branch you checked out. You can either build and install GTK3 from source or check the version of the GTK3 packages installed and try to match the gtkmm branch with that.
Manabu Desktop is Copyright 2012 K.K. GenSouSha of Aichi, Japan
All rights reserved.
This software is dual licensed under the GNU GPL version 3 and the AGPL version 3.
The full text of these licenses can be found here:
GPL AGPL
When submitting code, patches, or pull requests to official GAKU Engine repositories you agree to transfer copyright to your code to the GAKU Engine project. This is to prevent an external party from controlling code incorporated into GAKU Engine in such a way as to influence the development or sub-licensing of GAKU Engine.
Alternative licenses can be granted upon consultation.
Please contact [email protected] for details.