Here is a quick overview what all those UI packages are:
libyui: The UI core engine. This is what you need to write your own C++
programs (more on that later) that use the UI abstraction. This part is
independent of YCP, libycp, YCPValues, liby2, Y2Component,
Y2ComponentCreator. It's pure C++. All it depends on are the C++ standard
libs (STL) and libpthread (for multi-threading).
ycp-ui-bindings: The glue code that make the UI cooperate with the YCP
interpreter and with YaST2 as a whole. This is where the UI:: calls in YCP
are translated to C++, using the new libyui's widgetFactory to create
widgets. This is also the part that uses Y2Component and Y2ComponentCreator
to start up the UI and to set up communication with the other parts of YaST2
such as the YCP interpreter, WFM and SCR.
Language bindings such as the perl-bindings, python-bindings or ruby-bindings
also use this (in particular the YUIComponent, a subclass of Y2Component) to
communicate with the UI. We might want to change this in the future to use
libyui directly, not going through YCP and YCPValues all the time.
qt: The UI plug-in that uses the Qt-libs (Qt4) to actually create widgets. It
only depends on libyui (and of course on the Qt-libs), not on YCP, libycp,
YCPValues, liby2, Y2Component etc., and also not on libzypp and its
This is what C++ applications that use libyui are ultimately using, and vie
ycp-ui-bindings of course also YCP code (or YaST2 perl modules using the
perl-bindings that in turn use the ycp-ui-bindings; similarly for YaST2
qt-pkg: This contains the package selector for the Qt UI. This is also a
plug-in that gets loaded upon demand, i.e. as long as an application does not
need a package selector (or a pattern selector or a patch selector), this is
not loaded, and neither is libzypp and the libs libzypp depend on. Of course,
this package is liked against and depends upon libzypp.
ncurses: The UI plug-in that uses the NCurses lib for text mode to actually
create widgets. Like the qt plug-in, it only depends on libyui (and of course
the NCurses lib) and not on YCP, libycp, YCPValues, liby2, Y2Component, or
ncurses-pkg: The package selector for the NCurses UI, very similar to qt-pkg.
There are still some YCP calls in it, so it currently still depends on libycp
and YCPValues, and currently also on ycp-ui-bindings, but we are working on
Stefan Hundhammer <sh(a)suse.de> Penguin by conviction.
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
To unsubscribe, e-mail: yast-devel+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-devel+help(a)opensuse.org