[yast-devel] New UI packages and what they do
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 dependencies. 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 python modules). 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 libzypp. 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 that. CU -- Stefan Hundhammer <sh@suse.de> Penguin by conviction. YaST2 Development SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Nürnberg, Germany -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
participants (1)
-
Stefan Hundhammer