Hello community,

here is the log from the commit of package yast2 for openSUSE:Factory checked 
in at 2016-04-11 09:11:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2 (Old)
 and      /work/SRC/openSUSE:Factory/.yast2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2/yast2.changes      2016-03-26 
15:12:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2.new/yast2.changes 2016-04-11 
09:11:55.000000000 +0200
@@ -1,0 +2,21 @@
+Mon Apr  4 14:36:18 CEST 2016 - sch...@suse.de
+
+- Added system_time to ylib_DATA.
+  Cleanup for bnc#956730.
+- 3.1.183
+
+-------------------------------------------------------------------
+Fri Apr  1 14:35:38 CEST 2016 - sch...@suse.de
+
+- Moved "uptime" from package autoyast2 to yast2.
+  Cleanup for bnc#956730.
+- 3.1.182
+
+-------------------------------------------------------------------
+Tue Mar 29 13:37:40 UTC 2016 - lsle...@suse.cz
+
+- Display a confirmation dialog when a file conflict is detected
+  during package installation (bsc#923590)
+- 3.1.181
+
+-------------------------------------------------------------------

Old:
----
  yast2-3.1.180.tar.bz2

New:
----
  yast2-3.1.183.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2.spec ++++++
--- /var/tmp/diff_new_pack.tk13xv/_old  2016-04-11 09:11:56.000000000 +0200
+++ /var/tmp/diff_new_pack.tk13xv/_new  2016-04-11 09:11:56.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2
-Version:        3.1.180
+Version:        3.1.183
 Release:        0
 Url:            https://github.com/yast/yast-yast2
 

++++++ yast2-3.1.180.tar.bz2 -> yast2-3.1.183.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.180/library/packages/src/Makefile.am 
new/yast2-3.1.183/library/packages/src/Makefile.am
--- old/yast2-3.1.180/library/packages/src/Makefile.am  2016-03-23 
18:50:52.000000000 +0100
+++ new/yast2-3.1.183/library/packages/src/Makefile.am  2016-04-04 
14:45:03.000000000 +0200
@@ -23,6 +23,7 @@
 ylib_DATA = \
   lib/packages/commit_result.rb \
   lib/packages/dummy_callbacks.rb \
+  lib/packages/file_conflict_callbacks.rb \
   lib/packages/update_message.rb \
   lib/packages/update_messages_view.rb
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.180/library/packages/src/lib/packages/file_conflict_callbacks.rb 
new/yast2-3.1.183/library/packages/src/lib/packages/file_conflict_callbacks.rb
--- 
old/yast2-3.1.180/library/packages/src/lib/packages/file_conflict_callbacks.rb  
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/yast2-3.1.183/library/packages/src/lib/packages/file_conflict_callbacks.rb  
    2016-04-04 14:45:03.000000000 +0200
@@ -0,0 +1,186 @@
+
+# 
------------------------------------------------------------------------------
+# Copyright (c) 2016 SUSE LLC
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of version 2 of the GNU General Public License as published by the
+# Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more 
details.
+#
+# 
------------------------------------------------------------------------------
+#
+
+require "yast"
+
+module Packages
+  # Default file conflicts callbacks for package bindings. To register the
+  # callbacks in Yast::Pkg just call {Packages::FileConflictCallbacks.register}
+  class FileConflictCallbacks
+    # Widget ID (created by other code)
+    PKG_INSTALL_WIDGET = :progressCurrentPackage
+
+    class << self
+      include Yast::Logger
+      include Yast::I18n
+      include Yast::UIShortcuts
+
+      # register the file conflict callbacks
+      def register
+        Yast.import "Pkg"
+        Yast.import "UI"
+        Yast.import "Progress"
+        Yast.import "Mode"
+        Yast.import "CommandLine"
+        Yast.import "Report"
+        Yast.import "Label"
+        Yast.import "PackageCallbacks"
+
+        textdomain "base"
+
+        register_file_conflict_callbacks
+      end
+
+    private
+
+      # Helper function for creating an YaST function reference
+      def fun_ref(*args)
+        Yast::FunRef.new(*args)
+      end
+
+      # Register the default file conflicts callbacks
+      def register_file_conflict_callbacks
+        log.info "Registering file conflict callbacks"
+
+        Yast::Pkg.CallbackFileConflictStart(fun_ref(method(:start), "void ()"))
+        Yast::Pkg.CallbackFileConflictProgress(fun_ref(method(:progress),
+          "boolean (integer)"))
+        Yast::Pkg.CallbackFileConflictReport(fun_ref(method(:report),
+          "boolean (list<string>, list<string>)"))
+        Yast::Pkg.CallbackFileConflictFinish(fun_ref(method(:finish), "void 
()"))
+
+        nil
+      end
+
+      # Is the package installation progress displayed?
+      # @return [Boolean] true if package installation progress is displayed
+      def pkg_installation?
+        Yast::UI.WidgetExists(PKG_INSTALL_WIDGET)
+      end
+
+      # Handle the file conflict detection start callback.
+      def start
+        log.info "Starting the file conflict check..."
+        # TRANSLATORS: progress bar label
+        label = _("Checking file conflicts...")
+
+        if Yast::Mode.commandline
+          Yast::CommandLine.PrintVerbose(label)
+        elsif pkg_installation?
+          # package slideshow with progress already present
+          Yast::UI.ChangeWidget(Id(PKG_INSTALL_WIDGET), :Value, 0)
+          Yast::UI.ChangeWidget(Id(PKG_INSTALL_WIDGET), :Label, label)
+        else
+          # TRANSLATORS: help text for the file conflict detection progress
+          help = _("<p>Detecting the file conflicts is in progress.</p>")
+          # Use the same label for the window title and the progressbar label
+          Yast::Progress.Simple(label, label, 100, help)
+        end
+      end
+
+      # Handle the file conflict detection progress callback.
+      # @param [Fixnum] progress progress in percents
+      # @return [Boolean] true = continue, false = abort
+      def progress(progress)
+        log.debug "File conflict progress: #{progress}%"
+
+        if Yast::Mode.commandline
+          
Yast::CommandLine.PrintVerboseNoCR("#{Yast::PackageCallbacksClass::CLEAR_PROGRESS_TEXT}#{progress}%")
+        elsif pkg_installation?
+          Yast::UI.ChangeWidget(Id(PKG_INSTALL_WIDGET), :Value, progress)
+        else
+          Yast::Progress.Step(progress)
+        end
+
+        ui = Yast::UI.PollInput unless Yast::Mode.commandline
+        log.info "User input in file conflict progress (#{progress}%): #{ui}" 
if ui
+
+        ui != :abort && ui != :cancel
+      end
+
+      # Handle the file conflict detection result callback.
+      # Ask to user whether to continue. In the AutoYaST mode an error is 
reported
+      # but the installation will continue ignoring the confliucts.
+      # @param excluded_packages [Array<String>] packages ignored in the check
+      #   (e.g. not available for check in the download-as-needed mode)
+      # @param conflicts [Array<String>] list of translated descriptions of
+      #   the detected file conflicts
+      # @return [Boolean] true = continue, false = abort
+      def report(excluded_packages, conflicts)
+        log.info "Excluded #{excluded_packages.size} packages in file conflict 
check"
+        log.debug "Excluded packages: #{excluded_packages.inspect}"
+        log.info "Found #{conflicts.size} conflicts: #{conflicts.join("\n\n")}"
+
+        # just continue installing packages if there is no conflict
+        return true if conflicts.empty?
+
+        # don't ask in autoyast or command line mode, just report/log the 
issues and continue
+        if Yast::Mode.auto || Yast::Mode.commandline
+          # TRANSLATORS: An error message, %s is the actual list of detected 
conflicts
+          Yast::Report.Error(_("File conflicts detected, these conflicting 
files will " \
+            "be overwritten:\n\n%s") % conflicts.join("\n\n"))
+          return true
+        end
+
+        Yast::UI.OpenDialog(dialog(conflicts))
+
+        begin
+          Yast::UI.SetFocus(Id(:continue))
+          ret = Yast::UI.UserInput
+          log.info "User Input: #{ret}"
+          ret == :continue
+        ensure
+          Yast::UI.CloseDialog
+        end
+      end
+
+      # Handle the file conflict detection finish callback.
+      def finish
+        log.info "File conflict check finished"
+        return if Yast::Mode.commandline
+
+        # finish the opened progress dialog
+        Yast::Progress.Finish unless pkg_installation?
+      end
+
+      # Construct the file conflicts dialog.
+      # @param [Array<String>] conflicts file conflicts reported by libzypp
+      #   (in human readable form)
+      # @return [Term] UI term
+      def dialog(conflicts)
+        button_box = ButtonBox(
+          PushButton(Id(:continue), Opt(:default, :okButton), 
Yast::Label.ContinueButton),
+          PushButton(Id(:abort), Opt(:cancelButton), Yast::Label.AbortButton)
+        )
+
+        # TRANSLATORS: A popup label, use max. 70 chars per line, use more 
lines if needed
+        label = _("File conflicts happen when two packages attempt to 
install\n" \
+          "files with the same name but different contents. If you continue\n" 
\
+          "the conflicting files will be replaced, losing the previous 
content.")
+
+        # TRANSLATORS: Popup heading
+        heading = n_("A File Conflict Detected", "File Conflicts Detected", 
conflicts.size)
+
+        VBox(
+          Left(Heading(heading)),
+          VSpacing(0.2),
+          Left(Label(label)),
+          MinSize(65, 15, RichText(Opt(:plainText), conflicts.join("\n\n"))),
+          button_box
+        )
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.180/library/packages/src/modules/PackageCallbacks.rb 
new/yast2-3.1.183/library/packages/src/modules/PackageCallbacks.rb
--- old/yast2-3.1.180/library/packages/src/modules/PackageCallbacks.rb  
2016-03-23 18:50:52.000000000 +0100
+++ new/yast2-3.1.183/library/packages/src/modules/PackageCallbacks.rb  
2016-04-04 14:45:03.000000000 +0200
@@ -25,6 +25,7 @@
 require "yast"
 require "uri"
 require "packages/dummy_callbacks"
+require "packages/file_conflict_callbacks"
 
 module Yast
   # Provides the default Callbacks for Pkg::
@@ -2759,6 +2760,10 @@
       nil
     end
 
+    def SetFileConflictCallbacks
+      ::Packages::FileConflictCallbacks.register
+    end
+
     # Register package manager callbacks
     def InitPackageCallbacks
       SetProcessCallbacks()
@@ -2775,6 +2780,8 @@
 
       SetProgressReportCallbacks()
 
+      SetFileConflictCallbacks()
+
       # authentication callback
       Pkg.CallbackAuthentication(
         fun_ref(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.180/library/packages/src/modules/SlideShow.rb 
new/yast2-3.1.183/library/packages/src/modules/SlideShow.rb
--- old/yast2-3.1.180/library/packages/src/modules/SlideShow.rb 2016-03-23 
18:50:52.000000000 +0100
+++ new/yast2-3.1.183/library/packages/src/modules/SlideShow.rb 2016-04-04 
14:45:03.000000000 +0200
@@ -106,6 +106,7 @@
 # - optional package table
 # - release notes viewer
 require "yast"
+require "yast2/system_time"
 
 module Yast
   class SlideShowClass < Module
@@ -132,7 +133,7 @@
       @start_time = -1
       @initial_recalc_delay = 60 # const - seconds before initially 
calculating remaining times
       @recalc_interval = 30 # const - seconds between "remaining time" 
recalculations
-      @next_recalc_time = Builtins.time
+      @next_recalc_time = Yast2::SystemTime.uptime
 
       @current_slide_no = 0
       @slide_start_time = 0
@@ -187,7 +188,7 @@
     # Start the internal (global) timer.
     #
     def StartTimer
-      @start_time = Builtins.time
+      @start_time = Yast2::SystemTime.uptime
 
       nil
     end
@@ -195,7 +196,7 @@
     # Reset the internal (global) timer.
     #
     def ResetTimer
-      @start_time = Builtins.time
+      @start_time = Yast2::SystemTime.uptime
 
       nil
     end
@@ -208,7 +209,7 @@
         return
       end
 
-      elapsed = Ops.subtract(Builtins.time, @start_time)
+      elapsed = Ops.subtract(Yast2::SystemTime.uptime, @start_time)
       @start_time = -1
       @total_time_elapsed = Ops.add(@total_time_elapsed, elapsed)
       Builtins.y2debug(
@@ -458,7 +459,7 @@
       @current_slide_no = slide_no
 
       slide_name = Ops.get(Slides.slides, slide_no, "")
-      @slide_start_time = Builtins.time
+      @slide_start_time = Yast2::SystemTime.uptime
 
       SetSlideText(Slides.LoadSlideFile(slide_name))
 
@@ -469,7 +470,7 @@
     # necessary.
     #
     def ChangeSlideIfNecessary
-      if Builtins.time > (@slide_start_time + @slide_interval)
+      if Yast2::SystemTime.uptime > (@slide_start_time + @slide_interval)
         LoadSlide(@current_slide_no + 1)
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.180/library/packages/test/Makefile.am 
new/yast2-3.1.183/library/packages/test/Makefile.am
--- old/yast2-3.1.180/library/packages/test/Makefile.am 2016-03-23 
18:50:52.000000000 +0100
+++ new/yast2-3.1.183/library/packages/test/Makefile.am 2016-04-04 
14:45:03.000000000 +0200
@@ -1,6 +1,7 @@
 TESTS = \
   commit_result_test.rb \
   dummy_callbacks_test.rb \
+  file_conflict_callbacks_test.rb \
   package_callbacks_test.rb \
   packages_ui_test.rb \
   product_test.rb \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.180/library/packages/test/file_conflict_callbacks_test.rb 
new/yast2-3.1.183/library/packages/test/file_conflict_callbacks_test.rb
--- old/yast2-3.1.180/library/packages/test/file_conflict_callbacks_test.rb     
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.1.183/library/packages/test/file_conflict_callbacks_test.rb     
2016-04-04 14:45:03.000000000 +0200
@@ -0,0 +1,298 @@
+#! /usr/bin/env rspec
+
+require_relative "test_helper"
+
+require "packages/file_conflict_callbacks"
+
+# a helper class to replace Yast::Pkg
+class DummyPkg
+  # remember the registered file conflict callback handlers to test them later
+  attr_reader :fc_start, :fc_progress, :fc_report, :fc_finish
+
+  def CallbackFileConflictStart(func)
+    @fc_start = func
+  end
+
+  def CallbackFileConflictProgress(func)
+    @fc_progress = func
+  end
+
+  def CallbackFileConflictReport(func)
+    @fc_report = func
+  end
+
+  def CallbackFileConflictFinish(func)
+    @fc_finish = func
+  end
+end
+
+describe Packages::FileConflictCallbacks do
+  let(:dummy_pkg) { DummyPkg.new }
+
+  before do
+    # catch all callbacks registration calls via this Pkg replacement
+    stub_const("Yast::Pkg", dummy_pkg)
+
+    # stub console printing
+    Yast.import "CommandLine"
+    allow(Yast::CommandLine).to receive(:Print)
+    allow(Yast::CommandLine).to receive(:PrintVerbose)
+    allow(Yast::CommandLine).to receive(:PrintVerboseNoCR)
+  end
+
+  describe ".register" do
+    it "calls the Pkg methods for registering the file conflicts handlers" do
+      expect(dummy_pkg).to receive(:CallbackFileConflictStart)
+      expect(dummy_pkg).to receive(:CallbackFileConflictProgress)
+      expect(dummy_pkg).to receive(:CallbackFileConflictReport)
+      expect(dummy_pkg).to receive(:CallbackFileConflictFinish)
+
+      Packages::FileConflictCallbacks.register
+    end
+  end
+
+  describe "the registered start callback handler" do
+    let(:start_cb) do
+      Packages::FileConflictCallbacks.register
+      dummy_pkg.fc_start
+    end
+
+    context "in the command line mode" do
+      before do
+        allow(Yast::Mode).to receive(:commandline).and_return(true)
+      end
+
+      it "does not call any UI method" do
+        ui = double("no method call expected")
+        stub_const("Yast::UI", ui)
+
+        start_cb.call
+      end
+    end
+
+    context "in UI mode" do
+      it "reuses the package installation progress" do
+        expect(Yast::UI).to receive(:WidgetExists).and_return(true)
+        expect(Yast::UI).to receive(:ChangeWidget).twice
+
+        start_cb.call
+      end
+
+      it "opens a new progress if installation progress was not displayed" do
+        expect(Yast::UI).to receive(:WidgetExists).and_return(false)
+        expect(Yast::Progress).to receive(:Simple)
+
+        start_cb.call
+      end
+    end
+  end
+
+  describe "the registered progress callback handler" do
+    let(:progress_cb) do
+      Packages::FileConflictCallbacks.register
+      dummy_pkg.fc_progress
+    end
+
+    # fake progress value (percent)
+    let(:progress) { 42 }
+
+    context "in the command line mode" do
+      before do
+        allow(Yast::Mode).to receive(:commandline).and_return(true)
+      end
+
+      it "does not call any UI method" do
+        ui = double("no method call expected")
+        stub_const("Yast::UI", ui)
+
+        progress_cb.call(progress)
+      end
+
+      it "prints the current progress" do
+        expect(Yast::CommandLine).to receive(:PrintVerboseNoCR).with(/42%/)
+
+        progress_cb.call(progress)
+      end
+
+      it "returns true to continue" do
+        expect(progress_cb.call(progress)).to eq(true)
+      end
+    end
+
+    context "in UI mode" do
+      it "returns false to abort if user clicks Abort" do
+        expect(Yast::UI).to receive(:PollInput).and_return(:abort)
+
+        expect(progress_cb.call(progress)).to eq(false)
+      end
+
+      it "returns true to continue when no user input" do
+        expect(Yast::UI).to receive(:PollInput).and_return(nil)
+
+        expect(progress_cb.call(progress)).to eq(true)
+      end
+
+      it "returns true to continue on unknown user input" do
+        expect(Yast::UI).to receive(:PollInput).and_return(:next)
+
+        expect(progress_cb.call(progress)).to eq(true)
+      end
+
+      it "uses the existing widget if package installation progress was 
displayed" do
+        expect(Yast::UI).to receive(:WidgetExists).and_return(true)
+        expect(Yast::UI).to receive(:ChangeWidget)
+
+        progress_cb.call(progress)
+      end
+
+      it "sets the progress if package installation progress was not 
displayed" do
+        expect(Yast::UI).to receive(:WidgetExists).and_return(false)
+        expect(Yast::Progress).to receive(:Step).with(progress)
+
+        progress_cb.call(progress)
+      end
+    end
+  end
+
+  describe "the registered report callback handler" do
+    let(:report_cb) do
+      Packages::FileConflictCallbacks.register
+      dummy_pkg.fc_report
+    end
+
+    context "no conflict found" do
+      let(:conflicts) { [] }
+      let(:excluded) { [] }
+
+      before do
+        allow(Yast::Mode).to receive(:commandline).and_return(true)
+      end
+
+      it "does not check the command line mode, it behaves same as in the UI 
mode" do
+        expect(Yast::Mode).to_not receive(:commandline)
+        report_cb.call(excluded, conflicts)
+      end
+
+      it "does not call any UI method" do
+        ui = double("no method call expected")
+        stub_const("Yast::UI", ui)
+
+        report_cb.call(excluded, conflicts)
+      end
+
+      it "returns true to continue" do
+        expect(report_cb.call(excluded, conflicts)).to eq(true)
+      end
+    end
+
+    context "conflicts found" do
+      let(:conflicts) { ["conflict1!", "conflict2!"] }
+      let(:excluded) { [] }
+
+      context "in the command line mode" do
+        before do
+          allow(Yast::Mode).to receive(:commandline).and_return(true)
+        end
+
+        it "does not call any UI method" do
+          ui = double("no method call expected")
+          stub_const("Yast::UI", ui)
+
+          report_cb.call(excluded, conflicts)
+        end
+
+        it "prints the found conflicts" do
+          expect(Yast::Report).to receive(:Error)
+
+          report_cb.call(excluded, conflicts)
+        end
+
+        it "returns true to continue" do
+          expect(report_cb.call(excluded, conflicts)).to eq(true)
+        end
+      end
+
+      context "in AutoYaST mode" do
+        before do
+          expect(Yast::Mode).to receive(:auto).and_return(true)
+          allow(Yast::Report).to receive(:Error)
+        end
+
+        it "reporrts the found conflicts" do
+          expect(Yast::Report).to receive(:Error)
+
+          report_cb.call(excluded, conflicts)
+        end
+
+        it "returns true to continue" do
+          expect(report_cb.call(excluded, conflicts)).to eq(true)
+        end
+      end
+
+      context "in UI mode" do
+        before do
+          allow(Yast::UI).to receive(:OpenDialog)
+          allow(Yast::UI).to receive(:CloseDialog)
+          allow(Yast::UI).to receive(:SetFocus)
+        end
+
+        it "opens a Popup dialog, waits for user input and closes the dialog" 
do
+          expect(Yast::UI).to receive(:OpenDialog).ordered
+          expect(Yast::UI).to receive(:UserInput).ordered
+          expect(Yast::UI).to receive(:CloseDialog).ordered
+
+          report_cb.call(excluded, conflicts)
+        end
+
+        it "returns false to abort if user clicks Abort" do
+          expect(Yast::UI).to receive(:UserInput).and_return(:abort)
+
+          expect(report_cb.call(excluded, conflicts)).to eq(false)
+        end
+
+        it "returns true to continue if user clicks Continue" do
+          expect(Yast::UI).to receive(:UserInput).and_return(:continue)
+
+          expect(report_cb.call(excluded, conflicts)).to eq(true)
+        end
+      end
+    end
+  end
+
+  describe "the registered finish callback handler" do
+    let(:finish_cb) do
+      Packages::FileConflictCallbacks.register
+      dummy_pkg.fc_finish
+    end
+
+    context "in the command line mode" do
+      before do
+        allow(Yast::Mode).to receive(:commandline).and_return(true)
+      end
+
+      it "does not call any UI method" do
+        ui = double("no method call expected")
+        stub_const("Yast::UI", ui)
+
+        finish_cb.call
+      end
+    end
+
+    context "in UI mode" do
+      it "no change if installation progress was already displayed" do
+        ui = double("no method call expected", WidgetExists: true)
+        stub_const("Yast::UI", ui)
+
+        finish_cb.call
+      end
+
+      it "closes progress if installation progress was not displayed" do
+        expect(Yast::UI).to receive(:WidgetExists).and_return(false)
+        expect(Yast::Progress).to receive(:Finish)
+
+        finish_cb.call
+      end
+
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.180/library/system/src/Makefile.am 
new/yast2-3.1.183/library/system/src/Makefile.am
--- old/yast2-3.1.180/library/system/src/Makefile.am    2016-03-23 
18:50:52.000000000 +0100
+++ new/yast2-3.1.183/library/system/src/Makefile.am    2016-04-04 
14:45:03.000000000 +0200
@@ -33,7 +33,8 @@
   lib/yast2/hw_detection.rb \
   lib/yast2/fs_snapshot.rb \
   lib/yast2/fs_snapshot_store.rb \
-  lib/yast2/target_file.rb
+  lib/yast2/target_file.rb \
+  lib/yast2/system_time.rb
 
 
 EXTRA_DIST = $(module_DATA) $(client_DATA) $(ynclude_DATA) $(scrconf_DATA) 
$(desktop_DATA) $(ylib_DATA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.180/library/system/src/lib/yast2/system_time.rb 
new/yast2-3.1.183/library/system/src/lib/yast2/system_time.rb
--- old/yast2-3.1.180/library/system/src/lib/yast2/system_time.rb       
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.1.183/library/system/src/lib/yast2/system_time.rb       
2016-04-04 14:45:03.000000000 +0200
@@ -0,0 +1,39 @@
+# encoding: utf-8
+
+# ***************************************************************************
+#
+# Copyright (c) 2016 SUSE LLC
+# All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.   See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, contact Novell, Inc.
+#
+# To contact Novell about this file by physical or electronic mail,
+# you may find current contact information at www.novell.com
+#
+# ***************************************************************************
+# File: system_time.rb
+#
+
+require "yast"
+
+module Yast2
+  # Module for handling system time
+  class SystemTime
+    # Determines the current uptime
+    #
+    # @return [Float] Current uptime in seconds
+    def self.uptime
+      Process.clock_gettime(Process::CLOCK_MONOTONIC)
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.180/library/system/test/system_time_test.rb 
new/yast2-3.1.183/library/system/test/system_time_test.rb
--- old/yast2-3.1.180/library/system/test/system_time_test.rb   1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-3.1.183/library/system/test/system_time_test.rb   2016-04-04 
14:45:03.000000000 +0200
@@ -0,0 +1,13 @@
+#!/usr/bin/env rspec
+
+require_relative "test_helper"
+require_relative "../src/lib/yast2/system_time"
+
+describe "SystemTime" do
+
+  describe "#uptime" do
+    it "returns a time stamp" do
+      expect(Yast2::SystemTime.uptime).to be_a_kind_of(Numeric)
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.180/package/yast2-rpmlintrc 
new/yast2-3.1.183/package/yast2-rpmlintrc
--- old/yast2-3.1.180/package/yast2-rpmlintrc   2016-03-23 18:50:52.000000000 
+0100
+++ new/yast2-3.1.183/package/yast2-rpmlintrc   2016-04-04 14:45:03.000000000 
+0200
@@ -1 +1 @@
-addFilter("invalid-desktopfile")
+addFilter("desktopfile-without-binary")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.180/package/yast2.changes 
new/yast2-3.1.183/package/yast2.changes
--- old/yast2-3.1.180/package/yast2.changes     2016-03-23 18:50:52.000000000 
+0100
+++ new/yast2-3.1.183/package/yast2.changes     2016-04-04 14:45:03.000000000 
+0200
@@ -1,4 +1,25 @@
 -------------------------------------------------------------------
+Mon Apr  4 14:36:18 CEST 2016 - sch...@suse.de
+
+- Added system_time to ylib_DATA.
+  Cleanup for bnc#956730.
+- 3.1.183
+
+-------------------------------------------------------------------
+Fri Apr  1 14:35:38 CEST 2016 - sch...@suse.de
+
+- Moved "uptime" from package autoyast2 to yast2.
+  Cleanup for bnc#956730.
+- 3.1.182
+
+-------------------------------------------------------------------
+Tue Mar 29 13:37:40 UTC 2016 - lsle...@suse.cz
+
+- Display a confirmation dialog when a file conflict is detected
+  during package installation (bsc#923590)
+- 3.1.181
+
+-------------------------------------------------------------------
 Wed Mar 23 16:26:26 UTC 2016 - c...@suse.com
 
 - Added proc_modules.scr from yast-installation to avoid that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.180/package/yast2.spec 
new/yast2-3.1.183/package/yast2.spec
--- old/yast2-3.1.180/package/yast2.spec        2016-03-23 18:50:52.000000000 
+0100
+++ new/yast2-3.1.183/package/yast2.spec        2016-04-04 14:45:03.000000000 
+0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2
-Version:        3.1.180
+Version:        3.1.183
 Release:        0
 Url:            https://github.com/yast/yast-yast2
 

++++++ yast2-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.tk13xv/_old  2016-04-11 09:11:56.000000000 +0200
+++ /var/tmp/diff_new_pack.tk13xv/_new  2016-04-11 09:11:56.000000000 +0200
@@ -1 +1 @@
-addFilter("invalid-desktopfile")
+addFilter("desktopfile-without-binary")


Reply via email to