openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
October 2009
- 1 participants
- 750 discussions
Hello community,
here is the log from the commit of package yast2-security for openSUSE:Factory
checked in at Sat Oct 3 00:58:07 CEST 2009.
--------
--- yast2-security/yast2-security.changes 2009-09-03 14:43:47.000000000 +0200
+++ yast2-security/yast2-security.changes 2009-10-01 13:49:30.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Oct 1 13:40:49 CEST 2009 - jsuchome(a)suse.cz
+
+- do not save PASS_MIN_LEN if cracklib is disabled
+- ensure polkit privileges are applied (bnc#541393)
+- 2.18.3
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
yast2-security-2.18.2.tar.bz2
New:
----
yast2-security-2.18.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-security.spec ++++++
--- /var/tmp/diff_new_pack.cdI7wf/_old 2009-10-03 00:55:29.000000000 +0200
+++ /var/tmp/diff_new_pack.cdI7wf/_new 2009-10-03 00:55:29.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package yast2-security (Version 2.18.2)
+# spec file for package yast2-security (Version 2.18.3)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,10 +19,10 @@
Name: yast2-security
-Version: 2.18.2
+Version: 2.18.3
Release: 1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-security-2.18.2.tar.bz2
+Source0: yast2-security-2.18.3.tar.bz2
Prefix: /usr
Group: System/YaST
License: GPL v2 or later
@@ -42,7 +42,7 @@
The YaST2 component for security settings configuration.
%prep
-%setup -n yast2-security-2.18.2
+%setup -n yast2-security-2.18.3
%build
%{prefix}/bin/y2tool y2autoconf
++++++ yast2-security-2.18.2.tar.bz2 -> yast2-security-2.18.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-security-2.18.2/VERSION new/yast2-security-2.18.3/VERSION
--- old/yast2-security-2.18.2/VERSION 2009-09-03 14:42:00.000000000 +0200
+++ new/yast2-security-2.18.3/VERSION 2009-10-01 13:46:01.000000000 +0200
@@ -1 +1 @@
-2.18.2
+2.18.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-security-2.18.2/src/Security.ycp new/yast2-security-2.18.3/src/Security.ycp
--- old/yast2-security-2.18.2/src/Security.ycp 2009-06-02 22:40:39.000000000 +0200
+++ new/yast2-security-2.18.3/src/Security.ycp 2009-10-01 13:44:18.000000000 +0200
@@ -12,6 +12,7 @@
module "Security";
textdomain "security";
+import "FileUtils";
import "Pam";
import "PamSettings";
import "Progress";
@@ -539,7 +540,7 @@
Pam::Remove ("cracklib");
// save min pass length
- if (Settings["PASS_MIN_LEN"]:"5" != "5")
+ if (Settings["PASS_MIN_LEN"]:"5" != "5" && Settings["PASSWD_USE_CRACKLIB"]:"no" == "yes")
{
Pam::Add ("cracklib"); // minlen is part of cracklib
Pam::Add (sformat ("cracklib-minlen=%1", Settings["PASS_MIN_LEN"]:"5"));
@@ -576,6 +577,11 @@
SCR::Execute(.target.bash, "/sbin/SuSEconfig --module kde3");
SCR::Execute(.target.bash, "/sbin/SuSEconfig --module " + mod);
SCR::Execute(.target.bash, "/sbin/SuSEconfig --module permissions");
+
+ // ensure polkit privileges are applied (bnc #541393)
+ if (FileUtils::Exists ("/sbin/set_polkit_default_privs"))
+ SCR::Execute (.target.bash, "/sbin/set_polkit_default_privs");
+
SCR::Execute(.target.bash, "/sbin/SuSEconfig --module profiles");
if(Abort()) return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-security-2.18.2/src/dialogs.ycp new/yast2-security-2.18.3/src/dialogs.ycp
--- old/yast2-security-2.18.2/src/dialogs.ycp 2009-06-02 22:40:39.000000000 +0200
+++ new/yast2-security-2.18.3/src/dialogs.ycp 2009-09-14 14:27:54.000000000 +0200
@@ -758,10 +758,6 @@
Security::PasswordMaxLengths[enc]:8));
continue;
}
- if (min != 5)
- {
- UI::ChangeWidget (`id ("PASSWD_USE_CRACKLIB"), `Value, true);
- }
break;
}
else if (ret != "PASSWD_ENCRYPTION") {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-security-2.18.2/testsuite/tests/Level1.out new/yast2-security-2.18.3/testsuite/tests/Level1.out
--- old/yast2-security-2.18.2/testsuite/tests/Level1.out 2009-06-02 21:06:47.000000000 +0200
+++ new/yast2-security-2.18.3/testsuite/tests/Level1.out 2009-10-01 13:44:57.000000000 +0200
@@ -88,5 +88,6 @@
Execute .target.bash "/sbin/SuSEconfig --module kde3" 0
Execute .target.bash "/sbin/SuSEconfig --module kdm3" 0
Execute .target.bash "/sbin/SuSEconfig --module permissions" 0
+Execute .target.bash "/sbin/set_polkit_default_privs" 0
Execute .target.bash "/sbin/SuSEconfig --module profiles" 0
Return true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-security-2.18.2/testsuite/tests/Level2.out new/yast2-security-2.18.3/testsuite/tests/Level2.out
--- old/yast2-security-2.18.2/testsuite/tests/Level2.out 2009-06-02 21:07:38.000000000 +0200
+++ new/yast2-security-2.18.3/testsuite/tests/Level2.out 2009-10-01 13:45:08.000000000 +0200
@@ -88,5 +88,6 @@
Execute .target.bash "/sbin/SuSEconfig --module kde3" 0
Execute .target.bash "/sbin/SuSEconfig --module kdm3" 0
Execute .target.bash "/sbin/SuSEconfig --module permissions" 0
+Execute .target.bash "/sbin/set_polkit_default_privs" 0
Execute .target.bash "/sbin/SuSEconfig --module profiles" 0
Return true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-security-2.18.2/testsuite/tests/Level3.out new/yast2-security-2.18.3/testsuite/tests/Level3.out
--- old/yast2-security-2.18.2/testsuite/tests/Level3.out 2009-06-02 21:08:08.000000000 +0200
+++ new/yast2-security-2.18.3/testsuite/tests/Level3.out 2009-10-01 13:45:16.000000000 +0200
@@ -89,5 +89,6 @@
Execute .target.bash "/sbin/SuSEconfig --module kde3" 0
Execute .target.bash "/sbin/SuSEconfig --module kdm3" 0
Execute .target.bash "/sbin/SuSEconfig --module permissions" 0
+Execute .target.bash "/sbin/set_polkit_default_privs" 0
Execute .target.bash "/sbin/SuSEconfig --module profiles" 0
Return true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-security-2.18.2/testsuite/tests/Write.out new/yast2-security-2.18.3/testsuite/tests/Write.out
--- old/yast2-security-2.18.2/testsuite/tests/Write.out 2009-06-02 21:09:04.000000000 +0200
+++ new/yast2-security-2.18.3/testsuite/tests/Write.out 2009-10-01 13:45:38.000000000 +0200
@@ -80,8 +80,7 @@
Read .etc.default.passwd."CRYPT_FILES" nil
Write .etc.default.passwd."CRYPT_FILES" "blowfish" true
Execute .target.bash_output "pam-config -d --cracklib" $[]
-Execute .target.bash_output "pam-config -a --cracklib" $[]
-Execute .target.bash_output "pam-config -a --cracklib-minlen=l10" $[]
+Execute .target.bash_output "pam-config -d --cracklib-minlen" $[]
Execute .target.bash_output "pam-config -d --pwhistory-remember" $[]
Write .etc.default.passwd nil true
Execute .target.bash "echo 1 > /proc/sys/kernel/sysrq" 0
@@ -89,6 +88,7 @@
Execute .target.bash "/sbin/SuSEconfig --module kde3" 0
Execute .target.bash "/sbin/SuSEconfig --module kdm3" 0
Execute .target.bash "/sbin/SuSEconfig --module permissions" 0
+Execute .target.bash "/sbin/set_polkit_default_privs" 0
Execute .target.bash "/sbin/SuSEconfig --module profiles" 0
Execute .target.bash "/etc/init.d/dhcpd restart" 0
Execute .target.bash "/etc/init.d/dhcpd restart" 0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xorg-x11-server for openSUSE:Factory
checked in at Sat Oct 3 00:55:10 CEST 2009.
--------
--- xorg-x11-server/xorg-x11-server.changes 2009-09-29 19:54:05.000000000 +0200
+++ xorg-x11-server/xorg-x11-server.changes 2009-10-01 02:58:31.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Oct 1 02:50:16 CEST 2009 - sndirsch(a)suse.de
+
+- dga-removal-fix.diff
+ * Here's an updated patch -- removes the _X_INTERNAL from the .c
+ files, renames xf86DiDGAInit to _xf86_di_dga_init_internal,
+ and renames xf86DiDGAReInit to _xf86_di_dga_reinit_internal.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.roTBki/_old 2009-10-03 00:51:37.000000000 +0200
+++ /var/tmp/diff_new_pack.roTBki/_new 2009-10-03 00:51:37.000000000 +0200
@@ -33,7 +33,7 @@
Url: http://xorg.freedesktop.org/
%define EXPERIMENTAL 0
Version: 7.4
-Release: 56
+Release: 57
License: GPL v2 or later ; MIT License (or similar)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
++++++ dga-removal-fix.diff ++++++
--- /var/tmp/diff_new_pack.roTBki/_old 2009-10-03 00:51:38.000000000 +0200
+++ /var/tmp/diff_new_pack.roTBki/_new 2009-10-03 00:51:38.000000000 +0200
@@ -62,7 +62,7 @@
}
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
-index c1e31e0..f274725 100644
+index c1e31e0..506fbb9 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -806,7 +806,7 @@ xf86CrtcScreenInit (ScreenPtr screen)
@@ -70,7 +70,7 @@
#ifdef XFreeXDGA
- xf86DiDGAInit(screen, 0);
-+ _xf86_di_dga_init_for_reals(screen);
++ _xf86_di_dga_init_internal(screen);
#endif
#ifdef RANDR_13_INTERFACE
return RANDR_INTERFACE_VERSION;
@@ -79,12 +79,12 @@
#ifdef XFreeXDGA
if (scrn->pScreen)
- xf86DiDGAReInit(scrn->pScreen);
-+ _xf86_di_dga_reinit_for_reals(scrn->pScreen);
++ _xf86_di_dga_reinit_internal(scrn->pScreen);
#endif
}
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
-index 69afaa5..edf84d8 100644
+index 69afaa5..9baa956 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -833,6 +833,10 @@ xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus);
@@ -93,7 +93,7 @@
+/* this is the real function, used only internally */
+_X_INTERNAL Bool
-+_xf86_di_dga_init_for_reals (ScreenPtr pScreen);
++_xf86_di_dga_init_internal (ScreenPtr pScreen);
+
/**
* Re-initialize dga for this screen (as when the set of modes changes)
@@ -104,13 +104,13 @@
+/* This is the real function, used only internally */
+_X_INTERNAL Bool
-+_xf86_di_dga_reinit_for_reals (ScreenPtr pScreen);
++_xf86_di_dga_reinit_internal (ScreenPtr pScreen);
+
/*
* Set the subpixel order reported for the screen using
* the information from the outputs
diff --git a/hw/xfree86/modes/xf86DiDGA.c b/hw/xfree86/modes/xf86DiDGA.c
-index 0f7b834..3df3754 100644
+index 0f7b834..60fbdbf 100644
--- a/hw/xfree86/modes/xf86DiDGA.c
+++ b/hw/xfree86/modes/xf86DiDGA.c
@@ -175,6 +175,12 @@ static DGAFunctionRec xf86_dga_funcs = {
@@ -120,8 +120,8 @@
+ return TRUE;
+}
+
-+_X_INTERNAL Bool
-+_xf86_di_dga_reinit_for_reals (ScreenPtr pScreen)
++Bool
++_xf86_di_dga_reinit_internal (ScreenPtr pScreen)
+{
ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -133,8 +133,8 @@
+ return TRUE;
+}
+
-+_X_INTERNAL Bool
-+_xf86_di_dga_init_for_reals (ScreenPtr pScreen)
++Bool
++_xf86_di_dga_init_internal (ScreenPtr pScreen)
+{
ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package yast2-installation for openSUSE:Factory
checked in at Sat Oct 3 00:51:14 CEST 2009.
--------
--- yast2-installation/yast2-installation.changes 2009-09-24 16:04:16.000000000 +0200
+++ yast2-installation/yast2-installation.changes 2009-10-01 13:33:03.000000000 +0200
@@ -1,0 +2,15 @@
+Thu Oct 1 13:27:16 CEST 2009 - locilka(a)suse.cz
+
+- Adjusting understandable name for update URLs added during second
+ stage of installation (bnc #542792).
+- 2.18.29
+
+-------------------------------------------------------------------
+Tue Sep 29 16:41:32 CEST 2009 - kmachalkova(a)suse.cz
+
+- Correct HTML format tags in helptext (bnc#540784)
+- Set firewall status according to user's choice also in non-automatic
+ 2nd stage (missing call for AdjustDisabledSubProposals) (bnc#534862)
+- 2.18.28
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
yast2-installation-2.18.27.tar.bz2
New:
----
yast2-installation-2.18.29.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.ISRuVG/_old 2009-10-03 00:49:20.000000000 +0200
+++ /var/tmp/diff_new_pack.ISRuVG/_new 2009-10-03 00:49:20.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package yast2-installation (Version 2.18.27)
+# spec file for package yast2-installation (Version 2.18.29)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,10 +19,10 @@
Name: yast2-installation
-Version: 2.18.27
+Version: 2.18.29
Release: 1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-installation-2.18.27.tar.bz2
+Source0: yast2-installation-2.18.29.tar.bz2
Prefix: /usr
Group: System/YaST
License: GPL v2 or later
@@ -103,7 +103,7 @@
System installation code as present on installation media.
%prep
-%setup -n yast2-installation-2.18.27
+%setup -n yast2-installation-2.18.29
%build
%{prefix}/bin/y2tool y2autoconf
++++++ yast2-installation-2.18.27.tar.bz2 -> yast2-installation-2.18.29.tar.bz2 ++++++
++++ 9066 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-installation-2.18.27/VERSION new/yast2-installation-2.18.29/VERSION
--- old/yast2-installation-2.18.27/VERSION 2009-09-24 15:53:21.000000000 +0200
+++ new/yast2-installation-2.18.29/VERSION 2009-10-01 13:26:52.000000000 +0200
@@ -1 +1 @@
-2.18.27
+2.18.29
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-installation-2.18.27/configure.in new/yast2-installation-2.18.29/configure.in
--- old/yast2-installation-2.18.27/configure.in 2009-09-07 10:42:27.000000000 +0200
+++ new/yast2-installation-2.18.29/configure.in 2009-07-18 10:21:33.000000000 +0200
@@ -3,7 +3,7 @@
dnl -- This file is generated by y2autoconf 2.18.9 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(yast2-installation, 2.18.24, http://bugs.opensuse.org/, yast2-installation)
+AC_INIT(yast2-installation, 2.18.19, http://bugs.opensuse.org/, yast2-installation)
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.18.24"
+VERSION="2.18.19"
RPMNAME="yast2-installation"
MAINTAINER="Lukas Ocilka <locilka(a)suse.cz>"
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-installation-2.18.27/src/clients/inst_addon_update_sources.ycp new/yast2-installation-2.18.29/src/clients/inst_addon_update_sources.ycp
--- old/yast2-installation-2.18.27/src/clients/inst_addon_update_sources.ycp 2009-06-24 12:54:06.000000000 +0200
+++ new/yast2-installation-2.18.29/src/clients/inst_addon_update_sources.ycp 2009-10-01 13:20:49.000000000 +0200
@@ -40,13 +40,23 @@
/**
* @return the installation sources to be added
*/
-list<string> UpdateUrls () {
- // get all available products
- list<map<string,any> > products = Pkg::ResolvableProperties ("", `product, "");
- list<list<string> > urls = maplist (map<string, any> p, products, {
- return p["update_urls"]:[];
+map <string, string> UpdateUrls () {
+ map <string, string> urls = $[];
+ list <map <string,any> > products = Pkg::ResolvableProperties ("", `product, "");
+
+ foreach (map<string, any> p, products, {
+ foreach (string u, p["update_urls"]:[], {
+ // bnc #542792
+ // Repository name must be generated from product details
+ urls[u] = sformat (
+ _("Updates for %1 %2"),
+ p["display_name"]:p["name"]:p["summary"]:_("Unknown Product"),
+ p["version"]:""
+ );
+ });
});
- return (list<string>)toset (flatten (urls));
+
+ return urls;
}
@@ -64,23 +74,23 @@
y2milestone ("sources known: %1", knownUrls);
map<string, boolean> is_known = listmap (string u, knownUrls, ``($[u: true]));
-list<string> updateUrls = UpdateUrls ();
+map <string, string> updateUrls = UpdateUrls ();
y2milestone ("sources for updates: %1", updateUrls);
-list<string> addUrls = filter (string u, updateUrls, ``( ! is_known[u]:false ));
+map <string, string> addUrls = filter (string url, string name, updateUrls, ``( ! is_known[url]:false ));
y2milestone ("sources to add: %1", addUrls);
-if (addUrls != [])
+if (addUrls != $[])
{
Popup::ShowFeedback (heading, message);
list<integer> added_ids = [];
- foreach (string u, addUrls, {
+ foreach (string url, string name, addUrls, {
boolean again = true;
while (again) {
- integer srcid = Pkg::SourceCreate (u, "/");
- y2milestone ("got %1 from creating %2", srcid, u);
+ integer srcid = Pkg::SourceCreate (url, "/");
+ y2milestone ("got %1 from creating %2", srcid, url);
// wrong srcid, must have failed
if (srcid == -1) {
@@ -94,7 +104,7 @@
Pkg::LastError()
))) {
// try again
- u = editUrl (u);
+ url = editUrl (url);
} else {
// abort
again = false;
@@ -102,6 +112,9 @@
// everything is ok
} else {
+ // bnc #542792
+ // Repository name must be set
+ Pkg::SourceEditSet([ $["SrcId" : srcid, "name" : name] ]);
added_ids = add (added_ids, srcid);
again = false;
}
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-installation-2.18.27/src/clients/inst_new_desktop.ycp new/yast2-installation-2.18.29/src/clients/inst_new_desktop.ycp
--- old/yast2-installation-2.18.27/src/clients/inst_new_desktop.ycp 2009-09-14 11:04:53.000000000 +0200
+++ new/yast2-installation-2.18.29/src/clients/inst_new_desktop.ycp 2009-09-29 16:50:30.000000000 +0200
@@ -5,7 +5,7 @@
* Authors: Lukas Ocilka <locilka(a)suse.cz>
* Stephan Kulow <coolo(a)suse.de>
*
- * $Id: inst_new_desktop.ycp 58629 2009-09-14 09:04:51Z kmachalkova $
+ * $Id: inst_new_desktop.ycp 58814 2009-09-29 14:30:54Z kmachalkova $
*
*/
@@ -33,7 +33,7 @@
// TRANSLATORS: help text, part 1
string help = _("<p>At Linux <b>choice</b> is a top priority. <i>openSUSE</i> offers a number
of different desktop environments. Below you see a list of the 2 major ones
-<b>GNOME</b> and <b>KDE</b>.") +
+<b>GNOME</b> and <b>KDE</b>.</p>") +
// TRANSLATORS: help text, part 3
_("<p>You may select alternative desktop environments (or one of minimal installation patterns)
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-installation-2.18.27/src/include/inst_inc_second.ycp new/yast2-installation-2.18.29/src/include/inst_inc_second.ycp
--- old/yast2-installation-2.18.27/src/include/inst_inc_second.ycp 2009-09-04 18:28:41.000000000 +0200
+++ new/yast2-installation-2.18.29/src/include/inst_inc_second.ycp 2009-10-01 12:50:20.000000000 +0200
@@ -4,7 +4,7 @@
* Summary: Functions for second stage
* Authors: Lukas Ocilka <locilka(a)suse.cz>
*
- * $Id: inst_inc_second.ycp 58537 2009-09-04 16:28:41Z kmachalkova $
+ * $Id: inst_inc_second.ycp 58818 2009-09-29 14:57:45Z kmachalkova $
*
*/
{
@@ -103,7 +103,7 @@
});
});
- y2milestone ("Disabled AC items set to %1", ProductControl::GetDisabledSubProposals());
+ y2milestone ("Disabled subproposals set to %1", ProductControl::GetDisabledSubProposals());
}
void AdjustDisabledACItems () {
@@ -135,7 +135,7 @@
void AdjustDisabledItems () {
AdjustDisabledModules();
AdjustDisabledProposals();
- AdjustDisabledProposals();
+ AdjustDisabledSubProposals();
AdjustDisabledACItems();
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package yast2-storage for openSUSE:Factory
checked in at Sat Oct 3 00:49:02 CEST 2009.
--------
--- yast2-storage/yast2-storage.changes 2009-08-11 13:38:42.000000000 +0200
+++ yast2-storage/yast2-storage.changes 2009-09-29 17:21:48.000000000 +0200
@@ -1,0 +2,11 @@
+Tue Sep 29 17:15:34 CEST 2009 - aschnell(a)suse.de
+
+- fixed buttons in lvm view
+
+-------------------------------------------------------------------
+Tue Sep 22 15:17:10 CEST 2009 - jsrain(a)suse.cz
+
+- don't limit partition table to GPT on x86_64 uEFI systems
+ (fate #306825)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-storage.spec ++++++
--- /var/tmp/diff_new_pack.I0Zg1j/_old 2009-10-03 00:47:12.000000000 +0200
+++ /var/tmp/diff_new_pack.I0Zg1j/_new 2009-10-03 00:47:12.000000000 +0200
@@ -20,7 +20,7 @@
Name: yast2-storage
Version: 2.18.18
-Release: 3
+Release: 4
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: yast2-storage-2.18.18.tar.bz2
Prefix: /usr
@@ -97,6 +97,7 @@
/usr/share/YaST2/clients/inst_prepdisk.ycp
/usr/share/YaST2/clients/storage_finish.ycp
/usr/share/YaST2/clients/partitions_proposal.ycp
+/usr/share/YaST2/clients/storage.ycp
/usr/share/YaST2/clients/disk.ycp
/usr/share/YaST2/clients/disk_worker.ycp
/usr/share/YaST2/clients/multipath-simple.ycp
++++++ yast2-storage-2.18.18.tar.bz2 ++++++
++++ 1939 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.18.18/configure.in new/yast2-storage-2.18.18/configure.in
--- old/yast2-storage-2.18.18/configure.in 2009-08-11 13:36:02.000000000 +0200
+++ new/yast2-storage-2.18.18/configure.in 2009-09-29 16:40:24.000000000 +0200
@@ -1,6 +1,6 @@
dnl configure.in for yast2-storage
dnl
-dnl -- This file is generated by y2autoconf 2.18.9 - DO NOT EDIT! --
+dnl -- This file is generated by y2autoconf 2.18.11 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
AC_INIT(yast2-storage, 2.18.18, http://bugs.opensuse.org/, yast2-storage)
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.18.18/disk/src/Makefile.am new/yast2-storage-2.18.18/disk/src/Makefile.am
--- old/yast2-storage-2.18.18/disk/src/Makefile.am 2009-07-21 16:37:07.000000000 +0200
+++ new/yast2-storage-2.18.18/disk/src/Makefile.am 2009-09-29 16:31:59.000000000 +0200
@@ -3,6 +3,7 @@
#
client_DATA = \
+ storage.ycp \
disk.ycp \
disk_worker.ycp
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.18.18/disk/src/storage.ycp new/yast2-storage-2.18.18/disk/src/storage.ycp
--- old/yast2-storage-2.18.18/disk/src/storage.ycp 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-storage-2.18.18/disk/src/storage.ycp 2009-09-29 16:32:46.000000000 +0200
@@ -0,0 +1,6 @@
+/**
+ * Summary: Alias for disk client.
+ */
+{
+ return WFM::CallFunction("disk", WFM::Args());
+}
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.18.18/storage/src/include/custom_part_lib.ycp new/yast2-storage-2.18.18/storage/src/include/custom_part_lib.ycp
--- old/yast2-storage-2.18.18/storage/src/include/custom_part_lib.ycp 2009-07-23 13:49:37.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/custom_part_lib.ycp 2009-08-24 16:27:39.000000000 +0200
@@ -13,7 +13,7 @@
*
*************************************************************
*
- $Id: custom_part_lib.ycp 58139 2009-07-23 11:49:39Z aschnell $
+ $Id: custom_part_lib.ycp 58336 2009-08-13 12:05:21Z aschnell $
*
*/
@@ -364,7 +364,7 @@
// error popup
Popup::Error(_("Only swap devices may have swap as mount point."));
}
- else if (mount != "swap" || part["type"]:`unknown == `loop)
+ else if (mount != "swap") // || part["type"]:`unknown == `loop)
{
// check if the mount point is already in use
foreach( string disk, map diskinfo, targetMap, ``{
@@ -377,7 +377,7 @@
});
});
- if( allowed == false && mount!="swap" )
+ if (allowed == false) // && mount!="swap" )
{
// error popup text
Popup::Error(_("This mount point is already in use. Select a different one."));
@@ -537,8 +537,7 @@
define boolean EmptyCryptPwdAllowed( map p )
{
boolean ret = p["format"]:false &&
- contains( union(FileSystems::tmp_m_mpoint,["swap"]),
- p["mount"]:"" );
+ contains(union(FileSystems::tmp_m_points, FileSystems::swap_m_points), p["mount"]:"");
ret = ret && Storage::IsPersistent( p );
y2milestone( "EmptyCryptPwdAllowed ret:%1", ret );
return( ret );
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.18.18/storage/src/include/ep-dialogs.ycp new/yast2-storage-2.18.18/storage/src/include/ep-dialogs.ycp
--- old/yast2-storage-2.18.18/storage/src/include/ep-dialogs.ycp 2009-07-27 15:57:37.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/ep-dialogs.ycp 2009-09-29 13:43:59.000000000 +0200
@@ -21,6 +21,10 @@
formatted and the desired file system type.</p>");
// helptext
+ helptext = helptext + _("<p>Changing the encryption on an existing
+volume will delete all data on it.</p>");
+
+ // helptext
helptext = helptext + _("<p>Then, choose whether the partition should
be mounted and enter the mount point (/, /boot, /usr, /var, etc.).</p>");
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.18.18/storage/src/include/ep-dm.ycp new/yast2-storage-2.18.18/storage/src/include/ep-dm.ycp
--- old/yast2-storage-2.18.18/storage/src/include/ep-dm.ycp 2009-07-21 16:37:06.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/ep-dm.ycp 2009-08-26 11:40:50.000000000 +0200
@@ -13,6 +13,19 @@
include "partitioning/ep-dm-lib.ycp";
+ void EpContextMenuDm(string device)
+ {
+ symbol widget = ContextMenu::Simple([ `item(`id(`edit), _("Edit")) ]);
+
+ switch (widget)
+ {
+ case `edit:
+ EpEditDmDevice(device);
+ break;
+ }
+ }
+
+
void CreateDmMainPanel(any user_data)
{
symbol Predicate(map disk, map partition)
@@ -35,7 +48,7 @@
`HStretch(),
// heading
`IconAndHeading(_("Device Mapper (DM)"), StorageIcons::dm_icon),
- `Table(`id(`table), `opt(`keepSorting, `notify),
+ `Table(`id(`table), `opt(`keepSorting, `notify, `notifyContextMenu),
table_header, table_contents)
)
)
@@ -50,6 +63,21 @@
}
+ void HandleDmMainPanel(any user_data, map event)
+ {
+ string device = (string) UI::QueryWidget(`id(`table), `CurrentItem);
+
+ switch (Event::IsWidgetContextMenuActivated(event))
+ {
+ case `table:
+ EpContextMenuDevice(device);
+ break;
+ }
+
+ UI::SetFocus(`id(`table));
+ }
+
+
void CreateDmOverviewTab(any user_data)
{
string dm_device = (string) user_data;
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.18.18/storage/src/include/ep-lib.ycp new/yast2-storage-2.18.18/storage/src/include/ep-lib.ycp
--- old/yast2-storage-2.18.18/storage/src/include/ep-lib.ycp 2009-08-05 17:35:33.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/ep-lib.ycp 2009-09-29 17:07:44.000000000 +0200
@@ -41,6 +41,27 @@
}
+ void SplitDevice(map<string, map> target_map, string device, map& disk, map& part)
+ {
+ map disk_tmp = target_map[device]:nil;
+ map part_tmp = nil;
+
+ if (disk_tmp == nil)
+ {
+ foreach(string s, map d, target_map, {
+ part_tmp = find(map p, d["partitions"]:[], { return p["device"]:"" == device; });
+ if (part_tmp != nil) {
+ disk_tmp = d;
+ break;
+ }
+ });
+ }
+
+ disk = disk_tmp;
+ part = part_tmp;
+ }
+
+
/**
* Must be called before removing device.
*/
@@ -48,23 +69,15 @@
{
map<string, map> target_map = Storage::GetTargetMap();
- map disk = target_map[device]:nil;
+ map disk = nil;
map part = nil;
- if (disk == nil)
- {
- foreach(string s, map d, target_map, {
- part = find(map p, d["partitions"]:[], { return p["device"]:"" == device; });
- if (part != nil) {
- disk = d;
- break;
- }
- });
- }
+ SplitDevice(target_map, device, disk, part);
return disk["device"]:"";
}
+
boolean ConfirmDeletingUsedDevice( map tg, map <string, any> part, symbol used_by )
{
string device = part["device"]:"";
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.18.18/storage/src/include/ep-loop.ycp new/yast2-storage-2.18.18/storage/src/include/ep-loop.ycp
--- old/yast2-storage-2.18.18/storage/src/include/ep-loop.ycp 2009-07-21 16:37:06.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/ep-loop.ycp 2009-08-26 11:45:47.000000000 +0200
@@ -30,6 +30,7 @@
}
}
+
term LoopButtonBox()
{
return `HBox(
@@ -40,6 +41,7 @@
);
}
+
void HandleLoopButtons( string part_device, map event )
{
switch (Event::IsWidgetActivated(event))
@@ -58,6 +60,7 @@
}
}
+
void CreateLoopMainPanel(any user_data)
{
symbol Predicate(map disk, map partition)
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.18.18/storage/src/include/ep-lvm-dialogs.ycp new/yast2-storage-2.18.18/storage/src/include/ep-lvm-dialogs.ycp
--- old/yast2-storage-2.18.18/storage/src/include/ep-lvm-dialogs.ycp 2009-07-21 16:37:06.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/ep-lvm-dialogs.ycp 2009-08-19 14:26:55.000000000 +0200
@@ -364,7 +364,7 @@
string MiniWorkflowStepLvSizeHelptext()
{
// helptext
- string helptext = _("<p>Enter the size aswell as the number and size
+ string helptext = _("<p>Enter the size as well as the number and size
of stripes for the new logical volume. The number of stripes cannot be higher
than the number of physical volumes of the volume group.</p>");
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.18.18/storage/src/include/ep-lvm.ycp new/yast2-storage-2.18.18/storage/src/include/ep-lvm.ycp
--- old/yast2-storage-2.18.18/storage/src/include/ep-lvm.ycp 2009-07-28 14:11:06.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/ep-lvm.ycp 2009-09-29 17:13:51.000000000 +0200
@@ -58,6 +58,7 @@
}
}
+
term LvmButtonBox()
{
return `HBox(
@@ -70,6 +71,7 @@
);
}
+
void HandleLvmButtons( any user_data, string device, map event )
{
string vg = "";
@@ -77,10 +79,15 @@
if (user_data == nil)
{
- map dev = Storage::GetDiskPartition( device );
- vg = (string) dev["disk"]:nil;
- // FIXME: is this necessary & sufficient condition?
- is_vg = (dev["nr"]:"" == "");
+ map<string, map> target_map = Storage::GetTargetMap();
+
+ map disk = nil;
+ map part = nil;
+
+ SplitDevice(target_map, device, disk, part);
+
+ vg = disk["device"]:"";
+ is_vg = part == nil;
}
else
{
@@ -94,21 +101,21 @@
break;
case `edit:
- if ( is_vg )
+ if (is_vg)
TreePanel::SwitchToNew( vg );
else
EpEditLogicalVolume( device );
break;
case `resize:
- if ( is_vg )
+ if (is_vg)
EpResizeVolumeGroup( device);
else
EpResizeLogicalVolume ( device );
break;
case `delete:
- if ( is_vg )
+ if (is_vg)
EpDeleteVolumeGroup( device );
else
EpDeleteLogicalVolume ( device, UI::WidgetExists(`id(`table)) ? `table : `overview );
@@ -179,7 +186,6 @@
HandleLvmButtons( user_data, device, event );
-
switch (Event::IsWidgetContextMenuActivated(event))
{
case `table:
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.18.18/storage/src/include/ep-main.ycp new/yast2-storage-2.18.18/storage/src/include/ep-main.ycp
--- old/yast2-storage-2.18.18/storage/src/include/ep-main.ycp 2009-08-05 17:33:01.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/ep-main.ycp 2009-09-29 17:07:53.000000000 +0200
@@ -98,7 +98,7 @@
`lvm : $[ `create : CreateLvmMainPanel, `handle : HandleLvmMainPanel ],
`md : $[ `create : CreateRaidMainPanel, `handle : HandleRaidMainPanel ],
`loop : $[ `create : CreateLoopMainPanel, `handle : HandleLoopMainPanel ],
- `dm : $[ `create : CreateDmMainPanel ],
+ `dm : $[ `create : CreateDmMainPanel, `handle : HandleDmMainPanel ],
`nfs : $[ `create : CreateNfsMainPanel, `handle : HandleNfsMainPanel ],
`unused : $[ `create : CreateUnusedPanel, `handle : HandleUnusedPanel ],
`graph : $[ `create : CreateGraphPanel, `refresh : RefreshGraphPanel, `handle : HandleGraphPanel ],
@@ -232,19 +232,10 @@
{
map<string, map> target_map = Storage::GetTargetMap();
- map disk = target_map[device]:nil;
+ map disk = nil;
map part = nil;
- if (disk == nil)
- {
- foreach(string s, map d, target_map, {
- part = find(map p, d["partitions"]:[], { return p["device"]:"" == device; });
- if (part != nil) {
- disk = d;
- break;
- }
- });
- }
+ SplitDevice(target_map, device, disk, part);
switch (disk["type"]:`unknown)
{
@@ -273,6 +264,11 @@
else
EpContextMenuLvmLv(device);
break;
+
+ case `CT_DM:
+ if (part != nil)
+ EpContextMenuDm(device);
+ break;
}
}
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.18.18/storage/src/include/ep-unused.ycp new/yast2-storage-2.18.18/storage/src/include/ep-unused.ycp
--- old/yast2-storage-2.18.18/storage/src/include/ep-unused.ycp 2009-07-21 16:37:06.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/include/ep-unused.ycp 2009-08-26 11:44:00.000000000 +0200
@@ -54,7 +54,7 @@
`VBox(
// heading
`IconAndHeading(_("Unused Devices"), StorageIcons::unused_icon),
- `Table(`id(`table), `opt(`keepSorting, `notify),
+ `Table(`id(`table), `opt(`keepSorting, `notify, `notifyContextMenu),
table_header, table_contents),
`HBox(
// push button text
@@ -75,6 +75,15 @@
void HandleUnusedPanel(any user_data, map event)
{
+ string device = (string) UI::QueryWidget(`id(`table), `CurrentItem);
+
+ switch (Event::IsWidgetContextMenuActivated(event))
+ {
+ case `table:
+ EpContextMenuDevice(device);
+ break;
+ }
+
switch (Event::IsWidgetActivated(event))
{
case `rescan:
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.18.18/storage/src/modules/FileSystems.ycp new/yast2-storage-2.18.18/storage/src/modules/FileSystems.ycp
--- old/yast2-storage-2.18.18/storage/src/modules/FileSystems.ycp 2009-07-29 16:51:53.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/modules/FileSystems.ycp 2009-08-12 17:27:17.000000000 +0200
@@ -8,7 +8,7 @@
* These module contains the supported filesystems and their settings.
*
*
- * $Id: FileSystems.ycp 58151 2009-07-24 13:39:35Z aschnell $
+ * $Id: FileSystems.ycp 58331 2009-08-12 14:12:53Z aschnell $
*/
{
module "FileSystems";
@@ -59,12 +59,14 @@
return( ret );
}
- global list<string> system_m_points = [ "/", "/usr", "/var", "/opt",
- Partitions::BootMount() ];
- global list<string> crypt_m_points = [ "/", Partitions::BootMount(), "/usr" ];
- list<string> suggest_m_points = [];
- global list<string> swap_m_points = [ "swap" ];
- global list<string> tmp_m_mpoint = [ "/tmp", "/var/tmp" ];
+
+ global const list<string> system_m_points = [ "/", "/usr", "/var", "/opt", Partitions::BootMount() ];
+ global const list<string> crypt_m_points = [ "/", Partitions::BootMount(), "/usr" ];
+ global const list<string> swap_m_points = [ "swap" ];
+ global const list<string> tmp_m_points = [ "/tmp", "/var/tmp" ];
+
+ list<string> suggest_m_points = [];
+
global string nchars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
@@ -83,8 +85,9 @@
any sint = nil;
-define list FstabOptionStrings =
- [ "defaults",
+
+ const list<string> FstabOptionStrings = [
+ "defaults",
"auto", "noauto",
"atime", "noatime",
"ro", "rw",
@@ -103,16 +106,19 @@
"usrquota", "grpquota"
];
-define list FstabOptionRegex = [ "pri=[0-9]\+", "iocharset=.\+", "utf8=\.*",
+ const list<string> FstabOptionRegex = [
+ "pri=[0-9]\+", "iocharset=.\+", "utf8=\.*",
"nls=.\+", "codepage=.\+",
"gid=[0-9]\+", "umask=[0-7]\+",
"loop=.\+", "encryption=.\+",
"pri=[0-9]\+",
"locale=\.\+", "fmask=[0-7]\+", "dmask=[0-7]\+",
- "usrjquota=.\+", "grpjquota=.\+", "jqfmt=.\+" ];
+ "usrjquota=.\+", "grpjquota=.\+", "jqfmt=.\+"
+ ];
+
-define map FstabDefaultMap =
- $[ "pts": $[ "spec":"devpts", "mount":"/dev/pts", "vfstype":"devpts",
+ const map<string, map> FstabDefaultMap = $[
+ "pts": $[ "spec":"devpts", "mount":"/dev/pts", "vfstype":"devpts",
"mntops":"mode=0620,gid=5", "freq":0, "passno":0 ],
"proc": $[ "spec":"proc", "mount":"/proc", "vfstype":"proc",
"mntops":"defaults", "freq":0, "passno":0 ],
@@ -1373,22 +1379,17 @@
return( ret );
}
-global define map GetFstabDefaultMap( string key )
- ``{
- return( FstabDefaultMap[key]:$[] );
- }
-global define string GetFstabDefaultMntops( string key )
- ``{
- map m = GetFstabDefaultMap( key );
- return( m["mntops"]:"" );
+ global map GetFstabDefaultMap(string key)
+ {
+ return FstabDefaultMap[key]:$[];
}
-global define list GetFstabDefaultList( string key )
- ``{
- map m = GetFstabDefaultMap( key );
- return( [ m["spec"]:"", m["mount"]:"", m["vfstype"]:"", m["mntops"]:"",
- tostring(m["freq"]:0), tostring(m["passno"]:0) ] );
+ global list<string> GetFstabDefaultList(string key)
+ {
+ map m = GetFstabDefaultMap(key);
+ return [ m["spec"]:"", m["mount"]:"", m["vfstype"]:"", m["mntops"]:"",
+ tostring(m["freq"]:0), tostring(m["passno"]:0) ];
}
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.18.18/storage/src/modules/Storage.ycp new/yast2-storage-2.18.18/storage/src/modules/Storage.ycp
--- old/yast2-storage-2.18.18/storage/src/modules/Storage.ycp 2009-08-11 13:35:57.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/modules/Storage.ycp 2009-08-28 17:10:15.000000000 +0200
@@ -19,7 +19,7 @@
* wurde versucht "intelligent" zu gestallten und ist im einzelen bei den
* entspechenden Funktionen n�her erkl�rt.
*
- * $Id: Storage.ycp 58317 2009-08-11 11:35:58Z aschnell $
+ * $Id: Storage.ycp 58444 2009-08-27 13:53:51Z aschnell $
*/
{
module "Storage";
@@ -770,7 +770,7 @@
* Get List of swap partitions
* @return list List of swap partitions
*/
-global list SwappingPartitions()
+global list<string> SwappingPartitions()
{
SCR::UnmountAgent(.proc.swaps);
list<map> swaps = (list<map>) SCR::Read(.proc.swaps);
@@ -779,48 +779,12 @@
swaps = [];
}
swaps = filter(map e, swaps, ``(e["type"]:""=="partition"));
- list ret = maplist(map e, swaps, ``(Partitions::TranslateMapperName(e["file"]:"")));
+ list<string> ret = maplist(map e, swaps, ``(Partitions::TranslateMapperName(e["file"]:"")));
y2milestone("SwappingPartitions %1", ret);
return ret;
}
-list<string> GetDestroyedLvmVgs(map<string, map> target)
-{
- list<string> vgs = [];
- foreach(string diskdev, map disk, target, {
- foreach( map p, disk["partitions"]:[], {
- if( p["used_by_type"]:`UB_NONE==`UB_LVM && p["format"]:false )
- {
- vgs = add(vgs, p["used_by_device"]:"");
- }
- });
- });
- vgs = toset(vgs);
- y2milestone( "GetDestroyedLvmVgs %1", vgs );
- return vgs;
-}
-
-
-global map<string, map> DeleteDestroyedLvmVgs(map<string, map> target)
-{
- list<string> vgs = GetDestroyedLvmVgs(target);
- y2milestone( "DeleteDestroyedLvmVgs %1", vgs );
- foreach(string dev, vgs, {
- if( haskey( target, dev ))
- target[dev,"delete"] = true;
- target[dev,"partitions"] = maplist( map p, target[dev,"partitions"]:[],
- ``{
- if( haskey( p, "mount" ))
- p = remove( p, "mount" );
- return( p );
- });
- y2milestone( "DeleteDestroyedLvmVgs %1: %2", dev, target[dev]:$[] );
- });
- return target;
-}
-
-
/**
* Returns map of free space per partition
*
@@ -994,12 +958,14 @@
return( targets );
};
-global define string SaveDumpPath( string name )``{
- string ret = Directory::tmpdir + "/" + name;
- y2debug( "name=%1 path=%2", name, ret );
- return ret;
+
+ global string SaveDumpPath(string name)
+ {
+ string ret = Directory::tmpdir + "/" + name;
+ return ret;
}
+
// add mount point for all mounted partitions
/**
* Adds mountpoint info to the target map and returns the changed map
@@ -1765,7 +1731,7 @@
* @param map disk
* @return map disk info
*/
-global define map getDiskInfo( string device, map disk )
+ map getDiskInfo(string device, map disk)
{
map c = $[];
c = find( map p, conts, ``(p["device"]:""==device ));
@@ -1806,9 +1772,9 @@
*
* @return map <string, map>
*/
-global define map< string, map > GetOndiskTarget()
+ global map<string, map> GetOndiskTarget()
{
- list keys = [ "mount", "enc_type", "mountby", "fstopt", "used_fs", "format" ];
+ list<string> keys = [ "mount", "enc_type", "mountby", "fstopt", "used_fs", "format" ];
map<string,map> ret = GetTargetMap();
foreach( string d, map disk, ret,
``{
@@ -1823,9 +1789,10 @@
}));
ret[d,"partitions"] = pl;
});
- return( ret );
+ return ret;
}
+
global define void CreateTargetBackup(string who)
{
string t = "targetMap_s_" + who + "_" + sformat("%1",count);
@@ -1960,11 +1927,9 @@
}
-// Constructor
-global define void Storage()
- ``{
- map m = (map)SCR::Execute(.target.bash_output, "date +%s.%N" );
- y2milestone( "constructor Storage() time:%1", m["stdout"]:"" );
+ // Storage Constructor
+ global void Storage()
+ {
if( Mode::normal() )
{
Storage::SetPartMode( "CUSTOM" );
@@ -1982,8 +1947,6 @@
Storage::SetPartMode( "CUSTOM" );
Storage::SetPartProposalActive( false );
}
- m = (map)SCR::Execute(.target.bash_output, "date +%s.%N" );
- y2milestone( "constructor Storage() end time:%1", m["stdout"]:"" );
}
@@ -3519,7 +3482,7 @@
size(p["device"]:"")>0 )
{
boolean mount_ok = false;
- string tmpdir = (string)SCR::Read(.target.tmpdir) + "/hmp";
+ string tmpdir = (string) SCR::Read(.target.tmpdir) + "/tmp-home-mp";
SCR::Execute(.target.mkdir, tmpdir );
string fsto = FileSystems::DefaultFstabOptions( p );
mount_ok = Storage::MountOpt( p["device"]:"", tmpdir, fsto );
@@ -4830,15 +4793,16 @@
}
}
+
global void FinishInstall()
{
y2milestone("FinishInstall initial:%1", Stage::initial());
- map<string,map> tg = GetTargetMap();
+ map<string, map> target_map = GetTargetMap();
if( Stage::initial() )
{
- HandleModulesOnBoot( tg );
+ HandleModulesOnBoot(target_map);
}
boolean need_crypt = false;
@@ -4847,11 +4811,10 @@
boolean need_dmraid = false;
boolean need_dmmultipath = false;
- foreach( string k, map e, tg, {
- if( size(filter( map p, e["partitions"]:[],
- ``(p["enc_type"]:`none != `none)))>0 )
+ foreach (string k, map e, target_map, {
+ if (find(map part, e["partitions"]:[], { return part["enc_type"]:`none != `none; }) != nil)
need_crypt = true;
- if( e["type"]:`CT_UNKNOWN==`CT_MD && size(e["partitions"]:[])>0 )
+ if (e["type"]:`CT_UNKNOWN == `CT_MD && !isempty(e["partitions"]:[]))
need_md = true;
if( e["type"]:`CT_UNKNOWN==`CT_LVM )
need_lvm = true;
@@ -4875,22 +4838,20 @@
y2milestone("FinishInstall done");
}
-global define map GetEntryForMountpoint( string mp )
- ``{
- list<map> all_partitions = [];
- foreach( string dev, map disk, GetTargetMap(),
- ``{
- all_partitions = (list<map>)union( all_partitions,
- disk["partitions"]:[] );
+
+ global map GetEntryForMountpoint(string mp)
+ {
+ list<map> partitions = [];
+
+ foreach(string dev, map disk, GetTargetMap(), {
+ list<map> tmp = filter(map part, disk["partitions"]:[], { return part["mount"]:"" == mp; });
+ partitions = (list<map>) union(partitions, tmp);
});
- map partition = find( map part, all_partitions, ``(part["mount"]:""==mp) );
- if( partition==nil || partition["mount"]:"" != mp )
- {
- partition = $[];
- }
- return partition;
+
+ return partitions[0]:$[];
}
+
global define list GetRootInitrdModules()
``{
map partition = GetEntryForMountpoint( "/" );
@@ -4970,36 +4931,24 @@
return initrdmodules;
};
-/**
- * CheckForLvmRootFs
- *---------------------------------------------------------------------
- * check if the root filesystem is a lvm logical volume
- *
- **/
-global define boolean CheckForLvmRootFs()
- ``{
- map part = GetEntryForMountpoint( "/" );
- y2milestone( "CheckForLvmRootFs root=%1", part );
- boolean ret = part["type"]:`primary==`lvm;
- y2milestone( "CheckForLvmRootFs ret=%1", ret );
- return ret;
- };
+ global boolean CheckForLvmRootFs()
+ {
+ map part = GetEntryForMountpoint("/");
+ boolean ret = part["type"]:`primary == `lvm;
+ y2milestone("CheckForLvmRootFs root:%1 ret:%2", part, ret);
+ return ret;
+ }
+
+
+ global boolean CheckForMdRootFs()
+ {
+ map part = GetEntryForMountpoint("/");
+ boolean ret = part["type"]:`primary == `sw_raid;
+ y2milestone("CheckForMdRootFs root:%1 ret:%2", part, ret);
+ return ret;
+ }
- /*---------------------------------------------------------------------
- * checkForMdRootFs
- *---------------------------------------------------------------------
- * check if the root filesystem is a md device
- *---------------------------------------------------------------------
- */
-global define boolean CheckForMdRootFs()
- ``{
- map part = GetEntryForMountpoint( "/" );
- boolean ret = part["type"]:`primary==`sw_raid;
- y2milestone( "CheckForMdRootFs root=%1", part );
- y2milestone( "CheckForMdRootFs ret=%1", ret );
- return ret;
- };
global define void AdaptResize( string maindev, list region, integer schange )
``{
@@ -5177,9 +5126,9 @@
if( mount_point == "swap" )
{
vfstype = "swap";
- if( size(mntops) == 0 )
+ if (isempty(mntops))
{
- mntops = FileSystems::GetFstabDefaultMntops( "swap" );
+ mntops = FileSystems::GetFstabDefaultMap("swap")["mntops"]:"";
}
passno = 0;
}
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.18.18/storage/src/modules/StorageProposal.ycp new/yast2-storage-2.18.18/storage/src/modules/StorageProposal.ycp
--- old/yast2-storage-2.18.18/storage/src/modules/StorageProposal.ycp 2009-08-05 12:45:19.000000000 +0200
+++ new/yast2-storage-2.18.18/storage/src/modules/StorageProposal.ycp 2009-09-25 12:25:22.000000000 +0200
@@ -205,6 +205,42 @@
}
+ list<string> GetDestroyedLvmVgs(map<string, map> target)
+ {
+ list<string> vgs = [];
+ foreach(string diskdev, map disk, target, {
+ foreach( map p, disk["partitions"]:[], {
+ if( p["used_by_type"]:`UB_NONE==`UB_LVM && p["format"]:false )
+ {
+ vgs = add(vgs, p["used_by_device"]:"");
+ }
+ });
+ });
+ vgs = toset(vgs);
+ y2milestone( "GetDestroyedLvmVgs %1", vgs );
+ return vgs;
+ }
+
+
+ map<string, map> DeleteDestroyedLvmVgs(map<string, map> target)
+ {
+ list<string> vgs = GetDestroyedLvmVgs(target);
+ y2milestone( "DeleteDestroyedLvmVgs %1", vgs );
+ foreach(string dev, vgs, {
+ if( haskey( target, dev ))
+ target[dev,"delete"] = true;
+ target[dev,"partitions"] = maplist( map p, target[dev,"partitions"]:[],
+ ``{
+ if( haskey( p, "mount" ))
+ p = remove( p, "mount" );
+ return( p );
+ });
+ y2milestone( "DeleteDestroyedLvmVgs %1: %2", dev, target[dev]:$[] );
+ });
+ return target;
+ }
+
+
list<string> NoProposeDisks()
{
if (no_propose_disks == nil)
@@ -253,7 +289,8 @@
{
boolean ret = !Storage::IsPartitionable( entry ) ||
entry["readonly"]:false || Arch::s390();
- if( !ret && (Partitions::EfiBoot() || Arch::ia64()) && entry["label"]:"gpt"!="gpt" )
+ // GPT is not required for uEFI on x86_64
+ if( !ret && Arch::ia64() && entry["label"]:"gpt"!="gpt" )
{
ret = true;
}
@@ -848,7 +885,7 @@
});
ret["ok"] = true;
target = Storage::SpecialBootHandling( target );
- ret["target"] = Storage::DeleteDestroyedLvmVgs( target );
+ ret["target"] = DeleteDestroyedLvmVgs(target);
}
}
return( ret );
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libstorage for openSUSE:Factory
checked in at Sat Oct 3 00:46:57 CEST 2009.
--------
--- libstorage/libstorage.changes 2009-08-17 13:46:12.000000000 +0200
+++ libstorage/libstorage.changes 2009-09-29 14:30:01.000000000 +0200
@@ -1,0 +2,10 @@
+Tue Sep 29 13:38:12 CEST 2009 - aschnell(a)suse.de
+
+- fixed setting encryption for existing devices (bnc #539104)
+
+-------------------------------------------------------------------
+Fri Aug 28 15:37:10 CEST 2009 - aschnell(a)suse.de
+
+- fixed handling of efiboot parameter (bnc #490782)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libstorage.spec ++++++
--- /var/tmp/diff_new_pack.8Gg7SE/_old 2009-10-03 00:45:03.000000000 +0200
+++ /var/tmp/diff_new_pack.8Gg7SE/_new 2009-10-03 00:45:03.000000000 +0200
@@ -20,7 +20,7 @@
Name: libstorage
Version: 2.18.21
-Release: 3
+Release: 4
License: GPL
Group: System/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ libstorage-2.18.21.tar.bz2 ++++++
++++ 37334 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package mdadm for openSUSE:Factory
checked in at Sat Oct 3 00:44:46 CEST 2009.
--------
--- mdadm/mdadm.changes 2009-06-12 09:45:37.000000000 +0200
+++ mdadm/mdadm.changes 2009-10-01 10:53:10.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Oct 1 10:51:38 CEST 2009 - mmarek(a)suse.cz
+
+- updated to 3.0.2 + 2 patches
+ * bugfixes only
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
Start-kpartx-for-imsm-devices.patch
manage-rebuild-map-for-kpartx
mdadm-3.0.tar.bz2
New:
----
0001-Add-missing-space-in-detail-brief-output.patch
0002-Fix-null-dereference-in-set_member_info.patch
mdadm-3.0.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mdadm.spec ++++++
--- /var/tmp/diff_new_pack.sPblKV/_old 2009-10-03 00:43:15.000000000 +0200
+++ /var/tmp/diff_new_pack.sPblKV/_new 2009-10-03 00:43:15.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package mdadm (Version 3.0)
+# spec file for package mdadm (Version 3.0.2)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,9 +19,8 @@
Name: mdadm
-Version: 3.0
-Release: 21
-%define ver 3.0
+Version: 3.0.2
+Release: 1
BuildRequires: sgmltool
PreReq: %fillup_prereq %insserv_prereq
Obsoletes: raidtools
@@ -31,10 +30,9 @@
Url: http://www.kernel.org/pub/linux/utils/raid/mdadm/
Summary: Utility for Configuring MD Setup
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source: %{name}-%{ver}.tar.bz2
-# XXX - still needed?
-Patch6: Start-kpartx-for-imsm-devices.patch
-Patch11: manage-rebuild-map-for-kpartx
+Source: %{name}-%{version}.tar.bz2
+Patch1: 0001-Add-missing-space-in-detail-brief-output.patch
+Patch2: 0002-Fix-null-dereference-in-set_member_info.patch
Source1: Software-RAID.HOWTO.tar.bz2
Source2: sysconfig.mdadm
Source3: mdadmd
@@ -54,9 +52,9 @@
Neil Brown <neilb(a)suse.de>
%prep
-%setup -q -a1 -n %{name}-%{ver}
-#patch6 -p1
-#patch11 -p1
+%setup -q -a1
+%patch1 -p1
+%patch2 -p1
%build
%{suse_update_config -f}
++++++ 0001-Add-missing-space-in-detail-brief-output.patch ++++++
>From 0e90271e53c0f6efb33e904cf407498350e2a14d Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb(a)suse.de>
Date: Thu, 1 Oct 2009 12:38:31 +1000
Subject: [PATCH 1/2] Add missing space in "--detail --brief" output.
We need a space between the device name and the word "level"..
Signed-off-by: NeilBrown <neilb(a)suse.de>
---
Detail.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Detail.c b/Detail.c
index 001012a..a70db34 100644
--- a/Detail.c
+++ b/Detail.c
@@ -207,11 +207,11 @@ int Detail(char *dev, int brief, int export, int test, char *homehost)
printf("ARRAY %s", dev);
if (brief > 1) {
if (array.raid_disks)
- printf("level=%s num-devices=%d",
+ printf(" level=%s num-devices=%d",
c?c:"-unknown-",
array.raid_disks );
else
- printf("level=container num-devices=%d",
+ printf(" level=container num-devices=%d",
array.nr_disks);
}
if (container) {
--
1.6.3.3
++++++ 0002-Fix-null-dereference-in-set_member_info.patch ++++++
>From 2b9aa337af7291d3f141322da96c9f667c99d53c Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb(a)suse.de>
Date: Thu, 1 Oct 2009 12:51:04 +1000
Subject: [PATCH 2/2] Fix null-dereference in set_member_info
set_member_info would try to dereference ->metadata_version, without
checking that it isn't NULL.
Signed-off-by: NeilBrown <neilb(a)suse.de>
---
mapfile.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/mapfile.c b/mapfile.c
index a3038be..ed59db5 100644
--- a/mapfile.c
+++ b/mapfile.c
@@ -303,19 +303,22 @@ struct map_ent *map_by_name(struct map_ent **map, char *name)
*/
static void set_member_info(struct supertype *st, struct mdstat_ent *ent)
{
- char version[strlen(ent->metadata_version)+1];
st->subarray[0] = '\0';
- if (strncmp(ent->metadata_version, "external:", 9) != 0)
+ if (ent->metadata_version == NULL ||
+ strncmp(ent->metadata_version, "external:", 9) != 0)
return;
- strcpy(version, ent->metadata_version);
-
- if (is_subarray(&version[9])) {
- char *subarray = strrchr(version, '/');
+ if (is_subarray(&ent->metadata_version[9])) {
+ char version[strlen(ent->metadata_version)+1];
+ char *subarray;
char *name = &version[10];
+ strcpy(version, ent->metadata_version);
+ subarray = strrchr(version, '/');
+ name = &version[10];
+
if (!subarray)
return;
*subarray++ = '\0';
--
1.6.3.3
++++++ mdadm-3.0.tar.bz2 -> mdadm-3.0.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/ANNOUNCE-3.0.1 new/mdadm-3.0.2/ANNOUNCE-3.0.1
--- old/mdadm-3.0/ANNOUNCE-3.0.1 1970-01-01 01:00:00.000000000 +0100
+++ new/mdadm-3.0.2/ANNOUNCE-3.0.1 2009-09-25 09:54:33.000000000 +0200
@@ -0,0 +1,22 @@
+Subject: ANNOUNCE: mdadm 3.0.1 - A tool for managing Soft RAID under Linux
+
+I am pleased to announce the availability of
+ mdadm version 3.0.1
+
+It is available at the usual places:
+ countrycode=xx.
+ http://www.${countrycode}kernel.org/pub/linux/utils/raid/mdadm/
+and via git at
+ git://neil.brown.name/mdadm
+ http://neil.brown.name/git?p=mdadm
+
+
+This contains only minor bug fixes over 3.0. If you are using
+3.0, you could consider upgrading.
+
+The brief change log is:
+ - Fix various segfaults
+ - Fixed for --examine with containers
+ - Lots of other little fixes.
+
+NeilBrown 25th September 2009
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/ANNOUNCE-3.0.2 new/mdadm-3.0.2/ANNOUNCE-3.0.2
--- old/mdadm-3.0/ANNOUNCE-3.0.2 1970-01-01 01:00:00.000000000 +0100
+++ new/mdadm-3.0.2/ANNOUNCE-3.0.2 2009-09-25 10:19:15.000000000 +0200
@@ -0,0 +1,21 @@
+Subject: ANNOUNCE: mdadm 3.0.2 - A tool for managing Soft RAID under Linux
+
+I am pleased to announce the availability of
+ mdadm version 3.0.2
+
+It is available at the usual places:
+ countrycode=xx.
+ http://www.${countrycode}kernel.org/pub/linux/utils/raid/mdadm/
+and via git at
+ git://neil.brown.name/mdadm
+ http://neil.brown.name/git?p=mdadm
+
+
+This just contains one bugfix over 3.0.1 - I was obviously a bit hasty
+in releasing that one.
+
+The brief change log is:
+ - Fix crash when hosthost is not set, as often happens in
+ early boot.
+
+NeilBrown 25th September 2009
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/Assemble.c new/mdadm-3.0.2/Assemble.c
--- old/mdadm-3.0/Assemble.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/Assemble.c 2009-09-25 09:54:33.000000000 +0200
@@ -320,6 +320,8 @@
content = tmpdev->content;
else
content = tst->ss->container_content(tst);
+ if (!content)
+ goto loop; /* empty container */
tmpdev->content = content->next;
if (tmpdev->content == NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/ChangeLog new/mdadm-3.0.2/ChangeLog
--- old/mdadm-3.0/ChangeLog 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/ChangeLog 2009-09-25 10:19:15.000000000 +0200
@@ -1,7 +1,16 @@
Please see git logs for detailed change log.
This file just contains highlight.
-Changed Prior to release 3.0
+Changes Prior to release 3.0.2
+ - Fix crash when hosthost is not set, as often happens in
+ early boot.
+
+Changes Prior to release 3.0.1
+ - Fix various segfaults
+ - Fixed for --examine with containers
+ - Lots of other little fixes.
+
+Changes Prior to release 3.0
- Support for externally managed metadata, specifically DDF and IMSM.
- Depend on udev to create entries in /dev, rather than creating them
ourselves.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/Create.c new/mdadm-3.0.2/Create.c
--- old/mdadm-3.0/Create.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/Create.c 2009-09-25 09:54:33.000000000 +0200
@@ -792,7 +792,39 @@
dv == moved_disk && dnum != insert_point) break;
}
if (pass == 1) {
+ struct mdinfo info_new;
+ struct map_ent *me = NULL;
+
+ /* check to see if the uuid has changed due to these
+ * metadata changes, and if so update the member array
+ * and container uuid. Note ->write_init_super clears
+ * the subarray cursor such that ->getinfo_super once
+ * again returns container info.
+ */
+ map_lock(&map);
+ st->ss->getinfo_super(st, &info_new);
+ if (st->ss->external && level != LEVEL_CONTAINER &&
+ !same_uuid(info_new.uuid, info.uuid, 0)) {
+ map_update(&map, fd2devnum(mdfd),
+ info_new.text_version,
+ info_new.uuid, chosen_name);
+ me = map_by_devnum(&map, st->container_dev);
+ }
+
st->ss->write_init_super(st);
+
+ /* update parent container uuid */
+ if (me) {
+ char *path = strdup(me->path);
+
+ st->ss->getinfo_super(st, &info_new);
+ map_update(&map, st->container_dev,
+ info_new.text_version,
+ info_new.uuid, path);
+ free(path);
+ }
+ map_unlock(&map);
+
flush_metadata_updates(st);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/Detail.c new/mdadm-3.0.2/Detail.c
--- old/mdadm-3.0/Detail.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/Detail.c 2009-09-25 09:54:33.000000000 +0200
@@ -122,12 +122,25 @@
disk.minor == 0)
continue;
if ((dv=map_dev(disk.major, disk.minor, 1))) {
- if ((!st || !st->sb) &&
+ /* some formats (imsm) have free-floating-spares
+ * with a uuid of uuid_match_any, they don't
+ * have very good info about the rest of the
+ * container, so keep searching when
+ * encountering such a device. Otherwise, stop
+ * after the first successful call to
+ * ->load_super.
+ */
+ int free_spare = memcmp(uuid_match_any,
+ info.uuid,
+ sizeof(uuid_match_any)) == 0;
+ if ((!st || !st->sb || free_spare) &&
(array.raid_disks == 0 ||
(disk.state & (1<<MD_DISK_ACTIVE)))) {
/* try to read the superblock from this device
* to get more info
*/
+ if (free_spare)
+ st->ss->free_super(st);
int fd2 = dev_open(dv, O_RDONLY);
if (fd2 >=0 && st &&
st->ss->load_super(st, fd2, NULL) == 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/Examine.c new/mdadm-3.0.2/Examine.c
--- old/mdadm-3.0/Examine.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/Examine.c 2009-09-25 09:54:33.000000000 +0200
@@ -63,7 +63,7 @@
} *arrays = NULL;
for (; devlist ; devlist=devlist->next) {
- struct supertype *st = forcest;
+ struct supertype *st;
fd = dev_open(devlist->devname, O_RDONLY);
if (fd < 0) {
@@ -75,7 +75,9 @@
err = 1;
}
else {
- if (!st)
+ if (forcest)
+ st = dup_super(forcest);
+ else
st = guess_super(fd);
if (st)
err = st->ss->load_super(st, fd,
@@ -114,11 +116,10 @@
ap->st = st;
arrays = ap;
st->ss->getinfo_super(st, &ap->info);
- } else {
+ } else
st->ss->getinfo_super(st, &ap->info);
- st->ss->free_super(st);
- }
- if (!(ap->info.disk.state & (1<<MD_DISK_SYNC)))
+ if (!st->loaded_container &&
+ !(ap->info.disk.state & (1<<MD_DISK_SYNC)))
ap->spares++;
d = dl_strdup(devlist->devname);
dl_add(ap->devs, d);
@@ -136,15 +137,23 @@
for (ap=arrays; ap; ap=ap->next) {
char sep='=';
char *d;
+ int newline = 0;
+
ap->st->ss->brief_examine_super(ap->st, brief > 1);
- if (ap->spares) printf(" spares=%d", ap->spares);
+ if (ap->spares)
+ newline += printf(" spares=%d", ap->spares);
if (brief > 1) {
- printf(" devices");
+ newline += printf(" devices");
for (d=dl_next(ap->devs); d!= ap->devs; d=dl_next(d)) {
printf("%c%s", sep, d);
sep=',';
}
}
+ if (ap->st->ss->brief_examine_subarrays) {
+ if (newline)
+ printf("\n");
+ ap->st->ss->brief_examine_subarrays(ap->st, brief > 1);
+ }
ap->st->ss->free_super(ap->st);
/* FIXME free ap */
if (ap->spares || brief > 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/Monitor.c new/mdadm-3.0.2/Monitor.c
--- old/mdadm-3.0/Monitor.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/Monitor.c 2009-09-25 09:54:33.000000000 +0200
@@ -581,7 +581,7 @@
n=fwrite(buf, 1, n, mp); /* yes, i don't care about the result */
fclose(mdstat);
}
- fclose(mp);
+ pclose(mp);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/ReadMe.c new/mdadm-3.0.2/ReadMe.c
--- old/mdadm-3.0/ReadMe.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/ReadMe.c 2009-09-25 10:19:15.000000000 +0200
@@ -24,7 +24,7 @@
#include "mdadm.h"
-char Version[] = Name " - v3.0 - 2nd June 2009\n";
+char Version[] = Name " - v3.0.2 - 25th September 2009\n";
/*
* File: ReadMe.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/inventory new/mdadm-3.0.2/inventory
--- old/mdadm-3.0/inventory 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/inventory 2009-09-25 10:19:15.000000000 +0200
@@ -1,5 +1,7 @@
ANNOUNCE-3.0
+ANNOUNCE-3.0.1
+ANNOUNCE-3.0.2
Assemble.c
bitmap.c
bitmap.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/mapfile.c new/mdadm-3.0.2/mapfile.c
--- old/mdadm-3.0/mapfile.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/mapfile.c 2009-09-25 09:54:33.000000000 +0200
@@ -297,6 +297,34 @@
return NULL;
}
+/* sets the proper subarray and container_dev according to the metadata
+ * version super_by_fd does this automatically, this routine is meant as
+ * a supplement for guess_super()
+ */
+static void set_member_info(struct supertype *st, struct mdstat_ent *ent)
+{
+ char version[strlen(ent->metadata_version)+1];
+
+ st->subarray[0] = '\0';
+
+ if (strncmp(ent->metadata_version, "external:", 9) != 0)
+ return;
+
+ strcpy(version, ent->metadata_version);
+
+ if (is_subarray(&version[9])) {
+ char *subarray = strrchr(version, '/');
+ char *name = &version[10];
+
+ if (!subarray)
+ return;
+ *subarray++ = '\0';
+
+ st->container_dev = devname2devnum(name);
+ strncpy(st->subarray, subarray, sizeof(st->subarray));
+ }
+}
+
void RebuildMap(void)
{
struct mdstat_ent *mdstat = mdstat_read(0, 0);
@@ -337,8 +365,10 @@
st = guess_super(dfd);
if ( st == NULL)
ok = -1;
- else
+ else {
+ set_member_info(st, md);
ok = st->ss->load_super(st, dfd, NULL);
+ }
close(dfd);
if (ok != 0)
continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/mdadm.8 new/mdadm-3.0.2/mdadm.8
--- old/mdadm-3.0/mdadm.8 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/mdadm.8 2009-09-25 10:19:15.000000000 +0200
@@ -5,7 +5,7 @@
.\" the Free Software Foundation; either version 2 of the License, or
.\" (at your option) any later version.
.\" See file COPYING in distribution for details.
-.TH MDADM 8 "" v3.0
+.TH MDADM 8 "" v3.0.2
.SH NAME
mdadm \- manage MD devices
.I aka
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/mdadm.h new/mdadm-3.0.2/mdadm.h
--- old/mdadm-3.0/mdadm.h 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/mdadm.h 2009-09-25 09:54:33.000000000 +0200
@@ -436,6 +436,7 @@
*/
void (*examine_super)(struct supertype *st, char *homehost);
void (*brief_examine_super)(struct supertype *st, int verbose);
+ void (*brief_examine_subarrays)(struct supertype *st, int verbose);
void (*export_examine_super)(struct supertype *st);
/* Used to report details of an active array.
@@ -848,6 +849,7 @@
extern int mdmon_running(int devnum);
extern int signal_mdmon(int devnum);
extern int check_env(char *name);
+extern __u32 random32(void);
extern int start_mdmon(int devnum);
extern char *devnum2devname(int num);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/mdadm.spec new/mdadm-3.0.2/mdadm.spec
--- old/mdadm-3.0/mdadm.spec 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/mdadm.spec 2009-09-25 10:19:15.000000000 +0200
@@ -1,6 +1,6 @@
Summary: mdadm is used for controlling Linux md devices (aka RAID arrays)
Name: mdadm
-Version: 3.0
+Version: 3.0.2
Release: 1
Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tgz
URL: http://neil.brown.name/blog/mdadm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/mdassemble.8 new/mdadm-3.0.2/mdassemble.8
--- old/mdadm-3.0/mdassemble.8 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/mdassemble.8 2009-09-25 10:19:15.000000000 +0200
@@ -1,5 +1,5 @@
.\" -*- nroff -*-
-.TH MDASSEMBLE 8 "" v3.0
+.TH MDASSEMBLE 8 "" v3.0.2
.SH NAME
mdassemble \- assemble MD devices
.I aka
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/mdmon.8 new/mdadm-3.0.2/mdmon.8
--- old/mdadm-3.0/mdmon.8 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/mdmon.8 2009-09-25 10:19:15.000000000 +0200
@@ -1,5 +1,5 @@
.\" See file COPYING in distribution for details.
-.TH MDMON 8 "" v3.0
+.TH MDMON 8 "" v3.0.2
.SH NAME
mdmon \- monitor MD external metadata arrays
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/mdmon.c new/mdadm-3.0.2/mdmon.c
--- old/mdadm-3.0/mdmon.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/mdmon.c 2009-09-25 09:54:33.000000000 +0200
@@ -395,7 +395,7 @@
} else
pfd[0] = pfd[1] = -1;
- container = malloc(sizeof(*container));
+ container = calloc(1, sizeof(*container));
container->devnum = devnum;
container->devname = devname;
container->arrays = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/platform-intel.c new/mdadm-3.0.2/platform-intel.c
--- old/mdadm-3.0/platform-intel.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/platform-intel.c 2009-09-25 09:54:33.000000000 +0200
@@ -90,7 +90,7 @@
list->path = canonicalize_file_name(path);
list->next = NULL;
}
-
+ closedir(driver_dir);
return head;
}
@@ -157,6 +157,7 @@
const struct imsm_orom *find_imsm_orom(void)
{
static int populated = 0;
+ unsigned long align;
/* it's static data so we only need to read it once */
if (populated)
@@ -184,7 +185,11 @@
return NULL;
/* scan option-rom memory looking for an imsm signature */
- if (probe_roms_init() != 0)
+ if (check_env("IMSM_SAFE_OROM_SCAN"))
+ align = 2048;
+ else
+ align = 512;
+ if (probe_roms_init(align) != 0)
return NULL;
probe_roms();
populated = scan_adapter_roms(scan);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/probe_roms.c new/mdadm-3.0.2/probe_roms.c
--- old/mdadm-3.0/probe_roms.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/probe_roms.c 2009-09-25 09:54:33.000000000 +0200
@@ -32,6 +32,8 @@
static int rom_fd = -1;
const static int rom_len = 0xf0000 - 0xc0000; /* option-rom memory region */
static int _sigbus;
+static unsigned long rom_align;
+
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
static void sigbus(int sig)
@@ -76,11 +78,20 @@
}
}
-int probe_roms_init(void)
+int probe_roms_init(unsigned long align)
{
int fd;
int rc = 0;
+ /* valid values are 2048 and 512. 512 is for PCI-3.0 compliant
+ * systems, or systems that do not have dangerous/legacy ISA
+ * devices. 2048 should always be safe
+ */
+ if (align == 512 || align == 2048)
+ rom_align = align;
+ else
+ return -1;
+
if (signal(SIGBUS, sigbus) == SIG_ERR)
rc = -1;
if (rc == 0) {
@@ -208,6 +219,11 @@
return found;
}
+static unsigned long align(unsigned long addr, unsigned long alignment)
+{
+ return (addr + alignment - 1) & ~(alignment - 1);
+}
+
void probe_roms(void)
{
const void *rom;
@@ -220,7 +236,7 @@
/* video rom */
upper = adapter_rom_resources[0].start;
- for (start = video_rom_resource.start; start < upper; start += 2048) {
+ for (start = video_rom_resource.start; start < upper; start += rom_align) {
rom = isa_bus_to_virt(start);
if (!romsignature(rom))
continue;
@@ -239,7 +255,7 @@
break;
}
- start = (video_rom_resource.end + 1 + 2047) & ~2047UL;
+ start = align(video_rom_resource.end + 1, rom_align);
if (start < upper)
start = upper;
@@ -255,7 +271,7 @@
}
/* check for adapter roms on 2k boundaries */
- for (i = 0; i < ARRAY_SIZE(adapter_rom_resources) && start < upper; start += 2048) {
+ for (i = 0; i < ARRAY_SIZE(adapter_rom_resources) && start < upper; start += rom_align) {
rom = isa_bus_to_virt(start);
if (!romsignature(rom))
continue;
@@ -273,7 +289,7 @@
adapter_rom_resources[i].start = start;
adapter_rom_resources[i].end = start + length - 1;
- start = adapter_rom_resources[i++].end & ~2047UL;
+ start = adapter_rom_resources[i++].end & ~(rom_align - 1);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/probe_roms.h new/mdadm-3.0.2/probe_roms.h
--- old/mdadm-3.0/probe_roms.h 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/probe_roms.h 2009-09-25 09:54:33.000000000 +0200
@@ -18,7 +18,7 @@
*/
void probe_roms_exit(void);
-int probe_roms_init(void);
+int probe_roms_init(unsigned long align);
typedef int (*scan_fn)(const void *start, const void *end);
int scan_adapter_roms(scan_fn fn);
void probe_roms(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/super-ddf.c new/mdadm-3.0.2/super-ddf.c
--- old/mdadm-3.0/super-ddf.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/super-ddf.c 2009-09-25 09:54:33.000000000 +0200
@@ -762,6 +762,9 @@
static int load_super_ddf_all(struct supertype *st, int fd,
void **sbp, char *devname, int keep_fd);
#endif
+
+static void free_super_ddf(struct supertype *st);
+
static int load_super_ddf(struct supertype *st, int fd,
char *devname)
{
@@ -798,6 +801,8 @@
return 1;
}
+ free_super_ddf(st);
+
if (posix_memalign((void**)&super, 512, sizeof(*super))!= 0) {
fprintf(stderr, Name ": malloc of %zu failed.\n",
sizeof(*super));
@@ -835,6 +840,18 @@
return rv;
}
+ if (st->subarray[0]) {
+ struct vcl *v;
+
+ for (v = super->conflist; v; v = v->next)
+ if (v->vcnum == atoi(st->subarray))
+ super->currentconf = v;
+ if (!super->currentconf) {
+ free(super);
+ return 1;
+ }
+ }
+
/* Should possibly check the sections .... */
st->sb = super;
@@ -1166,13 +1183,24 @@
{
/* We just write a generic DDF ARRAY entry
*/
+ struct mdinfo info;
+ char nbuf[64];
+ getinfo_super_ddf(st, &info);
+ fname_from_uuid(st, &info, nbuf, ':');
+
+ printf("ARRAY metadata=ddf UUID=%s\n", nbuf + 5);
+}
+
+static void brief_examine_subarrays_ddf(struct supertype *st, int verbose)
+{
+ /* We just write a generic DDF ARRAY entry
+ */
struct ddf_super *ddf = st->sb;
struct mdinfo info;
int i;
char nbuf[64];
getinfo_super_ddf(st, &info);
fname_from_uuid(st, &info, nbuf, ':');
- printf("ARRAY metadata=ddf UUID=%s\n", nbuf + 5);
for (i=0; i<__be16_to_cpu(ddf->virt->max_vdes); i++) {
struct virtual_entry *ve = &ddf->virt->entries[i];
@@ -1495,17 +1523,6 @@
return rv;
}
-__u32 random32(void)
-{
- __u32 rv;
- int rfd = open("/dev/urandom", O_RDONLY);
- if (rfd < 0 || read(rfd, &rv, 4) != 4)
- rv = random();
- if (rfd >= 0)
- close(rfd);
- return rv;
-}
-
static void make_header_guid(char *guid)
{
__u32 stamp;
@@ -2345,15 +2362,19 @@
static int write_init_super_ddf(struct supertype *st)
{
+ struct ddf_super *ddf = st->sb;
+ struct vcl *currentconf = ddf->currentconf;
+
+ /* we are done with currentconf reset it to point st at the container */
+ ddf->currentconf = NULL;
if (st->update_tail) {
/* queue the virtual_disk and vd_config as metadata updates */
struct virtual_disk *vd;
struct vd_config *vc;
- struct ddf_super *ddf = st->sb;
int len;
- if (!ddf->currentconf) {
+ if (!currentconf) {
int len = (sizeof(struct phys_disk) +
sizeof(struct phys_disk_entry));
@@ -2372,14 +2393,14 @@
len = sizeof(struct virtual_disk) + sizeof(struct virtual_entry);
vd = malloc(len);
*vd = *ddf->virt;
- vd->entries[0] = ddf->virt->entries[ddf->currentconf->vcnum];
- vd->populated_vdes = __cpu_to_be16(ddf->currentconf->vcnum);
+ vd->entries[0] = ddf->virt->entries[currentconf->vcnum];
+ vd->populated_vdes = __cpu_to_be16(currentconf->vcnum);
append_metadata_update(st, vd, len);
/* Then the vd_config */
len = ddf->conf_rec_len * 512;
vc = malloc(len);
- memcpy(vc, &ddf->currentconf->conf, len);
+ memcpy(vc, ¤tconf->conf, len);
append_metadata_update(st, vc, len);
/* FIXME I need to close the fds! */
@@ -3587,6 +3608,7 @@
#ifndef MDASSEMBLE
.examine_super = examine_super_ddf,
.brief_examine_super = brief_examine_super_ddf,
+ .brief_examine_subarrays = brief_examine_subarrays_ddf,
.export_examine_super = export_examine_super_ddf,
.detail_super = detail_super_ddf,
.brief_detail_super = brief_detail_super_ddf,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/super-intel.c new/mdadm-3.0.2/super-intel.c
--- old/mdadm-3.0/super-intel.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/super-intel.c 2009-09-25 09:54:33.000000000 +0200
@@ -64,7 +64,6 @@
#define SPARE_DISK __cpu_to_le32(0x01) /* Spare */
#define CONFIGURED_DISK __cpu_to_le32(0x02) /* Member of some RaidDev */
#define FAILED_DISK __cpu_to_le32(0x04) /* Permanent failure */
-#define USABLE_DISK __cpu_to_le32(0x08) /* Fully usable unless FAILED_DISK is set */
__u32 status; /* 0xF0 - 0xF3 */
__u32 owner_cfg_num; /* which config 0,1,2... owns this disk */
#define IMSM_DISK_FILLERS 4
@@ -247,6 +246,7 @@
int creating_imsm; /* flag to indicate container creation */
int current_vol; /* index of raid device undergoing creation */
__u32 create_offset; /* common start for 'current_vol' */
+ __u32 random; /* random data for seeding new family numbers */
struct intel_dev *devlist;
struct dl {
struct dl *next;
@@ -686,10 +686,9 @@
snprintf(str, MAX_RAID_SERIAL_LEN + 1, "%s", disk->serial);
printf(" Disk%02d Serial : %s\n", index, str);
s = disk->status;
- printf(" State :%s%s%s%s\n", s&SPARE_DISK ? " spare" : "",
+ printf(" State :%s%s%s\n", s&SPARE_DISK ? " spare" : "",
s&CONFIGURED_DISK ? " active" : "",
- s&FAILED_DISK ? " failed" : "",
- s&USABLE_DISK ? " usable" : "");
+ s&FAILED_DISK ? " failed" : "");
printf(" Id : %08x\n", __le32_to_cpu(disk->scsi_id));
sz = __le32_to_cpu(disk->total_blocks) - reserved;
printf(" Usable Size : %llu%s\n", (unsigned long long)sz,
@@ -714,6 +713,7 @@
printf(" Magic : %s\n", str);
snprintf(str, strlen(MPB_VERSION_RAID0), "%s", get_imsm_version(mpb));
printf(" Version : %s\n", get_imsm_version(mpb));
+ printf(" Orig Family : %08x\n", __le32_to_cpu(mpb->orig_family_num));
printf(" Family : %08x\n", __le32_to_cpu(mpb->family_num));
printf(" Generation : %08x\n", __le32_to_cpu(mpb->generation_num));
getinfo_super_imsm(st, &info);
@@ -759,6 +759,23 @@
/* We just write a generic IMSM ARRAY entry */
struct mdinfo info;
char nbuf[64];
+ struct intel_super *super = st->sb;
+
+ if (!super->anchor->num_raid_devs) {
+ printf("ARRAY metadata=imsm\n");
+ return;
+ }
+
+ getinfo_super_imsm(st, &info);
+ fname_from_uuid(st, &info, nbuf, ':');
+ printf("ARRAY metadata=imsm UUID=%s\n", nbuf + 5);
+}
+
+static void brief_examine_subarrays_imsm(struct supertype *st, int verbose)
+{
+ /* We just write a generic IMSM ARRAY entry */
+ struct mdinfo info;
+ char nbuf[64];
char nbuf1[64];
struct intel_super *super = st->sb;
int i;
@@ -768,7 +785,6 @@
getinfo_super_imsm(st, &info);
fname_from_uuid(st, &info, nbuf, ':');
- printf("ARRAY metadata=imsm UUID=%s\n", nbuf + 5);
for (i = 0; i < super->anchor->num_raid_devs; i++) {
struct imsm_dev *dev = get_imsm_dev(super, i);
@@ -1089,7 +1105,7 @@
/* the imsm metadata format does not specify any host
* identification information. We return -1 since we can never
* confirm nor deny whether a given array is "meant" for this
- * host. We rely on compare_super and the 'family_num' field to
+ * host. We rely on compare_super and the 'family_num' fields to
* exclude member disks that do not belong, and we rely on
* mdadm.conf to specify the arrays that should be assembled.
* Auto-assembly may still pick up "foreign" arrays.
@@ -1117,7 +1133,7 @@
*/
/* imsm does not track uuid's so we synthesis one using sha1 on
* - The signature (Which is constant for all imsm array, but no matter)
- * - the family_num of the container
+ * - the orig_family_num of the container
* - the index number of the volume
* - the 'serial' number of the volume.
* Hopefully these are all constant.
@@ -1127,10 +1143,18 @@
char buf[20];
struct sha1_ctx ctx;
struct imsm_dev *dev = NULL;
+ __u32 family_num;
+ /* some mdadm versions failed to set ->orig_family_num, in which
+ * case fall back to ->family_num. orig_family_num will be
+ * fixed up with the first metadata update.
+ */
+ family_num = super->anchor->orig_family_num;
+ if (family_num == 0)
+ family_num = super->anchor->family_num;
sha1_init_ctx(&ctx);
sha1_process_bytes(super->anchor->sig, MPB_SIG_LEN, &ctx);
- sha1_process_bytes(&super->anchor->family_num, sizeof(__u32), &ctx);
+ sha1_process_bytes(&family_num, sizeof(__u32), &ctx);
if (super->current_vol >= 0)
dev = get_imsm_dev(super, super->current_vol);
if (dev) {
@@ -1256,7 +1280,11 @@
struct supertype *_cst; /* container supertype */
_cst = array_list->st;
- _sst = _cst->ss->match_metadata_desc(inf->text_version);
+ if (_cst)
+ _sst = _cst->ss->match_metadata_desc(inf->text_version);
+ else
+ _sst = NULL;
+
if (_sst) {
memcpy(inf->uuid, array_list->uuid, sizeof(int[4]));
free(_sst);
@@ -1438,7 +1466,8 @@
*/
if (first->anchor->num_raid_devs > 0 &&
sec->anchor->num_raid_devs > 0) {
- if (first->anchor->family_num != sec->anchor->family_num)
+ if (first->anchor->orig_family_num != sec->anchor->orig_family_num ||
+ first->anchor->family_num != sec->anchor->family_num)
return 3;
}
@@ -1468,17 +1497,17 @@
dv->next = first->devlist;
first->devlist = dv;
}
- if (i <= sec->anchor->num_raid_devs) {
+ if (i < sec->anchor->num_raid_devs) {
/* allocation failure */
free_devlist(first);
fprintf(stderr, "imsm: failed to associate spare\n");
return 3;
}
- for (i = 0; i < sec->anchor->num_raid_devs; i++)
- imsm_copy_dev(get_imsm_dev(first, i), get_imsm_dev(sec, i));
-
first->anchor->num_raid_devs = sec->anchor->num_raid_devs;
+ first->anchor->orig_family_num = sec->anchor->orig_family_num;
first->anchor->family_num = sec->anchor->family_num;
+ for (i = 0; i < sec->anchor->num_raid_devs; i++)
+ imsm_copy_dev(get_imsm_dev(first, i), get_imsm_dev(sec, i));
}
return 0;
@@ -2167,8 +2196,10 @@
if (st->subarray[0]) {
if (atoi(st->subarray) <= super->anchor->num_raid_devs)
super->current_vol = atoi(st->subarray);
- else
+ else {
+ free_imsm(super);
return 1;
+ }
}
*sbp = super;
@@ -2193,8 +2224,8 @@
if (load_super_imsm_all(st, fd, &st->sb, devname, 1) == 0)
return 0;
#endif
- if (st->subarray[0])
- return 1; /* FIXME */
+
+ free_super_imsm(st);
super = alloc_super(0);
if (!super) {
@@ -2215,6 +2246,15 @@
return rv;
}
+ if (st->subarray[0]) {
+ if (atoi(st->subarray) <= super->anchor->num_raid_devs)
+ super->current_vol = atoi(st->subarray);
+ else {
+ free_imsm(super);
+ return 1;
+ }
+ }
+
st->sb = super;
if (st->ss == NULL) {
st->ss = &super_imsm;
@@ -2526,7 +2566,7 @@
super->anchor->num_disks++;
}
set_imsm_ord_tbl_ent(map, dk->number, dl->index);
- dl->disk.status = CONFIGURED_DISK | USABLE_DISK;
+ dl->disk.status = CONFIGURED_DISK;
/* if we are creating the first raid device update the family number */
if (super->current_vol == 0) {
@@ -2536,8 +2576,10 @@
*_dev = *dev;
*_disk = dl->disk;
- sum = __gen_imsm_checksum(mpb);
+ sum = random32();
+ sum += __gen_imsm_checksum(mpb);
mpb->family_num = __cpu_to_le32(sum);
+ mpb->orig_family_num = mpb->family_num;
}
return 0;
@@ -2592,7 +2634,7 @@
size /= 512;
serialcpy(dd->disk.serial, dd->serial);
dd->disk.total_blocks = __cpu_to_le32(size);
- dd->disk.status = USABLE_DISK | SPARE_DISK;
+ dd->disk.status = SPARE_DISK;
if (sysfs_disk_to_scsi_id(fd, &id) == 0)
dd->disk.scsi_id = __cpu_to_le32(id);
else
@@ -2634,6 +2676,7 @@
mpb->disk[0] = d->disk;
sum = __gen_imsm_checksum(mpb);
mpb->family_num = __cpu_to_le32(sum);
+ mpb->orig_family_num = 0;
sum = __gen_imsm_checksum(mpb);
mpb->check_sum = __cpu_to_le32(sum);
@@ -2668,6 +2711,12 @@
generation++;
mpb->generation_num = __cpu_to_le32(generation);
+ /* fix up cases where previous mdadm releases failed to set
+ * orig_family_num
+ */
+ if (mpb->orig_family_num == 0)
+ mpb->orig_family_num = mpb->family_num;
+
mpb_size += sizeof(struct imsm_disk) * mpb->num_disks;
for (d = super->disks; d; d = d->next) {
if (d->index == -1)
@@ -2711,17 +2760,16 @@
}
-static int create_array(struct supertype *st)
+static int create_array(struct supertype *st, int dev_idx)
{
size_t len;
struct imsm_update_create_array *u;
struct intel_super *super = st->sb;
- struct imsm_dev *dev = get_imsm_dev(super, super->current_vol);
+ struct imsm_dev *dev = get_imsm_dev(super, dev_idx);
struct imsm_map *map = get_imsm_map(dev, 0);
struct disk_info *inf;
struct imsm_disk *disk;
int i;
- int idx;
len = sizeof(*u) - sizeof(*dev) + sizeof_imsm_dev(dev, 0) +
sizeof(*inf) * map->num_members;
@@ -2733,11 +2781,12 @@
}
u->type = update_create_array;
- u->dev_idx = super->current_vol;
+ u->dev_idx = dev_idx;
imsm_copy_dev(&u->dev, dev);
inf = get_disk_info(u);
for (i = 0; i < map->num_members; i++) {
- idx = get_imsm_disk_idx(dev, i);
+ int idx = get_imsm_disk_idx(dev, i);
+
disk = get_imsm_disk(super, idx);
serialcpy(inf[i].serial, disk->serial);
}
@@ -2771,21 +2820,26 @@
static int write_init_super_imsm(struct supertype *st)
{
+ struct intel_super *super = st->sb;
+ int current_vol = super->current_vol;
+
+ /* we are done with current_vol reset it to point st at the container */
+ super->current_vol = -1;
+
if (st->update_tail) {
/* queue the recently created array / added disk
* as a metadata update */
- struct intel_super *super = st->sb;
struct dl *d;
int rv;
/* determine if we are creating a volume or adding a disk */
- if (super->current_vol < 0) {
+ if (current_vol < 0) {
/* in the add disk case we are running in mdmon
* context, so don't close fd's
*/
return _add_disk(st);
} else
- rv = create_array(st);
+ rv = create_array(st, current_vol);
for (d = super->disks; d ; d = d->next) {
close(d->fd);
@@ -3406,8 +3460,6 @@
s = d ? d->disk.status : 0;
if (s & FAILED_DISK)
skip = 1;
- if (!(s & USABLE_DISK))
- skip = 1;
if (ord & IMSM_ORD_REBUILD)
skip = 1;
@@ -3628,8 +3680,9 @@
return 0;
disk->status |= FAILED_DISK;
+ disk->status &= ~CONFIGURED_DISK;
set_imsm_ord_tbl_ent(map, slot, idx | IMSM_ORD_REBUILD);
- if (map->failed_disk_num == ~0)
+ if (~map->failed_disk_num == 0)
map->failed_disk_num = slot;
return 1;
}
@@ -3840,14 +3893,13 @@
int idx = get_imsm_disk_idx(dev, slot);
struct imsm_super *mpb = super->anchor;
struct imsm_map *map;
- unsigned long long esize;
unsigned long long pos;
struct mdinfo *d;
struct extent *ex;
int i, j;
int found;
__u32 array_start;
- __u32 blocks;
+ __u32 array_end;
struct dl *dl;
for (dl = super->disks; dl; dl = dl->next) {
@@ -3899,15 +3951,14 @@
j = 0;
pos = 0;
array_start = __le32_to_cpu(map->pba_of_lba0);
- blocks = __le32_to_cpu(map->blocks_per_member);
+ array_end = array_start +
+ __le32_to_cpu(map->blocks_per_member) - 1;
do {
/* check that we can start at pba_of_lba0 with
* blocks_per_member of space
*/
- esize = ex[j].start - pos;
- if (array_start >= pos &&
- array_start + blocks < ex[j].start) {
+ if (array_start >= pos && array_end < ex[j].start) {
found = 1;
break;
}
@@ -3921,9 +3972,8 @@
free(ex);
if (i < mpb->num_raid_devs) {
- dprintf("%x:%x does not have %u at %u\n",
- dl->major, dl->minor,
- blocks, array_start);
+ dprintf("%x:%x does not have %u to %u available\n",
+ dl->major, dl->minor, array_start, array_end);
/* No room */
continue;
}
@@ -4025,6 +4075,7 @@
di->data_offset = __le32_to_cpu(map->pba_of_lba0);
di->component_size = a->info.component_size;
di->container_member = inst;
+ super->random = random32();
di->next = rv;
rv = di;
num_spares++;
@@ -4191,6 +4242,15 @@
set_imsm_ord_tbl_ent(map, u->slot, dl->index);
set_imsm_ord_tbl_ent(migr_map, u->slot, dl->index | IMSM_ORD_REBUILD);
+ /* update the family_num to mark a new container
+ * generation, being careful to record the existing
+ * family_num in orig_family_num to clean up after
+ * earlier mdadm versions that neglected to set it.
+ */
+ if (mpb->orig_family_num == 0)
+ mpb->orig_family_num = mpb->family_num;
+ mpb->family_num += super->random;
+
/* count arrays using the victim in the metadata */
found = 0;
for (a = st->arrays; a ; a = a->next) {
@@ -4504,6 +4564,7 @@
#ifndef MDASSEMBLE
.examine_super = examine_super_imsm,
.brief_examine_super = brief_examine_super_imsm,
+ .brief_examine_subarrays = brief_examine_subarrays_imsm,
.export_examine_super = export_examine_super_imsm,
.detail_super = detail_super_imsm,
.brief_detail_super = brief_detail_super_imsm,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/super0.c new/mdadm-3.0.2/super0.c
--- old/mdadm-3.0/super0.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/super0.c 2009-09-25 10:19:15.000000000 +0200
@@ -305,9 +305,13 @@
{
mdp_super_t *sb = st->sb;
char buf[20];
- char *hash = sha1_buffer(homehost,
- strlen(homehost),
- buf);
+ char *hash;
+
+ if (!homehost)
+ return 0;
+ hash = sha1_buffer(homehost,
+ strlen(homehost),
+ buf);
return (memcmp(&sb->set_uuid2, hash, 8)==0);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/super1.c new/mdadm-3.0.2/super1.c
--- old/mdadm-3.0/super1.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/super1.c 2009-09-25 09:54:33.000000000 +0200
@@ -685,6 +685,8 @@
__u32 r[4] = {random(), random(), random(), random()};
memcpy(sb->device_uuid, r, 16);
}
+ if (rfd >= 0)
+ close(rfd);
sb->dev_roles[i] =
__cpu_to_le16(info->disk.raid_disk);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/tests/07testreshape5 new/mdadm-3.0.2/tests/07testreshape5
--- old/mdadm-3.0/tests/07testreshape5 2009-03-02 02:39:10.000000000 +0100
+++ new/mdadm-3.0.2/tests/07testreshape5 2009-09-25 09:54:33.000000000 +0200
@@ -27,6 +27,7 @@
# test save
dd if=/dev/urandom of=$md0 bs=1024 count=$size
+ blockdev --flushbufs $md0 $devs
> /tmp/NewRand
$dir/test_stripe save /tmp/NewRand $disks $[chunk*1024] 5 $nlayout 0 $[size*1024] $devs
cmp -s -n $[size*1024] $md0 /tmp/NewRand || { echo cmp failed ; exit 2; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mdadm-3.0/util.c new/mdadm-3.0.2/util.c
--- old/mdadm-3.0/util.c 2009-06-02 07:48:29.000000000 +0200
+++ new/mdadm-3.0.2/util.c 2009-09-25 09:54:33.000000000 +0200
@@ -863,6 +863,8 @@
return;
usleep(200000);
}
+ if (i == 25)
+ dprintf("%s: timeout waiting for %s\n", __func__, dev);
}
struct superswitch *superlist[] = { &super0, &super1, &super_ddf, &super_imsm, NULL };
@@ -1298,6 +1300,17 @@
return 0;
}
+__u32 random32(void)
+{
+ __u32 rv;
+ int rfd = open("/dev/urandom", O_RDONLY);
+ if (rfd < 0 || read(rfd, &rv, 4) != 4)
+ rv = random();
+ if (rfd >= 0)
+ close(rfd);
+ return rv;
+}
+
#ifndef MDASSEMBLE
int flush_metadata_updates(struct supertype *st)
{
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package cryptsetup for openSUSE:Factory
checked in at Sat Oct 3 00:42:59 CEST 2009.
--------
--- cryptsetup/cryptsetup.changes 2009-09-25 14:45:38.000000000 +0200
+++ cryptsetup/cryptsetup.changes 2009-09-30 09:13:59.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Sep 29 11:25:58 UTC 2009 - lnussel(a)suse.de
+
+- replace patch that quits on EOF with upstream version
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cryptsetup.spec ++++++
--- /var/tmp/diff_new_pack.o0rP3q/_old 2009-10-03 00:42:07.000000000 +0200
+++ /var/tmp/diff_new_pack.o0rP3q/_new 2009-10-03 00:42:07.000000000 +0200
@@ -30,7 +30,7 @@
Group: System/Base
AutoReqProv: on
Version: 1.0.7
-Release: 6
+Release: 7
Summary: Set Up dm-crypt Based Encrypted Block Devices
Source: cryptsetup-%{version}.tar.bz2
Source1: hashalot-%haver.tar.bz2
++++++ cryptsetup-1.0.7-eofpw.diff ++++++
--- /var/tmp/diff_new_pack.o0rP3q/_old 2009-10-03 00:42:07.000000000 +0200
+++ /var/tmp/diff_new_pack.o0rP3q/_new 2009-10-03 00:42:07.000000000 +0200
@@ -1,13 +1,42 @@
+From 6b92a27195e21e9d96ce2f324c3da593a01a7ae0 Mon Sep 17 00:00:00 2001
+From: Ludwig Nussel <ludwig.nussel(a)suse.de>
+Date: Tue, 29 Sep 2009 11:09:31 +0200
+Subject: [PATCH] Fail if piped input is broken.
+
+---
+ ChangeLog | 1 +
+ lib/utils.c | 13 ++++++++++---
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
Index: cryptsetup-1.0.7/lib/utils.c
===================================================================
--- cryptsetup-1.0.7.orig/lib/utils.c
+++ cryptsetup-1.0.7/lib/utils.c
-@@ -452,6 +452,8 @@ int get_key(char *prompt, char **key, un
+@@ -361,6 +361,7 @@ int get_key(char *prompt, char **key, un
+ char *pass = NULL;
+ int newline_stop;
+ int read_horizon;
++ int regular_file = 0;
+
+ if(key_file && !strcmp(key_file, "-")) {
+ /* Allow binary reading from stdin */
+@@ -435,6 +436,8 @@ int get_key(char *prompt, char **key, un
+ // goto out_err;
+ fprintf(stderr,"Warning: exhausting read requested, but key file is not a regular file, function might never return.\n");
+ }
++ else
++ regular_file = 1;
+ }
+ buflen = 0;
+ for(i = 0; read_horizon == 0 || i < read_horizon; i++) {
+@@ -452,6 +455,10 @@ int get_key(char *prompt, char **key, un
}
if(key_file)
close(fd);
-+ if(!i) // we didn't read anything, user pressed ^D?
++ /* Fail if piped input dies reading nothing */
++ if(!i && !regular_file) {
+ goto out_err;
++ }
pass[i] = 0;
*key = pass;
*passLen = i;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package DeviceKit-disks for openSUSE:Factory
checked in at Sat Oct 3 00:41:36 CEST 2009.
--------
--- DeviceKit-disks/DeviceKit-disks.changes 2009-09-09 18:49:26.000000000 +0200
+++ DeviceKit-disks/DeviceKit-disks.changes 2009-10-01 23:55:43.000000000 +0200
@@ -1,0 +2,24 @@
+Thu Oct 1 23:53:34 CEST 2009 - vuntz(a)opensuse.org
+
+- Update to version 007:
+ + fdo#22914 – Require password to eject a CD or DVD mounted by
+ the same user
+ + Rework ATA SMART handling
+ + Also be paranoid about the UUID containing '/' characters
+ + Use WindowsStyleCaps for property names
+ + fdo#23829 – Undefined value in partutil.c
+ + fdo#23828 – Undefined value in umount-devkit.c
+ + fdo#23827 – Undefined value
+ + fdo#23826 – NULL dereference
+ + fdo#23825 – Leak in update_info_mount_state
+ + fdo#23824 – Unused variable
+ + fdo#23823 – NULL dereference
+ + fdo#23764 – Small leak in update_drive_properties_from_sysfs
+ + fdo#23762 – Fix typo
+ + fdo#23579 – Must allow DBus Properties interface for g-d-u to
+ work
+ + fdo#23926 – Error creating partition
+ + fdo#23541 – PartitionTableCreate method times out
+ + fdo#23761 – Some leaks
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
DeviceKit-disks-006.tar.bz2
New:
----
DeviceKit-disks-007.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ DeviceKit-disks.spec ++++++
--- /var/tmp/diff_new_pack.LG83he/_old 2009-10-03 00:40:55.000000000 +0200
+++ /var/tmp/diff_new_pack.LG83he/_new 2009-10-03 00:40:55.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package DeviceKit-disks (Version 006)
+# spec file for package DeviceKit-disks (Version 007)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,7 +19,7 @@
Name: DeviceKit-disks
-Version: 006
+Version: 007
Release: 1
License: GPL v2 or later
Summary: Disk Management Service
++++++ DeviceKit-disks-006.tar.bz2 -> DeviceKit-disks-007.tar.bz2 ++++++
++++ 14214 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libatasmart for openSUSE:Factory
checked in at Sat Oct 3 00:40:40 CEST 2009.
--------
--- GNOME/libatasmart/libatasmart.changes 2009-09-09 18:49:23.000000000 +0200
+++ libatasmart/libatasmart.changes 2009-10-02 15:21:41.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Oct 2 15:08:43 CEST 2009 - vuntz(a)opensuse.org
+
+- Add libatasmart-jmicron.patch to fix issues with some bridges not
+ working well. See rh#515881 for details.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
libatasmart-jmicron.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libatasmart.spec ++++++
--- /var/tmp/diff_new_pack.rm5fTH/_old 2009-10-03 00:38:40.000000000 +0200
+++ /var/tmp/diff_new_pack.rm5fTH/_new 2009-10-03 00:38:40.000000000 +0200
@@ -20,12 +20,14 @@
Name: libatasmart
Version: 0.14
-Release: 1
+Release: 2
License: LGPL v2.1 or later
Summary: ATA S.M.A.R.T. Disk Health Monitoring Library
Url: http://git.0pointer.de/?p=libatasmart.git;a=summary
Group: System/Libraries
Source: %{name}-%{version}.tar.bz2
+# PATCH-FIX-UPSTREAM libatasmart-jmicron.patch vuntz(a)opensuse.org -- Taken from git
+Patch0: libatasmart-jmicron.patch
BuildRequires: libudev-devel
BuildRequires: pkgconfig
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -65,6 +67,7 @@
%prep
%setup -q
+%patch0 -p1
%build
%configure --disable-static
++++++ libatasmart-jmicron.patch ++++++
X-Git-Url: http://git.0pointer.de/?p=libatasmart.git;a=blobdiff_plain;f=atasmart.c;h=0…
diff --git a/atasmart.c b/atasmart.c
index b6bcb90..01d3cb2 100644
--- a/atasmart.c
+++ b/atasmart.c
@@ -2474,15 +2474,30 @@ static int disk_find_type(SkDisk *d, dev_t devnum) {
goto finish;
}
- if ((vid == 0x0c0b && pid == 0xb159) ||
- (vid == 0x04fc && pid == 0x0c25) ||
- (vid == 0x04fc && pid == 0x0c15))
- d->type = SK_DISK_TYPE_SUNPLUS;
- else if ((vid == 0x152d && pid == 0x2329) ||
- (vid == 0x152d && pid == 0x2336) ||
+ if ((vid == 0x152d && pid == 0x2329) ||
(vid == 0x152d && pid == 0x2338) ||
(vid == 0x152d && pid == 0x2339))
+ /* Some JMicron bridges seem to choke on SMART
+ * commands, so let's explicitly black list
+ * them here.
+ *
+ * https://bugzilla.redhat.com/show_bug.cgi?id=515881
+ *
+ * At least some of the JMicron bridges with
+ * these vids/pids choke on the jmicron access
+ * mode. To make sure we don't break things
+ * for people we now disable this by
+ * default.*/
+ d->type = SK_DISK_TYPE_NONE;
+ else if ((vid == 0x152d && pid == 0x2336))
+ /* This JMicron bridge seems to always work
+ * with SMART commands send with the jmicron
+ * access mode. */
d->type = SK_DISK_TYPE_JMICRON;
+ else if ((vid == 0x0c0b && pid == 0xb159) ||
+ (vid == 0x04fc && pid == 0x0c25) ||
+ (vid == 0x04fc && pid == 0x0c15))
+ d->type = SK_DISK_TYPE_SUNPLUS;
else
d->type = SK_DISK_TYPE_ATA_PASSTHROUGH_12;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package hwinfo for openSUSE:Factory
checked in at Sat Oct 3 00:38:26 CEST 2009.
--------
--- hwinfo/hwinfo.changes 2009-09-16 11:59:05.000000000 +0200
+++ hwinfo/hwinfo.changes 2009-09-30 17:18:44.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Sep 30 17:18:29 CEST 2009 - snwint(a)suse.de
+
+- map video memory writable (bnc #539227)
+- fix memory leak when run as non-root (bnc #519015)
+- updated dvb & tv card info (bnc #465139)
+- updated pci ids
+- fix video memory mapping (bnc #539227)
+- recognize usb auto & smartcard devices (bnc #290279)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
hwinfo-16.6.tar.bz2
New:
----
hwinfo-16.9.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hwinfo.spec ++++++
--- /var/tmp/diff_new_pack.wpr60H/_old 2009-10-03 00:36:00.000000000 +0200
+++ /var/tmp/diff_new_pack.wpr60H/_new 2009-10-03 00:36:00.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package hwinfo (Version 16.6)
+# spec file for package hwinfo (Version 16.9)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -31,9 +31,9 @@
PreReq: /sbin/ldconfig %insserv_prereq %fillup_prereq
AutoReqProv: on
Summary: Hardware Library
-Version: 16.6
+Version: 16.9
Release: 1
-Source: hwinfo-16.6.tar.bz2
+Source: hwinfo-16.9.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
++++++ hwinfo-16.6.tar.bz2 -> hwinfo-16.9.tar.bz2 ++++++
++++ 12135 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0