Hello community,

here is the log from the commit of package libstorage for openSUSE:12.1 checked 
in at 2011-11-05 11:20:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1/libstorage (Old)
 and      /work/SRC/openSUSE:12.1/.libstorage.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libstorage", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:12.1/libstorage/libstorage.changes       2011-11-02 
11:59:16.000000000 +0100
+++ /work/SRC/openSUSE:12.1/.libstorage.new/libstorage.changes  2011-11-05 
11:49:28.000000000 +0100
@@ -1,0 +2,8 @@
+Thu Nov  3 10:55:36 CET 2011  - [email protected]
+
+- 2.21.14
+- fix fstab handling when mount-by-uuid is reformatted (bnc#728000)
+- add local static struct to getContVolInfo to prevent strings 
+  from being freed while perl interface might still access them 
+
+-------------------------------------------------------------------

Old:
----
  libstorage-2.21.13.tar.bz2

New:
----
  libstorage-2.21.14.tar.bz2

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

Other differences:
------------------
++++++ libstorage.spec ++++++
--- /var/tmp/diff_new_pack.tvuaOH/_old  2011-11-05 11:49:28.000000000 +0100
+++ /var/tmp/diff_new_pack.tvuaOH/_new  2011-11-05 11:49:28.000000000 +0100
@@ -19,7 +19,7 @@
 
 
 Name:           libstorage
-Version:        2.21.13
+Version:        2.21.14
 Release:        0
 License:        GPL
 Group:          System/Libraries

++++++ libstorage-2.21.13.tar.bz2 -> libstorage-2.21.14.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.21.13/VERSION 
new/libstorage-2.21.14/VERSION
--- old/libstorage-2.21.13/VERSION      2011-10-31 18:46:39.000000000 +0100
+++ new/libstorage-2.21.14/VERSION      2011-11-03 16:49:19.000000000 +0100
@@ -1 +1 @@
-2.21.13
+2.21.14
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.21.13/storage/Storage.cc 
new/libstorage-2.21.14/storage/Storage.cc
--- old/libstorage-2.21.13/storage/Storage.cc   2011-10-25 16:24:38.000000000 
+0200
+++ new/libstorage-2.21.14/storage/Storage.cc   2011-11-03 10:40:00.000000000 
+0100
@@ -5079,10 +5079,11 @@
 int
 Storage::getContVolInfo(const string& device, ContVolInfo& info)
     {
+    static ContVolInfo s_info; // workaround for broken ycp bindings
     int ret = STORAGE_VOLUME_NOT_FOUND;
     ConstContIterator c;
     ConstVolIterator v;
-    info.ctype = CUNKNOWN;
+    s_info.ctype = CUNKNOWN;
     assertInit();
     if (findVolume(device, c, v))
        {
@@ -5095,23 +5096,24 @@
                findVolume(b->device(), c, v, true);
                }
            }
-       info.ctype = c->type();
-       info.cname = c->name();
-       info.cdevice = c->device();
-       info.vname = v->name();
-       info.vdevice = v->device();
+       s_info.ctype = c->type();
+       s_info.cname = c->name();
+       s_info.cdevice = c->device();
+       s_info.vname = v->name();
+       s_info.vdevice = v->device();
        if( v->isNumeric() )
-           info.num = v->nr();
+           s_info.num = v->nr();
        }
     else if (findContainer(device, c))
     {
        ret = 0;
-       info.ctype = c->type();
-       info.cname = c->name();
-       info.cdevice = c->device();
-       info.vname = "";
-       info.vdevice = "";
+       s_info.ctype = c->type();
+       s_info.cname = c->name();
+       s_info.cdevice = c->device();
+       s_info.vname = "";
+       s_info.vdevice = "";
     }
+    info = s_info;
     y2mil("device:" << device << " ret:" << ret << " cname:" << info.cname <<
          " vname:" << info.vname);
     return ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.21.13/storage/Volume.cc 
new/libstorage-2.21.14/storage/Volume.cc
--- old/libstorage-2.21.13/storage/Volume.cc    2011-10-26 14:08:29.000000000 
+0200
+++ new/libstorage-2.21.14/storage/Volume.cc    2011-11-03 13:42:51.000000000 
+0100
@@ -539,9 +539,7 @@
 
                if (!entry.fs_uuid.empty())
                {
-                   uuid = entry.fs_uuid;
-                   alt_names.remove_if(string_contains("/by-uuid/"));
-                   alt_names.push_back("/dev/disk/by-uuid/" + uuid);
+                   updateUuid(entry.fs_uuid);
                }
 
                if (!entry.fs_label.empty())
@@ -917,6 +915,13 @@
     return( ret );
     }
 
+void Volume::updateUuid( const string& new_uuid )
+    {
+    uuid = new_uuid;
+    alt_names.remove_if(string_contains("/by-uuid/"));
+    alt_names.push_back("/dev/disk/by-uuid/" + uuid);
+    }
+
 int Volume::doFormat()
     {
     static int fcount=1000;
@@ -1084,6 +1089,10 @@
     if( ret==0 )
        {
        triggerUdevUpdate();
+       Blkid blkid(mountDevice());
+       Blkid::Entry entry;
+       if( findBlkid( blkid, entry ) && entry.is_fs && !entry.fs_uuid.empty())
+           updateUuid( entry.fs_uuid );
        }
     if( ret==0 && !orig_mp.empty() )
        {
@@ -2735,6 +2744,7 @@
        else if( l )
            ret = l->loopFile();
        }
+    y2mil( "dev:" << dev << " ret:" << ret );
     return( ret );
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-2.21.13/storage/Volume.h 
new/libstorage-2.21.14/storage/Volume.h
--- old/libstorage-2.21.13/storage/Volume.h     2011-08-09 13:37:05.000000000 
+0200
+++ new/libstorage-2.21.14/storage/Volume.h     2011-11-03 13:43:23.000000000 
+0100
@@ -218,6 +218,7 @@
        void getLoopData( SystemCmd& loopData );
        void getMountData(const ProcMounts& mounts, bool swap_only = false);
        void getFstabData( EtcFstab& fstabData );
+       void updateUuid( const string& new_uuid );
        void replaceAltName( const string& prefix, const string& newn );
        string getMountByString() const;
        string getFstabDevice() const;

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

Reply via email to