openSUSE:YaST tutorials development in general

Jump to: navigation, search

Before You Start Development

Almost every YaST development needs a standard development environment with development tools. A developer should understand the terms used and know the YaST directory structure.

Development Environment

YaST module development is automated in many steps by a number of helper tools. However, if you want to take advantage of it, you must install some additional packages.

Here is the full list of packages needed in alphabetical order: alsa-devel autoconf automake bison blocxx-devel boost-devel cracklib-devel dejagnu doxygen expect gcc gettext-devel glibc-devel hwinfo-devel gtk-devel libfprint-devel libgcj libldapcpp-devel libstdc++-devel libtool libxcrypt-devel libxml2-devel liby2util-devel libzypp-devel ncurses-devel openslp-devel openssl-devel qt4-devel qt3-devel PolicyKit-devel pcre-devel perl-XML-Writer pkgconfig readline-devel sablot scpm-devel swig tcl trang yast2 yast2-core yast2-core-devel yast2-devtools yast2-perl-bindings yast2-testsuite zlib-devel

Terminology

  • YaST Module — In a general view, a YaST module is a stand-alone tool for some functionality, such as the configuration tool for an NFS server, user manager, or system monitoring tool.
  • Project — A project is a general concept for any YaST module.
  • YCP Module — Set of functionality inside a library written in the YCP language. It can have several global or local functions and variables. A YaST module can use several YCP modules. A YCP module itself can also use other modules.
  • Perl Module — The same as a YCP module, but written in Perl.
  • SCR Agent — They are the only way to read and write a configuration or execute system commands. Developer mustn't touch the system by any other way. SCR Agents are very small programs written in C, Bash, or Perl or written as scripts using the unified Ini-Agent or Any-Agent interface. YaST uses the unified SCR YCP module for accessing these agents.
  • Helper Tool — A script or binary that has some functionality for helping a developer achieve fast results by calling many annoying and repetitive commands on its own.

YaST Directory Structure

The directions in this tutorial touch several directories on the system. Here is the list of directories where you can find files or directories related to YaST:

/usr/lib/YaST2/                 -- helpers, libraries, and SCR agents
/usr/share/applications/YaST2/* -- .desktop files of YaST modules
/usr/share/YaST2/               -- base directory of YaST scripts, clients, and modules
/usr/share/doc/packages/yast2*  -- documentation for particular YaST packages
/var/lib/YaST2/                 -- variable data directory
/var/log/YaST2/                 -- logging directory with automatically rotated logs