Hello community,

here is the log from the commit of package libstorage for openSUSE:Factory 
checked in at 2013-11-08 16:12:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libstorage (Old)
 and      /work/SRC/openSUSE:Factory/.libstorage.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libstorage"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libstorage/libstorage.changes    2013-10-23 
19:22:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libstorage.new/libstorage.changes       
2013-11-08 16:12:36.000000000 +0100
@@ -1,0 +2,26 @@
+Tue Nov 05 12:08:53 CET 2013 - aschn...@suse.de
+
+- support label on FAT (bnc#848052)
+
+-------------------------------------------------------------------
+Mon Nov 04 16:49:15 CET 2013 - aschn...@suse.de
+
+- removed storage_utf8.rb (bnc#848812)
+
+-------------------------------------------------------------------
+Tue Oct 29 14:57:13 CET 2013 - aschn...@suse.de
+
+- always use mdadm for IMSM and DDF (fate#316007)
+- version 2.25.2
+
+-------------------------------------------------------------------
+Tue Oct 29 14:06:38 CET 2013 - aschn...@suse.de
+
+- added support for rsxx devices (fate#316440)
+
+-------------------------------------------------------------------
+Tue Oct 29 11:59:17 CET 2013 - aschn...@suse.de
+
+- display partition type not only by number (bnc#844577)
+
+-------------------------------------------------------------------

Old:
----
  libstorage-2.25.1.tar.bz2

New:
----
  libstorage-2.25.2.tar.bz2

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

Other differences:
------------------
++++++ libstorage.spec ++++++
--- /var/tmp/diff_new_pack.QnyBYx/_old  2013-11-08 16:12:37.000000000 +0100
+++ /var/tmp/diff_new_pack.QnyBYx/_new  2013-11-08 16:12:37.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           libstorage
-Version:        2.25.1
+Version:        2.25.2
 Release:        0
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Source:         libstorage-%{version}.tar.bz2
@@ -123,7 +123,7 @@
 Requires:       grep
 Requires:       lsscsi
 Requires:       lvm2
-Requires:       mdadm
+Requires:       mdadm >= 3.3
 Requires:       multipath-tools
 Requires:       parted >= 2.2
 Requires:       udev
@@ -235,7 +235,6 @@
 %else
 %{rb_vendorarch}/storage.so
 %endif
-%{rb_vendordir}/storage_utf8.rb
 %endif
 %if 0%{?mandriva_version}
 %{ruby_sitearchdir}/storage.so

++++++ libstorage-2.25.1.tar.bz2 -> libstorage-2.25.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/LIBVERSION 
new/libstorage-2.25.2/LIBVERSION
--- old/libstorage-2.25.1/LIBVERSION    2012-08-07 11:51:00.000000000 +0200
+++ new/libstorage-2.25.2/LIBVERSION    2013-10-30 16:07:31.000000000 +0100
@@ -1 +1 @@
-4.0.0
+4.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/VERSION 
new/libstorage-2.25.2/VERSION
--- old/libstorage-2.25.1/VERSION       2013-10-23 08:08:34.000000000 +0200
+++ new/libstorage-2.25.2/VERSION       2013-10-30 16:07:20.000000000 +0100
@@ -1 +1 @@
-2.25.1
+2.25.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/bindings/python/libstorage.py 
new/libstorage-2.25.2/bindings/python/libstorage.py
--- old/libstorage-2.25.1/bindings/python/libstorage.py 2013-10-21 
18:05:12.000000000 +0200
+++ new/libstorage-2.25.2/bindings/python/libstorage.py 2013-11-06 
14:13:42.000000000 +0100
@@ -193,9 +193,6 @@
 SPI = _libstorage.SPI
 USB = _libstorage.USB
 FCOE = _libstorage.FCOE
-IMSM_UNDECIDED = _libstorage.IMSM_UNDECIDED
-IMSM_DMRAID = _libstorage.IMSM_DMRAID
-IMSM_MDADM = _libstorage.IMSM_MDADM
 MPAS_UNDECIDED = _libstorage.MPAS_UNDECIDED
 MPAS_ON = _libstorage.MPAS_ON
 MPAS_OFF = _libstorage.MPAS_OFF
@@ -1529,8 +1526,6 @@
     def getContDmmultipathCoInfo(self, *args): return 
_libstorage.StorageInterface_getContDmmultipathCoInfo(self, *args)
     def getMdPartCoInfo(self, *args): return 
_libstorage.StorageInterface_getMdPartCoInfo(self, *args)
     def getContMdPartCoInfo(self, *args): return 
_libstorage.StorageInterface_getContMdPartCoInfo(self, *args)
-    def setImsmDriver(self, *args): return 
_libstorage.StorageInterface_setImsmDriver(self, *args)
-    def getImsmDriver(self): return 
_libstorage.StorageInterface_getImsmDriver(self)
     def setMultipathAutostart(self, *args): return 
_libstorage.StorageInterface_setMultipathAutostart(self, *args)
     def getMultipathAutostart(self): return 
_libstorage.StorageInterface_getMultipathAutostart(self)
     def getVolumes(self, *args): return 
_libstorage.StorageInterface_getVolumes(self, *args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/bindings/ruby/Makefile.am 
new/libstorage-2.25.2/bindings/ruby/Makefile.am
--- old/libstorage-2.25.1/bindings/ruby/Makefile.am     2013-09-30 
09:39:21.000000000 +0200
+++ new/libstorage-2.25.2/bindings/ruby/Makefile.am     2013-11-04 
16:45:33.000000000 +0100
@@ -4,7 +4,7 @@
 
 SUBDIRS = examples
 
-EXTRA_DIST = storage.i enum_ref.i storage_utf8.rb
+EXTRA_DIST = storage.i enum_ref.i
 
 MAINTAINERCLEANFILES = storage_wrap.cxx
 
@@ -35,7 +35,4 @@
 storage_wrap.cxx: storage.i $(DEPENDENCIES)
        swig -o storage_wrap.cxx -c++ -ruby ${INCLUDES} storage.i
 
-install-data-hook:
-       $(INSTALL) storage_utf8.rb $(DESTDIR)/$(RUBY_VENDOR_DIR)
-
 CLEANFILES = storage.so storage_wrap.cxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/bindings/ruby/Makefile.in 
new/libstorage-2.25.2/bindings/ruby/Makefile.in
--- old/libstorage-2.25.1/bindings/ruby/Makefile.in     2013-10-23 
08:14:43.000000000 +0200
+++ new/libstorage-2.25.2/bindings/ruby/Makefile.in     2013-11-06 
14:12:54.000000000 +0100
@@ -321,7 +321,7 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = examples
-EXTRA_DIST = storage.i enum_ref.i storage_utf8.rb
+EXTRA_DIST = storage.i enum_ref.i
 MAINTAINERCLEANFILES = storage_wrap.cxx
 BUILT_SOURCES = storage_wrap.cxx
 rubyextensiondirdir = $(RUBY_EXTENSION_DIR)
@@ -726,8 +726,7 @@
 info-am:
 
 install-data-am: install-rubyextensiondirLTLIBRARIES
-       @$(NORMAL_INSTALL)
-       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+
 install-dvi: install-dvi-recursive
 
 install-dvi-am:
@@ -776,7 +775,7 @@
 
 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
        cscopelist-recursive ctags-recursive install install-am \
-       install-data-am install-strip tags-recursive
+       install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
        all all-am check check-am clean clean-generic clean-libtool \
@@ -784,24 +783,21 @@
        cscopelist-recursive ctags ctags-recursive distclean \
        distclean-compile distclean-generic distclean-libtool \
        distclean-tags distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am \
-       install-data-hook install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-rubyextensiondirLTLIBRARIES \
-       install-strip installcheck installcheck-am installdirs \
-       installdirs-am maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-       uninstall uninstall-am uninstall-rubyextensiondirLTLIBRARIES
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-rubyextensiondirLTLIBRARIES install-strip installcheck \
+       installcheck-am installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-recursive uninstall uninstall-am \
+       uninstall-rubyextensiondirLTLIBRARIES
 
 
 storage_wrap.cxx: storage.i $(DEPENDENCIES)
        swig -o storage_wrap.cxx -c++ -ruby ${INCLUDES} storage.i
 
-install-data-hook:
-       $(INSTALL) storage_utf8.rb $(DESTDIR)/$(RUBY_VENDOR_DIR)
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/bindings/ruby/storage.i 
new/libstorage-2.25.2/bindings/ruby/storage.i
--- old/libstorage-2.25.1/bindings/ruby/storage.i       2013-09-02 
15:55:12.000000000 +0200
+++ new/libstorage-2.25.2/bindings/ruby/storage.i       2013-10-30 
09:45:26.000000000 +0100
@@ -8,6 +8,7 @@
 #include <storage/StorageInterface.h>
 #include <storage/HumanString.h>
 #include <storage/Graph.h>
+#include <storage/Utils.h>
 %}
 
 using namespace std;
@@ -15,6 +16,7 @@
 %include "std_string.i"
 %include "std_deque.i"
 %include "std_list.i"
+%include "std_map.i"
 %include "enum_ref.i"
 
 OUTPUT_TYPEMAP(storage::MountByType, UINT2NUM, (unsigned int));
@@ -23,12 +25,14 @@
 %include "../../storage/StorageInterface.h"
 %include "../../storage/HumanString.h"
 %include "../../storage/Graph.h"
+%include "../../storage/Utils.h"
 
 using namespace storage;
 
 %template(DequeString) deque<string>;
 %template(ListString) list<string>;
 %template(ListInt) list<int>;
+%template(MapStringString) map<string, string>;
 %template(DequeContainerInfo) deque<ContainerInfo>;
 %template(DequeVolumeInfo) deque<VolumeInfo>;
 %template(DequePartitionInfo) deque<PartitionInfo>;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/bindings/ruby/storage_utf8.rb 
new/libstorage-2.25.2/bindings/ruby/storage_utf8.rb
--- old/libstorage-2.25.1/bindings/ruby/storage_utf8.rb 2013-09-30 
10:46:36.000000000 +0200
+++ new/libstorage-2.25.2/bindings/ruby/storage_utf8.rb 1970-01-01 
01:00:00.000000000 +0100
@@ -1,33 +0,0 @@
-require "storage"
-
-module Storage
-  class << self
-    def convert_encoding value
-      case value
-      when String
-        value.force_encoding("UTF-8")
-      when Hash
-        value.keys.each do |key|
-          old_val = value.delete[key]
-          value[convert_encoding(key)] = convert_encoding(old_val)
-        end
-        value
-      when Array
-        value.map { |e| convert_encoding(e) }
-      else
-        value
-      end
-    end
-
-    public_instance_methods.each do |method|
-      # skip convert method
-      next if method == :convert_encoding
-      # skip common ruby object methods
-      next if Object.methods.include? method
-      alias_method (method.to_s + "_unconverted").to_sym, method
-      define_method(method) do |*args|
-        convert_encoding send((method.to_s + "_unconverted").to_sym, *args)
-      end
-    end
-  end
-end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/libstorage.spec.in 
new/libstorage-2.25.2/libstorage.spec.in
--- old/libstorage-2.25.1/libstorage.spec.in    2013-10-01 18:12:29.000000000 
+0200
+++ new/libstorage-2.25.2/libstorage.spec.in    2013-11-06 11:40:55.000000000 
+0100
@@ -108,8 +108,18 @@
 
 %package -n libstorage@LIBVERSION_MAJOR@
 
-Requires:       parted >= 2.2 mdadm device-mapper lvm2 dmraid multipath-tools 
cryptsetup
-Requires:       coreutils udev util-linux >= 2.16 grep lsscsi
+Requires:      coreutils
+Requires:      cryptsetup
+Requires:      device-mapper
+Requires:      dmraid
+Requires:      grep
+Requires:      lsscsi
+Requires:      lvm2
+Requires:      mdadm >= 3.3
+Requires:      multipath-tools
+Requires:      parted >= 2.2
+Requires:      udev
+Requires:      util-linux >= 2.16
 %ifarch s390 s390x
 Requires:       s390-tools
 %endif
@@ -152,8 +162,10 @@
 
 %package -n libstorage-devel
 
-Requires:       libstorage@LIBVERSION_MAJOR@ = %version
-Requires:       gcc-c++ libstdc++-devel libxml2-devel
+Requires:      gcc-c++
+Requires:      libstdc++-devel
+Requires:      libstorage@LIBVERSION_MAJOR@ = %version
+Requires:      libxml2-devel
 Summary:        Header files and documentation for libstorage
 Group:          Development/Languages/C and C++
 
@@ -215,7 +227,6 @@
 %else
 %{rb_vendorarch}/storage.so
 %endif
-%{rb_vendordir}/storage_utf8.rb
 %endif
 %if 0%{?mandriva_version}
 %{ruby_sitearchdir}/storage.so
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/AppUtil.cc 
new/libstorage-2.25.2/storage/AppUtil.cc
--- old/libstorage-2.25.1/storage/AppUtil.cc    2013-10-21 17:53:50.000000000 
+0200
+++ new/libstorage-2.25.2/storage/AppUtil.cc    2013-10-31 15:06:40.000000000 
+0100
@@ -705,10 +705,12 @@
 void checkBinPaths( const string& arch, bool instsys )
     {
     y2mil( "Arch:" << arch << " Instsys:" << instsys );
-    list<string> ign;
-    const char* pathes[] = { 
+
+    const char* paths[] = {
 #include "./gen_pathlist.cc"
                            };
+
+    list<string> ign;
     ign.push_back( PORTMAPBIN );
     ign.push_back( HFORMATBIN );
     if( !boost::starts_with(arch,"s390") )
@@ -718,14 +720,15 @@
         ign.push_back( DASDFMTBIN );
         }
     y2mil( "ign:" << ign );
+
     LogLevel level = instsys?storage::ERROR:storage::MILESTONE;
-    for( unsigned i=0; i<lengthof(pathes); i++ )
+    for( unsigned int i=0; i<lengthof(paths); ++i )
         {
-        if( !contains( ign, pathes[i] ))
+        if( !contains( ign, paths[i] ))
             {
-            if( access( pathes[i], X_OK )!=0 )
+            if( access( paths[i], X_OK )!=0 )
                 y2log_op( level, __FILE__, __LINE__, __FUNCTION__,
-                          "error accessing:" << pathes[i] );
+                          "error accessing:" << paths[i] );
             }
         }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Disk.cc 
new/libstorage-2.25.2/storage/Disk.cc
--- old/libstorage-2.25.1/storage/Disk.cc       2013-10-11 14:31:39.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Disk.cc       2013-10-29 14:06:15.000000000 
+0100
@@ -733,7 +733,7 @@
 
 
     const string Disk::p_disks[] = { "cciss/", "ida/", "ataraid/", "etherd/", 
"rd/", "mmcblk[0-9]+",
-                                    "md[0-9]+" };
+                                    "md[0-9]+", "rsxx[0-9]+" };
 
 
     bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/DmraidCo.h 
new/libstorage-2.25.2/storage/DmraidCo.h
--- old/libstorage-2.25.1/storage/DmraidCo.h    2013-03-14 10:34:31.000000000 
+0100
+++ new/libstorage-2.25.2/storage/DmraidCo.h    2013-10-30 09:31:01.000000000 
+0100
@@ -52,10 +52,13 @@
 
        bool getEntry(const string& name, Entry& entry) const;
 
-    private:
-
        typedef map<string, Entry>::const_iterator const_iterator;
 
+       const_iterator begin() const { return data.begin(); }
+       const_iterator end() const { return data.end(); }
+
+    private:
+
        map<string, Entry> data;
 
     };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Enum.cc 
new/libstorage-2.25.2/storage/Enum.cc
--- old/libstorage-2.25.1/storage/Enum.cc       2012-08-07 11:51:00.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Enum.cc       2013-10-29 14:32:24.000000000 
+0100
@@ -117,14 +117,6 @@
                                                    lengthof(transport_names));
 
 
-    static const string imsm_driver_names[] = {
-       "UNDECIDED", "DMRAID", "MDADM"
-    };
-
-    const vector<string> EnumInfo<ImsmDriver>::names(imsm_driver_names, 
imsm_driver_names +
-                                                    
lengthof(imsm_driver_names));
-
-
     static const string multipath_autostart_names[] = {
        "UNDECIDED", "ON", "OFF"
     };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Enum.h 
new/libstorage-2.25.2/storage/Enum.h
--- old/libstorage-2.25.1/storage/Enum.h        2012-08-07 11:51:00.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Enum.h        2013-10-29 14:30:49.000000000 
+0100
@@ -51,7 +51,6 @@
     template <> struct EnumInfo<UsedByType> { static const vector<string> 
names; };
     template <> struct EnumInfo<CType> { static const vector<string> names; };
     template <> struct EnumInfo<Transport> { static const vector<string> 
names; };
-    template <> struct EnumInfo<ImsmDriver> { static const vector<string> 
names; };
     template <> struct EnumInfo<MultipathAutostart> { static const 
vector<string> names; };
     template <> struct EnumInfo<PartAlign> { static const vector<string> 
names; };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Makefile.am 
new/libstorage-2.25.2/storage/Makefile.am
--- old/libstorage-2.25.1/storage/Makefile.am   2013-09-11 14:50:06.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Makefile.am   2013-10-29 16:54:27.000000000 
+0100
@@ -38,6 +38,7 @@
          Nfs.cc                Nfs.h                   \
        HumanString.cc          HumanString.h           \
        Graph.cc                Graph.h                 \
+       Utils.cc                Utils.h                 \
        SystemCmd.cc            SystemCmd.h             \
        OutputProcessor.cc      OutputProcessor.h       \
        Regex.cc                Regex.h                 \
@@ -88,4 +89,5 @@
        StorageInterface.h              \
        StorageSwig.h                   \
        HumanString.h                   \
-       Graph.h
+       Graph.h                         \
+       Utils.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Makefile.in 
new/libstorage-2.25.2/storage/Makefile.in
--- old/libstorage-2.25.1/storage/Makefile.in   2013-10-23 08:14:43.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Makefile.in   2013-11-06 14:12:54.000000000 
+0100
@@ -103,7 +103,7 @@
        TmpfsCo.lo LoopCo.lo NfsCo.lo Volume.lo Partition.lo Dm.lo \
        LvmLv.lo DmPart.lo Dmraid.lo Dmmultipath.lo Md.lo MdPart.lo \
        Btrfs.lo Tmpfs.lo Loop.lo Nfs.lo HumanString.lo Graph.lo \
-       SystemCmd.lo OutputProcessor.lo Regex.lo FreeInfo.lo \
+       Utils.lo SystemCmd.lo OutputProcessor.lo Regex.lo FreeInfo.lo \
        ArchInfo.lo AsciiFile.lo XmlFile.lo SystemInfo.lo ProcParts.lo \
        Blkid.lo Lsscsi.lo Parted.lo Dasdview.lo ProcMounts.lo \
        ProcMdstat.lo EtcFstab.lo EtcMdadm.lo Geometry.lo AppUtil.lo \
@@ -350,6 +350,7 @@
          Nfs.cc                Nfs.h                   \
        HumanString.cc          HumanString.h           \
        Graph.cc                Graph.h                 \
+       Utils.cc                Utils.h                 \
        SystemCmd.cc            SystemCmd.h             \
        OutputProcessor.cc      OutputProcessor.h       \
        Regex.cc                Regex.h                 \
@@ -388,7 +389,8 @@
        StorageInterface.h              \
        StorageSwig.h                   \
        HumanString.h                   \
-       Graph.h
+       Graph.h                         \
+       Utils.h
 
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-am
@@ -523,6 +525,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemInfo.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Tmpfs.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TmpfsCo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Utils.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Volume.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XmlFile.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen_md5sum.Plo@am__quote@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/MdPartCo.cc 
new/libstorage-2.25.2/storage/MdPartCo.cc
--- old/libstorage-2.25.1/storage/MdPartCo.cc   2013-08-12 17:43:49.000000000 
+0200
+++ new/libstorage-2.25.2/storage/MdPartCo.cc   2013-10-31 15:42:46.000000000 
+0100
@@ -1457,37 +1457,6 @@
     }
 
 
-bool
-MdPartCo::scanForRaid(list<string>& raidNames)
-{
-    bool ret = false;
-  raidNames.clear();
-
-  SystemCmd c(MDADMBIN " --examine --scan");
-  if( c.retcode() == 0 )
-    {
-    for(unsigned i = 0; i < c.numLines(false); i++ )
-      {
-      //Example:
-      //ARRAY metadata=imsm UUID=b...5
-      //ARRAY /dev/md/Vol_r5 container=b...5 member=0 UUID=0...c
-      //ARRAY metadata=imsm UUID=8...b
-      //ARRAY /dev/md/Vol0 container=8...b member=0 UUID=7...9
-      string line = c.getLine(i);
-      string dev_name = extractNthWord( 1, line );
-      if( dev_name.find("/dev/md/") == 0 )
-        {
-        dev_name.erase(0,8);
-        raidNames.push_back(dev_name);
-        }
-      }
-    ret = true;
-    }
-  y2mil(" Detected list of MD RAIDs : " << raidNames);
-  return ret;
-}
-
-
 CType
 MdPartCo::envSelection(const string& name)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/MdPartCo.h 
new/libstorage-2.25.2/storage/MdPartCo.h
--- old/libstorage-2.25.1/storage/MdPartCo.h    2013-08-12 17:43:49.000000000 
+0200
+++ new/libstorage-2.25.2/storage/MdPartCo.h    2013-10-29 14:36:06.000000000 
+0100
@@ -154,10 +154,6 @@
     static bool matchRegex( const string& dev );
     static bool mdStringNum( const string& name, unsigned& num );
 
-    // This function will scan for MD RAIDs and will return
-    // list with detected RAID names.
-    static bool scanForRaid(list<string>& raidNames);
-
     /* filterMdPartCo
      * Get list of detected MD RAIDs and filters them for
      * those which can be handled by MdPartCo.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Partition.cc 
new/libstorage-2.25.2/storage/Partition.cc
--- old/libstorage-2.25.1/storage/Partition.cc  2013-08-12 17:43:49.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Partition.cc  2013-10-29 12:01:09.000000000 
+0100
@@ -293,27 +293,56 @@
     }
 
 
-Text Partition::setTypeText( bool doing ) const
+    string
+    Partition::idToString(unsigned id)
     {
-    Text txt;
-    string d = dev;
-    if( doing )
-        {
-        // displayed text during action, %1$s is replaced by partition name 
(e.g. /dev/hda1),
-        // %2$s is replaced by hexadecimal number (e.g. 8E)
-        txt = sformat( _("Setting type of partition %1$s to %2$X"),
-                      d.c_str(), id() );
-        }
-    else
+       switch (id)
+       {
+           case ID_SWAP: return "Linux Swap";
+           case ID_LINUX: return "Linux";
+           case ID_LVM: return "Linux LVM";
+           case ID_RAID: return "Linux RAID";
+       }
+       return "";
+    }
+
+
+    Text
+    Partition::setTypeText(bool doing) const
+    {
+       string id_str = idToString();
+
+       Text txt;
+       if (doing)
         {
-        // displayed text before action, %1$s is replaced by partition name 
(e.g. /dev/hda1),
-        // %2$s is replaced by hexadecimal number (e.g. 8E)
-        txt = sformat( _("Set type of partition %1$s to %2$X"),
-                      d.c_str(), id() );
-        }
-    return( txt );
+           if (id_str.empty())
+               // displayed text during action, %1$s is replaced by partition 
name (e.g. /dev/sda1),
+               // %2$X is replaced by hexadecimal number (e.g. 8E)
+               txt = sformat(_("Setting type of partition %1$s to %2$X"), 
dev.c_str(), id());
+           else
+               // displayed text during action, %1$s is replaced by partition 
name (e.g. /dev/sda1),
+               // %2$s is replaced by partiton type (e.g. Linux LVM), %3$X is 
replaced by
+               // hexadecimal number (e.g. 8E)
+               txt = sformat(_("Setting type of partition %1$s to %2$s 
(%3$X"), dev.c_str(),
+                             id_str.c_str(), id() );
+       }
+       else
+       {
+           if (id_str.empty())
+               // displayed text before action, %1$s is replaced by partition 
name (e.g. /dev/sda1),
+               // %2$X is replaced by hexadecimal number (e.g. 8E)
+               txt = sformat(_("Set type of partition %1$s to %2$X"), 
dev.c_str(), id());
+           else
+               // displayed text before action, %1$s is replaced by partition 
name (e.g. /dev/hda1),
+               // %2$s is replaced by partiton type (e.g. Linux LVM), %3$X is 
replaced by
+               // hexadecimal number (e.g. 8E)
+               txt = sformat(_("Set type of partition %1$s to %2$s (%3$X)"), 
dev.c_str(),
+                             id_str.c_str(), id());
+       }
+       return txt;
     }
 
+
 const Disk* Partition::disk() const
     {
     return(dynamic_cast<const Disk* const>(cont));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Partition.h 
new/libstorage-2.25.2/storage/Partition.h
--- old/libstorage-2.25.1/storage/Partition.h   2013-08-12 17:43:49.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Partition.h   2013-10-29 11:34:18.000000000 
+0100
@@ -95,6 +95,9 @@
        void forgetResize(); 
        bool canUseDevice() const;
 
+       static string idToString(unsigned id);
+       string idToString() const { return idToString(id()); }
+
        /* partition region from sysfs in 512 byte blocks */
        Region detectSysfsBlkRegion(bool log_error = true) const;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/ProcMdstat.cc 
new/libstorage-2.25.2/storage/ProcMdstat.cc
--- old/libstorage-2.25.1/storage/ProcMdstat.cc 2013-03-04 11:18:27.000000000 
+0100
+++ new/libstorage-2.25.2/storage/ProcMdstat.cc 2013-11-06 12:33:23.000000000 
+0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2004-2010] Novell, Inc.
+ * Copyright (c) [2004-2013] Novell, Inc.
  *
  * All Rights Reserved.
  *
