Hello community,

here is the log from the commit of package yast2-instserver for 
openSUSE:Factory checked in at 2014-10-17 08:50:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-instserver (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-instserver.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-instserver"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-instserver/yast2-instserver.changes        
2013-11-15 14:24:25.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-instserver.new/yast2-instserver.changes   
2014-10-17 08:51:02.000000000 +0200
@@ -1,0 +2,12 @@
+Tue Oct 14 07:16:12 UTC 2014 - [email protected]
+
+- added support for SLE12 products (bnc#900660)
+- write "cpeid" attribute to SLP configuration (SLE12 products
+  only)
+- save FTP firewall port configuration option
+- install "nfs-kernel-server" package when NFS server is selected
+  (missing in minimal system)
+- fixed Apache configuration template to work with Apache 2.4.x
+- 3.1.2
+
+-------------------------------------------------------------------

Old:
----
  yast2-instserver-3.1.1.tar.bz2

New:
----
  inst_server.conf.in
  yast2-instserver-3.1.2.tar.bz2

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

Other differences:
------------------
++++++ yast2-instserver.spec ++++++
--- /var/tmp/diff_new_pack.NjBMQ3/_old  2014-10-17 08:51:03.000000000 +0200
+++ /var/tmp/diff_new_pack.NjBMQ3/_new  2014-10-17 08:51:03.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package yast2-instserver
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,17 +17,18 @@
 
 
 Name:           yast2-instserver
-Version:        3.1.1
+Version:        3.1.2
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Source0:        %{name}-%{version}.tar.bz2
+Source1:        inst_server.conf.in
 
-BuildRequires:  perl-XML-Writer
-BuildRequires:  update-desktop-files
+Url:            http://github.com/yast/yast-instserver
 BuildRequires:  yast2
-BuildRequires:  yast2-devtools >= 3.0.6
-BuildRequires:  yast2-testsuite
+BuildRequires:  yast2-devtools >= 3.1.10
+BuildRequires:  rubygem(rspec)
+BuildRequires:  rubygem(yast-rake)
 
 # ag_content agent
 # Wizard::SetDesktopTitleAndIcon
@@ -59,11 +60,16 @@
 %prep
 %setup -n %{name}-%{version}
 
+%check
+rake test:unit
+
 %build
-%yast_build
+yardoc
 
 %install
-%yast_install
+rake install DESTDIR="%{buildroot}"
+install -D %{SOURCE1} %{buildroot}/etc/apache2/conf.d/inst_server.conf.in
+mkdir -p %{buildroot}/etc/YaST2/instserver
 
 %files
 %defattr(-,root,root)
@@ -80,6 +86,8 @@
 %doc %{yast_docdir}/COPYING
 
 %files devel-doc
+%defattr(-,root,root)
 %doc %{yast_docdir}/autodocs
+%doc %{yast_docdir}/CONTRIBUTING.md
 
 %changelog

++++++ inst_server.conf.in ++++++
# httpd configuration for Installation Server included by httpd.conf
<IfDefine inst_server>
    Alias @ALIAS@ @SERVERDIR@
    <Directory @SERVERDIR@>

        Options +Indexes +FollowSymLinks
        IndexOptions +NameWidth=*

        Require all granted
    </Directory>
</IfDefine>
++++++ yast2-instserver-3.1.1.tar.bz2 -> yast2-instserver-3.1.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/.yardopts 
new/yast2-instserver-3.1.2/.yardopts
--- old/yast2-instserver-3.1.1/.yardopts        1970-01-01 01:00:00.000000000 
+0100
+++ new/yast2-instserver-3.1.2/.yardopts        2014-10-15 15:56:13.000000000 
+0200
@@ -0,0 +1,6 @@
+--no-private
+--markup markdown
+--protected
+--output-dir ./doc/autodocs
+--files *.md
+src/**/*.rb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/MAINTAINER 
new/yast2-instserver-3.1.2/MAINTAINER
--- old/yast2-instserver-3.1.1/MAINTAINER       2013-11-04 16:37:02.000000000 
+0100
+++ new/yast2-instserver-3.1.2/MAINTAINER       2014-10-15 15:11:11.000000000 
+0200
@@ -1 +1 @@
-Ladislav Slezak <[email protected]>
+Deprecated file. Use `osc maintainer yast2-instserver` instead.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/Makefile.cvs 
new/yast2-instserver-3.1.2/Makefile.cvs
--- old/yast2-instserver-3.1.1/Makefile.cvs     2013-11-04 16:37:02.000000000 
+0100
+++ new/yast2-instserver-3.1.2/Makefile.cvs     1970-01-01 01:00:00.000000000 
+0100
@@ -1,22 +0,0 @@
-#
-# Makefile.cvs
-#
-PREFIX = /usr
-
-LIB = $(shell y2tool get-lib)
-
-configure: all
-       ./configure --prefix=$(PREFIX) --libdir=$(PREFIX)/$(LIB)
-
-all:
-       y2tool y2autoconf
-       y2tool y2automake
-       autoreconf --force --install
-
-install: configure
-       make
-       make install
-
-reconf: all
-       ./config.status --recheck
-       ./config.status
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/Rakefile 
new/yast2-instserver-3.1.2/Rakefile
--- old/yast2-instserver-3.1.1/Rakefile 2013-11-04 16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/Rakefile 2014-10-15 15:56:13.000000000 +0200
@@ -3,4 +3,5 @@
 Yast::Tasks.configuration do |conf|
   #lets ignore license check for now
   conf.skip_license_check << /.*/
+  conf.install_locations["doc/autodocs"] = conf.install_doc_dir
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/VERSION 
new/yast2-instserver-3.1.2/VERSION
--- old/yast2-instserver-3.1.1/VERSION  2013-11-15 12:57:11.000000000 +0100
+++ new/yast2-instserver-3.1.2/VERSION  1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-3.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/configure.in.in 
new/yast2-instserver-3.1.2/configure.in.in
--- old/yast2-instserver-3.1.1/configure.in.in  2013-11-04 16:37:02.000000000 
+0100
+++ new/yast2-instserver-3.1.2/configure.in.in  1970-01-01 01:00:00.000000000 
+0100
@@ -1,12 +0,0 @@
-## YCP module configure.in.in
-
-## Initialize
-@YAST2-INIT-COMMON@
-@YAST2-INIT-YCP@
-
-## some common checks
-@YAST2-CHECKS-COMMON@
-@YAST2-CHECKS-YCP@
-
-## and generate the output...
-@YAST2-OUTPUT@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/doc/Makefile.am 
new/yast2-instserver-3.1.2/doc/Makefile.am
--- old/yast2-instserver-3.1.1/doc/Makefile.am  2013-11-04 16:37:02.000000000 
+0100
+++ new/yast2-instserver-3.1.2/doc/Makefile.am  1970-01-01 01:00:00.000000000 
+0100
@@ -1,6 +0,0 @@
-#
-# Makefile.am for instserver/doc
-#
-
-SUBDIRS = autodocs
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/doc/autodocs/Makefile.am 
new/yast2-instserver-3.1.2/doc/autodocs/Makefile.am
--- old/yast2-instserver-3.1.1/doc/autodocs/Makefile.am 2013-11-04 
16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/doc/autodocs/Makefile.am 1970-01-01 
01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-# Makefile.am for YCP module .../doc/autodocs
-
-include $(top_srcdir)/autodocs-ycp.ami
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/httpd/Makefile.am 
new/yast2-instserver-3.1.2/httpd/Makefile.am
--- old/yast2-instserver-3.1.1/httpd/Makefile.am        2013-11-04 
16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/httpd/Makefile.am        1970-01-01 
01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-apacheconfdir = /etc/apache2/conf.d
-apacheconf_DATA = inst_server.conf.in
-
-install-data-local:
-       install -d -m 755 $(DESTDIR)/etc/YaST2/instserver
-
-EXTRA_DIST = $(apacheconf_DATA) 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/httpd/inst_server.conf.in 
new/yast2-instserver-3.1.2/httpd/inst_server.conf.in
--- old/yast2-instserver-3.1.1/httpd/inst_server.conf.in        2013-11-04 
16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/httpd/inst_server.conf.in        1970-01-01 
01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-# httpd configuration for Installation Server included by httpd.conf
-<IfDefine inst_server>
-    Alias @ALIAS@ @SERVERDIR@
-    <Directory @SERVERDIR@>
-
-        Options +Indexes +FollowSymLinks
-        IndexOptions +NameWidth=*
-
-        Order allow,deny
-        Allow from all
-
-    </Directory>
-</IfDefine>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/package/inst_server.conf.in 
new/yast2-instserver-3.1.2/package/inst_server.conf.in
--- old/yast2-instserver-3.1.1/package/inst_server.conf.in      1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-instserver-3.1.2/package/inst_server.conf.in      2014-10-15 
15:56:13.000000000 +0200
@@ -0,0 +1,11 @@
+# httpd configuration for Installation Server included by httpd.conf
+<IfDefine inst_server>
+    Alias @ALIAS@ @SERVERDIR@
+    <Directory @SERVERDIR@>
+
+        Options +Indexes +FollowSymLinks
+        IndexOptions +NameWidth=*
+
+        Require all granted
+    </Directory>
+</IfDefine>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-instserver-3.1.1/package/yast2-instserver.changes 
new/yast2-instserver-3.1.2/package/yast2-instserver.changes
--- old/yast2-instserver-3.1.1/package/yast2-instserver.changes 2013-11-15 
12:57:11.000000000 +0100
+++ new/yast2-instserver-3.1.2/package/yast2-instserver.changes 2014-10-15 
15:11:11.000000000 +0200
@@ -1,4 +1,16 @@
 -------------------------------------------------------------------
+Tue Oct 14 07:16:12 UTC 2014 - [email protected]
+
+- added support for SLE12 products (bnc#900660)
+- write "cpeid" attribute to SLP configuration (SLE12 products
+  only)
+- save FTP firewall port configuration option
+- install "nfs-kernel-server" package when NFS server is selected
+  (missing in minimal system)
+- fixed Apache configuration template to work with Apache 2.4.x
+- 3.1.2
+
+-------------------------------------------------------------------
 Wed Nov 13 15:56:18 UTC 2013 - [email protected]
 
 - Add explicit COPYING file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/package/yast2-instserver.spec 
new/yast2-instserver-3.1.2/package/yast2-instserver.spec
--- old/yast2-instserver-3.1.1/package/yast2-instserver.spec    2013-11-15 
12:57:11.000000000 +0100
+++ new/yast2-instserver-3.1.2/package/yast2-instserver.spec    2014-10-15 
15:56:13.000000000 +0200
@@ -17,22 +17,26 @@
 
 
 Name:           yast2-instserver
-Version:        3.1.1
+Version:        3.1.2
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Source0:        %{name}-%{version}.tar.bz2
+Source1:        inst_server.conf.in
 
+url:            http://github.com/yast/yast-instserver
 Group:         System/YaST
 License:        GPL-2.0+
-BuildRequires:  perl-XML-Writer update-desktop-files yast2 yast2-testsuite
-BuildRequires:  yast2-devtools >= 3.0.6
+BuildRequires:  yast2
+BuildRequires:  yast2-devtools >= 3.1.10
+BuildRequires:  rubygem(rspec)
+BuildRequires:  rubygem(yast-rake)
 
 # ag_content agent
 # Wizard::SetDesktopTitleAndIcon
 Requires:      yast2 >= 2.21.22
 
-BuildArchitectures:    noarch
+BuildArch:     noarch
 
 Requires:       yast2-ruby-bindings >= 1.0.0
 
@@ -56,11 +60,16 @@
 %prep
 %setup -n %{name}-%{version}
 
+%check
+rake test:unit
+
 %build
-%yast_build
+yardoc
 
 %install
-%yast_install
+rake install DESTDIR="%{buildroot}"
+install -D %{SOURCE1} %{buildroot}/etc/apache2/conf.d/inst_server.conf.in
+mkdir -p %{buildroot}/etc/YaST2/instserver
 
 
 %files
@@ -78,4 +87,6 @@
 %doc %{yast_docdir}/COPYING
 
 %files devel-doc
+%defattr(-,root,root)
 %doc %{yast_docdir}/autodocs
+%doc %{yast_docdir}/CONTRIBUTING.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/src/Makefile.am 
new/yast2-instserver-3.1.2/src/Makefile.am
--- old/yast2-instserver-3.1.1/src/Makefile.am  2013-11-04 16:37:02.000000000 
+0100
+++ new/yast2-instserver-3.1.2/src/Makefile.am  1970-01-01 01:00:00.000000000 
+0100
@@ -1,22 +0,0 @@
-# Sources for instserver
-
-module_DATA = \
-  modules/Instserver.rb
-
-client_DATA = \
-  clients/instserver.rb
-
-yncludedir = @yncludedir@/instserver
-ynclude_DATA = \
-  include/instserver/wizards.rb \
-  include/instserver/dialogs.rb \
-  include/instserver/complex.rb \
-  include/instserver/routines.rb \
-  include/instserver/helps.rb
-
-desktop_DATA = \
-  desktop/instserver.desktop
-
-EXTRA_DIST = $(module_DATA) $(client_DATA) $(ynclude_DATA) $(desktop_DATA)
-
-include $(top_srcdir)/Makefile.am.common
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-instserver-3.1.1/src/include/instserver/dialogs.rb 
new/yast2-instserver-3.1.2/src/include/instserver/dialogs.rb
--- old/yast2-instserver-3.1.1/src/include/instserver/dialogs.rb        
2013-11-04 16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/src/include/instserver/dialogs.rb        
2014-10-15 15:11:11.000000000 +0200
@@ -192,8 +192,7 @@
       SCR.Execute(path(".target.umount"), Installation.sourcedir)
 
       default_device = cddrive
-      mount_options = ""
-      result = nil
+      mount_options = iso ? "-oloop,ro " : ""
 
       # CD is mounted. Check contents.
       cdpath = Installation.sourcedir
@@ -206,10 +205,7 @@
       base = ""
       basever = ""
       prompt_string = ""
-      prompt_version = ""
       prompt_totalcds = 0
-      medianame = ""
-      doublesided = false
       medianames = []
       failed = false
       cds_copied = false
@@ -224,13 +220,6 @@
       # content file at first CD must be preserved (#171157)
       content_first_CD = ""
 
-      # Fix for mounting ISO images over NFS
-      if iso
-        mount_options = "-oloop,ro "
-      else
-        mount_options = ""
-      end
-
       # Loop for all CDs
       while true
         msg = ""
@@ -435,18 +424,7 @@
           end
 
           Builtins.foreach(media) do |m|
-            doublesided = true if m == "doublesided"
             if Builtins.substring(m, 0, 5) == "MEDIA"
-              if doublesided
-                medianame = Builtins.regexpsub(
-                  m,
-                  "(.*)SIDE A(.*)",
-                  "\\1SIDE %1\\2"
-                )
-              else
-                medianame = Builtins.regexpsub(m, "(.*)CD.", "\\1CD%1")
-              end
-
               m = Builtins.substring(m, 7)
 
               if !Builtins.contains(medianames, m)
@@ -615,9 +593,6 @@
           # No media names, so we have to create the string for media request
           if Builtins.size(medianames) == 0
             prompt_string = Ops.get_string(content, "LABEL", "")
-            prompt_version = Ops.get_string(content, "VERSION", "")
-          else
-            prompt_version = ""
           end
 
           prompt_totalcds = total_cds
@@ -674,9 +649,6 @@
           baseproduct = true
           if Builtins.size(medianames) == 0
             prompt_string = Ops.get_string(content, "LABEL", "")
-            prompt_version = Ops.get_string(content, "VERSION", "")
-          else
-            prompt_version = ""
           end
           # else, we create CD1, CD2, etc. (for code10 always)
           if stype == :onedir && !code10_source
@@ -876,7 +848,6 @@
           medianames = []
 
           prompt_string = base
-          prompt_version = basever
         elsif total_cds == current_cd && (standalone || baseproduct)
           break
         elsif total_cds == current_cd && promptmore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-instserver-3.1.1/src/include/instserver/routines.rb 
new/yast2-instserver-3.1.2/src/include/instserver/routines.rb
--- old/yast2-instserver-3.1.1/src/include/instserver/routines.rb       
2013-11-04 16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/src/include/instserver/routines.rb       
2014-10-15 15:11:11.000000000 +0200
@@ -1,18 +1,16 @@
 # encoding: utf-8
 
-# File:        include/instserver/complex.ycp
+# File:        include/instserver/routines.rb
 # Package:     Configuration of instserver
-# Summary:     Dialogs definitions
+# Summary:     Helper methods
 # Authors:     Anas Nashif <[email protected]>
 #
-# $Id$
 module Yast
   module InstserverRoutinesInclude
-    def initialize_instserver_routines(include_target)
+    include Yast::Logger
 
+    def initialize_instserver_routines(include_target)
       textdomain "instserver"
-
-      Yast.import "String"
     end
 
     def ReadMediaFile(media)
@@ -27,49 +25,55 @@
       end
     end
 
+    # Split CPE ID and distro label (separated by comma)
+    # @param [String] distro "DISTRO" value from content file
+    # @return [Hash<String,String>,nil] parsed value, map: { "name" => 
<string>, "cpeid" => <string> }
+    #    or nil if the input value is nil or does not contain a comma
+    def distro_map(distro)
+      if !distro
+        log.warn "Received nil distro value"
+        return nil
+      end
+
+      # split at the first comma, resulting in 2 parts at max.
+      cpeid, name = distro.split(",", 2)
+
+      if !name
+        log.warn "Cannot parse DISTRO value: #{distro}"
+        return nil
+      end
+
+      { "cpeid" => cpeid, "name" => name }
+    end
+
     def ReadContentFile(content)
       Builtins.y2debug("Reading content %1", content)
 
-      contentmap = Convert.convert(
-        SCR.Read(path(".content_file"), content),
-        :from => "any",
-        :to   => "map <string, string>"
-      )
+      contentmap = SCR.Read(path(".content_file"), content)
+      contentmap.values.each(&:strip!)
 
-      contentmap = Builtins.mapmap(contentmap) do |key, value|
-        { key => String.CutBlanks(value) }
+      # "DISTRO" flag is used in SLE12, "NAME" and "LABEL" are missing
+      # format: "<cpeid>,<product_name>", CPE ID is defined here:
+      # 
http://csrc.nist.gov/publications/nistir/ir7695/NISTIR-7695-CPE-Naming.pdf
+      distro = contentmap["DISTRO"]
+
+      if distro
+        distro_values = distro_map(distro)
+
+        if distro_values
+          # name is displayed in overview
+          contentmap["NAME"] = distro_values["name"]
+          # label is written to SLP config
+          contentmap["LABEL"] = distro_values["name"].dup
+
+          contentmap["CPEID"] = distro_values["cpeid"]
+        end
       end
-      Builtins.y2milestone("Read content file %1: %2", content, contentmap)
 
-      deep_copy(contentmap)
-    end
+      Builtins.y2milestone("Read content file %1: %2", content, contentmap)
 
-    def basename(file)
-      pathComponents = Builtins.splitstring(file, "/")
-      ret = Ops.get_string(
-        pathComponents,
-        Ops.subtract(Builtins.size(pathComponents), 1),
-        ""
-      )
-      ret
+      contentmap
     end
 
-    # Get directory name
-    # @param string path
-    # @return  [String] dirname
-    def dirname(file)
-      pathComponents = Builtins.splitstring(file, "/")
-      last = Ops.get_string(
-        pathComponents,
-        Ops.subtract(Builtins.size(pathComponents), 1),
-        ""
-      )
-      ret = Builtins.substring(
-        file,
-        0,
-        Ops.subtract(Ops.subtract(Builtins.size(file), Builtins.size(last)), 1)
-      )
-      ret
-    end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/src/modules/Instserver.rb 
new/yast2-instserver-3.1.2/src/modules/Instserver.rb
--- old/yast2-instserver-3.1.1/src/modules/Instserver.rb        2013-11-04 
16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/src/modules/Instserver.rb        2014-10-15 
15:11:11.000000000 +0200
@@ -1,12 +1,10 @@
 # encoding: utf-8
 
-# File:        modules/Instserver.ycp
+# File:        modules/Instserver.rb
 # Package:     Configuration of Installation Server
 # Summary:     Installation Server settings, input and output functions
 # Authors:     Anas Nashif <[email protected]>
 #
-# $Id$
-#
 # Representation of the configuration of Installation Server.
 # Input and output routines.
 require "yast"
@@ -392,7 +390,7 @@
           end
           # add the configuration to the list
           netdconf = Builtins.add(netdconf, conf)
-        end 
+        end
 
 
         if servicefound == false
@@ -424,6 +422,8 @@
         end
       end
 
+      SuSEFirewall.Write
+
       true
     end
 
@@ -533,8 +533,7 @@
       end
       RunSuseConfigApache(true)
 
-      # write firewall config if it has been modified
-      SuSEFirewall.Write if SuSEFirewall.GetModified
+      SuSEFirewall.Write
 
       Service.Enable("apache2")
       if Service.Status("apache2") == 0
@@ -602,8 +601,7 @@
         Service.Start("nfsserver")
       end
 
-      # write firewall config if it has been modified
-      SuSEFirewall.Write if SuSEFirewall.GetModified
+      SuSEFirewall.Write
 
       true
     end
@@ -623,6 +621,7 @@
         new_key = String.Replace(new_key, "=", "\\3d")
         new_key = String.Replace(new_key, "#", "\\23")
         new_key = String.Replace(new_key, ";", "\\3b")
+
         new_value = Builtins.mergestring(
           Builtins.splitstring(value, "\\"),
           "\\5c"
@@ -632,8 +631,13 @@
         new_value = String.Replace(new_value, ",", "\\2c")
         new_value = String.Replace(new_value, "#", "\\23")
         new_value = String.Replace(new_value, ";", "\\3b")
+        new_value = String.Replace(new_value, "!", "\\21")
+        new_value = String.Replace(new_value, "<", "\\3c")
+        new_value = String.Replace(new_value, "=", "\\3d")
+        new_value = String.Replace(new_value, ">", "\\3e")
+        new_value = String.Replace(new_value, "~", "\\7e")
         Ops.set(ret, new_key, new_value)
-      end 
+      end
 
 
       Builtins.y2milestone("Escaped SLP attributes: %1 -> %2", a, ret)
@@ -696,7 +700,7 @@
         new_value = subreplace(new_value, "3b", ";")
         new_value = subreplace(new_value, "5c", "\\")
         Ops.set(ret, new_key, new_value)
-      end 
+      end
 
 
       Builtins.y2milestone("Unescaped SLP attributes: %1 -> %2", a, ret)
@@ -773,7 +777,7 @@
           :from => "list",
           :to   => "list <string>"
         )
-      end 
+      end
 
 
       Builtins.y2milestone("Final BASEARCH mapping: %1", ret)
@@ -833,6 +837,7 @@
       attr = {}
       Builtins.foreach(
         [
+          "CPEID",
           "LABEL",
           "VERSION",
           "VENDOR",
@@ -878,10 +883,8 @@
             Builtins.sformat("YaST-%1.reg", orig)
           )
         end
-      end 
-
+      end
 
-      machine = ""
       machines = []
       Builtins.foreach(cm) do |k, v|
         Builtins.y2debug("Read Key: '%1'", k)
@@ -939,7 +942,7 @@
             )
             Ops.set(old_attr, parsed_name, parsed_value)
           end
-        end 
+        end
 
 
         # unescape the read value
@@ -956,7 +959,7 @@
           Builtins.union(attr, old_attr),
           :from => "map",
           :to   => "map <string, string>"
-        ) 
+        )
 
         # TODO: checking?
         #      // don't check the overwritten config file
