libstorage-ng is the designated successor of libstorage, a C++ library used by YaST to perform most storage related tasks.
The main idea of libstorage-ng compared to libstorage is to keep all information about storage devices in a graph instead of lists. For more information have a look at the overview.
Some required tools for compiling and testing libstorage-ng are:
gcc-c++ boost-devel libxml2-devel libtool doxygen graphviz python3-devel ruby ruby-devel rubygem-test-unit swig >= 3.0.3 and != 3.0.8 (from YaST:storage-ng)
In addition to the previous packages, add these distribution-specific packages as well.
For some openSUSE/SUSE distributions the naming of rubygem-test-unit
might be the following:
ruby2.1-rubygem-test-unit
For Fedora:
rubypick
make -f Makefile.repo
make -j$(nproc)
make -j$(nproc) install DESTDIR=/tmp/scratch
make -j$(nproc) check LOCALEDIR=/tmp/scratch/usr/share/locale
make -f Makefile.repo
make package
cd package
osc build --local-package --alternative-project=openSUSE:Factory
Creating the changes file and tar archive are handled by jenkins using linuxrc-devtools.
You can generate a preview of the changes file by running
make changes
and create the tar.xz source archive by running
make archive
Package versions are tracked by setting version tags in git. The last version digit is auto-increased with every OBS commit.
The version can always be set manually by setting an appropriate tag in git.
Notes
The
VERSION
file is auto-generated from the latest git tag.The spec file template
libstorage-ng.spec.in
is not used. Instead, the spec file from the OBS is used.
For a more detailed description about the handling of version numbers and changelog entries look here.
xdg-open doc/autodocs/html/index.html
See especially the class hierarchy:
xdg-open doc/autodocs/html/inherits.html