Hello community,

here is the log from the commit of package yast2 for openSUSE:Factory checked 
in at 2016-05-19 12:04:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-04-28 
20:30:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2.new/yast2.changes 2016-05-19 
12:04:38.000000000 +0200
@@ -1,0 +2,27 @@
+Wed May 18 09:15:04 UTC 2016 - [email protected]
+
+- bnc#972575
+  - filter out INTERFACETYPE option from ifcfg files. This option
+    used to be written with incorrect value by older versions of
+    yast.
+- 3.1.189
+
+-------------------------------------------------------------------
+Tue May 17 14:50:44 CEST 2016 - [email protected]
+
+- remove invalid_hostname check (fate#319639)
+- 3.1.188
+
+-------------------------------------------------------------------
+Mon May  9 14:55:10 UTC 2016 - [email protected]
+
+- Add Repository and Repository products classes to the packages
+  library API (part of FATE#320494)
+- 3.1.187
+
+-------------------------------------------------------------------
+Mon May  9 10:24:27 UTC 2016 - [email protected]
+
+- Fix "when" key in FinishClient#info
+
+-------------------------------------------------------------------

Old:
----
  yast2-3.1.186.tar.bz2

New:
----
  yast2-3.1.189.tar.bz2

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

Other differences:
------------------
++++++ yast2.spec ++++++
--- /var/tmp/diff_new_pack.XYyq9t/_old  2016-05-19 12:04:39.000000000 +0200
+++ /var/tmp/diff_new_pack.XYyq9t/_new  2016-05-19 12:04:39.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2
-Version:        3.1.186
+Version:        3.1.189
 Release:        0
 Summary:        YaST2 - Main Package
 License:        GPL-2.0

++++++ yast2-3.1.186.tar.bz2 -> yast2-3.1.189.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.186/library/general/src/lib/installation/finish_client.rb 
new/yast2-3.1.189/library/general/src/lib/installation/finish_client.rb
--- old/yast2-3.1.186/library/general/src/lib/installation/finish_client.rb     
2016-04-25 08:53:55.000000000 +0200
+++ new/yast2-3.1.189/library/general/src/lib/installation/finish_client.rb     
2016-05-18 13:41:52.000000000 +0200
@@ -90,7 +90,7 @@
     # Adapt the metadata for inst_finish API
     def info
       {
-        "when " => modes,
+        "when"  => modes,
         "steps" => steps,
         "title" => title
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.186/library/network/src/modules/NetworkInterfaces.rb 
new/yast2-3.1.189/library/network/src/modules/NetworkInterfaces.rb
--- old/yast2-3.1.186/library/network/src/modules/NetworkInterfaces.rb  
2016-04-25 08:53:55.000000000 +0200
+++ new/yast2-3.1.189/library/network/src/modules/NetworkInterfaces.rb  
2016-05-18 13:41:52.000000000 +0200
@@ -627,6 +627,24 @@
       ifcfg
     end
 
+    # Filters out INTERFACETYPE option from ifcfg config when it is not needed.
+    #
+    # INTERFACETYPE has big impact on wicked even yast behavior. It was 
overused
+    # by yast in the past. According wicked team it makes sense to use it only
+    # in two cases 1) lo device (when it's name is changed - very strongly 
discouraged)
+    # 2) dummy device
+    #
+    # This function silently modifies user's config files. However, it should 
make sense
+    # because:
+    # - INTERFACETYPE is usually not needed
+    # - other functions in this module modifies the config as well (see 
Canonicalize* functions)
+    # - using INTERFACETYPE is reported as a warning by wicked (it asks for 
reporting a bug)
+    # - it is often ignored by wicked
+    def filter_interfacetype(devmap)
+      ret = deep_copy(devmap)
+      ret.delete_if { |k, v| k == "INTERFACETYPE" && !["lo", 
"dummy"].include?(v) }
+    end
+
     # Conceal secret information, such as WEP keys, so that the output
     # can be passed to y2log and bugzilla.
     # @param [Hash{String => Object}] ifcfg one ifcfg
@@ -731,14 +749,17 @@
         caliases = Builtins.mapmap(Ops.get_map(config, "_aliases", {})) do |a, 
c|
           { a => CanonicalizeIP(c) }
         end
-        Ops.set(config, "_aliases", caliases) if caliases != {} # 
unconditionally?
+        config["_aliases"] = caliases if caliases != {}
         config = CanonicalizeIP(config)
         config = CanonicalizeStartmode(config)
