Home Home > 2018 > 01 > 25 > Highlights of YaST Development Sprint 49
Sign up | Login

Deprecation notice: openSUSE Lizards user blog platform is deprecated, and will remain read only for the time being. Learn more...

Highlights of YaST Development Sprint 49

January 25th, 2018 by

Time goes by and the YaST wheel keeps rolling. So let’s take a look to what have moved since our previous development report.

More flexible NET installation ISOs

Network installation media for Tumbleweed or Leap only work properly with the exact repository they have been built for – which for Tumbleweed may mean they could be outdated after just one day.

You would then run into this message:

Linuxrc warning

To improve the situation the installer can now offer to download matching boot files (kernel and initrd, to be precise) from the repository if it detects this situation:

Linuxrc offering a solution, as always

Of course, you can say ‘No’ here – but then you’re back to the red dialog. 😀

Technically, what’s done is to download a new kernel/initrd pair from the repository and restart the installation process with them (using kexec). So be prepared for a slight déjà vu.

This feature is controlled by the kexec boot option.

Storage-ng lands into Tumbleweed: handle with care

But that’s not the only news we have about openSUSE Tumbleweed. Our usual readers already know about Storage-ng, our effort to rewrite the whole YaST storage stack from scratch. And they also know it’s still a work in progress. But since there were too many valuable changes blocked by the adoption of Storage-ng, it was decided it was time to push the red button. So we are glad to announce the Storage-ng era has started with its inclusion in the first official (open)SUSE product – starting with snapshot 20180117, libstorage-ng has replaced libstorage and, thus, yast2-storage-ng has replaced yast2-storage.

They say forewarned is forearmed, so an article was published in advance in news.opensuse.org to set the expectations and to provide and overview of the current status. We would like to encourage all openSUSE Tumbleweed users to (re)visit the article to get a better picture of the situation.

Alignment of partitions in the expert partitioner

An important part of that work in progress is the re-implementation of the Expert Partitioner with Storage-ng technologies. As mentioned many times in previous posts, this is mainly a 1:1 clone, with the same functionality presented in exactly the same way than the classic YaST partitioner. But some times we take the opportunity to introduce some improvement here and there, as we did this week with a topic that can have a very noticeable impact in the system performance: partitions alignment.

Although many people is not aware of it, the partitions in a system must be properly aligned to avoid the performance drop caused by excessive read-modify-write cycles. For details please refer to the great article at Wikipedia explaining the topic, especially the sections titled “4 KB sector alignment” and “SSD page partition alignment”. Moreover, leaving performance considerations aside, some partition tables require alignment to simply work, like DASD partition tables which need alignment to tracks (usually 12 sectors).

The new expert partitioner takes all that into consideration when creating and resizing partitions, ensuring always the required alignment (like the DASD tracks) and encouraging the optional performance-related one, avoiding undesired gaps between partitions in the process.

Detail of the Expert Partitioner dialog to create a partition

Above you can see the dialog for choosing the size for a new partition that, unsurprisingly, looks very much like the same dialog in the pre-storage-ng Expert Partitioner. If a size is specified by the user in that dialog (any of the two first options in the form), the start and end of the partition will be aligned to ensure optimal performance and to minimize gaps. That may result in a slightly smaller partition (with the difference being usually less than 1MiB). If a custom region is specified, the start and end will be honored as closely as possible, with no performance optimizations (although mandatory alignment, like DASD tracks, still will take place). This third option is the best to create very small partitions.

The same considerations for optimal alignment will also be taken into account while resizing an existing partition and calculating the minimal and maximal sizes suggested by the partitioner during that process.

Choosing the new size of a resized partition

Sanity checks for the storage setup

The possibility of bypassing the performance optimizations in the Expert Partitioner is just one example of the (potentially unleashed) power that tool provides. As a consequence of that flexibility, sometimes the user can overlook some important setup configurations or even make mistakes. To help with that, the Expert Partitioner recovered this week its ability to check the entered storage setup.

Once the user has set partitions, LVM volumes, file systems, mount points, etc. and decides to proceed, the Partitioner will validate that setup to ensure it fulfills all necessary requirements for booting and running the system. When some issue is detected, a popup message is presented to show what the problem is, offering the option to ignore the warning and move forward.

The resurrected partitioner sanity checks

Two kind of checks are carried out to ensure the partitioning setup validity. First, the presence of needed partitions for booting is checked. Booting requirements depends on the current architecture (x86, PowerPC, AArch, etc.) and other technical details like the partition table type (GPT vs MS-DOS). Then, the mandatory volumes for the current product are checked. The mandatory volumes are defined in the revamped partitioning section of the control file. Typically, only a volume for root and another for swap used to be mandatory, but now this is totally configurable by anyone defining the product (SLE, Leap, Tumbleweed, your own custom openSUSE derivative…).

