Hello community,
here is the log from the commit of package yast2-storage for openSUSE:Factory checked in at 2012-03-20 12:04:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-storage (Old)
and /work/SRC/openSUSE:Factory/.yast2-storage.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-storage", Maintainer is "ASchnell@suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-storage/yast2-storage.changes 2011-12-07 14:40:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-storage.new/yast2-storage.changes 2012-03-20 12:04:31.000000000 +0100
@@ -1,0 +2,63 @@
+Tue Mar 13 15:15:28 CET 2012 - fehr@suse.de
+
+- warn about slowness when resizing mounted fs by more than 50Gig
+ (bnc#749946)
+- 2.22.1
+
+-------------------------------------------------------------------
+Mon Mar 05 11:30:46 CET 2012 - aschnell@suse.de
+
+- allow equal-sign "=" in passwords (bnc#750306)
+
+-------------------------------------------------------------------
+Wed Jan 25 12:20:53 CET 2012 - fehr@suse.de
+
+- allow resize and move of simple btrfs volumes if they are
+ formatted anyway (bnc#742491)
+- fix bug handling used devices of simple btrfs volumes in resize
+
+-------------------------------------------------------------------
+Tue Jan 24 14:15:29 CET 2012 - aschnell@suse.de
+
+- do not query user to autostart multipath in AutoYaST (bnc#742913)
+
+-------------------------------------------------------------------
+Tue Jan 24 13:52:45 CET 2012 - fehr@suse.de
+
+- ensure default mountby uuid for btrfs in all cases
+- prevent display of outdated data with simple btrfs volumes
+
+-------------------------------------------------------------------
+Thu Jan 19 10:52:02 GMT 2012 - aschnell@suse.de
+
+- improved layout for small screens (bnc#740006)
+
+-------------------------------------------------------------------
+Tue Jan 10 18:59:52 CET 2012 - fehr@suse.de
+
+- fix parsing problem with old style size values (e.g. 10G instead
+ of 10GB) (bnc#740560)
+
+-------------------------------------------------------------------
+Mon Jan 9 16:39:46 CET 2012 - fehr@suse.de
+
+- fix missing /boot partition in proposal (bnc#739091)
+- do not enforce subvolumes to start with "@/" on openSuSE
+ (bnc#738542)
+
+-------------------------------------------------------------------
+Tue Jan 03 11:59:51 CET 2012 - aschnell@suse.de
+
+- removed generating fstab entries for ZIP drives
+
+-------------------------------------------------------------------
+Wed Dec 21 12:04:31 CET 2011 - aschnell@suse.de
+
+- handle FBA DASD with parted instead of fdasd (bnc#584703)
+
+-------------------------------------------------------------------
+Tue Dec 20 14:08:55 CET 2011 - fehr@suse.de
+
+- fix proposal to reuse also larger root filesystems (bnc#727362)
+
+-------------------------------------------------------------------
Old:
----
yast2-storage-2.22.0.tar.bz2
New:
----
yast2-storage-2.22.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-storage.spec ++++++
--- /var/tmp/diff_new_pack.bFfUFB/_old 2012-03-20 12:04:33.000000000 +0100
+++ /var/tmp/diff_new_pack.bFfUFB/_new 2012-03-20 12:04:33.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package yast2-storage
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
Name: yast2-storage
-Version: 2.22.0
+Version: 2.22.1
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -26,7 +26,7 @@
Group: System/YaST
License: GPL-2.0+
-BuildRequires: blocxx-devel boost-devel gcc-c++ libtool libxcrypt-devel openssl-devel sablot swig
+BuildRequires: blocxx-devel boost-devel gcc-c++ libtool openssl-devel sablot swig
BuildRequires: docbook-xsl-stylesheets doxygen libxslt perl-XML-Writer sgml-skel update-desktop-files
BuildRequires: libstorage-devel >= 2.21.11 yast2 >= 2.19.4 yast2-core-devel >= 2.18.1 yast2-devtools
BuildRequires: yast2-perl-bindings yast2-testsuite >= 2.19.0
++++++ yast2-storage-2.22.0.tar.bz2 -> yast2-storage-2.22.1.tar.bz2 ++++++
++++ 5893 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/VERSION new/yast2-storage-2.22.1/VERSION
--- old/yast2-storage-2.22.0/VERSION 2011-11-15 15:03:04.000000000 +0100
+++ new/yast2-storage-2.22.1/VERSION 2012-03-16 16:16:25.000000000 +0100
@@ -1 +1 @@
-2.22.0
+2.22.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/configure.in new/yast2-storage-2.22.1/configure.in
--- old/yast2-storage-2.22.0/configure.in 2011-12-06 17:21:23.000000000 +0100
+++ new/yast2-storage-2.22.1/configure.in 2012-03-16 16:17:08.000000000 +0100
@@ -3,7 +3,7 @@
dnl -- This file is generated by y2autoconf 2.21.6 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(yast2-storage, 2.22.0, http://bugs.opensuse.org/, yast2-storage)
+AC_INIT(yast2-storage, 2.22.1, http://bugs.opensuse.org/, yast2-storage)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -18,7 +18,7 @@
AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
dnl Important YaST2 variables
-VERSION="2.22.0"
+VERSION="2.22.1"
RPMNAME="yast2-storage"
MAINTAINER="Arvin Schnell "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/include/custom_part_dialogs.ycp new/yast2-storage-2.22.1/storage/src/include/custom_part_dialogs.ycp
--- old/yast2-storage-2.22.0/storage/src/include/custom_part_dialogs.ycp 2011-11-18 15:27:09.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/include/custom_part_dialogs.ycp 2012-01-10 10:01:00.000000000 +0100
@@ -16,7 +16,7 @@
*
*************************************************************
- $Id: custom_part_dialogs.ycp 66875 2011-11-18 14:27:06Z aschnell $
+ $Id: custom_part_dialogs.ycp 67130 2012-01-09 15:41:07Z fehr $
*/
{
@@ -1401,15 +1401,17 @@
if( ret == `add )
{
string pth = (string)UI::QueryWidget( `id(`new_path), `Value );
- y2milestone( "SubvolHandling add path:%1", pth );
+ string svtmp = FileSystems::default_subvol + "/";
+ y2milestone( "SubvolHandling add path:%1 svtmp:%2", pth, svtmp );
y2milestone( "SubvolHandling names:%1", SubvolNames( new ) );
if( pth==nil || size(pth)==0 )
Popup::Message(_("Empty subvolume name not allowed."));
- else if( substring( pth, 0, 2 )!="@/" )
+ else if( size(FileSystems::default_subvol)>0 &&
+ substring( pth, 0, size(svtmp) )!=svtmp )
{
- Popup::Message( _("Only subvolume names starting with \"@/\" currently allowed!
-Automatically prepending \"@/\" to name of subvolume."));
- pth = "@/" + pth;
+ string tmp = sformat( _("Only subvolume names starting with \"%1\" currently allowed!
+Automatically prepending \"%1\" to name of subvolume."), svtmp );
+ Popup::Message( tmp );
}
if( contains( SubvolNames( new ), pth ))
Popup::Message(sformat(_("Subvolume name %1 already exists."),pth));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/include/ep-all.ycp new/yast2-storage-2.22.1/storage/src/include/ep-all.ycp
--- old/yast2-storage-2.22.0/storage/src/include/ep-all.ycp 2011-11-18 15:20:06.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/include/ep-all.ycp 2012-02-24 12:30:38.000000000 +0100
@@ -52,6 +52,11 @@
list<term> configs = [];
+ if (true) {
+ // menu entry text
+ configs = add(configs, `item(`id(`cryptpwd), `icon("yast-encrypted"), _("Provide Crypt &Passwords...")));
+ }
+
if (IsAvailable("iscsi-client")) {
// menu entry text
configs = add(configs, `item(`id(`iscsi), `icon("yast-iscsi-client"), _("Configure &iSCSI...")));
@@ -60,15 +65,19 @@
if (true) {
// menu entry text
configs = add(configs, `item(`id(`multipath), `icon("yast-iscsi-server"), _("Configure &Multipath...")));
- // menu entry text
- configs = add(configs, `item(`id(`cryptpwd), `icon("yast-encrypted"), _("Provide Crypt &Passwords...")));
}
- if (Arch::s390() && IsAvailable("s390")) {
+ if (Arch::s390() && IsAvailable("dasd")) {
// menu entry text
- configs = add(configs, `item(`id(`dasd), `icon("yast-dasd"), _("Configure &DASD...")));
+ configs = add(configs, `item(`id(`dasd), `icon("yast-dasd"), _("Configure &DASD...")));
+ }
+
+ if (Arch::s390() && IsAvailable("zfcp")) {
// menu entry text
- configs = add(configs, `item(`id(`zfcp), `icon("yast-zfcp"), _("Configure &zFCP...")));
+ configs = add(configs, `item(`id(`zfcp), `icon("yast-zfcp"), _("Configure &zFCP...")));
+ }
+
+ if (Arch::s390() && IsAvailable("xpram")) {
// menu entry text
configs = add(configs, `item(`id(`xpram), `icon("yast-xpram"), _("Configure &XPRAM...")));
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/include/ep-btrfs-dialogs.ycp new/yast2-storage-2.22.1/storage/src/include/ep-btrfs-dialogs.ycp
--- old/yast2-storage-2.22.0/storage/src/include/ep-btrfs-dialogs.ycp 2011-11-18 15:20:06.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/include/ep-btrfs-dialogs.ycp 2012-01-25 12:28:28.000000000 +0100
@@ -69,7 +69,7 @@
y2milestone( "GetPossibleVols parts:%1", devmap["partitions"]:[] );
list<map> parts =
filter( map part, devmap["partitions"]:[],
- ``( size(part["mount"]:"")==0 &&
+ ``( (size(part["mount"]:"")==0 || part["used_by_type"]:`UB_NONE==`UB_BTRFS) &&
!contains( types_no, part["type"]:`primary ) &&
contains(allowed_enc_types, part["enc_type"]:`none) &&
(!Storage::IsUsedBy(part) || part["used_by_type"]:`UB_NONE==`UB_BTRFS) &&
@@ -131,14 +131,14 @@
{
y2milestone("MiniWorkflowStepResizeVolume data:%1", data);
- string vgname = data["name"]:"error";
list<string> pvs_new = [];
list<symbol> fields = StorageSettings::FilterTable([ `device, `udev_path, `udev_id, `size, `encrypted, `type ]);
- map target_map = Storage::GetTargetMap();
- list<map> unused_pvs = filter(map pv, GetPossibleVols(target_map), { return !Storage::IsUsedBy(pv); });
- list<map> used_pvs = filter(map pv, GetPossibleVols(target_map), { return pv["used_by_device"]:"" == data["uuid"]:""; });
+ list<map> poss_pvs = GetPossibleVols(Storage::GetTargetMap());
+ y2milestone( "MiniWorkflowStepResizeVolume poss:%1", maplist( map pv, poss_pvs, ``( [ pv["device"]:"", pv["used_by_device"]:"" ])));
+ list<map> unused_pvs = filter(map pv, poss_pvs, ``(pv["used_by_type"]:`UB_NONE==`UB_NONE));
+ list<map> used_pvs = filter(map pv, poss_pvs, ``(pv["used_by_device"]:""==data["uuid"]:""));
term contents = `VBox();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/include/ep-dialogs.ycp new/yast2-storage-2.22.1/storage/src/include/ep-dialogs.ycp
--- old/yast2-storage-2.22.0/storage/src/include/ep-dialogs.ycp 2011-11-18 15:20:06.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/include/ep-dialogs.ycp 2012-03-13 16:45:06.000000000 +0100
@@ -637,6 +637,7 @@
map possible = Storage::IsResizable(data);
+ y2milestone( "DlgResize data: %1", data );
if (!data["format"]:false && !possible["shrink"]:false && !possible["extend"]:false)
{
// popup text
@@ -770,6 +771,7 @@
UI::ChangeWidget(`id(`custom_size_input), `Value, Storage::KByteToHumanString(size_k));
symbol widget = nil;
+ boolean asked_big_resize = false;
integer old_size_k = size_k;
@@ -836,7 +838,8 @@
boolean lvm = data["type"]:`unknown == `lvm;
//1 - ask & be interactive, 2 - we are on lvm, 3 - cyl.diff, 4 - filesystem, 5 - mountpoint
- if (!CheckResizePossible(false, lvm, size_k - old_size_k, used_fs, mountpoint))
+ if (!data["format"]:false &&
+ !CheckResizePossible(false, lvm, size_k - old_size_k, used_fs, mountpoint))
{
//FIXME: To check whether the part. can be resized only
//after user tries to do that is stupid - in some cases
@@ -847,6 +850,25 @@
continue;
}
+ if (!data["format"]:false && size(mountpoint)>0 &&
+ contains( [`ext2, `ext3, `ext4], used_fs ) &&
+ !asked_big_resize && size_k-old_size_k >= 1024*1024*50 )
+ {
+ asked_big_resize = true;
+ string txt = sformat(
+_("You are extending a mounted filesystem by %1 Gigabyte.
+This may be quite slow and can take hours. You might possibly want
+to consider umounting the filesystem, which will increase speed of
+resize task a lot."), (size_k-old_size_k)/(1024*1024) );
+ boolean answ = Popup::YesNo( txt );
+ y2milestone("ResizeDlg big_resize_while_mounted ret:%1", answ );
+ if( answ )
+ {
+ widget = `again;
+ continue;
+ }
+ }
+
switch (data["type"]:`unknown)
{
case `primary:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/include/ep-hd-lib.ycp new/yast2-storage-2.22.1/storage/src/include/ep-hd-lib.ycp
--- old/yast2-storage-2.22.0/storage/src/include/ep-hd-lib.ycp 2011-12-06 11:13:31.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/include/ep-hd-lib.ycp 2011-12-21 12:41:55.000000000 +0100
@@ -32,8 +32,12 @@
string default_label = Storage::DefaultDiskLabel(disk_device);
list<string> labels = [ default_label ];
- if (!contains(labels, "gpt"))
- labels = add(labels, "gpt");
+
+ if (default_label != "dasd")
+ {
+ if (!contains(labels, "gpt"))
+ labels = add(labels, "gpt");
+ }
string label = default_label;
if (size(labels) > 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/include/ep-hd.ycp new/yast2-storage-2.22.1/storage/src/include/ep-hd.ycp
--- old/yast2-storage-2.22.0/storage/src/include/ep-hd.ycp 2011-11-18 15:20:06.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/include/ep-hd.ycp 2012-02-20 13:54:46.000000000 +0100
@@ -325,13 +325,10 @@
list<term> expert_cmds = [];
- if (!String::StartsWith(device, "/dev/dasd"))
- {
- expert_cmds = add(expert_cmds,
- `item(`id(`create_partition_table),
- // menu entry text
- _("Create New Partition Table")));
- }
+ expert_cmds = add(expert_cmds,
+ `item(`id(`create_partition_table),
+ // menu entry text
+ _("Create New Partition Table")));
expert_cmds = add(expert_cmds,
`item(`id(`clone_disk),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/inst_disk_proposal.ycp new/yast2-storage-2.22.1/storage/src/inst_disk_proposal.ycp
--- old/yast2-storage-2.22.0/storage/src/inst_disk_proposal.ycp 2011-11-18 15:20:06.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/inst_disk_proposal.ycp 2012-01-19 11:51:05.000000000 +0100
@@ -211,29 +211,24 @@
term bframe =
`VBox(
`PushButton( `id(`detailed), detailed_str ),
- `VSpacing(0.45),
+ `VSpacing(0.2),
`PushButton( `id(`import), import_str ),
- `VSpacing(0.45),
+ `VSpacing(0.2),
`PushButton( `id(`modify), modify_str )
);
float space = StorageProposal::SaveHeight()?1:2;
term contents =
- `VBox(
- `VSpacing(0.5),
- `HBox(
- `HSpacing(2),
+ `MarginBox(2, 0.4,
`VBox(
`MinHeight(8, `RichText(`id(`richtext), changes)),
rframe,
`VSpacing(space),
bframe,
`VStretch()
- ),
- `HSpacing(2)
- ),
- `VSpacing(2) );
+ )
+ );
// help on suggested partitioning
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/modules/Storage.ycp new/yast2-storage-2.22.1/storage/src/modules/Storage.ycp
--- old/yast2-storage-2.22.0/storage/src/modules/Storage.ycp 2011-12-06 17:17:39.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/modules/Storage.ycp 2012-03-05 11:34:40.000000000 +0100
@@ -19,7 +19,7 @@
* wurde versucht "intelligent" zu gestallten und ist im einzelen bei den
* entspechenden Funktionen n�her erkl�rt.
*
- * $Id: Storage.ycp 67000 2011-12-06 16:17:38Z aschnell $
+ * $Id: Storage.ycp 67561 2012-03-05 10:34:35Z aschnell $
*/
{
module "Storage";
@@ -371,6 +371,11 @@
{
LibStorage::StorageInterface::setDetectMountedVolumes(sint, false);
LibStorage::StorageInterface::setRootPrefix(sint, Installation::destdir);
+
+ if (Mode::autoinst() || Mode::autoupgrade())
+ {
+ LibStorage::StorageInterface::setMultipathAutostart(sint, LibStorage::MPAS_OFF());
+ }
}
conts = getContainers();
@@ -397,7 +402,11 @@
{
integer bytes = 0;
if (!LibStorage::humanStringToByte(str, true, bytes))
- y2error("cannot parse %1", str);
+ {
+ string ts = str+"b";
+ if( !LibStorage::humanStringToByte(ts, true, bytes))
+ y2error("cannot parse %1 or %2", str, ts);
+ }
return bytes;
}
@@ -1975,9 +1984,18 @@
else
{
tg[dev] = getContainerInfo(c);
- if( dev=="/dev/btrfs" )
- tg = HandleBtrfsSimpleVolumes( tg );
}
+ integer numbt = size(filter( map p, tg[dev,"partitions"]:[], ``(p["used_fs"]:`unknown==`btrfs )));
+ y2milestone( "UpdateTargetMapDisk btrfs:%1", numbt );
+ if( numbt>0 && dev!="/dev/btrfs" )
+ {
+ map bt = tg["/dev/btrfs"]:$[];
+ if( size(bt)==0 )
+ bt["type"] = `CT_BTRFS;
+ tg["/dev/btrfs"] = getContainerInfo(bt);
+ }
+ if( numbt>0 || dev=="/dev/btrfs" )
+ tg = HandleBtrfsSimpleVolumes( tg );
StorageMap[targets_key] = tg;
//SCR::Write(.target.ycp, "/tmp/upd_disk_aft_"+sformat("%1",count), StorageMap[targets_key]:$[] );
//count = count+1;
@@ -1991,6 +2009,8 @@
string cdev="";
map mdev = GetPartition( tg, dev );
y2milestone( "UpdateTargetMapDev mdev %1", mdev );
+ boolean btrfs = mdev["used_fs"]:`unknown == `btrfs;
+ y2milestone( "UpdateTargetMapDev btrfs %1", btrfs );
foreach( string key, map d, tg,
``{
if( size(cdev)==0 &&
@@ -2031,7 +2051,9 @@
else
y2error( "UpdateTargetMapDev key %1 not found in target", disk["device"]:"" );
y2milestone( "UpdateTargetMapDev mdev %1", mdev );
- if( mdev["used_fs"]:`unknown == `btrfs )
+ btrfs = btrfs || mdev["used_fs"]:`unknown == `btrfs;
+ y2milestone( "UpdateTargetMapDev btrfs %1", btrfs );
+ if( btrfs )
{
map bt = tg["/dev/btrfs"]:$[];
if( size(bt)==0 )
@@ -2541,6 +2563,8 @@
return( ret );
}
+global symbol GetMountBy( string device );
+
global boolean ChangeVolumeProperties( map part )
{
integer ret = 0;
@@ -2593,8 +2617,9 @@
else
y2milestone( "ChangeVolumeProperties sint ret:%1", ret );
}
+ symbol defmb = GetMountBy( dev );
if( ret==0 && size(part["mount"]:"")>0 &&
- part["mountby"]:`id != curr["mountby"]:`id )
+ part["mountby"]:defmb != curr["mountby"]:defmb )
{
changed = true;
tmp = fromSymbol(conv_mountby,part["mountby"]:`device);
@@ -3250,8 +3275,6 @@
}
-global symbol GetMountBy( string device );
-
/**
* Set the flag if a disk needs to be initialized
* @param string the disk to be changed
@@ -3295,11 +3318,16 @@
boolean ret = true;
if( IsPartType(ctype) )
{
+ symbol mby = GetMountBy( p["device"]:"" );
+ if( p["used_fs"]:`unknown == `btrfs )
+ mby = `uuid;
ret = Storage::CreatePartition( d["device"]:"", p["device"]:"",
p["type"]:`primary,
p["fsid"]:Partitions::fsid_native,
p["region",0]:0, p["region",1]:0,
- p["mountby"]:GetMountBy( p["device"]:"" ) );
+ p["mountby"]:mby );
+ if( !haskey( p, "mountby" ) && mby!=`device )
+ p["mountby"] = mby;
}
else if( ctype == `CT_MD )
{
@@ -3565,12 +3593,12 @@
return false;
}
- string allowed_chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#* ,.;:._-+!$%&/|\?{[()]}@^\\<>";
+ string allowed_chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#* ,.;:._-+=!$%&/|\?{[()]}@^\\<>";
if (findfirstnotof(pw1, allowed_chars) != nil)
{
// popup text
Popup::Message(_("The password may only contain the following characters:
-0..9, a..z, A..Z, and any of \"@#* ,.;:._-+!$%&/|\?{[()]}^\\<>\".
+0..9, a..z, A..Z, and any of \"@#* ,.;:._-+=!$%&/|\?{[()]}^\\<>\".
Try again."));
return false;
}
@@ -4626,6 +4654,7 @@
if (ret != save_chtxt)
{
+ LibStorage::StorageInterface::dumpObjectList(sint);
LibStorage::StorageInterface::dumpCommitInfos(sint);
}
@@ -5325,20 +5354,6 @@
Storage::AddFstabEntry( FileSystems::GetFstabDefaultMap( "usb" ) );
Storage::AddFstabEntry( FileSystems::GetFstabDefaultMap( "pts" ) );
- map m = $[];
- integer num = 0;
-
- foreach( string tdevice, any tdata, StorageDevices::ZipDrives(),
- ``{
- m = FileSystems::GetFstabDefaultMap( "zip" );
- string zfile = "/zip";
- if( num > 0 )
- zfile = zfile + sformat( "%1", num );
- m["mount"] = "/media"+zfile;
- m["spec"] = tdevice+"4";
- Storage::AddFstabEntry( m );
- num = num+1;
- });
HandleModulesOnBoot( GetTargetMap() );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-storage-2.22.0/storage/src/modules/StorageProposal.ycp new/yast2-storage-2.22.1/storage/src/modules/StorageProposal.ycp
--- old/yast2-storage-2.22.0/storage/src/modules/StorageProposal.ycp 2011-11-18 15:20:06.000000000 +0100
+++ new/yast2-storage-2.22.1/storage/src/modules/StorageProposal.ycp 2012-01-10 10:01:00.000000000 +0100
@@ -413,6 +413,14 @@
map swapable = $[];
map ishome = $[];
+void fill_ishome( list<map> pl )
+ {
+ foreach( map p, pl,
+ ``{
+ if( !haskey( ishome, p["device"]:"" ))
+ ishome[p["device"]:""] = Storage::DetectHomeFs(p);
+ });
+ }
global void flex_init_swapable(map tg)
{
@@ -1517,20 +1525,20 @@
llg["gap",gindex,"cylinders"]:0 - part["cylinders"]:0;
}
list addl = [ pindex ];
- if( e["extended"]:false && !part["primary"]:false )
+ if( e["exists"]:false )
+ {
+ addl = add( addl, e["nr"]:0 );
+ }
+ else if( e["extended"]:false && !part["primary"]:false )
{
addl = add( addl, llg["ext_pnr",0]:5 );
llg["ext_pnr"] = remove( llg["ext_pnr"]:[0], 0 );
}
- else if( !e["exists"]:false )
+ else
{
addl = add( addl, llg["free_pnr",0]:1 );
llg["free_pnr"] = remove( llg["free_pnr"]:[0], 0 );
}
- else
- {
- addl = add( addl, e["nr"]:0 );
- }
llg["gap",gindex,"added"] =
add( llg["gap",gindex,"added"]:[], addl );
if( pindex+1 < size(ps) )
@@ -2614,13 +2622,13 @@
return( ret );
}
-list<map> can_mp_reuse( string mp, integer min, integer max,
- list<map> partitions )
+list<map> can_home_reuse( integer min, integer max,
+ list<map> partitions )
{
list<map> ret = [];
if( max>0 )
max = max + max/10;
- y2milestone( "can_mp_reuse mp %1 min %2 max %3", mp, min, max );
+ y2milestone( "can_home_reuse min %1 max %2", min, max );
list<map> pl = [];
pl = filter( map p, partitions,
``(!p["delete"]:false &&
@@ -2631,23 +2639,79 @@
p["size_k"]:0/1024 >= min &&
(max==0 || p["size_k"]:0/1024 <= max) &&
Storage::CanEdit( p, false )));
- y2milestone( "can_mp_reuse normal %1", pl );
+ y2milestone( "can_home_reuse normal %1", pl );
if( size(pl)>0 )
{
pl = sort( map a, map b, pl, ``(a["size_k"]:0>b["size_k"]:0));
- y2milestone( "can_mp_reuse sorted %1", pl );
+ fill_ishome( pl );
+ pl = (list<map>) union(
+ filter( map p, pl, ``(ishome[p["device"]:""]:false) ),
+ filter( map p, pl, ``(!ishome[p["device"]:""]:false) ));
+ y2milestone( "can_home_reuse sorted %1", pl );
+ ret = maplist( map p, partitions,
+ ``{
+ if( !p["delete"]:false &&
+ p["device"]:""==pl[0,"device"]:"" )
+ {
+ p = Storage::SetVolOptions( p, "/home", PropDefaultFs(),
+ "", "", "" );
+ }
+ return( p );
+ });
+ }
+ y2milestone( "can_home_reuse ret %1", ret );
+ return( ret );
+ }
+
+list<map> can_root_reuse( integer min, integer max,
+ list<map> partitions )
+ {
+ list<map> ret = [];
+ if( max>0 )
+ max = max + max/10;
+ y2milestone( "can_root_reuse min %1 max %2", min, max );
+ list<map> pl = [];
+ pl = filter( map p, partitions,
+ ``(!p["delete"]:false &&
+ p["fsid"]:Partitions::fsid_native ==
+ Partitions::fsid_native &&
+ !Storage::IsUsedBy(p) &&
+ size(p["mount"]:"")==0 &&
+ p["size_k"]:0/1024 >= min &&
+ Storage::CanEdit( p, false )));
+ y2milestone( "can_root_reuse normal %1", pl );
+ if( size(pl)>0 )
+ {
+ fill_ishome( pl );
+ list<map> p1 = sort( map a, map b,
+ filter( map p, pl, ``(ishome[p["device"]:""]:false)),
+ ``(a["size_k"]:0max)),
+ ``(a["size_k"]:0b["size_k"]:0));
+ y2milestone( "can_root_reuse p3 %1", p3 );
+ pl = (list<map>) union( p2, p1 );
+ pl = (list<map>) union( p3, pl );
+ y2milestone( "can_root_reuse sorted %1", pl );
ret = maplist( map p, partitions,
``{
if( !p["delete"]:false &&
p["device"]:""==pl[0,"device"]:"" )
{
- p = Storage::SetVolOptions( p, mp, PropDefaultFs(),
+ p = Storage::SetVolOptions( p, "/", PropDefaultFs(),
"", "", "" );
}
return( p );
});
}
- y2milestone( "can_mp_reuse ret %1", ret );
+ y2milestone( "can_root_reuse ret %1", ret );
return( ret );
}
@@ -2916,11 +2980,7 @@
Storage::CanDelete( p, disk, false )));
if( size(pl)>0 )
{
- foreach( map p, pl,
- ``{
- if( !haskey( ishome, p["device"]:"" ))
- ishome[p["device"]:""] = Storage::DetectHomeFs(p);
- });
+ fill_ishome( pl );
pl = sort( map a, map b, pl,
``(a["size_k"]:0>b["size_k"]:0));
list<map> l1 = filter( map p, pl, ``(!Storage::IsUsedBy(p)) );
@@ -3197,28 +3257,24 @@
if( mode == `reuse )
{
list<map> parts = disk["partitions"]:[];
- if( GetProposalHome() )
- {
- if( avail_size > opts["home_limit"]:0 )
- parts = can_mp_reuse( "/home", 4*1024, 0, parts );
- else
- parts = can_mp_reuse( "/", opts["root_base"]:0, 0,
- parts );
- }
- if( size(parts)>0 && avail_size > opts["home_limit"]:0 )
+ list<map> tmp = [];
+ if( GetProposalHome() && avail_size>opts["home_limit"]:0 )
{
- integer mx = 0;
- if( GetProposalHome() )
- mx = opts["root_max"]:0;
- parts = can_mp_reuse( "/", opts["root_base"]:0,
- mx, parts );
+ tmp = can_home_reuse( 4*1024, 0, parts );
+ if( size(tmp)>0 )
+ {
+ have_home = true;
+ parts = tmp;
+ }
}
- if( size(parts)>0 )
+ tmp = can_root_reuse( opts["root_base"]:0,
+ opts["root_max"]:0, parts );
+ if( size(tmp)>0 )
{
- have_home = avail_size > opts["home_limit"]:0;
have_root = true;
- disk["partitions"] = parts;
+ parts = tmp;
}
+ disk["partitions"] = parts;
y2milestone( "get_inst_proposal reuse have_home %1 have_root %2",
have_home, have_root );
if( have_home && have_root )
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org