In part 1 we installed and tested libyui and its python binding and part 2 was about constructing the GUI. Now its time for the libzypp-bindings – of course for python ;). So far the GUI looks like:
We will import a repository’s metadata and list its content. But let’s move on …
I assume you have already installed the software from part 1. Then we’ll just donwload the missing parts.
zypper in prefix-opt-python-zypp prefix-opt-libzypp
Archive for the ‘Systems Management’ Category
Developing with libyui/libzypp & python – part3
October 3rd, 2008 by Jan-Simon MöllerSoftware Management as a Service
September 24th, 2008 by Stefan HaasA couple of days ago I finished my thesis with the topic mentioned above.
It describes the currently used package formats and software management systems within the Linux as also the proprietary world of Microsoft respectively Apple plus the possibilities to reduce those systems and tools to a common denominator.
The prototype of this service, which emerged within the scope of the thesis, consists of the following three parts:
- PackageKit, which acts as broker between CIM and the local software management system
- CIM, which provides the standardized data model and communication and a
- Web-UI, which is more or less only a proof of concept
As the Common Information Model (CIM) is a widespread and well used standard (even Microsoft occupies it with its WMI stuff), its models are used for a common data structure as also for the operating system independent communication.
For implementing a usable service, classes (data structures) for Package, Update and Repository was needed.
These classes are based, out of compatibility reasons, on the already existing WMI implementation of Microsoft. Hence, it is possible with one and the same client to list packages (products in Microsoft speech) and Updates of Linux as also Windows computers.
To connect this CIM-classes to the local software management system it was necessary to develop so called CIM-providers.
The implemented providers communicate with PackageKit and not with the available software management systems (like ZYpp in case of openSUSE) itself. This is beneficial as there is no need anymore to develop a provider for every single software management system. As soon as there is a backend for PackageKit of the specific software management system this service is automatically usable.
The prototype of the service is fully usable to list, install and remove packages and patches as also to list, disable and enable repositories for all Linux distributions provided by PackageKit.
So, if you are interested and the thesis is accepted and marked (hopefully good) by my examiners, let me know and you’ll get a copy of it (90 pages, english).
Developing with libyui/libzypp & python – part2
September 23rd, 2008 by Jan-Simon MöllerDeveloping with libyui/libzypp & python – part1
September 14th, 2008 by Jan-Simon MöllerIn a small series of posts I’ll describe some tips and tricks for developing with libyui and libzypp in python.
Thanks to the YaST developers and Klaus Kaempf, there are bindings to libyui the Yast User Interface library for python.
For libzypp there are also python-bindings done by Duncan Mac-Vicar Prett and Arvin Schnell.
Both are generated with the swig code generator and are not perfect yet, but as we’ll see they’re pretty usable.
One big problem we need to solve is: libyui and libzypp are part of your base-system/YaST. If we would update them in the main system,
we would probably screw up zypper and YaST – which is bad.
Therefore I compiled libyui and libzypp and all other needed packages with an custom –prefix (/opt/yuitest) inside the openSUSE Buildservice.
Thus we can easily install the latest version without breaking our system.
In this first part we’ll install and test libyui.
(more…)
YDialogSpy Can Now Show Widget Properties
September 12th, 2008 by Stefan HundhammerYesterday I wrote about YDialogSpy, the new interactive YaST dialog debugger. The plans for its future included showing the properties of the currently selected widget. Well, that future came much quicker than expected; it arrived late this afternoon:
(click for large versions)
Installation over serial line
September 12th, 2008 by Steffen WinterfeldtIt’s now possible to install openSUSE if you only have a serial line (without additional tricks). Our graphical bootloader frontend used to ignore serial input. That’s now (starting with 11.1 beta1) changed.
In the default setting it monitors com1/com2 (the first two bios configured serial ports) for input. Baud rate is autodetected (you have to press a few keys until it catches on). Output is sent to all lines it receives input from.
When it works, the first screen looks like:
Learning YaST (YCP language)
September 12th, 2008 by Alexander OrlovskyyMy name is Alexander i`m a trainee at SUSE.
In my blog i will write about my experience with learning YCP (YaST Control Language)
First of all, most important part of learning is to have a good manual.
Here you have some links to start:
YCP book ->must read! (up to date)
YCP User interface referece book
Later i add additional info …..
YDialogSpy: An Interactive YaST Dialog Debugger
September 11th, 2008 by Stefan HundhammerProgramming a GUI version of “Hello, World” is easy in the YaST programming environment, no matter if it’s YCP (the YaST-specific scripting language), plain C++, Perl, Python, or Ruby.
But if dialogs become more complex, it can get demanding to make them look good and – equally important – to behave well as the user resizes dialogs:
The YaST UI (user interface) engine now features a new debugging tool to make life easier for developers: YDialogSpy. In the Qt version, hit the magic key combination
Ctrl-Shift-Alt-Y
and you will get a YDialogSpy window like this:
This shows the widget hierarchy of the original dialog as a tree. Clicking around in that tree, you can highlight the corresponding widget (and its child widgets) in the original dialog (move the YDialogSpy window to the side first):
This can also make widgets visible you normally can’t see such as H/VSpacing, H/VStretch etc., and it shows the extent of alignment widgets (left, right, top, bottom) as well as layout boxes (H/VBox):
Availability
yast2-libyui-2.17-9 or later
yast2-qt-2.17.8 or later
The Future
This is just a first version, of course. Future versions will get a “Properties” table that can show certain values of the current widget. Maybe there will also be some (very limited) editing capabilities.
Stay tuned.
Further Reading
http://en.opensuse.org/YaST/Development/Misc/YDialogSpy
(With original-size screen shots)
Unifying Progress During Installation – Continued…
September 3rd, 2008 by Stanislav VisnovskySo, my code from the hackweek is now in the YaST Subversion and the packages submitted for build.
Now the fun part begins, as some YaST developers noticed very quickly. There are several parts of YaST that got broken – e.g. YaST Partitioner on the running system spotted by Arvin, or sw_single not really adapted spotted by Bubli, …
Thanks to those I’m working with Kobliha to fix the issues as they come. So, if there is a progress in YaST (typically related to package installation) that does not behave as expected, it is certainly worth a bug report.