As a bonus, all the sanity checks are now centralized (they used to be scattered around the YaST source code) and it’s easier to add new ones (you will miss some old checks at this moment) and to use them from other parts of YaST (like the bootloader module or AutoYaST).

More improvements in the Expert Partitioner

The new warnings and the alignment improvements commented above are not the only news on the evolution of the Expert Partitioner clone this week. Resizing of LVM devices has also been brought back to life, both for volume groups and logical volumes. In the case of logical volumes, the functionality is not much different, at least in the surface, from the partition resizing that was already present and that you can see in the screenshot of the alignment section.

On the other hand, in the context of the Partitioner, resizing a volume group actually means adding or removing physical volumes. Actions that are now possible again, including the corresponding checks. For example, a physical volume cannot be removed if it already exists on disk (that could destroy your data) or if the resulting size of the volume group is not enough to cover all its logical volumes.

Trying to remove the wrong PV

Apart from the mentioned functionality, there has also been improvements in how the Expert Partitioner presents the information. For example, now the “type” column shows the correct label and icon for each device instead of that useless TODO label. Moreover, similar TODO marks were replaced by proper data in the device overview tab.

TODO labels are gone

Minimize changes between the SLE15 “Installer” and “Packages” DVDs

The SUSE Enterprise Server 15 (SLES15) product can be installed from a bootable “Installer” DVD medium which contains the installer and a subset of packages needed for a very minimal system. The other packages are available either from a registration server (after registering the SLES product) or via a separate “Packages” DVD medium.

Due to the structure of those DVDs (with some packages being in present in both) the SLES installer was asking the user to change the medium several times during the installation process. Ideally the installer should use all packages from the “Packages” medium without changing the media.

In addition, there is yet another requirement for preferring the packages from the installation DVD to the packages available via a remote repository. Downloading a package from the internet is usually much slower than the DVD and can be problematic in network connections with a download limit or with a price based on the bandwidth usage.

Now the installer properly adjust the priority of all the repositories to achieve the desired behavior. To avoid possible side effects we decided to change the repository priority only when more than one repository is used and all repositories are local (e.g. DVD, hard disk, USB flash disk…). That means in some less common cases (2 DVDs + a remote repository) you will still need to change the medium but this is a safer solution.

Add On products in AutoYaST

For those using SLE Add On products, we have improved the error message if an Add On Product cannot be added during an AutoYaST installation. The user can see now which wrongly configured Add On Product has produced the error.

AutoYaST reporting which Add On is wrong

This will be specially useful with the upcoming SLE15, in which the concepts of Add Ons and Modules will become more relevant than ever.

Fixed a crash when shutting down the YaST user interface

And now it’s time for the corresponding dose of technical insights for those who enjoy that part of our reports.

When UI::OpenDialog() and UI::CloseDialog() calls didn’t match when shutting down the UI (user interface YaST component), you’d get a segmentation fault with a core dump. Well, you did want to shut down YaST, but probably not like that. This is now fixed.

After tracking this down, it was surprisingly simple to reproduce: Just use the YaST version of the trivial “Hello, World” program and comment out the UI::CloseDialog() call.

This was a case of providing additional error reporting causing more problems than the original error: leaving dialogs open while terminating the program is an error, of course. But fixing this little problem by cleaning up the remaining dialogs lead to handling widgets after some of the underlying infrastructure (in this case the QApplication) was already destroyed, so all the QWidgets were also destroyed (because the QApplication takes care of that), but YaST’s generic UI layer was still unaware of that fact and tried to destroy them again.

This is now fixed by properly cleaning up the widget tree in YaST’s generic UI layer first which will also clean up the associated QWidgets so there is nothing left to clean up for the QApplication.

This might also fix a number of similar segfaults in other situations where the YaST Ruby engine would need to shut down because of other problems, e.g. when there is an unhandled Ruby exception.

Surprisingly enough, this must have been a very old (10+ years?) bug, but it never became quite obvious, or at least nobody was ever annoyed enough to try to track it down.

If you want even more details, check the conversation in the bug report.

More to come

The end of this sprint caught up with a lot of almost finished stuff. But following the Scrum principle of “nothing is done until it fits the Definition of Done”, we don’t blog about such stuff. Fortunately, that means the next report will likely be quite juicy. So, see you again in a couple of weeks!

