Hello community,
here is the log from the commit of package libstorage for openSUSE:Factory
checked in at Sat Jul 25 18:50:50 CEST 2009.
--------
--- libstorage/libstorage.changes 2009-07-16 11:49:54.000000000 +0200
+++ libstorage/libstorage.changes 2009-07-24 16:45:08.000000000 +0200
@@ -1,0 +2,25 @@
+Fri Jul 24 16:23:46 CEST 2009 - aschnell@suse.de
+
+- work on extended block devt (fate #305584)
+- added extendedPossible to DiskInfo
+- 2.18.20
+
+-------------------------------------------------------------------
+Thu Jul 23 13:15:07 CEST 2009 - aschnell@suse.de
+
+- added minimal experimental btrfs support, esp. filesystems over
+ multiple devices are not supported (fate #306587)
+- 2.18.19
+
+-------------------------------------------------------------------
+Thu Jul 23 09:38:52 CEST 2009 - aschnell@suse.de
+
+- set ignore_fstab also for non NFS volumes not listed in
+ /etc/fstab (fate #305150)
+
+-------------------------------------------------------------------
+Fri Jul 17 12:27:17 CEST 2009 - aschnell@suse.de
+
+- run swapon with option --fixpgsz (requires util-linux 2.16)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
libstorage-2.18.18.tar.bz2
New:
----
libstorage-2.18.20.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libstorage.spec ++++++
--- /var/tmp/diff_new_pack.5fcbDW/_old 2009-07-25 18:50:06.000000000 +0200
+++ /var/tmp/diff_new_pack.5fcbDW/_new 2009-07-25 18:50:06.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package libstorage (Version 2.18.18)
+# spec file for package libstorage (Version 2.18.20)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,7 +19,7 @@
Name: libstorage
-Version: 2.18.18
+Version: 2.18.20
Release: 1
License: GPL
Group: System/Libraries
@@ -28,7 +28,11 @@
Source1: libstorage-rpmlintrc
Prefix: /usr
BuildRequires: blocxx-devel boost-devel dejagnu doxygen gcc-c++ python-devel swig
-Requires: parted mdadm lvm2 dmraid multipath-tools cryptsetup kpartx
+Requires: parted mdadm device-mapper lvm2 dmraid multipath-tools cryptsetup
+Requires: coreutils udev util-linux >= 2.16 grep
+%ifarch s390 s390x
+Requires: s390-tools
+%endif
PreReq: %fillup_prereq
Obsoletes: yast2-storage-lib
Provides: yast2-storage-lib
++++++ libstorage-2.18.18.tar.bz2 -> libstorage-2.18.20.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/VERSION new/libstorage-2.18.20/VERSION
--- old/libstorage-2.18.18/VERSION 2009-07-16 10:54:55.000000000 +0200
+++ new/libstorage-2.18.20/VERSION 2009-07-24 16:23:34.000000000 +0200
@@ -1 +1 @@
-2.18.18
+2.18.20
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/bindings/python/libstorage.py new/libstorage-2.18.20/bindings/python/libstorage.py
--- old/libstorage-2.18.18/bindings/python/libstorage.py 2009-06-16 13:01:39.000000000 +0200
+++ new/libstorage-2.18.20/bindings/python/libstorage.py 2009-07-24 16:20:02.000000000 +0200
@@ -81,6 +81,7 @@
EXT2 = _libstorage.EXT2
EXT3 = _libstorage.EXT3
EXT4 = _libstorage.EXT4
+BTRFS = _libstorage.BTRFS
VFAT = _libstorage.VFAT
XFS = _libstorage.XFS
JFS = _libstorage.JFS
@@ -269,12 +270,15 @@
__swig_setmethods__["udevId"] = _libstorage.DiskInfo_udevId_set
__swig_getmethods__["udevId"] = _libstorage.DiskInfo_udevId_get
if _newclass:udevId = _swig_property(_libstorage.DiskInfo_udevId_get, _libstorage.DiskInfo_udevId_set)
- __swig_setmethods__["maxLogical"] = _libstorage.DiskInfo_maxLogical_set
- __swig_getmethods__["maxLogical"] = _libstorage.DiskInfo_maxLogical_get
- if _newclass:maxLogical = _swig_property(_libstorage.DiskInfo_maxLogical_get, _libstorage.DiskInfo_maxLogical_set)
__swig_setmethods__["maxPrimary"] = _libstorage.DiskInfo_maxPrimary_set
__swig_getmethods__["maxPrimary"] = _libstorage.DiskInfo_maxPrimary_get
if _newclass:maxPrimary = _swig_property(_libstorage.DiskInfo_maxPrimary_get, _libstorage.DiskInfo_maxPrimary_set)
+ __swig_setmethods__["extendedPossible"] = _libstorage.DiskInfo_extendedPossible_set
+ __swig_getmethods__["extendedPossible"] = _libstorage.DiskInfo_extendedPossible_get
+ if _newclass:extendedPossible = _swig_property(_libstorage.DiskInfo_extendedPossible_get, _libstorage.DiskInfo_extendedPossible_set)
+ __swig_setmethods__["maxLogical"] = _libstorage.DiskInfo_maxLogical_set
+ __swig_getmethods__["maxLogical"] = _libstorage.DiskInfo_maxLogical_get
+ if _newclass:maxLogical = _swig_property(_libstorage.DiskInfo_maxLogical_get, _libstorage.DiskInfo_maxLogical_set)
__swig_setmethods__["initDisk"] = _libstorage.DiskInfo_initDisk_set
__swig_getmethods__["initDisk"] = _libstorage.DiskInfo_initDisk_get
if _newclass:initDisk = _swig_property(_libstorage.DiskInfo_initDisk_get, _libstorage.DiskInfo_initDisk_set)
@@ -434,6 +438,9 @@
__swig_setmethods__["usedByDevice"] = _libstorage.VolumeInfo_usedByDevice_set
__swig_getmethods__["usedByDevice"] = _libstorage.VolumeInfo_usedByDevice_get
if _newclass:usedByDevice = _swig_property(_libstorage.VolumeInfo_usedByDevice_get, _libstorage.VolumeInfo_usedByDevice_set)
+ __swig_setmethods__["ignore_fstab"] = _libstorage.VolumeInfo_ignore_fstab_set
+ __swig_getmethods__["ignore_fstab"] = _libstorage.VolumeInfo_ignore_fstab_get
+ if _newclass:ignore_fstab = _swig_property(_libstorage.VolumeInfo_ignore_fstab_get, _libstorage.VolumeInfo_ignore_fstab_set)
__swig_setmethods__["fstab_options"] = _libstorage.VolumeInfo_fstab_options_set
__swig_getmethods__["fstab_options"] = _libstorage.VolumeInfo_fstab_options_get
if _newclass:fstab_options = _swig_property(_libstorage.VolumeInfo_fstab_options_get, _libstorage.VolumeInfo_fstab_options_set)
@@ -1167,6 +1174,7 @@
def removePartition(*args): return _libstorage.StorageInterface_removePartition(*args)
def changePartitionId(*args): return _libstorage.StorageInterface_changePartitionId(*args)
def forgetChangePartitionId(*args): return _libstorage.StorageInterface_forgetChangePartitionId(*args)
+ def getPartitionName(*args): return _libstorage.StorageInterface_getPartitionName(*args)
def getUnusedPartitionSlots(*args): return _libstorage.StorageInterface_getUnusedPartitionSlots(*args)
def destroyPartitionTable(*args): return _libstorage.StorageInterface_destroyPartitionTable(*args)
def initializeDisk(*args): return _libstorage.StorageInterface_initializeDisk(*args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/doc/autodocs/Makefile.am new/libstorage-2.18.20/doc/autodocs/Makefile.am
--- old/libstorage-2.18.18/doc/autodocs/Makefile.am 2009-06-16 12:57:48.000000000 +0200
+++ new/libstorage-2.18.20/doc/autodocs/Makefile.am 2009-07-21 16:29:32.000000000 +0200
@@ -4,7 +4,7 @@
htmldir = $(docdir)/autodocs
-html_DATA = index.html $(filter-out index.html, $(wildcard *.html *.png))
+html_DATA = index.html $(filter-out index.html, $(wildcard *.html *.css *.png *.gif))
index.html: $(srcdir)/../../storage/*.h
doxygen doxygen.conf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/doc/autodocs/Makefile.in new/libstorage-2.18.20/doc/autodocs/Makefile.in
--- old/libstorage-2.18.18/doc/autodocs/Makefile.in 2009-07-16 11:48:42.000000000 +0200
+++ new/libstorage-2.18.20/doc/autodocs/Makefile.in 2009-07-24 16:28:20.000000000 +0200
@@ -182,7 +182,7 @@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-html_DATA = index.html $(filter-out index.html, $(wildcard *.html *.png))
+html_DATA = index.html $(filter-out index.html, $(wildcard *.html *.css *.png *.gif))
CLEANFILES = $(html_DATA) doxygen.log installdox
EXTRA_DIST = doxygen.conf
all: all-am
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/examples/TestProbing.cc new/libstorage-2.18.20/examples/TestProbing.cc
--- old/libstorage-2.18.18/examples/TestProbing.cc 2009-06-16 12:57:48.000000000 +0200
+++ new/libstorage-2.18.20/examples/TestProbing.cc 2009-07-24 16:21:39.000000000 +0200
@@ -56,6 +56,7 @@
case EXT2: cout << "EXT2"; break;
case EXT3: cout << "EXT3"; break;
case EXT4: cout << "EXT4"; break;
+ case BTRFS: cout << "BTRFS"; break;
case VFAT: cout << "VFAT"; break;
case XFS: cout << "XFS"; break;
case JFS: cout << "JFS"; break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/libstorage.spec.in new/libstorage-2.18.20/libstorage.spec.in
--- old/libstorage-2.18.18/libstorage.spec.in 2009-07-11 09:35:16.000000000 +0200
+++ new/libstorage-2.18.20/libstorage.spec.in 2009-07-21 16:29:32.000000000 +0200
@@ -16,7 +16,11 @@
BuildRequires: gcc-c++ boost-devel blocxx-devel doxygen dejagnu python-devel swig
-Requires: parted mdadm lvm2 dmraid multipath-tools cryptsetup kpartx
+Requires: parted mdadm device-mapper lvm2 dmraid multipath-tools cryptsetup
+Requires: coreutils udev util-linux >= 2.16 grep
+%ifarch s390 s390x
+Requires: s390-tools
+%endif
PreReq: %fillup_prereq
Obsoletes: yast2-storage-lib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/storage/Disk.cc new/libstorage-2.18.20/storage/Disk.cc
--- old/libstorage-2.18.18/storage/Disk.cc 2009-07-16 11:11:11.000000000 +0200
+++ new/libstorage-2.18.20/storage/Disk.cc 2009-07-24 16:14:46.000000000 +0200
@@ -254,50 +254,105 @@
return( ret );
}
-bool Disk::getSysfsInfo( const string& SysfsDir )
+
+ bool
+ Disk::getSysfsInfo(const string& sysfsdir, SysfsInfo& sysfsinfo)
{
- bool ret = true;
- sysfs_dir = SysfsDir;
- y2mil("sysfs_dir:" << sysfs_dir);
- string SysfsFile = sysfs_dir+"/range";
- if( access( SysfsFile.c_str(), R_OK )==0 )
+ bool ret = true;
+
+ string sysfsfile = sysfsdir + "/dev";
+ if (access(sysfsfile.c_str(), R_OK) == 0)
{
- ifstream File( SysfsFile.c_str() );
- classic(File);
- File >> range;
- if( range<=1 ) ret = false;
+ ifstream file(sysfsfile.c_str());
+ classic(file);
+ char c;
+ file >> sysfsinfo.mjr >> c >> sysfsinfo.mnr;
}
- else
+ else
{
- ret = false;
+ ret = false;
}
- SysfsFile = sysfs_dir+"/dev";
- if( access( SysfsFile.c_str(), R_OK )==0 )
+
+ sysfsfile = sysfsdir + "/device";
+ if (!readlink(sysfsfile, sysfsinfo.device))
{
- ifstream File( SysfsFile.c_str() );
- classic(File);
- char c;
- File >> mjr;
- File >> c;
- File >> mnr;
+ ret = false;
}
- else
+
+ sysfsfile = sysfsdir + "/range";
+ if (access(sysfsfile.c_str(), R_OK) == 0)
{
- ret = false;
+ ifstream file(sysfsfile.c_str());
+ classic(file);
+ file >> sysfsinfo.range;
}
- SysfsFile = sysfs_dir+"/device";
- string lname;
- if (access(SysfsFile.c_str(), R_OK) == 0 && readlink(SysfsFile, lname))
+ else
{
- if( lname.find( "/session" )!=string::npos )
- iscsi = true;
- y2mil("lname:" << lname);
+ ret = false;
}
- y2mil("Ret:" << ret << " Range:" << range << " Major:" << mjr << " Minor:" << mnr <<
- " iSCSI:" << iscsi);
- return( ret );
+
+ sysfsfile = sysfsdir + "/ext_range";
+ if (access(sysfsfile.c_str(), R_OK) == 0)
+ {
+ ifstream file(sysfsfile.c_str());
+ classic(file);
+ file >> sysfsinfo.range;
+ }
+
+ sysfsfile = sysfsdir + "/size";
+ if (access(sysfsfile.c_str(), R_OK) == 0)
+ {
+ ifstream file(sysfsfile.c_str());
+ classic(file);
+ file >> sysfsinfo.size;
+ }
+ else
+ {
+ ret = false;
+ }
+
+ y2mil("sysfsdir:" << sysfsdir << " ret:" << ret);
+
+ if (ret)
+ y2mil("mjr:" << sysfsinfo.mjr << " mnr:" << sysfsinfo.mnr << " device:" <<
+ sysfsinfo.device << " range:" << sysfsinfo.range << " size:" << sysfsinfo.size);
+
+ return ret;
}
+
+ bool
+ Disk::getSysfsInfo(const string& SysfsDir)
+ {
+ bool ret = true;
+ sysfs_dir = SysfsDir;
+ y2mil("sysfs_dir:" << sysfs_dir);
+
+ SysfsInfo sysfsinfo;
+ if (getSysfsInfo(sysfs_dir, sysfsinfo))
+ {
+ range = sysfsinfo.range;
+ if (range <= 1)
+ ret = false;
+
+ mjr = sysfsinfo.mjr;
+ mnr = sysfsinfo.mnr;
+
+ if (boost::contains(sysfsinfo.device, "/session"))
+ iscsi = true;
+ }
+ else
+ {
+ ret = false;
+ }
+
+ y2mil("ret:" << ret << " range:" << range << " major:" << mjr << " minor:" << mnr <<
+ " iscsi:" << iscsi);
+
+ return ret;
+ }
+
+
void Disk::getGeometry( const string& line, unsigned long& c, unsigned& h,
unsigned& s )
{
@@ -468,32 +523,27 @@
}
-void
-Disk::setLabelData( const string& disklabel )
+ void
+ Disk::setLabelData(const string& disklabel)
{
- y2mil("disklabel:" << disklabel);
- int i=0;
- while( !labels[i].name.empty() && labels[i].name!=disklabel )
- {
- i++;
+ y2mil("disklabel:" << disklabel);
+ DlabelCapabilities caps;
+ if (getDlabelCapabilities(disklabel, caps))
+ {
+ max_primary = min(caps.maxPrimary, (unsigned)(range - 1));
+ ext_possible = caps.extendedPossible;
+ max_logical = min(caps.maxLogical, (unsigned)(range - 1));
+ label = disklabel;
}
- if( labels[i].name.empty() )
+ else
{
- y2err("unknown disklabel " << disklabel);
- ext_possible = false;
- max_primary = 0;
- max_logical = 0;
- label = "unsupported";
- }
- else
- {
- ext_possible = labels[i].extended;
- max_primary = min(labels[i].primary,unsigned(range-1));
- max_logical = min(labels[i].logical,unsigned(range-1));
- label = labels[i].name;
+ max_primary = 0;
+ ext_possible = false;
+ max_logical = 0;
+ label = "unsupported";
}
- y2mil("name:" << label << " ext:" << ext_possible << " primary:" << max_logical <<
- " logical:" << max_logical);
+ y2mil("label:" << label << " max_primary:" << max_logical << " ext_possible:" <<
+ ext_possible << " max_logical:" << max_logical);
}
@@ -2582,8 +2632,9 @@
info.sectors = sectors();
info.cylSize = cylSizeB();
info.disklabel = labelName();
- info.maxLogical = maxLogical();
info.maxPrimary = maxPrimary();
+ info.extendedPossible = extendedPossible();
+ info.maxLogical = maxLogical();
info.initDisk = init_disk;
info.iscsi = iscsi;
info.udevPath = udev_path;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/storage/Disk.h new/libstorage-2.18.20/storage/Disk.h
--- old/libstorage-2.18.18/storage/Disk.h 2009-06-16 12:57:48.000000000 +0200
+++ new/libstorage-2.18.20/storage/Disk.h 2009-07-24 14:08:21.000000000 +0200
@@ -112,6 +112,17 @@
static bool getDlabelCapabilities(const string& dlabel,
storage::DlabelCapabilities& dlabelcapabilities);
+ struct SysfsInfo
+ {
+ unsigned long mjr;
+ unsigned long mnr;
+ string device;
+ unsigned long range;
+ unsigned long long size;
+ };
+
+ static bool getSysfsInfo(const string& sysfsdir, SysfsInfo& sysfsinfo);
+
protected:
// iterators over partitions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/storage/Dm.cc new/libstorage-2.18.20/storage/Dm.cc
--- old/libstorage-2.18.18/storage/Dm.cc 2009-06-16 12:57:48.000000000 +0200
+++ new/libstorage-2.18.20/storage/Dm.cc 2009-07-21 16:29:32.000000000 +0200
@@ -445,10 +445,10 @@
c.execute(DMSETUPBIN " version");
if( c.retcode()!=0 )
{
- c.execute("grep \"^dm[-_]mod[ \t]\" /proc/modules");
+ c.execute(GREPBIN " \"^dm[-_]mod[ \t]\" /proc/modules");
if( c.numLines()<=0 )
c.execute(MODPROBEBIN " dm-mod");
- c.execute("grep \"^dm[-_]snapshot[ \t]\" /proc/modules");
+ c.execute(GREPBIN " \"^dm[-_]snapshot[ \t]\" /proc/modules");
if( c.numLines()<=0 )
c.execute(MODPROBEBIN " dm-snapshot");
c.execute("/sbin/devmap_mknod.sh");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.18.18/storage/Storage.cc new/libstorage-2.18.20/storage/Storage.cc
--- old/libstorage-2.18.18/storage/Storage.cc 2009-07-16 10:39:17.000000000 +0200
+++ new/libstorage-2.18.20/storage/Storage.cc 2009-07-24 13:51:33.000000000 +0200
@@ -276,7 +276,7 @@
if( instsys() )
{
- SystemCmd c( "grep ^md.*dm- /proc/mdstat" );
+ SystemCmd c(GREPBIN "^md.*dm- /proc/mdstat");
SystemCmd rm;
for( unsigned i=0; i