+        config = filter_interfacetype(config)
+
         devtype = GetTypeFromIfcfg(config)
         devtype = GetType(d) if devtype.nil?
-        dev = Ops.get(@Devices, devtype, {})
-        Ops.set(dev, d, config)
-        Ops.set(@Devices, devtype, dev)
+
+        dev = @Devices[devtype] || {}
+        dev[d] = config
+        @Devices[devtype] = dev
       end
       Builtins.y2debug("Devices=%1", @Devices)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.186/library/network/test/network_interfaces_helpers_test.rb 
new/yast2-3.1.189/library/network/test/network_interfaces_helpers_test.rb
--- old/yast2-3.1.186/library/network/test/network_interfaces_helpers_test.rb   
2016-04-25 08:53:55.000000000 +0200
+++ new/yast2-3.1.189/library/network/test/network_interfaces_helpers_test.rb   
2016-05-18 13:41:52.000000000 +0200
@@ -58,5 +58,18 @@
         end
       end
     end
+
+    describe "NetworkInterfaces#filter_interfacetype" do
+      it "drops interface type if present and not set to \"lo\" or \"dummy\"" 
do
+        devmap = { "INTERFACETYPE" => "eth" }
+
+        expect(NetworkInterfaces.filter_interfacetype(devmap)).not_to include 
"INTERFACETYPE"
+      end
+
+      it "keeps interface type if present and is set to \"lo\" or \"dummy\"" do
+        expect(NetworkInterfaces.filter_interfacetype("INTERFACETYPE" => 
"lo")).to include "INTERFACETYPE"
+        expect(NetworkInterfaces.filter_interfacetype("INTERFACETYPE" => 
"dummy")).to include "INTERFACETYPE"
+      end
+    end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.186/library/network/testsuite/tests/NetworkInterfaces2.out 
new/yast2-3.1.189/library/network/testsuite/tests/NetworkInterfaces2.out
--- old/yast2-3.1.186/library/network/testsuite/tests/NetworkInterfaces2.out    
2016-04-25 08:53:55.000000000 +0200
+++ new/yast2-3.1.189/library/network/testsuite/tests/NetworkInterfaces2.out    
2016-05-18 13:41:52.000000000 +0200
@@ -100,6 +100,8 @@
 Read   .network.value."mynet0".BOOTPROTO "dhcp"
 Read   .network.value."mynet0".INTERFACETYPE "eth"
 Read   .network.value."mynet0".STARTMODE "auto"
+Read   .target.stat "/sys/class/net/mynet0/type" nil
+Read   .target.string "/sys/class/net/mynet0/type" nil
 Dir    .network.value."myri5": ["BOOTPROTO", "STARTMODE"]
 Read   .network.value."myri5".BOOTPROTO "dhcp"
 Read   .network.value."myri5".STARTMODE "manual"
@@ -129,7 +131,7 @@
 Read   .network.value."vlan3".ETHERDEVICE "eth0"
 Read   .network.value."vlan3".STARTMODE "manual"
 Return true
-Dump   all=$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", 
"NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], 
"escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], 
"eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.255.255.255", 
"PREFIXLEN":"32", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], 
"eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", 
"INTERFACETYPE":"eth", "STARTMODE":"auto"]], 
"fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", 
"NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], 
"virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], 
"vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]]
+Dump   all=$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", 
"NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], 
"escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], 
"eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.255.255.255", 
"PREFIXLEN":"32", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], 
"eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"manual"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", 
"IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"auto"]], "mynet":$["mynet0":$["BOOTPROTO":"dhcp", 
"STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], 
"virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], 
"vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]]
 Dump   NetworkInterfaces::Write
 Write  .network.value."eth5".BOOTPROTO "dhcp" true
 Write  .network.value."eth5".STARTMODE "manual" true
@@ -144,9 +146,6 @@
 Write  .network.value."eth9".IPADDR "1.2.3.4/8" true
 Write  .network.value."eth9".PREFIXLEN "8" true
 Write  .network.value."eth9".STARTMODE "manual" true
-Write  .network.value."mynet0".BOOTPROTO "dhcp" true
-Write  .network.value."mynet0".INTERFACETYPE "eth" true
-Write  .network.value."mynet0".STARTMODE "auto" true
 Write  .network nil true
 Return true
 Write  .network.value."ppp5".BOOTPROTO "dhcp" true
@@ -189,6 +188,8 @@
 Write  .network.value."lo".NETWORK "127.0.0.0" true
 Write  .network.value."lo".PREFIXLEN "8" true
 Write  .network.value."lo".STARTMODE "auto" true