Both comments and pings are currently closed.

One Response to “Highlights of YaST Development Sprint 49”

  1. Eliasse

    Hi guys,

    I am using openSUSE Tumbleweed and since a recent update of my system including the new YaST-packages, YaST is failing to load the modules Packages, AddOnProduct and ProductLicense when the commands single_sw and repositories are launched. I get the following error message: 2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] bin/y2start:18 y2base called with [“repositories”, “qt”, “-name”, “YaST2”, “-icon”, “yast”]
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui-component] YUIComponentCreator.cc(createInternal):124 Creating UI component for “”
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YSettings.cc(setProgDir):61 Set progDir to “/usr/share/YaST2”
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YSettings.cc(setProgDir):62 progDir is now locked.
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YSettings.cc(setLocaleDir):147 Set localeDir to “/usr/share/YaST2/locale”
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YSettings.cc(setLocaleDir):148 localeDir is now locked.
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YPath.cc(YPath):49 Given filename: libyui-qt.so.8
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YSettings.cc(progDir):74 progDir: “/usr/share/YaST2”
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YPath.cc(YPath):65 Preferring subdir: /usr/share/YaST2
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YPath.cc(YPath):66 Subdir given with filename:
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YPath.cc(YPath):67 Looking for: libyui-qt.so.8
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YPath.cc(lsDir):138 Looking in /usr/lib64/yui
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YPath.cc(YPath):118 Found libyui-qt.so.8 in /usr/lib64/yui
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YUI.cc(YUI):77 This is libyui 3.4.0
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YUI.cc(YUI):78 Creating UI with threads
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQUI.cc(YQUI):100 This is libyui-qt 2.47.3
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQUI.cc(qMessageHandler):648 QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-styler] QY2Styler.cc(loadStyleSheet):141 Couldn’t open style sheet “/usr/share/YaST2/theme/current/wizard/style.qss”
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQUI.cc(processCommandLineArgs):269 Qt argument: /usr/bin/ruby.ruby2.5
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQUI.cc(processCommandLineArgs):269 Qt argument: /usr/lib/YaST2/bin/y2start
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQUI.cc(processCommandLineArgs):269 Qt argument: repositories
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQUI.cc(processCommandLineArgs):269 Qt argument: qt
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQUI.cc(calcDefaultSize):412 Default size: 896 x 697
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQApplication.cc(loadPredefinedQtTranslations):133 Selected language: de_DE
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQApplication.cc(loadPredefinedQtTranslations):137 Qt locale directory not set – no translations for predefined Qt dialogs
    2018-01-26 16:52:41 tuxeli.suse(9063) [qt-ui] YQUI.cc(initUI):246 YQUI initialized. Thread ID: 0x0x7f1aaf3f3700
    2018-01-26 16:52:41 tuxeli.suse(9063) [ui] YCP_UI.cc(SetApplicationTitle):1722 Setting application title to ‘”YaST2 – repositories @ tuxeli.suse”‘
    2018-01-26 16:52:41 tuxeli.suse(9063) [Interpreter] bin/y2start:58 Calling YaST client repositories
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] yast/wfm.rb:296 Call client /usr/share/YaST2/clients/repositories.rb
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] PkgModule.cc(instance):68 Redirecting ZYPP log to y2log
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/PackageCallbacks.rb:136 PackageCallbacks constructor
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2650 Pkg Builtin called: CallbackProcessStart
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2653 Pkg Builtin called: CallbackProcessProgress
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2656 Pkg Builtin called: CallbackProcessNextStage
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2659 Pkg Builtin called: CallbackProcessDone
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2665 Pkg Builtin called: CallbackStartProvide
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2668 Pkg Builtin called: CallbackProgressProvide
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2671 Pkg Builtin called: CallbackDoneProvide
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2674 Pkg Builtin called: CallbackStartPackage
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2680 Pkg Builtin called: CallbackProgressPackage
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2683 Pkg Builtin called: CallbackDonePackage
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2686 Pkg Builtin called: CallbackPkgGpgCheck
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2694 Pkg Builtin called: CallbackStartDeltaDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2697 Pkg Builtin called: CallbackProgressDeltaDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2700 Pkg Builtin called: CallbackProblemDeltaDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2703 Pkg Builtin called: CallbackFinishDeltaDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2707 Pkg Builtin called: CallbackStartDeltaApply
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2710 Pkg Builtin called: CallbackProgressDeltaApply
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2713 Pkg Builtin called: CallbackProblemDeltaApply
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2716 Pkg Builtin called: CallbackFinishDeltaApply
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2602 Pkg Builtin called: CallbackSourceCreateStart
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2605 Pkg Builtin called: CallbackSourceCreateProgress
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2608 Pkg Builtin called: CallbackSourceCreateError
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2611 Pkg Builtin called: CallbackSourceCreateEnd
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2614 Pkg Builtin called: CallbackSourceCreateInit
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2617 Pkg Builtin called: CallbackSourceCreateDestroy
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2626 Pkg Builtin called: CallbackSourceProbeStart
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2629 Pkg Builtin called: CallbackSourceProbeFailed
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2632 Pkg Builtin called: CallbackSourceProbeSucceeded
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2635 Pkg Builtin called: CallbackSourceProbeProgress
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2638 Pkg Builtin called: CallbackSourceProbeError
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2641 Pkg Builtin called: CallbackSourceProbeEnd
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2725 Pkg Builtin called: CallbackSourceReportStart
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2728 Pkg Builtin called: CallbackSourceReportProgress
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2731 Pkg Builtin called: CallbackSourceReportError
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2737 Pkg Builtin called: CallbackSourceReportEnd
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2743 Pkg Builtin called: CallbackSourceReportInit
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2746 Pkg Builtin called: CallbackSourceReportDestroy
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2754 Pkg Builtin called: CallbackProgressReportStart
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2760 Pkg Builtin called: CallbackProgressReportProgress
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2766 Pkg Builtin called: CallbackProgressReportEnd
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] packages/file_conflict_callbacks.rb:56 Registering file conflict callbacks
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] packages/file_conflict_callbacks.rb:58 Pkg Builtin called: CallbackFileConflictStart
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] packages/file_conflict_callbacks.rb:59 Pkg Builtin called: CallbackFileConflictProgress
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] packages/file_conflict_callbacks.rb:61 Pkg Builtin called: CallbackFileConflictReport
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] packages/file_conflict_callbacks.rb:63 Pkg Builtin called: CallbackFileConflictFinish
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2796 Pkg Builtin called: CallbackAuthentication
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2808 Pkg Builtin called: CallbackAcceptUnsignedFile
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2814 Pkg Builtin called: CallbackAcceptUnknownGpgKey
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2823 Pkg Builtin called: CallbackImportGpgKey
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2829 Pkg Builtin called: CallbackAcceptVerificationFailed
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2835 Pkg Builtin called: CallbackTrustedKeyAdded
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2841 Pkg Builtin called: CallbackTrustedKeyRemoved
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2847 Pkg Builtin called: CallbackAcceptFileWithoutChecksum
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2853 Pkg Builtin called: CallbackAcceptWrongDigest
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2859 Pkg Builtin called: CallbackAcceptUnknownDigest
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2500 Pkg Builtin called: CallbackMediaChange
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2506 Pkg Builtin called: CallbackSourceChange
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2525 Pkg Builtin called: CallbackScriptStart
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2528 Pkg Builtin called: CallbackScriptProgress
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2531 Pkg Builtin called: CallbackScriptProblem
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2534 Pkg Builtin called: CallbackScriptFinish
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2536 Pkg Builtin called: CallbackMessage
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2544 Pkg Builtin called: CallbackStartScanDb
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2545 Pkg Builtin called: CallbackProgressScanDb
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2548 Pkg Builtin called: CallbackErrorScanDb
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2551 Pkg Builtin called: CallbackDoneScanDb
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2568 Pkg Builtin called: CallbackInitDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2569 Pkg Builtin called: CallbackStartDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2572 Pkg Builtin called: CallbackProgressDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2578 Pkg Builtin called: CallbackDoneDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2581 Pkg Builtin called: CallbackDestDownload
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2582 Pkg Builtin called: CallbackStartRefresh
    2018-01-26 16:52:41 tuxeli.suse(9063) [Pkg] modules/PackageCallbacks.rb:2583 Pkg Builtin called: CallbackDoneRefresh
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/ProductControl.rb:1193 Candidates: [“/y2update/control.xml”, “/control.xml”, “/etc/YaST2/control.xml”]
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/ProductControl.rb:1201 Reading control file: /etc/YaST2/control.xml
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/XML.rb:135 Reading /etc/YaST2/control.xml
    2018-01-26 16:52:41 tuxeli.suse(9063) [agent-xml] XmlAgent.cc(Read):751 Setting XML generic error handler
    2018-01-26 16:52:41 tuxeli.suse(9063) [agent-xml] XmlAgent.cc(Read):786 Freeing generic XML error handler
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/Encoding.rb:77 list [“charmap=\”UTF-8\””, “”]
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/Encoding.rb:80 list [“charmap=\”UTF-8\””]
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/Encoding.rb:84 enc “UTF-8”
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/Encoding.rb:86 enc UTF-8
    2018-01-26 16:52:41 tuxeli.suse(9063) [Ruby] modules/Encoding.rb:89 encoding UTF-8
    2018-01-26 16:52:42 tuxeli.suse(9063) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):26 cannot require yast:undefined method `split’ for nil:NilClass at /usr/share/YaST2/lib/y2country/language_dbus.rb:55:in `read_locale_conf’
    2018-01-26 16:52:42 tuxeli.suse(9063) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):26 cannot require yast:undefined method `message’ for nil:NilClass at /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    2018-01-26 16:52:42 tuxeli.suse(9063) [Y2Ruby] binary/Y2RubyComponent.cc(import):100 Reporting runtime error for import of module ‘ProductLicense’ message ‘undefined method `message’ for nil:NilClass’
    2018-01-26 16:52:42 tuxeli.suse(9063) [Interpreter] yast/i18n.rb:135 Runtime error when loading module ‘ProductLicense’
    2018-01-26 16:52:42 tuxeli.suse(9063) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):26 cannot require yast:Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass at /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    2018-01-26 16:52:42 tuxeli.suse(9063) [Y2Ruby] binary/Y2RubyComponent.cc(import):100 Reporting runtime error for import of module ‘AddOnProduct’ message ‘Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass’
    2018-01-26 16:52:42 tuxeli.suse(9063) [Interpreter] yast/i18n.rb:135 Runtime error when loading module ‘AddOnProduct’
    2018-01-26 16:52:42 tuxeli.suse(9063) [Ruby] yast/builtins.rb:586 tostring builtin called on wrong type Class
    2018-01-26 16:52:42 tuxeli.suse(9063) [Ruby] yast/wfm.rb:253 Client /usr/share/YaST2/clients/repositories.rb failed with ‘Failed to load Module ‘AddOnProduct’ due to: Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass’ (RuntimeError).
    Backtrace:
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import’
    /usr/share/YaST2/modules/ProductLicense.rb:22:in `main’
    /usr/share/YaST2/modules/ProductLicense.rb:1630:in `’
    /usr/share/YaST2/modules/ProductLicense.rb:6:in `’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import’
    /usr/share/YaST2/modules/AddOnProduct.rb:47:in `main’
    /usr/share/YaST2/modules/AddOnProduct.rb:2160:in `’
    /usr/share/YaST2/modules/AddOnProduct.rb:7:in `’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import’
    /usr/share/YaST2/include/packager/repositories_include.rb:20:in `initialize_packager_repositories_include’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:151:in `include’
    /usr/share/YaST2/lib/packager/clients/repositories.rb:51:in `main’
    /usr/share/YaST2/clients/repositories.rb:15:in `’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:301:in `eval’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:301:in `run_client’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:206:in `call_builtin’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:206:in `call_builtin_wrapper’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:195:in `CallFunction’
    /usr/lib/YaST2/bin/y2start:58:in `’
    2018-01-26 16:52:42 tuxeli.suse(9063) [Ruby] yast/wfm.rb:276 Internal error. Please report a bug report with logs.
    Run save_y2logs to get complete logs.
    Details: Failed to load Module ‘AddOnProduct’ due to: Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass
    Caller: /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    2018-01-26 16:52:42 tuxeli.suse(9063) [ui] YPushButton.cc(setRole):170 Guessing function key F10 for YPushButton “OK” at 0x7f1aa81232c0 from button role YOKButton
    2018-01-26 16:53:27 tuxeli.suse(9063) [Interpreter] bin/y2start:58 Called YaST client returned.
    2018-01-26 16:53:27 tuxeli.suse(9063) [qt-ui] YQUI.cc(qMessageHandler):648 QObject::killTimer: Timers cannot be stopped from another thread
    2018-01-26 16:53:27 tuxeli.suse(9063) [qt-ui] YQUI.cc(qMessageHandler):648 QObject::~QObject: Timers cannot be stopped from another thread
    2018-01-26 16:53:27 tuxeli.suse(9063) [Y2Ruby] binary/YRuby.cc(~YRuby):117 Shutting down ruby interpreter.
    2018-01-26 16:53:30 tuxeli.suse(9191) [Ruby] bin/y2start:18 y2base called with [“sw_single”, “qt”, “-name”, “YaST2”, “-icon”, “yast”]
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui-component] YUIComponentCreator.cc(createInternal):124 Creating UI component for “”
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YSettings.cc(setProgDir):61 Set progDir to “/usr/share/YaST2”
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YSettings.cc(setProgDir):62 progDir is now locked.
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YSettings.cc(setLocaleDir):147 Set localeDir to “/usr/share/YaST2/locale”
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YSettings.cc(setLocaleDir):148 localeDir is now locked.
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPath.cc(YPath):49 Given filename: libyui-qt.so.8
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YSettings.cc(progDir):74 progDir: “/usr/share/YaST2”
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPath.cc(YPath):65 Preferring subdir: /usr/share/YaST2
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPath.cc(YPath):66 Subdir given with filename:
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPath.cc(YPath):67 Looking for: libyui-qt.so.8
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPath.cc(lsDir):138 Looking in /usr/lib64/yui
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPath.cc(YPath):118 Found libyui-qt.so.8 in /usr/lib64/yui
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YUI.cc(YUI):77 This is libyui 3.4.0
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YUI.cc(YUI):78 Creating UI with threads
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(YQUI):100 This is libyui-qt 2.47.3
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(qMessageHandler):648 QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-styler] QY2Styler.cc(loadStyleSheet):141 Couldn’t open style sheet “/usr/share/YaST2/theme/current/wizard/style.qss”
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(processCommandLineArgs):269 Qt argument: /usr/bin/ruby.ruby2.5
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(processCommandLineArgs):269 Qt argument: /usr/lib/YaST2/bin/y2start
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(processCommandLineArgs):269 Qt argument: sw_single
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(processCommandLineArgs):269 Qt argument: qt
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(calcDefaultSize):412 Default size: 896 x 697
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQApplication.cc(loadPredefinedQtTranslations):133 Selected language: de_DE
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQApplication.cc(loadPredefinedQtTranslations):137 Qt locale directory not set – no translations for predefined Qt dialogs
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(initUI):246 YQUI initialized. Thread ID: 0x0x7fbfe42fa700
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YCP_UI.cc(SetApplicationTitle):1722 Setting application title to ‘”YaST2 – sw_single @ tuxeli.suse”‘
    2018-01-26 16:53:30 tuxeli.suse(9191) [Interpreter] bin/y2start:58 Calling YaST client sw_single
    2018-01-26 16:53:30 tuxeli.suse(9191) [Ruby] yast/wfm.rb:296 Call client /usr/share/YaST2/clients/sw_single.rb
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] PkgModule.cc(instance):68 Redirecting ZYPP log to y2log
    2018-01-26 16:53:30 tuxeli.suse(9191) [Ruby] modules/PackageCallbacks.rb:136 PackageCallbacks constructor
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2650 Pkg Builtin called: CallbackProcessStart
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2653 Pkg Builtin called: CallbackProcessProgress
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2656 Pkg Builtin called: CallbackProcessNextStage
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2659 Pkg Builtin called: CallbackProcessDone
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2665 Pkg Builtin called: CallbackStartProvide
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2668 Pkg Builtin called: CallbackProgressProvide
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2671 Pkg Builtin called: CallbackDoneProvide
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2674 Pkg Builtin called: CallbackStartPackage
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2680 Pkg Builtin called: CallbackProgressPackage
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2683 Pkg Builtin called: CallbackDonePackage
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2686 Pkg Builtin called: CallbackPkgGpgCheck
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2694 Pkg Builtin called: CallbackStartDeltaDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2697 Pkg Builtin called: CallbackProgressDeltaDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2700 Pkg Builtin called: CallbackProblemDeltaDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2703 Pkg Builtin called: CallbackFinishDeltaDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2707 Pkg Builtin called: CallbackStartDeltaApply
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2710 Pkg Builtin called: CallbackProgressDeltaApply
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2713 Pkg Builtin called: CallbackProblemDeltaApply
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2716 Pkg Builtin called: CallbackFinishDeltaApply
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2602 Pkg Builtin called: CallbackSourceCreateStart
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2605 Pkg Builtin called: CallbackSourceCreateProgress
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2608 Pkg Builtin called: CallbackSourceCreateError
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2611 Pkg Builtin called: CallbackSourceCreateEnd
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2614 Pkg Builtin called: CallbackSourceCreateInit
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2617 Pkg Builtin called: CallbackSourceCreateDestroy
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2626 Pkg Builtin called: CallbackSourceProbeStart
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2629 Pkg Builtin called: CallbackSourceProbeFailed
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2632 Pkg Builtin called: CallbackSourceProbeSucceeded
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2635 Pkg Builtin called: CallbackSourceProbeProgress
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2638 Pkg Builtin called: CallbackSourceProbeError
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2641 Pkg Builtin called: CallbackSourceProbeEnd
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2725 Pkg Builtin called: CallbackSourceReportStart
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2728 Pkg Builtin called: CallbackSourceReportProgress
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2731 Pkg Builtin called: CallbackSourceReportError
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2737 Pkg Builtin called: CallbackSourceReportEnd
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2743 Pkg Builtin called: CallbackSourceReportInit
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2746 Pkg Builtin called: CallbackSourceReportDestroy
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2754 Pkg Builtin called: CallbackProgressReportStart
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2760 Pkg Builtin called: CallbackProgressReportProgress
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2766 Pkg Builtin called: CallbackProgressReportEnd
    2018-01-26 16:53:30 tuxeli.suse(9191) [Ruby] packages/file_conflict_callbacks.rb:56 Registering file conflict callbacks
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] packages/file_conflict_callbacks.rb:58 Pkg Builtin called: CallbackFileConflictStart
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] packages/file_conflict_callbacks.rb:59 Pkg Builtin called: CallbackFileConflictProgress
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] packages/file_conflict_callbacks.rb:61 Pkg Builtin called: CallbackFileConflictReport
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] packages/file_conflict_callbacks.rb:63 Pkg Builtin called: CallbackFileConflictFinish
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2796 Pkg Builtin called: CallbackAuthentication
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2808 Pkg Builtin called: CallbackAcceptUnsignedFile
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2814 Pkg Builtin called: CallbackAcceptUnknownGpgKey
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2823 Pkg Builtin called: CallbackImportGpgKey
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2829 Pkg Builtin called: CallbackAcceptVerificationFailed
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2835 Pkg Builtin called: CallbackTrustedKeyAdded
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2841 Pkg Builtin called: CallbackTrustedKeyRemoved
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2847 Pkg Builtin called: CallbackAcceptFileWithoutChecksum
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2853 Pkg Builtin called: CallbackAcceptWrongDigest
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2859 Pkg Builtin called: CallbackAcceptUnknownDigest
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2500 Pkg Builtin called: CallbackMediaChange
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2506 Pkg Builtin called: CallbackSourceChange
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2525 Pkg Builtin called: CallbackScriptStart
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2528 Pkg Builtin called: CallbackScriptProgress
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2531 Pkg Builtin called: CallbackScriptProblem
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2534 Pkg Builtin called: CallbackScriptFinish
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2536 Pkg Builtin called: CallbackMessage
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2544 Pkg Builtin called: CallbackStartScanDb
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2545 Pkg Builtin called: CallbackProgressScanDb
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2548 Pkg Builtin called: CallbackErrorScanDb
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2551 Pkg Builtin called: CallbackDoneScanDb
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2568 Pkg Builtin called: CallbackInitDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2569 Pkg Builtin called: CallbackStartDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2572 Pkg Builtin called: CallbackProgressDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2578 Pkg Builtin called: CallbackDoneDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2581 Pkg Builtin called: CallbackDestDownload
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2582 Pkg Builtin called: CallbackStartRefresh
    2018-01-26 16:53:30 tuxeli.suse(9191) [Pkg] modules/PackageCallbacks.rb:2583 Pkg Builtin called: CallbackDoneRefresh
    2018-01-26 16:53:30 tuxeli.suse(9191) [Ruby] modules/Misc.rb:188 .”/etc/os-release”.”NAME”: ‘openSUSE Tumbleweed’
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YCP_UI.cc(SetApplicationIcon):1705 Setting application icon to “/usr/share/YaST2/theme/current/icons/64×64/apps/yast.png”
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YSettings.cc(localeDir):162 localeDir: “/usr/share/YaST2/locale”
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(qMessageHandler):638 Registering QWidget(0x7fbfdc2283a0, name=”work_area”) for parent YQWizard(0x7fbfdc147ec0, name=”wizard”)
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(qMessageHandler):638
    2018-01-26 16:53:30 tuxeli.suse(9191) [qt-ui] YQUI.cc(qMessageHandler):648 QLayout: Attempting to add QLayout “” to QFrame “”, which already has a layout
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPushButton.cc(setFunctionKey):202 Guessing button role YHelpButton for YPushButton “Hilfe” at 0x7fbfdc1db870 from function key F1
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPushButton.cc(setFunctionKey):202 Guessing button role YCancelButton for YPushButton “Abbrechen” at 0x7fbfdc2e06c0 from function key F9
    2018-01-26 16:53:30 tuxeli.suse(9191) [ui] YPushButton.cc(setFunctionKey):202 Guessing button role YOKButton for YPushButton “Weiter” at 0x7fbfdc44d5f0 from function key F10
    2018-01-26 16:53:31 tuxeli.suse(9191) [ui] YCP_UI.cc(SetApplicationTitle):1722 Setting application title to ‘”YaST2″‘
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/Progress.rb:344 Progress::New(Software-Manager wird gestartet, 2, [“Zielsystem initialisieren”, “Konfigurierte Repositorys laden”])
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/ProductControl.rb:1193 Candidates: [“/y2update/control.xml”, “/control.xml”, “/etc/YaST2/control.xml”]
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/ProductControl.rb:1201 Reading control file: /etc/YaST2/control.xml
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/XML.rb:135 Reading /etc/YaST2/control.xml
    2018-01-26 16:53:31 tuxeli.suse(9191) [agent-xml] XmlAgent.cc(Read):751 Setting XML generic error handler
    2018-01-26 16:53:31 tuxeli.suse(9191) [agent-xml] XmlAgent.cc(Read):786 Freeing generic XML error handler
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/Encoding.rb:77 list [“charmap=\”UTF-8\””, “”]
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/Encoding.rb:80 list [“charmap=\”UTF-8\””]
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/Encoding.rb:84 enc “UTF-8”
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/Encoding.rb:86 enc UTF-8
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] modules/Encoding.rb:89 encoding UTF-8
    2018-01-26 16:53:31 tuxeli.suse(9191) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):26 cannot require yast:undefined method `split’ for nil:NilClass at /usr/share/YaST2/lib/y2country/language_dbus.rb:55:in `read_locale_conf’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):26 cannot require yast:undefined method `message’ for nil:NilClass at /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Y2Ruby] binary/Y2RubyComponent.cc(import):100 Reporting runtime error for import of module ‘ProductLicense’ message ‘undefined method `message’ for nil:NilClass’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Interpreter] yast/i18n.rb:135 Runtime error when loading module ‘ProductLicense’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):26 cannot require yast:Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass at /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Y2Ruby] binary/Y2RubyComponent.cc(import):100 Reporting runtime error for import of module ‘AddOnProduct’ message ‘Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Interpreter] yast/i18n.rb:135 Runtime error when loading module ‘AddOnProduct’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):26 cannot require yast:Failed to load Module ‘AddOnProduct’ due to: Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass at /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Y2Ruby] binary/Y2RubyComponent.cc(import):100 Reporting runtime error for import of module ‘Packages’ message ‘Failed to load Module ‘AddOnProduct’ due to: Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Interpreter] yast/i18n.rb:135 Runtime error when loading module ‘Packages’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] yast/builtins.rb:586 tostring builtin called on wrong type Class
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] yast/wfm.rb:253 Client /usr/share/YaST2/clients/sw_single.rb failed with ‘Failed to load Module ‘Packages’ due to: Failed to load Module ‘AddOnProduct’ due to: Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass’ (RuntimeError).
    Backtrace:
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import’
    /usr/share/YaST2/modules/ProductLicense.rb:22:in `main’
    /usr/share/YaST2/modules/ProductLicense.rb:1630:in `’
    /usr/share/YaST2/modules/ProductLicense.rb:6:in `’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import’
    /usr/share/YaST2/modules/AddOnProduct.rb:47:in `main’
    /usr/share/YaST2/modules/AddOnProduct.rb:2160:in `’
    /usr/share/YaST2/modules/AddOnProduct.rb:7:in `’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import’
    /usr/share/YaST2/modules/Packages.rb:53:in `main’
    /usr/share/YaST2/modules/Packages.rb:2850:in `’
    /usr/share/YaST2/modules/Packages.rb:10:in `’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import’
    /usr/share/YaST2/clients/sw_single.rb:515:in `StartSWSingle’
    /usr/share/YaST2/clients/sw_single.rb:72:in `main’
    /usr/share/YaST2/clients/sw_single.rb:801:in `’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:301:in `eval’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:301:in `run_client’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:206:in `call_builtin’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:206:in `call_builtin_wrapper’
    /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:195:in `CallFunction’
    /usr/lib/YaST2/bin/y2start:58:in `’
    2018-01-26 16:53:31 tuxeli.suse(9191) [Ruby] yast/wfm.rb:276 Internal error. Please report a bug report with logs.
    Run save_y2logs to get complete logs.
    Details: Failed to load Module ‘Packages’ due to: Failed to load Module ‘AddOnProduct’ due to: Failed to load Module ‘ProductLicense’ due to: undefined method `message’ for nil:NilClass
    Caller: /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:178:in `import_pure’