This article describes the steps you need to take and the setup you have to create for a build environment to build YaST on your own.
In order to build YaST, you need to install several development packages. You may use your current YaST in your running system to install them. Use the pattern view in Software Management and select the patterns Base Development, RPM Build Environment, C/C++ Development and YaST Development.
cd ~/work mkdir yast-svn cd yast-svn svn co http://svn.opensuse.org/svn/yast/trunk/ cd trunk
Now you have all the source code you need, to build YaST. This example used trunk - the main development is don here. There are as well several branches you may want to look at.
When you installed the development packages, also a package called yast2-devtools got installed. It contains lots of tools and scripts to help you compiling the source code.
If you work with the code (branch) of your current YaST (so on an openSUSE 10.2 system you only work on the branch http://svn.opensuse.org/svn/yast/branches/SuSE-Linux-10_2-Branch ) there is no need to change anything. But if you want to compile a newer version of YaST it is highly advisable to even compile the newest yast2-devtools on your own.
To do that follow this example:
cd ~/work/yast-svn cd devtools make -f Makefile.cvs make make install
Now you have the newes devtools installed and are ready to go.
Now it is time to build YaST. You can build its core packages and modules separately or all together. If you intend to change something you may want to build a single package.
With the yast2-devtools package you have installed a script that does right what its name suggests: y2makeall. This script will dynamically find out in what order to build all YaST packages and build them. To run the script just run:
cd ~/work/yast-svn y2tool y2makeall
Now the only thing you'll have to is to be patient (or to buy a faster computer :))
Build a single package
If you only changed a single YaST package (or created a new one) you may build it using the same steps as you used to compile the yast2-devtools:
cd ~/work/yast-svn make -f Makefile.cvs
make make install
in order to compile and install it right away or use
make -i package
to create a tarball, spec- and a changes-file under ./package. That you can build on any hardware you have using the build command.
Creating pot files
You need to generalte pot files if you are working as a translator or want to create a new localization. To create the pot files run:
Within every package a pot file will be generated.
Building in prefix
Find a howto to build YaST in prefix and other build tips at YaST Build special