@@ -975,7 +978,7 @@
 
       # replace the machine option after escaping,
       # it actually _is_ a list so "," is valid here
-      Ops.set(attr, "machine", machines_string)
+      attr["machine"] = machines_string unless machines_string.empty?
       Builtins.y2milestone("machine: %1", Ops.get(attr, "machine", ""))
 
       Builtins.y2milestone(
@@ -1003,7 +1006,7 @@
         found = Builtins.splitstring(Ops.get_string(ret, "stdout", ""), "\n")
         found = Builtins.filter(found) { |s| s != "" }
         found = Builtins.filter(found) do |file|
-          d = dirname(file)
+          d = File.dirname(file)
           media = Builtins.sformat("%1/media.1/media", d)
           SCR.Read(path(".target.size"), media) != -1
         end
@@ -1018,8 +1021,8 @@
       _Available = {}
       Builtins.foreach(@Detected) do |c|
         ret = ReadContentFile(c)
-        d = dirname(c)
-        config_name = basename(d)
+        d = File.dirname(c)
+        config_name = File.basename(d)
         if ret != {} && !Builtins.haskey(@Configs, config_name)
           Ops.set(_Available, d, ret)
         end
@@ -1035,7 +1038,7 @@
 
       Builtins.foreach(exports) do |e|
         ret = true if Ops.get_string(e, "mountpoint", "") == dir
-      end 
+      end
 
 
       Builtins.y2milestone("Directory %1 is exported: %2", dir, ret)
@@ -1087,7 +1090,7 @@
           # the default is true: missing tag means the service is enabled (!)
           ftpdenabled = Ops.get_boolean(conf, "enabled", true)
         end
-      end 
+      end
 
 
       Builtins.y2milestone(
@@ -1150,12 +1153,8 @@
     def Read
       # Instserver read dialog caption
       caption = _("Initializing Configuration")
-
       steps = 4
 
-      sl = 1
-      Builtins.sleep(sl)
-
       # We do not set help text here, because it was set outside
       Progress.New(
         caption,
@@ -1183,10 +1182,12 @@
       Progress.NextStage
       c = {}
 
-
       if SCR.Read(path(".target.size"), @ConfigFile) != -1
         c = XML.XMLToYCPFile(@ConfigFile)
+        # TRANSLATORS: Error message
+        Report.Error(_("Cannot read current settings.")) unless c
       end
+
       all = Ops.get_list(c, "configurations", [])
       @ServerSettings = Ops.get_map(c, "servers", {})
 
@@ -1200,7 +1201,7 @@
       Builtins.y2milestone("Server config: %1", @ServerSettings)
 
       # check the server status here
-      if @ServerSettings == {} || !ServiceValid(@ServerSettings)
+      if @ServerSettings.empty? || !ServiceValid(@ServerSettings)
         @FirstDialog = "settings"
       end
 
@@ -1210,33 +1211,19 @@
       SuSEFirewall.Read
       Progress.set(prg)
 
-      Builtins.sleep(sl)
-
-
       # read current settings
       return false if Abort()
       Progress.NextStage
 
-
       @Detected = DetectMedia()
 
-      # Error message
-      Report.Error(_("Cannot read current settings.")) if false
-      Builtins.sleep(sl)
-
-
-      return false if Abort()
       # Progress finished
       Progress.NextStage
-      Builtins.sleep(sl)
 
-      return false if Abort()
       @modified = false
       true
     end
 
-
-
     # Prepare map for writing  into XML
     # @return [Array]s of configurations
     def PrepareConfigs
@@ -1244,7 +1231,6 @@
       deep_copy(c)
     end
 
-
     # Write all instserver settings
     # @return true on success
     def Write
@@ -1252,12 +1238,8 @@
 
       # Instserver read dialog caption
       caption = _("Saving Installation Server Configuration")
-
       steps = 2
 
-      sl = 1
-      Builtins.sleep(sl)
-
       # We do not set help text here, because it was set outside
       Progress.New(
         caption,
@@ -1289,8 +1271,7 @@
       ret = XML.YCPToXMLFile(:instserver, xml, @ConfigFile)
 
       # Error message
-      Report.Error(_("Cannot write settings.")) if false
-      Builtins.sleep(sl)
+      Report.Error(_("Cannot write settings.")) unless ret
 
       # run SuSEconfig
       return false if Abort()
@@ -1319,8 +1300,7 @@
             Ops.get_string(conf, "name", "")
           )
         end
-      end 
-
+      end
 
       # Remove the SLP files of removed or SLP disabled repositories
       Builtins.foreach(regs_delete) do |c2|
@@ -1361,9 +1341,9 @@
           Popup.Error(_("Error while moving repository content."))
           next
         end
-      end 
-
+      end
 
+      return false if Abort()
 
       # slp service reload is required - the configuration has been changed
       if slpreload
@@ -1374,16 +1354,12 @@
         end
       end
 
-      return false if Abort()
       # Progress finished
       Progress.NextStage
-      Builtins.sleep(sl)
 
-      return false if Abort()
       true
     end
 
-
     def UpdateConfig
       Builtins.y2debug("current config: %1", @Configs)
 
@@ -1446,10 +1422,10 @@
       # Configuration summary text for autoyast
       sum = ""
       _Available = Builtins.filter(FindAvailable()) do |d, avail|
-        !Builtins.haskey(@Configs, basename(d))
+        !Builtins.haskey(@Configs, File.basename(d))
       end
       unconf = Builtins.maplist(_Available) do |d, avail|
-        dir = basename(d)
+        dir = File.basename(d)
         Item(
           Id(dir),
           Ops.add(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/test/Instserver_test.rb 
new/yast2-instserver-3.1.2/test/Instserver_test.rb
--- old/yast2-instserver-3.1.1/test/Instserver_test.rb  1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-instserver-3.1.2/test/Instserver_test.rb  2014-10-15 
15:11:11.000000000 +0200
@@ -0,0 +1,36 @@
+#!/usr/bin/env rspec
+
+ENV["Y2DIR"] = File.expand_path("../../src", __FILE__)
+
+require "yast"
+
+Yast.import "Instserver"
+
+describe "Yast::Instserver" do
+  subject { Yast::Instserver }
+  
+  describe "#Modified" do
+    it "returns false initially" do
+      expect(subject.Modified).to be_false
+    end
+  end
+
+  describe "#EscapeSLPData" do
+    it "does not escape normal characters" do
+      input = { "description" => "No need to escape anything." }
+      expect(subject.EscapeSLPData(input)).to eq(input)
+    end
+    
+    it "escapes SLP reserved characters (()<>=!#,;\\) in values" do
+      input = { "description" => "must be escaped: ()<>=!#,;\\" }
+      result = { "description" => "must be escaped: 
\\28\\29\\3c\\3e\\3d\\21\\23\\2c\\3b\\5c" }
+      expect(subject.EscapeSLPData(input)).to eq(result)
+    end
+    
+    it "escapes SLP reserved characters (.=%:\\) in keys" do
+      input = { "escaped.=name" => "value" }
+      result = { "escaped\\2e\\3dname" => "value" }
+      expect(subject.EscapeSLPData(input)).to eq(result)
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-instserver-3.1.1/test/fixtures/SLES11_SP3_content 
new/yast2-instserver-3.1.2/test/fixtures/SLES11_SP3_content
--- old/yast2-instserver-3.1.1/test/fixtures/SLES11_SP3_content 1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-instserver-3.1.2/test/fixtures/SLES11_SP3_content 2014-10-15 
15:11:11.000000000 +0200
@@ -0,0 +1,181 @@
+CONTENTSTYLE  11
+BASEARCHS     x86_64
+DATADIR       suse
+DESCRDIR      suse/setup/descr
+DISTRIBUTION  SUSE_SLE
+LABEL         SUSE Linux Enterprise Server 11 SP3
+LINGUAS       cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR ru 
sv zh zh_CN zh_TW
+NAME          SUSE_SLES
+RELNOTESURL   
https://www.suse.com/releasenotes/x86_64/SUSE-SLES/11-SP3/release-notes-sles.rpm
+SHORTLABEL    SLES11_SP3
+SP_VERSION    3
+VENDOR        SUSE LINUX Products GmbH, Nuernberg, Germany
+VERSION       11.3
+RELEASE       1.138
+META SHA1 01d7f6fdfeaf614b4079c88bf059ae7fc390a3f3  
32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 7a31cb2ee78bb84bc0e6bd076bb1135b8c341d90  
Basis-Devel-11-38.44.33.x86_64.pat.gz
+META SHA1 f4c1058e3aa394389471e4e58565313390e58957  
Basis-Devel-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 0e770a95a18799110ccf71c2d1bfee1bd665527c  
Dom0-11-38.44.33.x86_64.pat.gz
+META SHA1 82b0e3321a1b3d8d0a2b8344c1d10f83a09eeb73  
Dom0-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 7821ea51b3458a20022a2ec8ace67855999be334  
Dom0_KVM-11-38.44.33.x86_64.pat.gz
+META SHA1 d7908ed3ecc94605c52b5f8538df5078e25e4e03  
Dom0_KVM-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 6337c4a8610d8841931fc1a7763ead60f101e615  
Minimal-11-38.44.33.x86_64.pat.gz
+META SHA1 3df055395215b4b08894bba54c0192c10518a1b6  
Minimal-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 0781de3f51694af43459c6df6fda6996c8d919cc  
WBEM-11-38.44.33.x86_64.pat.gz
+META SHA1 fee5a855c145f1a74d255fe0c989e21040ed5e3c  
WBEM-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 fb34e4fd3dc885ed4804631ed34fa3e069d113b2  
apparmor-11-38.44.33.x86_64.pat.gz
+META SHA1 48ce739b92fca2863e3dc75bdb97be3525505a18  
apparmor-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 daeb08e2b8cad1fe0858da73ff4a821cb5d2486a  
base-11-38.44.33.x86_64.pat.gz
+META SHA1 23d8abe870ce89656e61e8c084f5aee6764ac1f5  
base-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 5b14c06a0da1d473a58aa7424eacd0f104b7bf31  
dhcp_dns_server-11-38.44.33.x86_64.pat.gz
+META SHA1 874987626295648317dd75be9f51c91d97770159  
dhcp_dns_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 f375cc33e3005531351b81927af2e37d983e6443  
directory_server-11-38.44.33.x86_64.pat.gz
+META SHA1 45722365a0637f048cfc9e1dda209a539ef49059  
directory_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 396b697b0f701244da919e63ba4ab075cb85412c  
documentation-11-38.44.33.x86_64.pat.gz
+META SHA1 0f49a3fbf1a51015d861556b26d519c3de41fc54  
documentation-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 ffa9a9cc1ce8cf7ffe5b400bf0dd51a84480fadc  
file_server-11-38.44.33.x86_64.pat.gz
+META SHA1 e6eb9c7890e2a3feb1312fa0030ace34f8b72288  
file_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 ca77c9209272240f658723573b690d42043a10bd  
gateway_server-11-38.44.33.x86_64.pat.gz
+META SHA1 24d596c9d84ccc9f0a13b5f42379e895735b8e8d  
gateway_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 3d80260c6cd3b4a2f0a821cc0eb0afec231864bc  
gnome-11-38.44.33.x86_64.pat.gz
+META SHA1 3a90059bea2df654c6169b961e65d37c93013edd  
gnome-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 cf26722ea5ad6f2bcbd5401fbf1676be70542c65  
jeos-11-38.44.33.x86_64.pat.gz
+META SHA1 ec9d1bf231d079ac1e6ae610b3433878b4c41842  
jeos-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 363413e53f5695cfba2634add22299e614184fe2  
kde-11-38.44.33.x86_64.pat.gz
+META SHA1 1b22ca51a83bbbbb86c7c42bccb6aee0d646c97b  
kde-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 fc60dfcb32e49f966d9c0d03bb5f45a74871fe6d  
kvm_server-11-38.44.33.x86_64.pat.gz
+META SHA1 8b632f4434b3cefc090c9704a960fd8c06528185  
kvm_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 587d9b85c9cef640ffce99d45d60a790ef202da7  
lamp_server-11-38.44.33.x86_64.pat.gz
+META SHA1 1a4f69e361df6722b6e3ef9df519cfed6642e708  
lamp_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 620b583d103f9f4582d083fa70df04467c0b6f10  
laptop-11-38.44.33.x86_64.pat.gz
+META SHA1 cdcc33a6b0aad74c88d7d3ec0be57c219174d60b  
laptop-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 926c2eb9837427745e314ee8a504d708644f06f6  
mail_server-11-38.44.33.x86_64.pat.gz
+META SHA1 1ed1a52c328e6c5e264261bfc0e21e1f357b76a1  
mail_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 98008fd918329db1cf4186d2fd99dfdfd5f537e9  
ofed-11-38.44.33.x86_64.pat.gz
+META SHA1 5b8f6ffc94385ee5450dec1c6fd1848c5b35a51c  
ofed-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 56ac96f4e7a59192f3b474d848d24b3a571dfab1  
oracle_server-11-38.44.33.x86_64.pat.gz
+META SHA1 e072f152f14bcf87f5a01acfde3733e3720bbc9e  
oracle_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 651ab49eba2e20dac438824b09685220d346ef62  packages.DU.gz
+META SHA1 be79c73f196a5b751845470506390c5b525ed44f  packages.FL.gz
+META SHA1 7213843ba98d57197e5a638a0d3e9823c3ba0943  packages.cs.gz
+META SHA1 f6d0d68f33d5ca24ce16ef421e1c96718504f2f4  packages.de.gz
+META SHA1 030a8b4e3467d153416afb421c67a6511c8fa898  packages.en.gz
+META SHA1 dcdc922fb8c278b7d3dee9377156665292f8b36f  packages.es.gz
+META SHA1 5ac8f031c2fb3b04b20cacc2bc556b7f98082cb8  packages.fr.gz
+META SHA1 c23a8fa14f0f437ac8be880e2fc955e4dde77fa9  packages.gz
+META SHA1 03627ffc644e5166f70e9babc5f3a0dcba4175ab  packages.hu.gz
+META SHA1 6597009822a1133a5e784d2610505f48038512cc  patterns
+META SHA1 1f4e68cd5552bc9e2421a6108e93aec71a79608f  
print_server-11-38.44.33.x86_64.pat.gz
+META SHA1 c56ff1347385b60cffccdfcf172b9d0b71f84db8  
print_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 5c8078da0a143e1ae42acbd8f8245361da5b224b  
sap_server-11-38.44.33.x86_64.pat.gz
+META SHA1 b5e485c85ddccc7d17196b4da9e578e134ec80ee  
sap_server-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 b81bf1814a74347eb26636a9bbf14ef8474dd178  
x11-11-38.44.33.x86_64.pat.gz
+META SHA1 cfe167373c905ebfb2e62218a009bb09b550cf37  
x11-32bit-11-38.44.33.x86_64.pat.gz
+META SHA1 0620397e0ef9e643a15c60b33b8f56193f94d40a  
xen_server-11-38.44.33.x86_64.pat.gz
+META SHA1 d14a47186d83b5a9ef21116b6d1074c38d2c21f8  
xen_server-32bit-11-38.44.33.x86_64.pat.gz
+HASH SHA1 9986989693adbcf7a49c49ba5d6f7ed4a2a3f20a  license.tar.gz
+HASH SHA1 33e37ad422f1d891b599a02b6435e18ff5bab71e  control.xml
+HASH SHA1 edf616287fa793d9a9fd20ca5ab5e420be9430bf  boot/x86_64/IPAGothic.rpm
+HASH SHA1 2fcd7cd58d3298fd57b9ebd0a49b57d997667a46  
boot/x86_64/KhmerOS-fonts.rpm
+HASH SHA1 e9c779539f1b3f56a96337f262b2bc548e6b223e  boot/x86_64/LIESMICH
+HASH SHA1 abdf17a0246be709efbcc7c0e0a68f8ad797a754  boot/x86_64/LIESMICH.DOS
+HASH SHA1 ae44557c57285f0866be41334fdaa20312ccdeab  boot/x86_64/README
+HASH SHA1 4a71ee6114eccfb88582dc5422020cbc5a2639dd  boot/x86_64/README.DOS
+HASH SHA1 7b1c7318d9019c4ead3c5ae609f7075d45184a39  boot/x86_64/SLES
+HASH SHA1 d8ef529583d2b4d25a4309fb0f402d5229bb6cc5  boot/x86_64/bind
+HASH SHA1 7b1c7318d9019c4ead3c5ae609f7075d45184a39  boot/x86_64/branding
+HASH SHA1 872257a8cdf088fd15175d6d360b909ddff2c6a9  boot/x86_64/common
+HASH SHA1 a189203da4a0f5a436ad49675286d111eb4904c0  boot/x86_64/config
+HASH SHA1 c95d94a0982a8b202cb99027057e824ace4c1315  
boot/x86_64/cracklib-dict-full.rpm
+HASH SHA1 e404cc8e4b19f1239c4382ca7a9e6274d6984ea3  boot/x86_64/efi
+HASH SHA1 8ad56ecb36d06ddc96436223a8f6838907b709b6  
boot/x86_64/fonts-arabic.rpm
+HASH SHA1 3389af135971e6e292ac85e3a20898b2a00ae451  boot/x86_64/fonts-thai.rpm
+HASH SHA1 6b7752410e0caa80a7dfa62a18844d8f09ad0146  boot/x86_64/gdb
+HASH SHA1 947189de3aff9226cc9f473d9af553acf6feddc2  boot/x86_64/indic-fonts.rpm
+HASH SHA1 6ba8654158cec2af55410e8aeb72044d5bb473bf  boot/x86_64/initrd-xen
+HASH SHA1 aedde5f1efbd5f30cdcad021de60ab9217c96eea  boot/x86_64/mkbootdisk
+HASH SHA1 45e131da56973a882bfe61f19fe9d75748839335  boot/x86_64/rescue
+HASH SHA1 fe516cc185564a69b771fc87d92392b185eab66c  boot/x86_64/root
+HASH SHA1 9b4cced8b700c6737ab02af8f1521945c925c8f9  boot/x86_64/rpmlist
+HASH SHA1 7f50346de293fde50f71e7a63f52abe58f3dd882  boot/x86_64/sax2
+HASH SHA1 bbe6e053c013efb0f4bc8a300db7bb97a3a12344  
boot/x86_64/ttf-arphic-uming.rpm
+HASH SHA1 07d87e2177d7f3657811ee591b1b9d8baa4e0a43  boot/x86_64/unfonts.rpm
+HASH SHA1 9cfc3a846955e0c147551fdd033d08daeb33e5d2  boot/x86_64/vmlinuz-xen
+HASH SHA1 583987eb8efe3b2e80f12b0e01c66b1bd13d0e7f  
boot/x86_64/yast2-trans-af.rpm
+HASH SHA1 5e4ff24bbafe7d071654b6f27287f9326f355455  
boot/x86_64/yast2-trans-ar.rpm
+HASH SHA1 3bae552fb02a70544b59dcc4047e1ba051809b21  
boot/x86_64/yast2-trans-bg.rpm
+HASH SHA1 d54e709401cb5d0bfe5ec234c2f648c50fc5135c  
boot/x86_64/yast2-trans-bn.rpm
+HASH SHA1 c6d34d9e6f7baa1298eb55d3bdaa01ca0c4fbbb5  
boot/x86_64/yast2-trans-bs.rpm
+HASH SHA1 f6b7ccb60dcb72fbae1cf3de13960ed5e0f78214  
boot/x86_64/yast2-trans-ca.rpm
+HASH SHA1 aa31376ed267abf48a9e21cba7e7e53abaffe954  
boot/x86_64/yast2-trans-cs.rpm
+HASH SHA1 09da013079a26b18ea5fcc5cd76199be5a555058  
boot/x86_64/yast2-trans-cy.rpm
+HASH SHA1 894ef203d2b527ba16e2777cfd1f720b5fce470b  
boot/x86_64/yast2-trans-da.rpm
+HASH SHA1 e77224e443d82c820b331ac064be38cb92842c3b  
boot/x86_64/yast2-trans-de.rpm
+HASH SHA1 fd420a80b4ba049cfc807ec71e997619fb0b9bbb  
boot/x86_64/yast2-trans-el.rpm
+HASH SHA1 a4a81760a471e267d9c67a8954e8c78862c0e69f  
boot/x86_64/yast2-trans-en_GB.rpm
+HASH SHA1 d5504eeecece888ea57014e92e00746fb70cf3ea  
boot/x86_64/yast2-trans-en_US.rpm
+HASH SHA1 53e0e9b49f5a61a3894301da597047f2562677d5  
boot/x86_64/yast2-trans-es.rpm
+HASH SHA1 c33950e08a23a569a7f82482d7a48d1a4a572d0b  
boot/x86_64/yast2-trans-et.rpm
+HASH SHA1 9c8ff03b1ee20ab401cb2a1c5bc8fd7b8d03eff2  
boot/x86_64/yast2-trans-fa.rpm
+HASH SHA1 8f252dda463e714455b5eeca207c5025ef79766a  
boot/x86_64/yast2-trans-fi.rpm
+HASH SHA1 d5627371dad379de1332835f85951cd1b4ad013c  
boot/x86_64/yast2-trans-fr.rpm
+HASH SHA1 e346239ae311bff8a763e793f1811826b702118f  
boot/x86_64/yast2-trans-gl.rpm
+HASH SHA1 2b5280a89db83f3ca3ebc72d63a37e99e3450022  
boot/x86_64/yast2-trans-gu.rpm
+HASH SHA1 3d722c6935e100e07b3181372c35f881c283a0a6  
boot/x86_64/yast2-trans-hi.rpm
+HASH SHA1 a2901f5cfe96b43c0a346e81fce19cf2754cce1d  
boot/x86_64/yast2-trans-hr.rpm
+HASH SHA1 72fbbf64a87ca835a0847f1716d6cb99483d7ef3  
boot/x86_64/yast2-trans-hu.rpm
+HASH SHA1 15eeed43cd1c2073059285d11ca07f3f1580a4cc  
boot/x86_64/yast2-trans-id.rpm
+HASH SHA1 8e2eab36a6555f4e2048e03bdb18100714dca33b  
boot/x86_64/yast2-trans-it.rpm
+HASH SHA1 cc8b5b80266d498e2e5b2c4f273be341aee03ca7  
boot/x86_64/yast2-trans-ja.rpm
+HASH SHA1 933c52615e81def3a52bd26244316cb9b52ad0ed  
boot/x86_64/yast2-trans-jv.rpm
+HASH SHA1 1d5f01c99266f8aa5a95b478fcce27393f805a0e  
boot/x86_64/yast2-trans-ka.rpm
+HASH SHA1 dab4984bc1f908ba39449ff719eef6ea5c7c617f  
boot/x86_64/yast2-trans-km.rpm
+HASH SHA1 e3807ab310abe288057969da24ae834decfa6218  
boot/x86_64/yast2-trans-ko.rpm
+HASH SHA1 a4e9b28ab5a6b1d793c452819a37eb340a7b12a9  
boot/x86_64/yast2-trans-lo.rpm
+HASH SHA1 63bedf608ed6e39df022d09bb40fc266bc1e4b9d  
boot/x86_64/yast2-trans-lt.rpm
+HASH SHA1 07a6a90a8dd9052552ffe0efcd27e041e30fabcf  
boot/x86_64/yast2-trans-mk.rpm
+HASH SHA1 ec1f5deef5b5176b18616485557cc47d9c43dddb  
boot/x86_64/yast2-trans-mr.rpm
+HASH SHA1 b6a2cdda8344fd554770ebaf50cf67f959b193e8  
boot/x86_64/yast2-trans-nb.rpm
+HASH SHA1 56a55fb39ddb355c9f661cea2db8507251fdeb98  
boot/x86_64/yast2-trans-nl.rpm
+HASH SHA1 a2ecdea13e5e20b0383f4027341ad8db4b93c49e  
boot/x86_64/yast2-trans-pa.rpm
+HASH SHA1 3e0cefd16525d2fc0826846a7e0ac5f473d70ef2  
boot/x86_64/yast2-trans-pl.rpm
+HASH SHA1 afa6342d11eb346d335b21a0243644eb9dded5ca  
boot/x86_64/yast2-trans-pt.rpm
+HASH SHA1 575e06432916384884e58e7f50deb7c62d037ce1  
boot/x86_64/yast2-trans-pt_BR.rpm
+HASH SHA1 52e212177d84a13be3ab60e09a4beabb479a86dc  
boot/x86_64/yast2-trans-ro.rpm
+HASH SHA1 6b6ced9dd0d6d64798421f1d65756ed669a432cb  
boot/x86_64/yast2-trans-ru.rpm
+HASH SHA1 e2cc8d57825a44f3a55fa339384137b9ca6d2f56  
boot/x86_64/yast2-trans-si.rpm
+HASH SHA1 d38b06abd5d2b5c293a5ff94e6984f9ec3e8ac0b  
boot/x86_64/yast2-trans-sk.rpm
+HASH SHA1 0c76ab1591afd4d12b3345157ccc822733de565d  
boot/x86_64/yast2-trans-sl.rpm
+HASH SHA1 a0ac9a6f2ad3311b860f8c13da9f5fd66608e211  
boot/x86_64/yast2-trans-sr.rpm
+HASH SHA1 6cfc470ce8f65641ae141045ddc97e969f5332c7  
boot/x86_64/yast2-trans-sv.rpm
+HASH SHA1 b825abd4db3ed0a8a236e005d67ca6dc5f290afb  
boot/x86_64/yast2-trans-ta.rpm
+HASH SHA1 500e02d0cb17d031dae1125b4c1a12f19529289c  
boot/x86_64/yast2-trans-th.rpm
+HASH SHA1 91c2966869ef11ef6d34920ad7edeb94a81b3333  
boot/x86_64/yast2-trans-tr.rpm
+HASH SHA1 4218aa88de80fa8149c1431915250c77b92e0ee1  
boot/x86_64/yast2-trans-uk.rpm
+HASH SHA1 f7e16dc9873c9b1a31f19ea279ee86514ac83a75  
boot/x86_64/yast2-trans-vi.rpm
+HASH SHA1 611317e53a1ecb4e858f4ec8d24dabefc609a027  
boot/x86_64/yast2-trans-wa.rpm
+HASH SHA1 a17c2288fd6492d0495eed565ffbbfff90e74624  
boot/x86_64/yast2-trans-xh.rpm
+HASH SHA1 e4d0a884fc9955a527cc579232b422dccd654dfc  
boot/x86_64/yast2-trans-zh_CN.rpm
+HASH SHA1 e0298b0b7e38a7e5909aa9e53b3075af73a60b1b  
boot/x86_64/yast2-trans-zh_TW.rpm
+HASH SHA1 413bfea27eb1ce21f0313a5adf0da7608f33350e  
boot/x86_64/yast2-trans-zu.rpm
+HASH SHA1 cfb182ba393f861447e2555b731e2faffdea929c  boot/x86_64/loader/linux
+HASH SHA1 59ef1b02bc3fbaa74ddf34981f506ff515dc7605  boot/x86_64/loader/initrd
+HASH SHA1 bc6d0c1bdebd43417a8995b2a664c742ec5b944b  
boot/x86_64/loader/08000600.spl
+HASH SHA1 6a28413d441b14b3156009bc99cf1f1aa221b0bf  
boot/x86_64/loader/10240600.spl
+HASH SHA1 2cc90a3c1578a5781b6bde7401eefadba2bd815c  
boot/x86_64/loader/10240768.spl
+HASH SHA1 a7052d9366934b374960ca91b3bf2175131fa054  
boot/x86_64/loader/12800800.spl
+HASH SHA1 9f3f51f968fc5c8e1b7380335475f2a4ba31b387  
boot/x86_64/loader/12801024.spl
+HASH SHA1 05046710c90ad6173f429aa3776e5521810a4a75  
boot/x86_64/loader/14001050.spl
+HASH SHA1 04952f76a1b60514d86ebe1b71dc4b6d58590e81  
boot/x86_64/loader/16001200.spl
+HASH SHA1 8d9ba8d870104fd9e532efa6c513faf429afc5a3  
boot/x86_64/loader/16801050.spl
+HASH SHA1 1caab3e48bc49146937d525c3a122b31f7b86a16  
boot/x86_64/loader/19201200.spl
+HASH SHA1 3dade0a4e122506dc773fa4da4d688eebfffa998  docu/RELEASE-NOTES.en.html
+HASH SHA1 ea0191d5f8e815933949a0276e96f7b4f2b17ca6  docu/RELEASE-NOTES.en.pdf
+HASH SHA1 3dade0a4e122506dc773fa4da4d688eebfffa998  docu/RELEASE-NOTES.en.rtf
+HASH SHA1 3e9e9099052cfa6c7a1662641b48b15c2df8aad2  docu/RELEASE-NOTES.en.txt
+KEY SHA1  66683d241b629f4eca5b724a2f167a68c3cfd005  
gpg-pubkey-307e3d54-4be01a65.asc
+KEY SHA1  0dc23ee9df30a4d01ec9eb2b791d45c3c6c182fa  
gpg-pubkey-39db7c82-510a966b.asc
+KEY SHA1  47f6492d127ae9f6aac353a2dd23752fc0ed4f8d  
gpg-pubkey-3d25d3d9-36e12d04.asc
+KEY SHA1  e55ee8ca5f3ca5b435fcd07c7c3d7f8dfabb4a29  
gpg-pubkey-50a3dd1c-50f35137.asc
+KEY SHA1  708e0cbe3f36b8e1053685b317ed77ef93603089  
gpg-pubkey-9c800aca-4be01999.asc
+KEY SHA1  9124408c24fae5e6183ba879069a4cf089f45cb0  
gpg-pubkey-b37b98a9-4be01a1a.asc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/test/fixtures/SLES12_content 
new/yast2-instserver-3.1.2/test/fixtures/SLES12_content
--- old/yast2-instserver-3.1.1/test/fixtures/SLES12_content     1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-instserver-3.1.2/test/fixtures/SLES12_content     2014-10-15 
15:11:11.000000000 +0200
@@ -0,0 +1,116 @@
+CONTENTSTYLE     11
+DATADIR          suse
+DESCRDIR         suse/setup/descr
+DISTRO           cpe:/o:suse:sles:12,SUSE Linux Enterprise Server 12
+LINGUAS          cs da de en en_GB en_US es fi fr hu it ja nb nl pl pt pt_BR 
ru sv zh zh_CN zh_TW
+REGISTERPRODUCT  true
+REPOID           obsproduct://build.suse.de/SUSE:SLE-12:GA/SLES/12/DVD/x86_64
+VENDOR           SUSE
+META SHA256 f2c4cd90e257783bf5693be8e9b41676b0a054b2ddf81c35423fc2b453b60d37  
app-icons.tar.gz
+META SHA256 d579f4a43e529026b8b6fdb184b18901d0f4aa5df0f0027f2300aab6848877c2  
appdata.xml.gz
+META SHA256 d98e3edd23ef1ba881cded67b5ce87b86294299f5516830383288295478a271f  
packages.DU.gz
+META SHA256 4228b845e415869083c0c7396569b531eb65804209fca612e2d83cc41b34b70c  
packages.FL.gz
+META SHA256 a627cc0825244f4ef24007266e6eb0c622e4aad022d4894b44c4171f26bc11c1  
packages.ar.gz
+META SHA256 330f3f7e0d394b7837d6c24d180368e3b54fefa199dca03b94c36a99a3ca5fd6  
packages.cs.gz
+META SHA256 dc287cc1464f394ca5359949557af92b5ffa61bc06f0389c86fe833f60699f5a  
packages.da.gz
+META SHA256 8bdd1c854b77470ab7cfc95400c70c3b14b2cec6aa5fd019f79df397b2860cea  
packages.de.gz
+META SHA256 aeb317895583721494e4ccabc6989cbec970bcc15ea168e73d7ee737451bb405  
packages.en.gz
+META SHA256 e34469058e58ea4984ac6823ab2272c1fbd539ea6337e7b8242b40ac0261c473  
packages.es.gz
+META SHA256 a11e7df4c9f2db9d5a2a9324c1836547609474f6f10ef84f08c0d57f01badd17  
packages.fi.gz
+META SHA256 94e57a6a7f3f28d18050dfe52f1ec26edfca77bc6b189e8560fba26b8f5e9a28  
packages.fr.gz
+META SHA256 f138e52a30e64d4603fd34602cdd3638437af9dfef3636bd1c6ec0378a06870a  
packages.gz
+META SHA256 71dddbe7f6c7cdade38fda2299384eaa3e10373c25bbf3f7ea34a6c1629e7b82  
packages.hu.gz
+META SHA256 27fc495257bd3118e45685a43461159f102e4388d3a2c9a06b1b6b1a049f2658  
packages.it.gz
+META SHA256 3ce687f3470ffb8cc64aa2e8a3917d35a5a93d0cc81916537cffd6be125b4f7c  
packages.ja.gz
+META SHA256 51324dd3ae0d97dc2531c2898c38dded27472e3c8a4966ffe1a7c95e6be7c904  
packages.ko.gz
+META SHA256 2a8540a363c53704020498dc92f88dc2c5c03f13d6c097cce169a36681bc899c  
packages.nb.gz
+META SHA256 c9c9471c6d36ec0ac50296fd32028e9f1d3af5ad703019cec2956404f75909c6  
packages.nl.gz
+META SHA256 b4c6e7aafc372da44e0790657a25447db9a40eaab752fda61e836c898696c8a8  
packages.pl.gz
+META SHA256 5c1181533a2f59967511d6c133bd871b87b681475fc715be93be4e34889b6045  
packages.pt.gz
+META SHA256 1ad0d19565f44046661dff407a2b21e6165c5d136b754d273fd3a6435737f3e5  
packages.pt_BR.gz
+META SHA256 c96628c1839b019bee7c58215cd0b70fbcc88090adb4c6f98cfacfc46f51a5b7  
packages.ru.gz
+META SHA256 15a79637d9e3f58fb37e43cc4f9149980f160382039808deaa9b6a1f94bcfbc6  
packages.sv.gz
+META SHA256 80a3fe61813131c320ce607da968521ca72126533b4ee63c25ed5b1f20c86c5a  
packages.zh_CN.gz
+META SHA256 5183f8c2d636d90e42da35953a3a22d3b10069adf033f056529d2da3e2d28588  
packages.zh_TW.gz
+HASH SHA256 ff9865bd7d26a70ac071f733b637e6bc2c5eea14f73fd2f8747846c86e5b8861  
license.tar.gz
+HASH SHA256 93ec36ae74cebc2852254a173ae2de46dffe9355a31f7d0767a32a6ad8041fa1  
control.xml
+HASH SHA256 943e64b18700cd5603a2fd33c000fd83d3c28d90037587f615eb41440d1a9ab5  
boot/x86_64/arphic-uming-fonts.rpm
+HASH SHA256 ebfa575b9b3f6571b29537a9f5f21d94c4b0064e8d1732252a999b14eb7e2575  
boot/x86_64/bind
+HASH SHA256 767a2dd6116a236d86f2e07831408a30fd30f94709d6f54a06373580bbbcf977  
boot/x86_64/common
+HASH SHA256 e8b836183a0f209083ad0a00c97bbd15c63b8828d0a436e0371c3c7e7feaf233  
boot/x86_64/config
+HASH SHA256 95822316b648ac2d97c29105f1b97e5b01b2e714d87dd4c8ecf8fe670a625068  
boot/x86_64/cracklib-dict-full.rpm
+HASH SHA256 4324141762b626eb47412b665e2daa5408e0ed8482c5eb0dcb126047c5ff49bf  
boot/x86_64/efi
+HASH SHA256 e48317c9956e642c1c1d09c20d57542c47d0d5543f0af3dec9f779471c421e3f  
boot/x86_64/gdb
+HASH SHA256 014e5095e2ea1718becdb1cff1d0e3d9214f0b5ca03a38e3cf5ce20d8f971d8c  
boot/x86_64/initrd-xen
+HASH SHA256 df7a6d126be26d84d7ecdbc40954bf8a5019eb0b8586aa6e4b8186f1f5d8c486  
boot/x86_64/ipa-gothic-fonts.rpm
+HASH SHA256 ae44173d8f1185a8ab7eed1166de1cf34f1df917beaee7d88d6557bba8b3fd0c  
boot/x86_64/mkbootdisk
+HASH SHA256 f024d0c8c071b09e992c19f6dbeed0e3d7f11cf3ea9fd230546470662b971d42  
boot/x86_64/rescue
+HASH SHA256 8069e29a3a7ab5908563b6ebc6ef87cb9a520bb1396278b366e1ece7cf101bfc  
boot/x86_64/root
+HASH SHA256 689d041711302de579e87ac82c6f1071d473b627cb5cf34466a166d062cdd4f0  
boot/x86_64/rpmlist
+HASH SHA256 c6964ff1ed809363fa336dd4ec940e849f6df92b2a02205f4d9985ac61b2b188  
boot/x86_64/un-fonts.rpm
+HASH SHA256 deefaf49ee1700a9413a0e86563525b434c118a55a5c6963d7bc7c4f36482714  
boot/x86_64/vmlinuz-xen
+HASH SHA256 1199f14481a12f7bdba599993cda5def104be6bc9f270e4146ab17da5657f10e  
boot/x86_64/yast2-trans-af.rpm
+HASH SHA256 b2e4776c8c23a267bf5a48edd404c20b908a19265f986b9bc34b690bc66830c4  
boot/x86_64/yast2-trans-ar.rpm
+HASH SHA256 6d9fae4abc7a47716839915cc53fce31a647be7d2b24c7332476841f49ec6c18  
boot/x86_64/yast2-trans-bg.rpm
+HASH SHA256 14d0666adbd468bae8387452c6ba89413a1aa940addfe571354e9181d3c7ecd9  
boot/x86_64/yast2-trans-bn.rpm
+HASH SHA256 a7c9c905e7fc2b4a2307c3bf218c13626ec207ec7d9785f1a89cd0cc8c2962fe  
boot/x86_64/yast2-trans-bs.rpm
+HASH SHA256 81694347c91478588888a26e944b9c5eaea1476fa0fe1fc239d994185b2fdff8  
boot/x86_64/yast2-trans-ca.rpm
+HASH SHA256 bb1889470a9b3f101105771cab66fbd300358e08e6d1f889ff2a8c4eb6e69f26  
boot/x86_64/yast2-trans-cs.rpm
+HASH SHA256 cecf733922156b8efa1f08d26b89d40acca2ecd378371d4957d2c407535d483b  
boot/x86_64/yast2-trans-cy.rpm
+HASH SHA256 35620d12483879f54a031c5e15fa9f4f51fbccb8a42c50158fe950b18e41ce81  
boot/x86_64/yast2-trans-da.rpm
+HASH SHA256 e09bd8b37cfaa37ab2ca61acedbd55c5d387964f333aeac95f33bd74543263bf  
boot/x86_64/yast2-trans-de.rpm
+HASH SHA256 0dcc86342efd3354636485d6c9cca5452c89a5cdf83346a268044124e5f5206f  
boot/x86_64/yast2-trans-el.rpm
+HASH SHA256 b47a03294b6be04cd42ce01fd0aae5b611698e74461515edc0e4a3767a6531be  
boot/x86_64/yast2-trans-en_GB.rpm
+HASH SHA256 4cb3e30ea65db26ef2da65f8d099410014cd34bce60881382b60757e0ecf9bdb  
boot/x86_64/yast2-trans-en_US.rpm
+HASH SHA256 1c3f20f2bf8a25e754bc63b17c333d29486ccac5752e8b355c7a7c7c030ac241  
boot/x86_64/yast2-trans-es.rpm
+HASH SHA256 1dcbc9bbb0d2a205408b192e9e24ffde12b52a328a65b1fb1912d0d352e933a2  
boot/x86_64/yast2-trans-et.rpm
+HASH SHA256 d296c121012fee31d066a9e30eeae44b8cac143c500f0e826c80587000043cdf  
boot/x86_64/yast2-trans-fa.rpm
+HASH SHA256 6a505de93e254255eb75fd057226408c1f0da044609e1a895b11b11a3d1a18f7  
boot/x86_64/yast2-trans-fi.rpm
+HASH SHA256 e0e25aa76168deb9d894216fae7e77eb37c84a13c66b20e405b1b10c38f2eee3  
boot/x86_64/yast2-trans-fr.rpm
+HASH SHA256 7c51224d3c7ee814e1559ed8daa90791c7b2768d05c21c55aa46bd76a39bd366  
boot/x86_64/yast2-trans-gl.rpm
+HASH SHA256 9c24fbfcd399aab0f867911f2af9fbbbabe8390c9a981e3c632b502c0501712e  
boot/x86_64/yast2-trans-gu.rpm
+HASH SHA256 55f92898d364acfa11ded6c75777f85573e817da8c34da329730f1908047ae35  
boot/x86_64/yast2-trans-hi.rpm
+HASH SHA256 17552083a054373ab6be473a4eaebe34c4e443a6aca1b6c26df3815ff4767922  
boot/x86_64/yast2-trans-hr.rpm
+HASH SHA256 1e8f4b6ecb8916e6d51d80ca66f5dc50190f9e5855b998c440ee8c03cb8ed018  
boot/x86_64/yast2-trans-hu.rpm
+HASH SHA256 49ed8538601cd047930c1507588d71086068881ed46ebed046680622d85b0a25  
boot/x86_64/yast2-trans-id.rpm
+HASH SHA256 8ad2364b1adfc26af8c08277f16626276cbde62d570496dafe73ca11df72c698  
boot/x86_64/yast2-trans-it.rpm
+HASH SHA256 eeada4f60b069dd8d67ae4955034156d04d7acd4f9b63a604cb5f05767860353  
boot/x86_64/yast2-trans-ja.rpm
+HASH SHA256 b85b11f514bd6db04e6efb0a24350dd483e9e9a0490779dba4fe1fd1e899be1b  
boot/x86_64/yast2-trans-jv.rpm
+HASH SHA256 242c589abea178c37289e7d7b6e72f42e95b2a3beded4eeb43d9a7e2ee1bc8ed  
boot/x86_64/yast2-trans-ka.rpm
+HASH SHA256 5123b3f39b87bae21965f861765d1e6018284bf205dd6c23c0096c95bd1cdf09  
boot/x86_64/yast2-trans-km.rpm
+HASH SHA256 6300cd843a972744514e0a699d59af7e0c6a4c07a18c7d1a01660de8d591836e  
boot/x86_64/yast2-trans-ko.rpm
+HASH SHA256 7737f25bac59f38d1a255d92f2fb258311d0af3cd7a2d88b59cdde9be0e30e56  
boot/x86_64/yast2-trans-lo.rpm
+HASH SHA256 5547a6ad357e5ffaa80eb23991bc379bcd9dc86be32830d2e24ee691bc82e71c  
boot/x86_64/yast2-trans-lt.rpm
+HASH SHA256 73062db51be9131f822823731bf7caf9ccb47c02c01b709fa53b87a2bc1da49e  
boot/x86_64/yast2-trans-mk.rpm
+HASH SHA256 d9cef5b46aded0dbe86172203d4b2d9ae1301afdef6e9ef18ab290a1c3684a11  
boot/x86_64/yast2-trans-mr.rpm
+HASH SHA256 df2542ba6273e469ef7407b1ba49982449305c6234fb2ca10e4a1b0213d4b1b2  
boot/x86_64/yast2-trans-nb.rpm
+HASH SHA256 ddd54df57459120464811fbc443ec9499223d75327af35dfee4719b05a28b916  
boot/x86_64/yast2-trans-nl.rpm
+HASH SHA256 4d6f4d9f01911c07263e880bbfe2b47a0fa5e253edb86eb41bdcb99cc210f3df  
boot/x86_64/yast2-trans-pa.rpm
+HASH SHA256 47324c824a132190b9248cdd36094b1110562f51be2cf2e3ba16936baf8ca5bf  
boot/x86_64/yast2-trans-pl.rpm
+HASH SHA256 9d0cb15acf4d978375a741b909fc6e3174bfd3a63ce38245f1dddd9970e3f15d  
boot/x86_64/yast2-trans-pt.rpm
+HASH SHA256 52421803c5f598665d8ff0547fff3a83eaa48fb7c397b5fcf3b2ee3ec7f7373e  
boot/x86_64/yast2-trans-pt_BR.rpm
+HASH SHA256 7d5212234e55e519190c4e3b3e76e69bfbd5ad291fb118b04259be5f25866f09  
boot/x86_64/yast2-trans-ro.rpm
+HASH SHA256 27addff268c9da437f32996291c272c22283de19cec5809b5c797b7a357ed419  
boot/x86_64/yast2-trans-ru.rpm
+HASH SHA256 15013cf6c11b50493516965a7c6e29027b96208560008c29b41d10d16ffe97aa  
boot/x86_64/yast2-trans-si.rpm
+HASH SHA256 a5653e653d3598057eafebf33758a08d0961ddac9ddd95df9884a85decc08fad  
boot/x86_64/yast2-trans-sk.rpm
+HASH SHA256 8dd0465a4470c277f67f2f97cb45e6e2ce514d4b000986ac956dc46fe257cc8e  
boot/x86_64/yast2-trans-sl.rpm
+HASH SHA256 209f6165f65229d6824ba8ad5e9b8fb57b69f2ee9fb7100de2139e48222137f2  
boot/x86_64/yast2-trans-sr.rpm
+HASH SHA256 92daedc9306a788d57209d956d9f4dcdb9d4770cbac2db36044627b23df57596  
boot/x86_64/yast2-trans-sv.rpm
+HASH SHA256 ec1b86e48af8112ca1242880fa6cb1943d8885662b2150f8dc742e6d83575432  
boot/x86_64/yast2-trans-ta.rpm
+HASH SHA256 325993820eb0ccdd647d9ee1e8329612e7e09b747502d39f08ed4437d107bf3f  
boot/x86_64/yast2-trans-th.rpm
+HASH SHA256 9697d7d5bddbe2e4d43b94f6000aaee9ca894dc5d2921d6609e0912d6c4ca5bf  
boot/x86_64/yast2-trans-tr.rpm
+HASH SHA256 dcbe341d1316133e4dc974507068d072f389946fd649204d6bfb3028ce2c384d  
boot/x86_64/yast2-trans-uk.rpm
+HASH SHA256 f79e9384bb2f9bcfee19ad826209b8ed4373a31d1e892a73249e3e14b526d831  
boot/x86_64/yast2-trans-vi.rpm
+HASH SHA256 758b0fc26f276f972eae9c5448b71c9c52b6e4938a0b507b90367fe2e80aae05  
boot/x86_64/yast2-trans-wa.rpm
+HASH SHA256 9e3ab668c84d9e6a9aa24e51a27b81ba5e29f961853a881a4c1a40511d767621  
boot/x86_64/yast2-trans-xh.rpm
+HASH SHA256 8e8dab4134f2f1737db3f7990a0e7d2fc31ccbbd81c5a16df6014b153a0be1be  
boot/x86_64/yast2-trans-zh_CN.rpm
+HASH SHA256 14f912da0ee1570f19a21c08548e59dbb4bd04612da311c93b01732b92c6af3b  
boot/x86_64/yast2-trans-zh_TW.rpm
+HASH SHA256 9f806776f806fd987c62a132d41a413c54d2a25d2c3920897b51888accf1a68a  
boot/x86_64/yast2-trans-zu.rpm
+HASH SHA256 1bcef029aad04ac3f1b6e667d2b6a4a211d7fe7e4dcf0943b1500c8e9848cccf  
boot/x86_64/loader/linux
+HASH SHA256 79a35533ad69a81264a76a62b108dbb26b2f7cd8ab2af94efe622c2e402a3ec1  
boot/x86_64/loader/initrd
+HASH SHA256 ac344ee17d2eadc80bd1adbc1de46e1775cf9e18149444ec69c0e78141c6c8fb  
docu/RELEASE-NOTES.en.html
+HASH SHA256 0af8796c65747d387e27308487a024572380544ce1b6b216cecce2a76706e043  
docu/RELEASE-NOTES.en.pdf
+HASH SHA256 a355fc3c1c623549fab6243e77c5f99c982e878c04fbf9efe8f99aba077ef3cc  
docu/RELEASE-NOTES.en.rtf
+HASH SHA256 42b5b9a4a96204e0e28343547ed82ee194eaeb88d201dc98b17517e430f184c9  
docu/RELEASE-NOTES.en.txt
+KEY SHA256  0cc0ceb099caf8aaa32e47ec6f72ace7ffc88ab86b816f979101e8b2e6cad4b5  
gpg-pubkey-39db7c82-510a966b.asc
+KEY SHA256  646ff75f4d68f9d0571b956ee1870192bc24f6f8efbdbdacbd6e9164b4b2b0cf  
gpg-pubkey-50a3dd1c-50f35137.asc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/test/routines_test.rb 
new/yast2-instserver-3.1.2/test/routines_test.rb
--- old/yast2-instserver-3.1.1/test/routines_test.rb    1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-instserver-3.1.2/test/routines_test.rb    2014-10-15 
15:11:11.000000000 +0200
@@ -0,0 +1,53 @@
+#!/usr/bin/env rspec
+
+ENV["Y2DIR"] = File.expand_path("../../src", __FILE__)
+
+require "yast"
+
+Yast.import "Instserver"
+
+def fixtures_path(file)
+  File.expand_path("../fixtures/#{file}", __FILE__)
+end
+
+describe "Yast::InstserverRoutinesInclude" do
+  subject do
+    instance = Yast::Module.new
+    Yast.include instance, "instserver/routines.rb"
+    instance
+  end
+  
+  describe "#distro_map" do
+    it "returns CPEID and product name" do
+      expect(subject.distro_map("cpe:/o:suse:sles:12,SUSE Linux Enterprise 
Server 12")).
+        to eq({"cpeid" => "cpe:/o:suse:sles:12",
+          "name" => "SUSE Linux Enterprise Server 12"})
+    end
+
+    it "returns product name with comma" do
+      expect(subject.distro_map("cpe:/o:suse:sles:12,SLES12, Mini edition")).
+        to eq({"cpeid" => "cpe:/o:suse:sles:12",
+          "name" => "SLES12, Mini edition"})
+    end
+
+    it "returns nil if input is nil" do
+      expect(subject.distro_map(nil)).to be_nil
+    end
+
+    it "returns nil if input is invalid" do
+      expect(subject.distro_map("foo")).to be_nil
+    end
+  end
+
+  describe "#ReadContentFile" do
+    it "returns product LABEL from DISTRO SLES12 content tag" do
+      parsed_content = subject.ReadContentFile(fixtures_path("SLES12_content"))
+      expect(parsed_content["LABEL"]).to eq("SUSE Linux Enterprise Server 12")
+    end
+
+    it "returns product LABEL from SLES11-SP3 content file" do
+      parsed_content = 
subject.ReadContentFile(fixtures_path("SLES11_SP3_content"))
+      expect(parsed_content["LABEL"]).to eq("SUSE Linux Enterprise Server 11 
SP3")
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/testsuite/Makefile.am 
new/yast2-instserver-3.1.2/testsuite/Makefile.am
--- old/yast2-instserver-3.1.1/testsuite/Makefile.am    2013-11-04 
16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/testsuite/Makefile.am    1970-01-01 
01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
-#
-# Makefile.am for .../testsuite
-#
-# Do not edit this file (Makefile.am) as it will be overwritten!
-#
-
-AUTOMAKE_OPTIONS = dejagnu
-EXTRA_DIST = $(wildcard tests/*.out) $(wildcard tests/*.err) $(wildcard 
tests/*.rb)
-
-testsuite_prepare = @ydatadir@/testsuite/Makefile.testsuite
-
-all-local: $(testsuite_prepare)
-       make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir)
-
-clean-local: $(testsuite_prepare)
-       make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir) clean
-
-check-local: $(testsuite_prepare)
-       make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir) check
-
-# EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-instserver-3.1.1/testsuite/tests/Instserver.out 
new/yast2-instserver-3.1.2/testsuite/tests/Instserver.out
--- old/yast2-instserver-3.1.1/testsuite/tests/Instserver.out   2013-11-04 
16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/testsuite/tests/Instserver.out   1970-01-01 
01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-Dump   Instserver::Modified
-Return false
-Dump   Instserver::EscapeSLPData()
-Return $["description":"No need to escpace anything."]
-Return $["description":"Rounded brackets \\28\\29\\2c \\5c backslash and comma 
\\2c must be escpaced."]
-Return $["escaped\\2e\\3dname":"value\\5c\\5c\\5c."]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-instserver-3.1.1/testsuite/tests/Instserver.rb 
new/yast2-instserver-3.1.2/testsuite/tests/Instserver.rb
--- old/yast2-instserver-3.1.1/testsuite/tests/Instserver.rb    2013-11-04 
16:37:02.000000000 +0100
+++ new/yast2-instserver-3.1.2/testsuite/tests/Instserver.rb    1970-01-01 
01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-# encoding: utf-8
-
-module Yast
-  class InstserverClient < Client
-    def main
-      # testedfiles: Instserver.ycp
-
-      Yast.include self, "testsuite.rb"
-      TESTSUITE_INIT([], nil)
-
-      Yast.import "Instserver"
-
-      DUMP("Instserver::Modified")
-      TEST(lambda { Instserver.Modified }, [], nil)
-
-      DUMP("Instserver::EscapeSLPData()")
-      TEST(lambda do
-        Instserver.EscapeSLPData(
-          { "description" => "No need to escpace anything." }
-        )
-      end, [], nil)
-      TEST(lambda do
-        Instserver.EscapeSLPData(
-          {
-            "description" => "Rounded brackets (), \\ backslash and comma , 
must be escpaced."
-          }
-        )
-      end, [], nil)
-      TEST(lambda do
-        Instserver.EscapeSLPData({ "escaped.=name" => "value\\\\\\." })
-      end, [], nil)
-
-      nil
-    end
-  end
-end
-
-Yast::InstserverClient.new.main

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to