@@ -324,25 +324,70 @@
     }
 
 
-    bool
-    isImsmPlatform()
+    MdadmExamine::MdadmExamine(const list<string>& devices)
     {
-       bool ret = false;
-
-       SystemCmd cmd(MDADMBIN " --detail-platform");
+       SystemCmd cmd(MDADMBIN " --examine " + quote(devices) + " --brief");
+       if (cmd.retcode() != 0)
+       {
+           y2err("running mdadm failed");
+           return;
+       }
 
-       cmd.select("Platform : ");
-       if (cmd.numLines(true) > 0)
+       const vector<string>& lines = cmd.stdout();
+       for (vector<string>::const_iterator it = lines.begin(); it != 
lines.end(); ++it)
        {
-           string line = cmd.getLine(0, true);
-           if (boost::contains(line, "Intel(R) Matrix Storage Manager"))
+           const list<string> items = splitString(*it, " ");
+           if (items.front() != "ARRAY" || items.size() < 3)
+           {
+               y2err("unexpected input");
+               continue;
+           }
+
+           bool is_container_line = true;
+           for (list<string>::const_iterator it = items.begin(); it != 
items.end(); ++it)
            {
-               ret = true;
+               if (boost::starts_with(*it, "container="))
+                   is_container_line = false;
+           }
+
+           if (is_container_line)
+           {
+               for (list<string>::const_iterator it = items.begin(); it != 
items.end(); ++it)
+               {
+                   if (boost::starts_with(*it, "metadata="))
+                       metadata = string(*it, 9);
+                   else if (boost::starts_with(*it, "UUID="))
+                       uuid = string(*it, 5);
+               }
+           }
+           else
+           {
+               string device = *(++items.begin());
+               if (!boost::starts_with(device, "/dev/md/"))
+               {
+                   y2err("unexpected input");
+                   continue;
+               }
+
+               string name = string(device, 8);
+
+               Entry entry;
+               for (list<string>::const_iterator it = items.begin(); it != 
items.end(); ++it)
+               {
+                   if (boost::starts_with(*it, "member="))
+                       string(*it, 7) >> entry.member;
+                   else if (boost::starts_with(*it, "UUID="))
+                       entry.uuid = string(*it, 5);
+               }
+
+               data[name] = entry;
            }
        }
 
-       y2mil("ret:" << ret);
-       return ret;
+       y2mil("devices:" << devices << " metadata:" << metadata << " uuid:" << 
uuid);
+       for (const_iterator it = begin(); it != end(); ++it)
+           y2mil("data["<< it->first << "] -> member:" << it->second.member << 
" uuid:" <<
+                 it->second.uuid);
     }
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/ProcMdstat.h 
new/libstorage-2.25.2/storage/ProcMdstat.h
--- old/libstorage-2.25.1/storage/ProcMdstat.h  2013-03-04 11:18:27.000000000 
+0100
+++ new/libstorage-2.25.2/storage/ProcMdstat.h  2013-11-06 12:32:38.000000000 
+0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2004-2010] Novell, Inc.
+ * Copyright (c) [2004-2013] Novell, Inc.
  *
  * All Rights Reserved.
  *