+Write  .network.value."mynet0".BOOTPROTO "dhcp" true
+Write  .network.value."mynet0".STARTMODE "auto" true
 Write  .network.value."myri5".BOOTPROTO "dhcp" true
 Write  .network.value."myri5".STARTMODE "manual" true
 Write  .network.value."eth0.3".BOOTPROTO "dhcp" true
@@ -207,9 +208,9 @@
 Write  .network nil true
 Return true
 Dump   NetworkInterfaces::Export
-Dump   exported=$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", 
"NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], 
"escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], 
"eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.255.255.255", 
"PREFIXLEN":"32", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], 
"eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", 
"INTERFACETYPE":"eth", "STARTMODE":"auto"]], 
"fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", 
"NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], 
"virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], 
"vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]]
+Dump   exported=$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", 
"NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], 
"escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], 
"eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.255.255.255", 
"PREFIXLEN":"32", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], 
"eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"manual"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", 
"IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"auto"]], "mynet":$["mynet0":$["BOOTPROTO":"dhcp", 
"STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], 
"virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], 
"vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]]
 Dump   NetworkInterfaces::Import
-Dump   all     =$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", 
"NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], 
"escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], 
"eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], 
"eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"manual"], "mynet0":$["BOOTPROTO":"dhcp", 
"INTERFACETYPE":"eth", "STARTMODE":"auto"]], 
"fddi":$["fddi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"hippi":$["hippi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"hsi":$["hsi5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ippp":$["ippp5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"iucv":$["iucv5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"lo":$["lo":$["BROADCAST":"127.255.255.255", "IPADDR":"127.0.0.1", 
"NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], 
"virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], 
"vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]]
+Dump   all     =$["arc":$["arc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"atm":$["atm5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ci":$["ci5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"ctc":$["ctc5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"dummy":$["dummy5":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", 
"NETMASK":"255.0.0.0", "PREFIXLEN":"8", "STARTMODE":"manual"]], 
"escon":$["escon5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"]], 
"eth":$["eth5":$["BOOTPROTO":"dhcp", "STARTMODE":"manual"], 
"eth6":$["BOOTPROTO":"static", "IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"manual"], "eth7":$["STARTMODE":"manual"], 
"eth8":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", "PREFIXLEN":"8", 
"STARTMODE":"manual"], "eth9":$["IPADDR":"1.2.3.4", "NETMASK":"255.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"manual"]], "fddi":$["fddi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "hippi":$["hippi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "hsi":$["hsi5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ippp":$["ippp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "iucv":$["iucv5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "lo":$["lo":$["BROADCAST":"127.255.255.255", 
"IPADDR":"127.0.0.1", "NETMASK":"255.0.0.0", "NETWORK":"127.0.0.0", 
"PREFIXLEN":"8", "STARTMODE":"auto"]], "mynet":$["mynet0":$["BOOTPROTO":"dhcp", 
"STARTMODE":"auto"]], "myri":$["myri5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "ppp":$["ppp5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "tr":$["tr5":$["BOOTPROTO":"dhcp", 
"STARTMODE":"manual"]], "vlan":$["eth0.3":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual"], "myvlantoo":$["BOOTPROTO":"dhcp", 
"ETHERDEVICE":"eth0", "STARTMODE":"manual", "VLAN_ID":"2"], 
"virtlan4":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"], 
"vlan3":$["BOOTPROTO":"dhcp", "ETHERDEVICE":"eth0", "STARTMODE":"manual"]]]
 Dump   NetworkInterfaces::GetFreeDevices
 Return ["1", "2"]
 Return ["0", "2"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.186/library/packages/src/Makefile.am 
new/yast2-3.1.189/library/packages/src/Makefile.am
--- old/yast2-3.1.186/library/packages/src/Makefile.am  2016-04-25 
08:53:55.000000000 +0200
+++ new/yast2-3.1.189/library/packages/src/Makefile.am  2016-05-18 
13:41:52.000000000 +0200
@@ -24,6 +24,8 @@
   lib/packages/commit_result.rb \
   lib/packages/dummy_callbacks.rb \
   lib/packages/file_conflict_callbacks.rb \
+  lib/packages/repository.rb \
+  lib/packages/product.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.186/library/packages/src/lib/packages/product.rb 
new/yast2-3.1.189/library/packages/src/lib/packages/product.rb
--- old/yast2-3.1.186/library/packages/src/lib/packages/product.rb      
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.1.189/library/packages/src/lib/packages/product.rb      
2016-05-18 13:41:52.000000000 +0200
@@ -0,0 +1,54 @@
+module Packages
+  # Represent a product which is present in a repository. At this
+  # time this class is responsible for finding out whether two
+  # products instances are the same (for example, coming from different
+  # repositories).
+  class Product
+    include Yast::Logger
+
+    # @return [String] Name
+    attr_reader :name
+    # @return [String] Version
+    attr_reader :version
+    # @return [String] Architecture
+    attr_reader :arch
+    # @return [Symbol] Status
+    attr_reader :status
+    # @return [Symbol] Category
+    attr_reader :category
+    # @return [String] Vendor
+    attr_reader :vendor
+
+    # Constructor
+    #
+    # @param name     [String] Name
+    # @param version  [String] Version
+    # @param arch     [String] Architecture
+    # @param status   [Symbol] Status (:selected, :removed, :installed, 
:available)
+    # @param category [Symbol] Category (:base, :addon)
+    # @param vendor   [String] Vendor
+    def initialize(name:, version:, arch:, status:, category:, vendor:)
+      @name = name
+      @version = version
+      @arch = arch.to_sym
+      @status = status.to_sym
+      @category = category.to_sym
+      @vendor = vendor
+    end
+
+    # Compare two different products
+    #
+    # If arch, name, version and vendor match they are considered the
+    # same product.
+    #
+    # @return [Boolean] true if both products are the same; false otherwise
+    def ==(other)
+      result = arch == other.arch && name == other.name &&
+        version == other.version && vendor == other.vendor
+      log.info("Comparing products: '#{arch}' <=> '#{other.arch}', '#{name}' 
<=> '#{other.name}', "\
+        "'#{version}' <=> '#{other.version}', '#{vendor}' <=> 
'#{other.vendor}' => "\
+        "result: #{result}")
+      result
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.186/library/packages/src/lib/packages/repository.rb 
new/yast2-3.1.189/library/packages/src/lib/packages/repository.rb
--- old/yast2-3.1.186/library/packages/src/lib/packages/repository.rb   
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.1.189/library/packages/src/lib/packages/repository.rb   
2016-05-18 13:41:52.000000000 +0200
@@ -0,0 +1,186 @@
+require "uri"
+require "packages/product"
+
+module Packages
+  # This class represents a libzypp repository
+  #
+  # It offers a simple API to list them, query basic attributes,
+  # find out the products they offer and enabling/disabling them.
+  #
+  # @example Get all repositories
+  #   all_repos = Packages::Repository.all     #=> [#<Packages::Repository>, 
...]
+  #   enabled = Packages::Repository.enabled   #=> [#<Packages::Repository>]
+  #
+  # @example Get a repository using a repo ID
+  #   repo = Packages::Repository.find(1) #=> #<Packages::Repository>
+  #   repo.autorefresh?                   #=> true
+  #   repo.url                            #=> "http://download.opensuse.org...";
+  #
+  # @example Disabling a repository
+  #   repo = Packages::Repository.find(1) #=> #<Packages::Repository>
+  #   repo.enabled?                       #=> true
+  #   repo.disabled!
+  #   repo.enabled?                       #=> false
+  class Repository
+    Yast.import "Pkg"
+
+    # Repository schemes considered local (see #local?)
+    # 
https://github.com/openSUSE/libzypp/blob/a7a038aeda1ad6d9e441e7d3755612aa83320dce/zypp/Url.cc#L458
+    LOCAL_SCHEMES = [:cd, :dvd, :dir, :hd, :iso, :file]
+
+    # @return [Fixnum] Repository ID
+    attr_reader :repo_id
+    # @return [String] Repository name
+    attr_reader :name
+    # @return [URI::Generic] Repository URL
+    attr_reader :url
+
+    attr_writer :enabled
+    private :enabled=
+
+    # Repository was not found
+    class NotFound < StandardError; end
+
+    class << self
+      # Return all registered repositories
+      #
+      # @return [Array<Repository>] Array containing all repositories
+      #
+      # @see Yast::Pkg.SourceGetCurrent
+      # @see Packages::Repository.find
+      def all
+        Yast::Pkg.SourceGetCurrent(false).map do |repo_id|
+          find(repo_id)
+        end
+      end
+
+      # Return only enabled repositories
+      #
+      # @return [Array<Repository>] Array containing enabled repositories
+      def enabled
+        all.select(&:enabled?)
+      end
+
+      # Return only disabled repositories
+      #
+      # @return [Array<Repository>] Array containing disabled repositories
+      def disabled
+        all.reject(&:enabled?)
+      end
+
+      # Return a repository with the given repo_id
+      #
+      # @param repo_id [Fixnum] Repository ID
+      # @return [Packages::Repository] Repository instance
+      #
+      # @raise NotFound
+      def find(repo_id)
+        repo_data = Yast::Pkg.SourceGeneralData(repo_id)
+        raise NotFound if repo_data.nil?
+        new(repo_id: repo_id, enabled: repo_data["enabled"],
+          name: repo_data["name"], autorefresh: repo_data["autorefresh"],
+          url: URI(repo_data["url"]))
+      end
+    end
+
+    # Constructor
+    #
+    # @param repo_id     [Fixnum]       Repository ID
+    # @param name        [String]       Name
+    # @param enabled     [Boolean]      Is the repository enabled?
+    # @param autorefresh [Boolean]      Is auto-refresh enabled for this 
repository?
+    # @param url         [URI::Generic] Repository URL
+    def initialize(repo_id:, name:, enabled:, autorefresh:, url:)
+      @repo_id = repo_id
+      @name    = name
+      @enabled = enabled
+      @autorefresh = autorefresh
+      @url     = url
+    end
+
+    # Return repository scheme
+    #
+    # The scheme is determined using the URL
+    #
+    # @return [Symbol,nil] URL scheme
+    def scheme
+      url.scheme ? url.scheme.to_sym : nil
+    end
+
+    # Return products contained in the repository
+    #
+    # @return [Array<Packages::Product>] Products in the repository
+    #
+    # @see Yast::Pkg.ResolvableProperties
+    # @see Packages::Product
+    def products
+      return @products unless @products.nil?
+
+      # Filter products from this repository
+      candidates = Yast::Pkg.ResolvableProperties("", :product, "").select do 
|pro|
+        pro["source"] == repo_id
+      end
+
+      # Build an array of Packages::Product objects
+      @products = candidates.map do |data|
+        Packages::Product.new(name: data["name"], version: data["version"],
+          arch: data["arch"], category: data["category"], status: 
data["status"],
+          vendor: data["vendor"])
+      end
+    end
+
+    # Determine if the repository is local
+    #
+    # @return [Boolean] true if the repository is considered local; false 
otherwise
+    def local?
+      LOCAL_SCHEMES.include?(scheme)
+    end
+
+    # Determine if the repository is enabled
+    #
+    # @return [Boolean] true if repository is enabled; false otherwise
+    def enabled?
+      @enabled
+    end
+
+    # Determine if auto-refresh is enabled for the repository
+    #
+    # @return [Boolean] true if auto-refresh is enabled; false otherwise
+    def autorefresh?
+      @autorefresh
+    end
+
+    # Return addons in the repository
+    #
+    # @return [Array<Packages::Product>] Addons in the repository
+    #
+    # @see #products
+    def addons
+      products.select { |p| p.category == :addon }
+    end
+
+    # Enable the repository
+    #
+    # The repository status will be stored only in memory. Calling to
+    # Yast::Pkg.SourceSaveAll will make it persistent.
+    #
+    # @see Yast::Pkg.SourceSetEnabled
+    # @see Yast::Pkg.SourceSaveAll
+    def enable!
+      success = Yast::Pkg.SourceSetEnabled(repo_id, true)
+      success && self.enabled = true
+    end
+
+    # Disable the repository
+    #
+    # The repository status will be stored only in memory. Calling to
+    # Yast::Pkg.SourceSaveAll will make it persistent.
+    #
+    # @see Yast::Pkg.SourceSetEnabled
+    # @see Yast::Pkg.SourceSaveAll
+    def disable!
+      success = Yast::Pkg.SourceSetEnabled(repo_id, false)
+      success && self.enabled = false
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.186/library/packages/test/Makefile.am 
new/yast2-3.1.189/library/packages/test/Makefile.am
--- old/yast2-3.1.186/library/packages/test/Makefile.am 2016-04-25 
08:53:55.000000000 +0200
+++ new/yast2-3.1.189/library/packages/test/Makefile.am 2016-05-18 
13:41:52.000000000 +0200
@@ -7,7 +7,9 @@
   product_test.rb \
   signature_check_callbacks_test.rb \
   slide_show_test.rb \
-  update_messages_view_test.rb
+  update_messages_view_test.rb \
+  lib/repository_test.rb \
+  lib/product_test.rb
 
 TEST_EXTENSIONS = .rb
 RB_LOG_COMPILER = rspec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.186/library/packages/test/lib/product_test.rb 
new/yast2-3.1.189/library/packages/test/lib/product_test.rb
--- old/yast2-3.1.186/library/packages/test/lib/product_test.rb 1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-3.1.189/library/packages/test/lib/product_test.rb 2016-05-18 
13:41:52.000000000 +0200
@@ -0,0 +1,59 @@
+#!/usr/bin/env rspec
+
+require_relative "../test_helper"
+
+require "packages/product"
+
+describe Packages::Product do
+  BASE_ATTRS = {
+    name: "openSUSE", version: "20160405", arch: "x86_64",
+    category: "addon", status: :installed, vendor: "openSUSE"
+  }
+
+  subject(:product) do
+    Packages::Product.new(BASE_ATTRS)
+  end
+
+  describe "==" do
+
+    context "when name, arch, version and vendor match" do
+      let(:other) { Packages::Product.new(BASE_ATTRS) }
+
+      it "returns true" do
+        expect(subject == other).to eq(true)
+      end
+    end
+
+    context "when name does not match" do
+      let(:other) { Packages::Product.new(BASE_ATTRS.merge(name: "other")) }
+
+      it "returns false" do
+        expect(subject == other).to eq(false)
+      end
+    end
+
+    context "when version does not match" do
+      let(:other) { Packages::Product.new(BASE_ATTRS.merge(version: 
"20160409")) }
+
+      it "returns false" do
+        expect(subject == other).to eq(false)
+      end
+    end
+
+    context "when arch does not match" do
+      let(:other) { Packages::Product.new(BASE_ATTRS.merge(arch: "i586")) }
+
+      it "returns false" do
+        expect(subject == other).to eq(false)
+      end
+    end
+
+    context "when vendor does not match" do
+      let(:other) { Packages::Product.new(BASE_ATTRS.merge(vendor: "SUSE")) }
+
+      it "returns false" do
+        expect(subject == other).to eq(false)
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-3.1.186/library/packages/test/lib/repository_test.rb 
new/yast2-3.1.189/library/packages/test/lib/repository_test.rb
--- old/yast2-3.1.186/library/packages/test/lib/repository_test.rb      
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.1.189/library/packages/test/lib/repository_test.rb      
2016-05-18 13:41:52.000000000 +0200
@@ -0,0 +1,243 @@
+#!/usr/bin/env rspec
+
+require_relative "../test_helper"
+require "packages/repository"
+require "uri"
+
+describe Packages::Repository do
+  Yast.import "Pkg"
+
+  let(:repo_id) { 1 }
+  let(:enabled) { true }
+  let(:autorefresh) { true }
+  let(:repo_url) { URI("http://download.opensuse.org/update/leap/42.1/oss";) }
+
+  subject(:repo) do
+    Packages::Repository.new(repo_id: repo_id, name: "repo-oss", enabled: 
enabled,
+      autorefresh: autorefresh, url: repo_url)
+  end
+
+  let(:disabled) do
+    Packages::Repository.new(repo_id: repo_id + 1, name: "disabled-repo", 
enabled: false,
+      autorefresh: false, url: repo_url)
+  end
+
+  describe ".all" do
+    before do
+      expect(Yast::Pkg).to 
receive(:SourceGetCurrent).with(false).and_return(repo_ids)
+    end
+
+    context "when no repository exist" do
+      let(:repo_ids) { [] }
+
+      it "returns a empty array" do
+        expect(described_class.all).to eq([])
+      end
+    end
+
+    context "when a repository exist" do
+      let(:repo_ids) { [repo_id] }
+      let(:repo) { double("repo") }
+
+      it "returns an array containing existing repositories" do
+        expect(described_class).to 
receive(:find).with(repo_id).and_return(repo)
+        expect(described_class.all).to eq([repo])
+      end
+    end
+  end
+
+  describe ".enabled" do
+    before do
+      allow(Packages::Repository).to receive(:all).and_return([repo, disabled])
+    end
+
+    it "returns enabled repositories" do
+      expect(Packages::Repository.enabled).to eq([repo])
+    end
+  end
+
+  describe ".disabled" do
+    before do
+      allow(Packages::Repository).to receive(:all).and_return([repo, disabled])
+    end
+
+    it "returns disabled repositories" do
+      expect(Packages::Repository.disabled).to eq([disabled])
+    end
+  end
+
+  describe ".find" do
+    before do
+      allow(Yast::Pkg).to 
receive(:SourceGeneralData).with(repo_id).and_return(repo_data)
+    end
+
+    context "when a valid repo_id is given" do
+      let(:repo_data) do
+        { "enabled" => true, "autorefresh" => true, "url" => repo_url,
+          "name" => "Repo #1" }
+      end
+
+      it "returns a repository with the given repo_id" do
+        repo = described_class.find(repo_id)
+        expect(repo.repo_id).to eq(repo_id)
+        expect(repo.enabled?).to eq(repo_data["enabled"])
+        expect(repo.url).to eq(URI(repo_data["url"]))
+      end
+    end
+
+    context "when an invalid repo_id is given" do
+      let(:repo_data) { nil }
+
+      it "raises a RepositoryNotFound error" do
+        expect { described_class.find(repo_id) }.to 
raise_error(Packages::Repository::NotFound)
+      end
+    end
+  end
+
+  describe "#scheme" do
+    context "when URL contains a scheme" do
+      let(:repo_url) { URI("cd://dev/sr1") }
+
+      it "returns the repository scheme" do
+        expect(repo.scheme).to eq(:cd)
+      end
+    end
+
+    context "when URL does not contain a scheme" do
+      let(:repo_url) { URI("/home/user/myrepo") }
+
+      it "returns nil" do
+        expect(repo.scheme).to be_nil
+      end
+    end
+  end
+
+  describe "#local" do
+    before do
+      allow(repo).to receive(:scheme).and_return(scheme)
+    end
+
+    context "when scheme is :cd" do
+      let(:scheme) { :cd }
+
+      it "returns true" do
+        expect(repo).to be_local
+      end
+    end
+
+    context "when scheme is :dvd" do
+      let(:scheme) { :dvd }
+
+      it "returns true" do
+        expect(repo).to be_local
+      end
+    end
+
+    context "when scheme is :dir" do
+      let(:scheme) { :dir }
+
+      it "returns true" do
+        expect(repo).to be_local
+      end
+    end
+
+    context "when scheme is :hd" do
+      let(:scheme) { :hd }
+
+      it "returns true" do
+        expect(repo).to be_local
+      end
+    end
+
+    context "when scheme is :iso" do
+      let(:scheme) { :iso }
+
+      it "returns true" do
+        expect(repo).to be_local
+      end
+    end
+
+    context "when scheme is :file" do
+      let(:scheme) { :file }
+
+      it "returns true" do
+        expect(repo).to be_local
+      end
+    end
+
+    context "when scheme is other than local ones" do
+      let(:scheme) { :http }
+
+      it "returns false" do
+        expect(repo).to_not be_local
+      end
+    end
+  end
+
+  describe "#enabled?" do
+    context "when the repo is enabled" do
+      let(:enabled) { true }
+
+      it "returns true" do
+        expect(repo).to be_enabled
+      end
+    end
+
+    context "when the repo is not enabled" do
+      let(:enabled) { false }
+
+      it "returns false" do
+        expect(repo).to_not be_enabled
+      end
+    end
+  end
+
+  describe "#autorefresh?" do
+    context "when the repo is autorefresh" do
+      let(:autorefresh) { true }
+
+      it "returns true" do
+        expect(repo).to be_autorefresh
+      end
+    end
+
+    context "when the repo is not autorefresh" do
+      let(:autorefresh) { false }
+
+      it "returns false" do
+        expect(repo).to_not be_autorefresh
+      end
+    end
+  end
+
+  describe "#products" do
+    let(:products_data) { [product] }
+    let(:product) do
+      { "arch" => "x86_64", "name" => "openSUSE", "category" => "addon",
+        "status" => :available, "source" => repo_id, "vendor" => "openSUSE" }
+    end
+
+    it "returns products available in the repository" do
+      allow(Yast::Pkg).to receive(:ResolvableProperties).with("", :product, "")
+        .and_return(products_data)
+      product = repo.products.first
+      expect(product.name).to eq("openSUSE")
+    end
+  end
+
+  describe "#enable!" do
+    it "enables the repository" do
+      expect(Yast::Pkg).to receive(:SourceSetEnabled).with(disabled.repo_id, 
true)
+        .and_return(true)
+      expect { disabled.enable! }.to change { disabled.enabled? 
}.from(false).to(true)
+    end
+  end
+
+  describe "#disable!" do
+    it "disables the repository" do
+      expect(Yast::Pkg).to receive(:SourceSetEnabled).with(repo.repo_id, false)
+        .and_return(true)
+      expect { repo.disable! }.to change { repo.enabled? }.from(true).to(false)
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.186/library/types/src/modules/Hostname.rb 
new/yast2-3.1.189/library/types/src/modules/Hostname.rb
--- old/yast2-3.1.186/library/types/src/modules/Hostname.rb     2016-04-25 
08:53:55.000000000 +0200
+++ new/yast2-3.1.189/library/types/src/modules/Hostname.rb     2016-05-18 
13:41:52.000000000 +0200
@@ -157,7 +157,7 @@
     def CurrentFQ
       hostname_data = SCR.Execute(path(".target.bash_output"), "hostname 
--fqdn")
 
-      if hostname_data["exit"] != 0 || 
invalid_hostname?(hostname_data["stdout"].to_s.strip)
+      if hostname_data["exit"] != 0
         Builtins.y2warning("Using fallback hostname")
 
         fqhostname = SCR.Read(path(".target.string"), "/etc/hostname") || ""
@@ -227,18 +227,6 @@
     publish function: :CurrentFQ, type: "string ()"
     publish function: :CurrentHostname, type: "string ()"
     publish function: :CurrentDomain, type: "string ()"
-
-  private
-
-    # It checks if the hostname cannot be used for setting default fqdn
-    #
-    # FIXME: Hotfix for bnc#946047. This should be dropped as part of 
fate#319639
-    # implementation
-    #
-    # Basicaly, linuxrc sometimes resolves IP when querying "hostname --fqdn"
-    def invalid_hostname?(hostname)
-      Stage.initial && IP.Check(hostname)
-    end
   end
 
   Hostname = HostnameClass.new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.186/library/types/test/hostname_test.rb 
new/yast2-3.1.189/library/types/test/hostname_test.rb
--- old/yast2-3.1.186/library/types/test/hostname_test.rb       2016-04-25 
08:53:55.000000000 +0200
+++ new/yast2-3.1.189/library/types/test/hostname_test.rb       2016-05-18 
13:41:52.000000000 +0200
@@ -45,14 +45,4 @@
 
     expect(hostname.CurrentFQ).to eq etc_hostname
   end
-
-  it "returns default hostname proposal when generating AY profile at the end 
of installation" do
-    Yast.import "Stage"
-
-    allow_execute_hostname("1.1.1.1")                     # linuxrc sometimes 
provides IP as hostname
-    allow_read_hostname("")                                  # linuxrc do not 
provide /etc/hostname
-    allow(Yast::Stage).to receive(:initial).and_return(true) # and all this 
happens only in installer
-
-    expect(hostname.CurrentFQ).to eq "linux.#{hostname.DefaultDomain}"
-  end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.186/package/yast2.changes 
new/yast2-3.1.189/package/yast2.changes
--- old/yast2-3.1.186/package/yast2.changes     2016-04-25 08:53:55.000000000 
+0200
+++ new/yast2-3.1.189/package/yast2.changes     2016-05-18 13:41:52.000000000 
+0200
@@ -1,4 +1,31 @@
 -------------------------------------------------------------------
+Wed May 18 09:15:04 UTC 2016 - [email protected]
+
+- bnc#972575
+  - filter out INTERFACETYPE option from ifcfg files. This option
+    used to be written with incorrect value by older versions of
+    yast.
+- 3.1.189
+
+-------------------------------------------------------------------
+Tue May 17 14:50:44 CEST 2016 - [email protected]
+
+- remove invalid_hostname check (fate#319639)
+- 3.1.188
+
+-------------------------------------------------------------------
+Mon May  9 14:55:10 UTC 2016 - [email protected]
+
+- Add Repository and Repository products classes to the packages
+  library API (part of FATE#320494)
+- 3.1.187
+
+-------------------------------------------------------------------
+Mon May  9 10:24:27 UTC 2016 - [email protected]
+
+- Fix "when" key in FinishClient#info
+
+-------------------------------------------------------------------
 Fri Apr 22 14:37:28 UTC 2016 - [email protected]
 
 - Added restarting state to Installation to for example recover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-3.1.186/package/yast2.spec 
new/yast2-3.1.189/package/yast2.spec
--- old/yast2-3.1.186/package/yast2.spec        2016-04-25 08:53:55.000000000 
+0200
+++ new/yast2-3.1.189/package/yast2.spec        2016-05-18 13:41:52.000000000 
+0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2
-Version:        3.1.186
+Version:        3.1.189
 Release:        0
 Summary:        YaST2 - Main Package
 License:        GPL-2.0


Reply via email to