YaST Development Documentation

Documentation Links

Development Environment

Before starting to work on YaST, you need to setup a development environment.
The steps are different depending on whether you want to do new development or
to fix already released packages.

New Development

New YaST development generally needs to be done on
Factory as this is the system where
the next YaST version will eventually run. But Factory is too unstable,
we recommend to use Tumbleweed
or the latest openSUSE release — differences in the environment
usually are not big enough to cause trouble.

To prepare the development environment in Factory or Tumbleweed, install the
devel_yast pattern:

sudo zypper install -t pattern devel_yast

To prepare the development environment in openSUSE, build and install the
yast2-devtools package yourself from the current source code (the
version present in the last openSUSE release might be too old).
You may need to install the development dependencies first.

Development Dependencies

Some YaST packages require additional development packages (libraries,
tools...). To get the list of development packages run rake build_dependencies:list
command or rake build_dependencies:install to install them.

Shared YaST Infrastructure

While creating a new YaST project and you wanted to use the YaST team
infrastructure, you might consider taking care of these steps or ask YaST
developers to help you with them. Internal infrastructure is usually not
available from outside.

Maintenance

If you need to fix bugs or do some other maintenance work in an already released
versions of YaST, create a virtual machine with the same openSUSE or SLE
release you are targeting and install the devel_yast pattern there:

sudo zypper in -t pattern devel_yast

Extra Development Tools

For running the automated tests you might need to install some more packages:

$ sudo zypper install yast2-testsuite rubygem-rspec rubygem-simplecov

Autotools Based YaST Packages

This is a generic documentation for YaST packages which use autotools (autoconf/automake)
for building the package. These packages have usually a Makefile.cvs file in the base
directory.

Building and Installing

To build the module run these commands:

$ make -f Makefile.cvs
$ make

If you want to rebuild the module later simply run make again.

To install it run:

$ sudo make install

Note: This will overwrite the existing module in the system, be careful when installing
a shared component (library) as it might break some other modules.

Starting the Module

Run the module as root

# yast2 <module>

or start the YaST control panel from the desktop menu and then run the appropriate module.

Submitting the Package

Automatic Submission

The changes in master branch are automatically built and submitted to
the YaST:HEAD OBS project by
Jenkins CI after successful build. If the
package version is changed then a submit request to
openSUSE:Factory is
created automatically.