Hi,
When I install the final 12.1 from the DVD, it fails during the "Saving bootloader configuration..." / "Install boot manager" phase with a dialog titled "An error occurred during initrd creation." (which has no other text). I am unable to complete the install after this point.
This is probably the same bug as "Bug 713316 - mkinitrd: fails to run and/or shows no text during install" (https://bugzilla.novell.com/show_bug.cgi?id=3D713316)
I've tried installing on three different platforms, and I get the same bug. If I install using the Live GNOME CD on these platforms, the install completes without difficulty.
Has anyone succeeded in installing on any hardware using the 12.1 DVD?
Thanks,
Mike
All,
Currently there is a "dead lock" between package autoyast2 and
yast2-schema (for the openSUSE:Factory:ARM build).
The thing is that autoyast2 Requires yast2-schema. Because of this
yast2-schema is blocked.
I got around this by removing the autoyast2 requirement. Until
yast2-schema has been build. When this package was build I added the
Requirement again.
I wonder if there is a better "mechanism" in OBS that solves such "lock
issue" automatically?
Otherwise someone has to handle this by hand.
Regards,
Joop.
--
To unsubscribe, e-mail: yast-devel+unsubscribe(a)opensuse.org
To contact the owner, e-mail: yast-devel+owner(a)opensuse.org
Hello YaST development,
I understood that all YaST changers aren't handled via the build server?
Can the attached patch please be applied to yast2-all-packages.
It now has the line:
%ifnarch ia64 ppc ppc64 s390 s390x %arm
Wouldn't it be better to replace it by:
%ifarch %ix86 x86_64
In the patch it's in the syntax as currently is in the spec file.
Regards,
Joop.
Hi,
few comments to readability of code ( disclaimer: all code is not
tested, so it can contain errors) (disclaimer2: it is my personal
opinions and is based on my non-storage knowledge) :
On Tue, 20 Dec 2011 13:10:31 -0000
fehr(a)svn2.opensuse.org wrote:
> Author: fehr
> Date: Tue Dec 20 14:10:30 2011
> New Revision: 67038
>
> URL: http://svn.opensuse.org/viewcvs/yast?rev=67038&view=rev
> Log:
> fix proposal to reuse also larger root filesystems (bnc#727362)
>
> Modified:
> trunk/storage/package/yast2-storage.changes
> trunk/storage/storage/src/modules/StorageProposal.ycp
>
> Modified: trunk/storage/package/yast2-storage.changes
> URL:
> http://svn.opensuse.org/viewcvs/yast/trunk/storage/package/yast2-storage.ch…
> ==============================================================================
> --- trunk/storage/package/yast2-storage.changes (original) +++
> trunk/storage/package/yast2-storage.changes Tue Dec 20 14:10:30 2011
> @@ -1,4 +1,9 @@
> -------------------------------------------------------------------
> +Tue Dec 20 14:08:55 CET 2011 - fehr(a)suse.de +
> +- fix proposal to reuse also larger root filesystems (bnc#727362)
> +
> +-------------------------------------------------------------------
> Tue Dec 06 14:08:41 CET 2011 - aschnell(a)suse.de
>
> - add nofail for volumes using iSCSI disks (bnc#734786)
>
> Modified: trunk/storage/storage/src/modules/StorageProposal.ycp
> URL:
> http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/modules/Stor…
> ==============================================================================
> --- trunk/storage/storage/src/modules/StorageProposal.ycp (original)
> +++ trunk/storage/storage/src/modules/StorageProposal.ycp Tue Dec 20
> 14:10:30 2011 @@ -413,6 +413,14 @@ map<string, boolean> swapable =
> $[]; map<string, boolean> ishome = $[];
>
> +void fill_ishome( list<map> pl )
> + {
> + foreach( map p, pl,
> + ``{
I think that `` is no longer needed in ycp
> + if( !haskey( ishome, p["device"]:"" ))
> + ishome[p["device"]:""] = Storage::DetectHomeFs(p);
> + });
> + }
>
> global void flex_init_swapable(map<string, map> tg)
> {
> @@ -2614,13 +2622,13 @@
> return( ret );
> }
>
> -list<map> can_mp_reuse( string mp, integer min, integer max,
> - list<map> partitions )
> +list<map> can_home_reuse( integer min, integer max,
> + list<map> partitions )
> {
> list<map> ret = [];
> if( max>0 )
> max = max + max/10;
Not related to this commit, but WTF? any comment would be nice if you do
"magic"
> - y2milestone( "can_mp_reuse mp %1 min %2 max %3", mp, min, max );
> + y2milestone( "can_home_reuse min %1 max %2", min, max );
> list<map> pl = [];
> pl = filter( map p, partitions,
> ``(!p["delete"]:false &&
> @@ -2631,23 +2639,79 @@
> p["size_k"]:0/1024 >= min &&
> (max==0 || p["size_k"]:0/1024 <= max) &&
> Storage::CanEdit( p, false )));
> - y2milestone( "can_mp_reuse normal %1", pl );
> + y2milestone( "can_home_reuse normal %1", pl );
> if( size(pl)>0 )
> {
> pl = sort( map a, map b, pl,
> ``(a["size_k"]:0>b["size_k"]:0));
> - y2milestone( "can_mp_reuse sorted %1", pl );
> + fill_ishome( pl );
> + pl = (list<map>) union(
> + filter( map p, pl, ``(ishome[p["device"]:""]:false) ),
> + filter( map p, pl, ``(!ishome[p["device"]:""]:false) ));
What is purpose of reusing variable pl ( horrible name )? it is not
easy to figure out what happen there ( well you reorder list to have
part with home on beginning ). I think that sort function fit better
here.
> + y2milestone( "can_home_reuse sorted %1", pl );
> ret = maplist( map p, partitions,
> ``{
> if( !p["delete"]:false &&
> p["device"]:""==pl[0,"device"]:"" )
> {
> - p = Storage::SetVolOptions( p, mp,
> PropDefaultFs(),
> + p = Storage::SetVolOptions( p, "/home",
> PropDefaultFs(), "", "", "" );
> }
> return( p );
> });
> }
> - y2milestone( "can_mp_reuse ret %1", ret );
> + y2milestone( "can_home_reuse ret %1", ret );
> + return( ret );
> + }
> +
> +list<map> can_root_reuse( integer min, integer max,
> + list<map> partitions )
it looks like these two functions have a lot of similar code, so maybe
it can share it and refactor it out to separate methods.
> + {
> + list<map> ret = [];
> + if( max>0 )
> + max = max + max/10;
> + y2milestone( "can_root_reuse min %1 max %2", min, max );
> + list<map> pl = [];
> + pl = filter( map p, partitions,
> + ``(!p["delete"]:false &&
> + p["fsid"]:Partitions::fsid_native ==
> + Partitions::fsid_native &&
> + !Storage::IsUsedBy(p) &&
> + size(p["mount"]:"")==0 &&
> + p["size_k"]:0/1024 >= min &&
> + Storage::CanEdit( p, false )));
> + y2milestone( "can_root_reuse normal %1", pl );
> + if( size(pl)>0 )
These note is right also for above method:
think about someone who reads a code. If he want to know what happen
when size is zero, then he must look over whole method to see that
nothing happen so from my POV it is better to write
if( size(pl)==0 )
{
return ret;
}
and then continue without indentation.
> + {
> + fill_ishome( pl );
from this line to ...
> + list<map> p1 = sort( map a, map b,
> + filter( map p, pl,
> ``(ishome[p["device"]:""]:false)),
> + ``(a["size_k"]:0<b["size_k"]:0));
> + y2milestone( "can_root_reuse p1 %1", p1 );
> + list<map> p2 = sort( map a, map b,
> + filter( map p, pl,
> +
> ``(!ishome[p["device"]:""]:false&&p["size_k"]:0/1024>max)),
> + ``(a["size_k"]:0<b["size_k"]:0));
> + y2milestone( "can_root_reuse p2 %1", p2 );
> + list<map> p3 = sort( map a, map b,
> + filter( map p, pl,
> +
> ``(!ishome[p["device"]:""]:false&&p["size_k"]:0/1024<=max)),
> + ``(a["size_k"]:0>b["size_k"]:0));
> + y2milestone( "can_root_reuse p3 %1", p3 );
> + pl = (list<map>) union( p2, p1 );
> + pl = (list<map>) union( p3, pl );
this line all you do is special sort, nothing more in a lot of
complicated lines. I think you can rewrite it this way ( see also that
I in comment highlight is something is quite unexpected). Maybe there
should be also reason why it is sorted descending in case of size
bigger then max :
//sort device to have old non-home partition first sorted by size
ascending, then old home smaller then max sorted by size ascending
and then old home bigger then max sorted *descending*
pl = sort( map a, map b, pl,
{
boolean is_home_a = ishome[a["device]:""]:false; //yes shortcut to
ycp map buildins
boolean is_home_b = ishome[b["device]:""]:false;
if (is_home_a != is_home_b)
{
//if b is home, then a not and a should be before b and if b is
not home, then a is and b should be before a
return is_home_a;
}
boolean a_bigger_max = a["size_k"]:0/1024<=max; //FIXME 1024 should
be constant
boolean b_bigger_max = b["size_k"]:0/1024<=max;
if (a_bigger_max && b_bigger_max)
{
return a["size_k"]:0>b["size_k"]:0;
} else {
return a["size_k"]:0<b["size_k"]:0
}
}
It is shorted, easier to read and reader is aware all of strange
behavior directly.
> + y2milestone( "can_root_reuse sorted %1", pl );
> + ret = maplist( map p, partitions,
> + ``{
> + if( !p["delete"]:false &&
This is really hard to parse to anyone who is not good in ycp. Does it
mean that if "delete" is not set it is true or false? ( of course maybe
it is already set and this is example how horrible is this "feature" )
> + p["device"]:""==pl[0,"device"]:"" )
> + {
> + p = Storage::SetVolOptions( p, "/",
> PropDefaultFs(),
> + "", "", "" );
There should be comment what it actually do. From first view it looks
magic...and also second look doesn't help me.
> + }
> + return( p );
> + });
> + }
> + y2milestone( "can_root_reuse ret %1", ret );
> return( ret );
> }
>
> @@ -2916,11 +2980,7 @@
> Storage::CanDelete( p, disk, false
> ))); if( size(pl)>0 )
> {
> - foreach( map p, pl,
> - ``{
> - if( !haskey( ishome, p["device"]:"" ))
> - ishome[p["device"]:""] = Storage::DetectHomeFs(p);
> - });
> + fill_ishome( pl );
Good, nice to refactor out code to separate method.
> pl = sort( map a, map b, pl,
> ``(a["size_k"]:0>b["size_k"]:0));
> list<map> l1 = filter( map p, pl, ``(!Storage::IsUsedBy(p))
> ); @@ -3197,28 +3257,24 @@
> if( mode == `reuse )
> {
> list<map> parts = disk["partitions"]:[];
> - if( GetProposalHome() )
> + list<map> tmp = [];
variable with so big scope ( more then few lines (good limit is e.g.
5 lines) should have better name explaning what it is. For this
specific code more reccomend create two separated variables for each
case and scope will be limited and also number of lines is limited.
> + if( GetProposalHome() &&
> avail_size>opts["home_limit"]:0 ) {
> - if( avail_size > opts["home_limit"]:0 )
> - parts = can_mp_reuse( "/home", 4*1024,
> 0, parts );
> - else
> - parts = can_mp_reuse( "/",
> opts["root_base"]:0, 0,
> - parts );
> - }
> - if( size(parts)>0 && avail_size >
> opts["home_limit"]:0 )
> - {
> - integer mx = 0;
> - if( GetProposalHome() )
> - mx = opts["root_max"]:0;
> - parts = can_mp_reuse( "/",
> opts["root_base"]:0,
> - mx, parts );
> + tmp = can_home_reuse( 4*1024, 0, parts );
Another magic number why 4kilobytes ( or megabytes???)? what happen if I
change it? who set this limits?
> + if( size(tmp)>0 )
> + {
> + have_home = true;
> + parts = tmp;
> + }
> }
> - if( size(parts)>0 )
> + tmp = can_root_reuse( opts["root_base"]:0,
> + opts["root_max"]:0, parts
> );
> + if( size(tmp)>0 )
> {
> - have_home = avail_size >
> opts["home_limit"]:0; have_root = true;
> - disk["partitions"] = parts;
> + parts = tmp;
> }
> + disk["partitions"] = parts;
> y2milestone( "get_inst_proposal reuse have_home
> %1 have_root %2", have_home, have_root );
> if( have_home && have_root )
>
Josef
--
Josef Reidinger
Software Engineer Appliance Department
SUSE LINUX, s. r. o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic
jreidinger(a)suse.com
SUSE
--
To unsubscribe, e-mail: yast-devel+unsubscribe(a)opensuse.org
To contact the owner, e-mail: yast-devel+owner(a)opensuse.org
Hi,
I set up free automatic documentation for yast++[0].
So after each push it is automatic regenerated. What is nice that it
not require almost no work, just set .yastopts and set github hook to
rubydoc.
Now it is time to document your cool modules. I try to document
infrastructure during holidays. Also it would be nice to add to README
pointers to wiki. So we have properly linked all resources.
Josef
[0] http://rubydoc.info/github/yast/yast--/master/frames
--
Josef Reidinger
Software Engineer Appliance Department
SUSE LINUX, s. r. o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic
jreidinger(a)suse.com
SUSE
--
To unsubscribe, e-mail: yast-devel+unsubscribe(a)opensuse.org
To contact the owner, e-mail: yast-devel+owner(a)opensuse.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hello there!
When I took a look at the files inside the yast2-devtools package i
found some files and dirs whose usage is not clear to me.
These are:
/usr/bin/yastdoc -- seems not to do anything
/usr/share/YaST2/data/devtools/Doxyfile
/usr/share/YaST2/data/devtools/admin/Makefile.am.common
/usr/share/YaST2/data/devtools/admin/Makefile.am.toplevel
/usr/share/YaST2/data/devtools/admin/po/Makefile.am.bottom
/usr/share/YaST2/data/devtools/admin/po/Makefile.am.center
/usr/share/YaST2/data/devtools/admin/po/Makefile.am.top
/usr/share/YaST2/data/devtools/footer-notimestamp.html
/usr/share/YaST2/data/devtools/skeletons/agent/*
/usr/share/YaST2/data/devtools/skeletons/config/*
/usr/share/YaST2/data/devtools/skeletons/config-python/*
/usr/share/YaST2/data/devtools/skeletons/rest-plugin/*
/usr/share/YaST2/data/devtools/skeletons/trans/*
/usr/share/YaST2/data/docbook/*
/usr/share/doc/packages/yast2-devtools/check_ycp/*
/usr/share/doc/packages/yast2-devtools/devtools/*
/usr/share/doc/packages/yast2-devtools/images/*
/usr/share/doc/packages/yast2-devtools/scrdoc/*
/usr/share/doc/packages/yast2-devtools/skeletons/*
/usr/share/doc/packages/yast2-devtools/ycpdoc/*
What are these files, dirs or files inside the dirs used for? Or are
they just left over from times long passed? Are they really needed to
develop YaST2 or build it's packages?
I hope someone can answer my question.
Thanks a lot in advance.
BR,
Björn Esser
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iF4EAREIAAYFAk7bdkIACgkQ3u1SIc8s7PWX9wEAkCRT5rmfdegBKFbiprqS4ssY
sdltne7LOa+8+oqNc70BALN7RNIfgNihh5XIbX8yyt6XCVc2glMq/DqBEGU37mFE
=Gbf0
-----END PGP SIGNATURE-----
--
To unsubscribe, e-mail: yast-devel+unsubscribe(a)opensuse.org
To contact the owner, e-mail: yast-devel+owner(a)opensuse.org
When running the stdout and stderr test cases while building yast2-core
for ARM, we execute processes slower than the yast developer machines
apparently :).
The test cases expect data to flow between the ycp code and cat within
50 ms, but we can't guarantee that. In fact, it basically never worked
in my tests.
The real fix would probably to listen on the socket and see if new data
comes in and only then read from there, but I'm not sure it's worth it
for a test case. Instead, we can just increase the sleeps to something
really high so we definitely catch all the shiny new data on the other
end of the pipe.
Please apply.
Signed-off-by: Alexander Graf <agraf(a)suse.de>
---
agent-process/testsuite/tests/stderr.ycp | 8 ++++----
agent-process/testsuite/tests/stdout.ycp | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/agent-process/testsuite/tests/stderr.ycp b/agent-process/testsuite/tests/stderr.ycp
index 3d420e2..74282aa 100644
--- a/agent-process/testsuite/tests/stderr.ycp
+++ b/agent-process/testsuite/tests/stderr.ycp
@@ -8,12 +8,12 @@
string out1 = (string)SCR::Read(.read_stderr, id);
SCR::Write(., id, "foo\n");
- sleep(50);
+ sleep(500);
// read "foo\n"
string out2 = (string)SCR::Read(.read_stderr, id);
SCR::Write(., id, "foo2\nfoo2\n");
- sleep(50);
+ sleep(500);
// read "foo2\nfoo2\n"
string out3 = (string)SCR::Read(.read_stderr, id);
@@ -35,12 +35,12 @@
string out1 = (string)SCR::Read(.read_line_stderr, id);
SCR::Write(., id, "foo\n");
- sleep(50);
+ sleep(500);
// read "foo\n"
string out2 = (string)SCR::Read(.read_line_stderr, id);
SCR::Write(., id, "foo2\nfoo2\n");
- sleep(50);
+ sleep(500);
// read "foo2\n"
string out3 = (string)SCR::Read(.read_line_stderr, id);
diff --git a/agent-process/testsuite/tests/stdout.ycp b/agent-process/testsuite/tests/stdout.ycp
index 86c29fd..f1d0241 100644
--- a/agent-process/testsuite/tests/stdout.ycp
+++ b/agent-process/testsuite/tests/stdout.ycp
@@ -8,12 +8,12 @@
string out1 = (string)SCR::Read(.read, id);
SCR::Write(., id, "foo\n");
- sleep(50);
+ sleep(500);
// read "foo\n"
string out2 = (string)SCR::Read(.read, id);
SCR::Write(., id, "foo2\nfoo2\n");
- sleep(50);
+ sleep(500);
// read "foo2\nfoo2\n"
string out3 = (string)SCR::Read(.read, id);
@@ -34,12 +34,12 @@
string out1 = (string)SCR::Read(.read_line, id);
SCR::Write(., id, "foo\n");
- sleep(50);
+ sleep(500);
// read "foo\n"
string out2 = (string)SCR::Read(.read_line, id);
SCR::Write(., id, "foo2\nfoo2\n");
- sleep(50);
+ sleep(500);
// read "foo2\n"
string out3 = (string)SCR::Read(.read_line, id);
--
1.6.0.2
--
To unsubscribe, e-mail: yast-devel+unsubscribe(a)opensuse.org
To contact the owner, e-mail: yast-devel+owner(a)opensuse.org
On Wed, 30 Nov 2011 09:58:13 -0000
gs(a)svn2.opensuse.org wrote:
> Author: gs
> Date: Wed Nov 30 10:58:12 2011
> New Revision: 66973
>
> URL: http://svn.opensuse.org/viewcvs/yast?rev=66973&view=rev
> Log:
> don't allow to change AUTO_VLAN setting for a
> configured device, call fcoeadm -d correctly
>
> Modified:
> branches/SuSE-Code-11-SP2-Branch/fcoe-client/src/complex.ycp
>
> Modified: branches/SuSE-Code-11-SP2-Branch/fcoe-client/src/complex.ycp
> URL:
> http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/fcoe-…
> ==============================================================================
> --- branches/SuSE-Code-11-SP2-Branch/fcoe-client/src/complex.ycp
> (original) +++
> branches/SuSE-Code-11-SP2-Branch/fcoe-client/src/complex.ycp Wed Nov
> 30 10:58:12 2011 @@ -83,7 +83,10 @@ y2milestone( "Calling %1",
> command ); map output = (map)SCR::Execute( .target.bash_output,
> command ); y2milestone( "Output: %1", output ); -
> + if ( output["exit"]:255 != 0 )
> + {
> + Popup::Error( sformat( _("Command %1
> failed"), command ) );
> + }
Hi, I see this as quite common practice in YaST and I don't like it
much.
1) I am user and I see this error Command <blabla> failed. What it
means for me? is something broken? what should I do? retry it? report
bug? Also it would be nice if there is details section which add e.g.
stderr output for experienced users.
2) You report error, fine. So I am user and click OK and YaST continue
doing something ( your error is in foreach loop that run set of
commands ). This is very strange behavior for me.
Josef
--
Josef Reidinger
Software Engineer Appliance Department
SUSE LINUX, s. r. o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic
jreidinger(a)suse.com
SUSE
--
To unsubscribe, e-mail: yast-devel+unsubscribe(a)opensuse.org
To contact the owner, e-mail: yast-devel+owner(a)opensuse.org