@@ -89,7 +89,35 @@
     bool getMdadmDetails(const string& dev, MdadmDetails& details);
 
 
-    bool isImsmPlatform();
+    class MdadmExamine
+    {
+    public:
+
+       MdadmExamine(const list<string>& devices);
+
+       string metadata;
+       string uuid;
+
+       struct Entry
+       {
+           Entry() : member(-1) {}
+
+           int member;
+           string uuid;
+       };
+
+       typedef map<string, Entry>::const_iterator const_iterator;
+
+       const_iterator begin() const { return data.begin(); }
+       const_iterator end() const { return data.end(); }
+
+       const_iterator find(const string& name) const { return data.find(name); 
}
+
+    private:
+
+       map<string, Entry> data;
+
+    };
 
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Storage.cc 
new/libstorage-2.25.2/storage/Storage.cc
--- old/libstorage-2.25.1/storage/Storage.cc    2013-10-22 14:22:20.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Storage.cc    2013-11-05 10:43:07.000000000 
+0100
@@ -94,7 +94,7 @@
       partAlignment(ALIGN_OPTIMAL), defaultMountBy(MOUNTBY_ID),
       defaultFs(BTRFS), defaultSubvolName(""), detectMounted(true),
       root_mounted(!instsys()), rootprefix(), fstab(NULL), mdadm(NULL), 
