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