Packaging Guidelines

Old information from maliit.org Needs to be updated

Status: Draft

Maliit currently consists of two repositories, maliit-framework and maliit-plugins. These two repositories contains several different components, that distributions might want to split up. Here is a guideline.

maliit-framework

Core libraries of Maliit. Package name: maliit-framework.

When packaging, some actions “make install” does by default will need to be deactivated, and the actions done in post- install/uninstall instead. Currently this includes gconf schema registration and GTK+ immodule cache update. Use “qmake HELP=1” for information on how to do this.

Subpackages are divided into three groups depending based on what should happen when the top-level package “maliit-framework” is installed by the user.

  • Core: MUST be installed
  • Toolkit support: SHOULD be installed
  • Extra: MAY be installed

All libraries are versioned and parallel installable. For that reason binary packages MUST also be versioned.

Core

  • Common files/library code - Used by both application, server and plugin interfaces
    • Package name: maliit-framework
    • post install/uninstall MUST register gconf schemas (distro specific)
    • Optional: -dev package
    • Files
      • /usr/include/maliit/framework-/maliit/.h
      • /usr/lib/pkgconfig/maliit-framework-*.pc
      • $GCONF_DATADIR/…/maliit-framework.schemas
  • Maliit Server - The Maliit server/service
    • Package name: maliit-server
    • Files
      • /usr/bin/maliit-server
  • C++ Plugin Interface - Interfaces for Maliit Input Method Plugins
    • Package name: libmaliit-plugins0
    • Optional: -dev package
    • Files
      • /usr/include/maliit-plugins/.h
      • /usr/lib/libmaliit-plugins.so
      • /usr/lib/pkgconfig/maliit-plugins*.pc
  • Qt Quick Plugin Interface - Interfaces for QML-based Maliit Input Method Plugins
    • Package name: libmaliit-plugins-quick0
    • Optional: -dev package
    • Files
      • /usr/include/maliit/plugins-quick/.h
      • /usr/lib/libmaliit-plugins-quick.so
      • /usr/lib/pkgconfig/maliit-plugins-quick*.pc

Toolkit support

  • Qt Input Context - Qt plugin for basic Qt 4 toolkit support
    • Package name: maliit-inputcontext-qt4
    • Files
      • $QT4_LIBDIR/plugins/inputmethods/libmaliit.so
  • GTK+ Input Context - GTK+ plugin for basic GTK+ toolkit support
    • Package name: maliit-inputcontext-gtk2 and maliit-inputcontext-gtk3
    • Additional dependencies: GTK2 and GTK3
    • post install/uninstall MUST update the GTK+ immodule caches (distro specific)
    • Files
      • $GTK2_LIBDIR/…/libmaliit.so
      • $GTK3_LIBDIR/…/libmaliit.so
  • libmaliit - Toolkit support extension library for Qt applications
    • Package name: libmaliit1
    • Optional: -dev package
    • Files
      • /usr/lib/pkgconfig/maliit-1.0.pc
      • /usr/lib/libmaliit*.so

Extra

  • Examples
    • Package name: maliit-framework-examples
    • Files
      • /usr/bin/maliit-exampleapp-*
  • Documentation
    • Package name: maliit-framework-doc
    • Files
      • /usr/share/doc/maliit-framework/html
  • Tests
    • Package name: maliit-framework-tests
    • Files
      • /usr/lib/maliit-framework-tests/
      • /usr/share/maliit-framework-tests/
  • SDK
    • Package name: maliit-framework-sdk
    • Requires: maliit-framework-doc
    • Files
      • /usr/bin/maliit-sdk
      • /usr/share/doc/maliit-framework/maliit-sdk

maliit-plugins

Reference Input method plugins provided by the Maliit project. Uses maliit-framework.

Packagename: maliit-plugins

An input method plugin is required for Maliit to do anything useful. This can either be one of the reference plugins or a third-party plugin. Distributions SHOULD set up a virtual package “maliit-inputmethod-plugin”, that all packaged input method plugins for Maliit provides, and the “maliit-framework” package should depend on this virtual package.

Additionally the framework is needed for the input method plugin to be useful. Installing a plugin like ‘maliit-keyboard’ MUST pull in everything needed in the framework for it to work. This can be done by making the plugin binary package depend on the maliit-framework metapackage.

  • Maliit Keyboard Core Library - Reusable core library for on-screen keyboard plugins
    • Packagename: libmaliit-keyboard
    • /usr/lib/libmaliit-keyboard.so
  • Maliit Keyboard UI Library - Reusable UI library for on-screen keyboard plugins
    • Packagename: libmaliit-keyboard-view
    • /usr/lib/libmaliit-keyboard-view.so
  • Maliit Keyboard Layouts - Keyboard Layout files
    • Packagename: maliit-keyboard-layouts
    • /usr/share/?
  • Maliit Keyboard Themes - Theme files for Maliit Keyboard
    • Packagename: maliit-keyboard-themes
    • Note: it should be possible for downstreams and integrators to install additional themes
  • Maliit Keyboard - The Maliit reference keyboard plugin
    • Packagename: maliit-keyboard
    • Depends on: libmaliit-plugins, libmaliit-keyboard-view, libmaliit-keyboard, maliit-keyboard-layouts
    • /usr/lib/maliit/plugins-0.80/libmeego-keyboard-plugin.so
  • Nemo Keyboard: Pure QML input method plugin for Nemo Mobile
    • Packagename: nemo-keyboard
    • Depends on: libmaliit-plugins-quick0
    • Currently data-only (arch independent)