-      imsm_driver(IMSM_UNDECIDED), multipath_autostart(MPAS_UNDECIDED)
+      multipath_autostart(MPAS_UNDECIDED)
 {
     y2mil("constructed Storage with " << env);
     y2mil("libstorage version " VERSION);
@@ -118,14 +118,6 @@
 
     SystemCmd::setTestmode(testmode());
 
-    tenv = getenv("LIBSTORAGE_IMSM_DRIVER");
-    if (tenv)
-    {
-       if (!toValue(tenv, imsm_driver, false))
-           y2war("unknown IMSM driver '" << tenv << "' in environment");
-    }
-    y2mil("imsm_driver:" << toString(imsm_driver));
-
     tenv = getenv("LIBSTORAGE_MULTIPATH_AUTOSTART");
     if (tenv)
     {
@@ -226,8 +218,6 @@
 
        if (multipath_autostart == MPAS_ON)
            DmmultipathCo::activate(true);
-
-       decideImsm();
     }
 
     detectObjects();
@@ -276,17 +266,8 @@
 {
        if (instsys())
        {
-           if (getImsmDriver() == IMSM_MDADM)
-           {
-               MdPartCo::activate(true, tmpDir());
-               DmraidCo::activate(true);
-           }
-           else
-           {
-               DmraidCo::activate(true);
-               MdPartCo::activate(true, tmpDir());
-           }
-
+           MdPartCo::activate(true, tmpDir());
+           DmraidCo::activate(true);
            MdCo::activate(true, tmpDir());
            LvmVg::activate(true);
        }
@@ -377,38 +358,6 @@
     }
 
 
-void
-Storage::decideImsm()
-{
-    if (imsm_driver == IMSM_UNDECIDED && isImsmPlatform())
-    {
-       y2mil("IMSM platform detected");
-
-       list<string> l;
-       if (MdPartCo::scanForRaid(l) && !l.empty())
-       {
-           y2mil("md raids:" << l);
-
-           Text txt = sformat(
-               // popup text %1$s is replaced by disk name e.g. /dev/hda
-               _("You are running on the Intel(R) Matrix Storage Manager 
compatible platform.\n"
-                 "\n"
-                 "Following MD compatible RAID devices were detected:\n"
-                 "%1$s\n"
-                 "If they are clean devices or contain partitions then you can 
choose to use\n"
-                 "MD Partitionable RAID sysbsystem to handle them. In case of 
clean device you\n"
-                 "will be able to install system on it and boot from such 
RAID.\n"
-                 "Do you want MD Partitionable RAID subsystem to manage those 
partitions?"),
-               boost::join(l, " ").c_str());
-
-           imsm_driver = yesnoPopupCb(txt) ? IMSM_MDADM : IMSM_DMRAID;
-       }
-    }
-
-    y2mil("imsm_driver:" << toString(imsm_driver));
-}
-
-
 void Storage::deleteBackups()
     {
     for (map<string, CCont>::iterator i = backups.begin(); i != backups.end(); 
++i)
@@ -5853,8 +5802,8 @@
     static FsCapabilitiesX ntfsCaps (true, false, true, false, true, true,
                                     false, 32, 10*1024);
 
-    static FsCapabilitiesX fatCaps (true, false, true, false, false, false,
-                                   false, 0, 64);
+    static FsCapabilitiesX fatCaps (true, false, true, false, true, true,
+                                   false, 11, 64);
 
     static FsCapabilitiesX swapCaps (true, false, true, false, true, true,
                                     false, 15, 64);
@@ -7587,16 +7536,8 @@
     y2mil("val:" << val);
     if (val)
     {
-        if (getImsmDriver() == IMSM_MDADM)
-          {
           MdPartCo::activate(val, tmpDir());
           Dm::activate(val);
-          }
-        else
-          {
-          Dm::activate(val);
-          MdPartCo::activate(val, tmpDir());
-          }
     }
     LvmVg::activate(val);
     if (!val)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Storage.h 
new/libstorage-2.25.2/storage/Storage.h
--- old/libstorage-2.25.1/storage/Storage.h     2013-06-27 14:36:39.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Storage.h     2013-11-05 12:11:23.000000000 
+0100
@@ -534,8 +534,6 @@
        int computeMdSize(MdType md_type, const list<string>& devices, const 
list<string>& spares,
                          unsigned long long& sizeK);
        list<int> getMdAllowedParity(MdType md_type, unsigned devices );
-       void setImsmDriver(ImsmDriver val) { imsm_driver = val; }
-       ImsmDriver getImsmDriver() const { return imsm_driver; }
        void setMultipathAutostart(MultipathAutostart val) { 
multipath_autostart = val; }
        MultipathAutostart getMultipathAutostart() const { return 
multipath_autostart; }
 
@@ -2146,7 +2144,6 @@
        EtcFstab *fstab;
        EtcMdadm* mdadm;
 
-       ImsmDriver imsm_driver;
        MultipathAutostart multipath_autostart;
 
        CallbackProgressBar progress_bar_cb;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/StorageDefines.h 
new/libstorage-2.25.2/storage/StorageDefines.h
--- old/libstorage-2.25.1/storage/StorageDefines.h      2012-08-14 
12:45:55.000000000 +0200
+++ new/libstorage-2.25.2/storage/StorageDefines.h      2013-11-05 
10:41:24.000000000 +0100
@@ -96,6 +96,7 @@
 #define TUNEJFSBIN     "/sbin/jfs_tune"
 #define XFSADMINBIN    "/usr/sbin/xfs_admin"
 #define NTFSLABELBIN   "/usr/sbin/ntfslabel"
+#define DOSFSLABELBIN  "/usr/sbin/dosfslabel"
 
 #define FSCKBIN        "/sbin/fsck"
 #define FSCKEXT2BIN    "/sbin/fsck.ext2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/StorageInterface.h 
new/libstorage-2.25.2/storage/StorageInterface.h
--- old/libstorage-2.25.1/storage/StorageInterface.h    2013-09-25 
18:41:36.000000000 +0200
+++ new/libstorage-2.25.2/storage/StorageInterface.h    2013-10-29 
16:55:06.000000000 +0100
@@ -164,8 +164,6 @@
 
     enum Transport { TUNKNOWN, SBP, ATA, FC, ISCSI, SAS, SATA, SPI, USB, FCOE 
};
 
-    enum ImsmDriver { IMSM_UNDECIDED, IMSM_DMRAID, IMSM_MDADM };
-
     enum MultipathAutostart { MPAS_UNDECIDED, MPAS_ON, MPAS_OFF };
 
     enum PartAlign { ALIGN_OPTIMAL, ALIGN_CYLINDER };
@@ -1047,20 +1045,6 @@
                                          MdPartCoInfo& info) = 0;
 
        /**
-        * Set which driver should be used for IMSM Software RAIDs.
-        *
-        * @param driver driver to use for IMSM Software RAIDs.
-        */
-       virtual void setImsmDriver(ImsmDriver driver) = 0;
-
-        /**
-        * Query which driver is used for IMSM Software RAIDs.
-         *
-         * @return driver used for IMSM Software RAIDs.
-         */
-       virtual ImsmDriver getImsmDriver() const = 0;
-
-       /**
         * Set whether multipath should be started automatically if detected.
         *
         * @param multipath_autostart value for automatically start of 
multipath.
@@ -2825,8 +2809,9 @@
      */
     struct Environment
     {
-       Environment(bool readonly, const string& logdr="/var/log/YaST2") : 
readonly(readonly), testmode(false), autodetect(true),
-           instsys(false), logdir(logdr), testdir("tmp") 
+       Environment(bool readonly, const string& logdir = "/var/log/YaST2")
+           : readonly(readonly), testmode(false), autodetect(true),
+             instsys(false), logdir(logdir), testdir("tmp")
             {
             storage::initDefaultLogger( logdir );
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/StorageVersion.h 
new/libstorage-2.25.2/storage/StorageVersion.h
--- old/libstorage-2.25.1/storage/StorageVersion.h      2013-10-23 
08:14:46.000000000 +0200
+++ new/libstorage-2.25.2/storage/StorageVersion.h      2013-11-06 
14:12:59.000000000 +0100
@@ -24,10 +24,10 @@
 #define STORAGE_VERSION_H
 
 
-#define LIBSTORAGE_VERSION_STRING "4.0.0"
+#define LIBSTORAGE_VERSION_STRING "4.1.0"
 
 #define LIBSTORAGE_VERSION_MAJOR 4
-#define LIBSTORAGE_VERSION_MINOR 0
+#define LIBSTORAGE_VERSION_MINOR 1
 #define LIBSTORAGE_VERSION_PATCHLEVEL 0
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/SystemInfo.h 
new/libstorage-2.25.2/storage/SystemInfo.h
--- old/libstorage-2.25.1/storage/SystemInfo.h  2012-08-07 11:51:00.000000000 
+0200
+++ new/libstorage-2.25.2/storage/SystemInfo.h  2013-11-06 14:01:54.000000000 
+0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2004-2010] Novell, Inc.
+ * Copyright (c) [2004-2013] Novell, Inc.
  *
  * All Rights Reserved.
  *
@@ -60,6 +60,7 @@
        map< string, Entry > fs;
     };
 
+
     class SystemInfo : boost::noncopyable
     {
 
@@ -72,6 +73,7 @@
        const ProcParts& getProcParts() { return *procparts; }
        const ProcMounts& getProcMounts() { return *procmounts; }
        const ProcMdstat& getProcMdstat() { return *procmdstat; }
+       const MdadmExamine& getMdadmExamine(const list<string>& devices) { 
return mdadmexamines.get(devices); }
        const Blkid& getBlkid() { return *blkid; }
        const Lsscsi& getLsscsi() { return *lsscsi; }
        const Parted& getParted(const string& device) { return 
parteds.get(device); }
@@ -100,25 +102,25 @@
 
        };
 
-       template <class Type>
+       template <class Type, class Key = string>
        class LazyObjects : boost::noncopyable
        {
        public:
 
-           const Type& get(const string& s)
+           const Type& get(const Key& k)
            {
-               typename map<string, Type>::iterator pos = data.lower_bound(s);
-               if (pos == data.end() || typename map<string, 
Type>::key_compare()(s, pos->first))
+               typename map<Key, Type>::iterator pos = data.lower_bound(k);
+               if (pos == data.end() || typename map<Key, 
Type>::key_compare()(k, pos->first))
                {
-                   Type tmp(s);
-                   pos = data.insert(pos, typename map<string, 
Type>::value_type(s, tmp));
+                   Type tmp(k);
+                   pos = data.insert(pos, typename map<Key, 
Type>::value_type(k, tmp));
                }
                return pos->second;
            }
 
        private:
 
-           map<string, Type> data;
+           map<Key, Type> data;
 
        };
 
@@ -126,6 +128,7 @@
        LazyObject<ProcParts> procparts;
        LazyObject<ProcMounts> procmounts;
        LazyObject<ProcMdstat> procmdstat;
+       LazyObjects<MdadmExamine, list<string>> mdadmexamines;
        LazyObject<Blkid> blkid;
        LazyObject<Lsscsi> lsscsi;
        LazyObjects<Parted> parteds;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Utils.cc 
new/libstorage-2.25.2/storage/Utils.cc
--- old/libstorage-2.25.1/storage/Utils.cc      1970-01-01 01:00:00.000000000 
+0100
+++ new/libstorage-2.25.2/storage/Utils.cc      2013-11-06 14:08:08.000000000 
+0100
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2013 Novell, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, contact Novell, Inc.
+ *
+ * To contact Novell about this file by physical or electronic mail, you may
+ * find current contact information at www.novell.com.
+ */
+
+
+#include <string>
+
+#include "storage/SystemInfo.h"
+
+
+namespace storage
+{
+    using namespace std;
+
+
+    map<string, string>
+    DmraidToMdadm()
+    {
+       SystemInfo systeminfo;
+
+       map<string, string> ret;
+
+       const CmdDmraid& cmd_dmraid = systeminfo.getCmdDmraid();
+       for (CmdDmraid::const_iterator it1 = cmd_dmraid.begin(); it1 != 
cmd_dmraid.end(); ++it1)
+       {
+           // The name from dmraid is something like "ddf1_foo" or 
"isw_chadfejhhc_foo".
+           string::size_type pos = it1->first.rfind('_');
+           if (pos == string::npos)
+           {
+               y2err("unexpected input");
+               continue;
+           }
+           string name = string(it1->first, pos + 1);
+
+           const MdadmExamine& examine = 
systeminfo.getMdadmExamine(it1->second.devices);
+           MdadmExamine::const_iterator it2 = examine.find(name);
+           if (it2 == examine.end())
+           {
+               y2err("failed to find mdadm");
+               continue;
+           }
+
+           ret[it1->first] = it2->second.uuid;
+       }
+
+       y2mil("ret:" << ret);
+
+       return ret;
+    }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Utils.h 
new/libstorage-2.25.2/storage/Utils.h
--- old/libstorage-2.25.1/storage/Utils.h       1970-01-01 01:00:00.000000000 
+0100
+++ new/libstorage-2.25.2/storage/Utils.h       2013-10-30 16:05:59.000000000 
+0100
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2013 Novell, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, contact Novell, Inc.
+ *
+ * To contact Novell about this file by physical or electronic mail, you may
+ * find current contact information at www.novell.com.
+ */
+
+
+#ifndef UTILS_H
+#define UTILS_H
+
+
+#include <string>
+#include <map>
+
+using std::string;
+using std::map;
+
+
+namespace storage
+{
+    /**
+     * Lightweight function to get mapping from dmraid names to mdadm uuids.
+     *
+     * @return mapping from dmraid names to mdadm uuids
+     */
+    map<string, string> DmraidToMdadm();
+
+}
+
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/Volume.cc 
new/libstorage-2.25.2/storage/Volume.cc
--- old/libstorage-2.25.1/storage/Volume.cc     2013-10-14 11:17:42.000000000 
+0200
+++ new/libstorage-2.25.2/storage/Volume.cc     2013-11-06 14:09:27.000000000 
+0100
@@ -2608,6 +2608,9 @@
            case JFS:
                cmd = TUNEJFSBIN " -L " + quote(label) + " " + 
quote(mountDevice());
                break;
+           case VFAT:
+               cmd = DOSFSLABELBIN " " + quote(mountDevice()) + " " + 
quote(label);
+               break;
            case XFS:
                {
                string tlabel = label;
@@ -2660,6 +2663,7 @@
     return( ret );
     }
 
+
 int Volume::setLabel( const string& val )
     {
     int ret=0;
@@ -2672,14 +2676,20 @@
        else if (isUsedBy())
            ret = VOLUME_ALREADY_IN_USE;
        else
-           label = val;
+           {
+           if (fs == VFAT)
+               label = boost::to_upper_copy(val, locale::classic());
+           else
+               label = val;
+           }
        }
     else
        ret = VOLUME_LABEL_NOT_SUPPORTED;
     y2mil("ret:" << ret);
-    return( ret );
+    return ret;
     }
 
+
 int Volume::mount( const string& m, bool ro )
     {
     SystemCmd cmd;
@@ -3036,6 +3046,7 @@
     return( encryption==ENC_LUKS && isUsedBy(UB_LVM) );
     }
 
+
 int Volume::doFstabUpdate( bool force_rewrite )
     {
     int ret = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.25.1/storage/gen_md5sum.cc 
new/libstorage-2.25.2/storage/gen_md5sum.cc
--- old/libstorage-2.25.1/storage/gen_md5sum.cc 2013-10-22 14:22:30.000000000 
+0200
+++ new/libstorage-2.25.2/storage/gen_md5sum.cc 2013-11-06 14:09:30.000000000 
+0100
@@ -1,5 +1,5 @@
-#define SOURCES_MD5SUM   "38ced80973a5f1243c427f24349a13ed"
-#define SOURCES_MD5_DATE " Tue 22 Oct 14:22:30 CEST 2013 "
+#define SOURCES_MD5SUM   "f08edc8cad7f41871ec98002f9655cab"
+#define SOURCES_MD5_DATE " Wed 6 Nov 14:09:30 CET 2013 "
 namespace storage
 {
 const char* GetSourceMd5() { return SOURCES_MD5SUM; }

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to