Adding a New Package to the inst-sys
Sometimes you need to add a new RPM to the openSUSE installation system (called inst-sys) or to the rescue image. Especially in Yast development we usually need to include new tools or some new subsystems (like the recent Yast switch to Ruby required adding Ruby interpreter into the inst-sys).
The overall procedure is quite simple, basically you need to modify
installation-images package and then remaster the installation medium (or
update the boot server, depending how you boot the system). But there are some
This RPM builds file system images (using compressed squashfs to save valuable space) with installation system and the rescue system.
If you want to add a new package then follow these steps:
- Checkout the
installation-imagespackage for your target distribution from OBS, e.g.
osc co openSUSE:13.1 installation-images
- Add your new package to the
BuildRequireslist in the
- Modify the package list for the target file system image, which is stored
*.file_listfile. You can find a full example here, there is a diff for adding
libyui-qt-graphpackage to the inst-sys. You can include a complete package or only explicitly listed files (this is useful if the package is huge and you need just a small file from it).
Note: If you want to later update the installation-images package used as the base then it is better to use a patch instead of directly modifying the file list. It can be later easily applied to an updated version.
- Build the package locally using
osc build --userootforbuildcommand. This will take some time, it needs a lot of packages and building the target file system images is also not trivial. The build requires
rootuser, without the extra option it would fail. If you really need to build the package in the OBS server automatically then you need to ask the OBS maintainers for adding an exception for your package. (In YaST:Head:installer/installation-images we have such an exception.)
Updating the medium
Updating the boot medium is quite tricky, you need to unpack the
/SuSE/openSUSE/CD1 directories from the built installation-images RPM package
and overwrite the original files and create the ISO image again.
But I have actually never tried that, in OBS we simply build our own ISO image using a kiwi project.