Hello community,

here is the log from the commit of package yast2-core for openSUSE:Factory 
checked in at 2014-12-05 21:03:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-core (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-core.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-core"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-core/yast2-core.changes    2014-11-05 
16:26:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-core.new/yast2-core.changes       
2014-12-05 21:03:37.000000000 +0100
@@ -1,0 +2,10 @@
+Tue Nov 25 09:59:49 UTC 2014 - mvid...@suse.com
+
+- ag_any: respect target root also when the file
+  does not exist in the original root (boo#903747).
+  If applied at installation time as a DUD, it fixes
+  "Internal error... in SaveModulesToLoad" during
+  an upgrade to oS 13.2.
+- 3.1.14
+
+-------------------------------------------------------------------

Old:
----
  yast2-core-3.1.13.tar.bz2

New:
----
  yast2-core-3.1.14.tar.bz2

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

Other differences:
------------------
++++++ yast2-core.spec ++++++
--- /var/tmp/diff_new_pack.ofboag/_old  2014-12-05 21:03:37.000000000 +0100
+++ /var/tmp/diff_new_pack.ofboag/_new  2014-12-05 21:03:37.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-core
-Version:        3.1.13
+Version:        3.1.14
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ yast2-core-3.1.13.tar.bz2 -> yast2-core-3.1.14.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/README.md 
new/yast2-core-3.1.14/README.md
--- old/yast2-core-3.1.13/README.md     2014-10-31 17:16:21.000000000 +0100
+++ new/yast2-core-3.1.14/README.md     2014-12-04 15:04:12.000000000 +0100
@@ -1,6 +1,29 @@
-## Yast Core
+# YaST Core
 
 Travis:  [![Build 
Status](https://travis-ci.org/yast/yast-core.svg?branch=master)](https://travis-ci.org/yast/yast-core)
 Jenkins: [![Jenkins 
Build](http://img.shields.io/jenkins/s/https/ci.opensuse.org/yast-core-master.svg)](https://ci.opensuse.org/view/Yast/job/yast-core-master/)
 
+The core part of [YaST](http://yast.github.io) provides component system, 
agent infrastructure and for backward compatibility implementation of YCP 
language.
 
+## Agents Infrastructure
+Agents are used to modify the underlaying system. Their most important feature 
is that it can be switched to different target which is heavily used during 
installation.
+Agents for target system are managed by SCR instance. Each agent is attached 
to its unique path. The path is special YaST data type(TODO link). An agent 
itself is defined
+by its scrconf file where is specified if some base together with its 
parameters that should be used or path to a binary if the agent is implemented 
by script.
+Agents that is implemented in script communicate via YCP protocol and have 
predefined methods. Agents using base just configure such base. The base are
+library that is registered also to SCR, but without path. It is usually 
parser, that allows easier reading and writing files. For example of such 
library see [system agent documentation](doc/systemagent.md).
+
+### Hints
+- Agents can be registered during runtime. See 
[SCR#RegisterAgent](http://www.rubydoc.info/github/yast/yast-ruby-bindings/Yast/SCR#RegisterAgent-class_method)
+- Ruby-bindings provide shortcut for constructing paths. See 
[Yast.path](http://www.rubydoc.info/github/yast/yast-ruby-bindings/Yast#path-instance_method)
+
+## Component System
+The core provides component system that allows language agnostic communication 
between various parts of YaST. Code written in ruby and perl use the respective 
ruby and perl bindings to attach to such system.
+There is also component written directly in C++ like libyui and package 
bindings.
+
+## YCP implementation
+Beside providing backward compatibility YCP is still needed as communication 
protocol in component system and for agents. It is also used in agents scrconf 
file to
+define agent and its path.
+
+## Further Information
+
+More information about YaST can be found on its 
[homepage](http://yast.github.io).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/agent-any/src/AnyAgent.cc 
new/yast2-core-3.1.14/agent-any/src/AnyAgent.cc
--- old/yast2-core-3.1.13/agent-any/src/AnyAgent.cc     2014-10-31 
17:16:21.000000000 +0100
+++ new/yast2-core-3.1.14/agent-any/src/AnyAgent.cc     2014-12-04 
15:04:12.000000000 +0100
@@ -740,7 +740,7 @@
     {
         const char *s = ss.c_str();
         // Check modify time if we can use cache
-        if (stat (s, &buf) != 0)
+        if (stat (targetPath(s).c_str(), &buf) != 0)
         {
             mtime = 0; // error case: reset mtime
             if (errno == ENOENT)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/agent-system/doc/Makefile.am 
new/yast2-core-3.1.14/agent-system/doc/Makefile.am
--- old/yast2-core-3.1.13/agent-system/doc/Makefile.am  2014-10-31 
17:16:21.000000000 +0100
+++ new/yast2-core-3.1.14/agent-system/doc/Makefile.am  2014-12-04 
15:04:13.000000000 +0100
@@ -5,5 +5,5 @@
 SUBDIRS =
 
 htmldir = $(docdir)/agent-system
-html_DATA = systemagent.md
+html_DATA =
 EXTRA_DIST = $(html_DATA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/agent-system/doc/systemagent.md 
new/yast2-core-3.1.14/agent-system/doc/systemagent.md
--- old/yast2-core-3.1.13/agent-system/doc/systemagent.md       2014-10-31 
17:16:21.000000000 +0100
+++ new/yast2-core-3.1.14/agent-system/doc/systemagent.md       1970-01-01 
01:00:00.000000000 +0100
@@ -1,326 +0,0 @@
-# Target Agent
-
-## General
-
-The target agent is the SCR interface to (shell) commands
-of the target system.
-
-## Paths
-
-Target agent is attached to `.target` path. See all available `.target` 
commands below.
-Target agent can be also invoked via WFM where it lives under `.local` root.
-Difference between WFM `.local` and SCR `.target` is only after SCR switch,
-which is used for example in installation, when `.local` always work on
-root `/` and `.target` work on SCR target.
-
-## Commands For Execute
-
-### `.bash`
-Executes command in bash. _Returns_ exit code of command. _Arguments_ are 
command
-as string and optional map of environment variables.
-
-Example in ruby that calls `halt -p`
-
-```
-    exit_code = SCR.Execute(Yast::Path.new(".target.bash"), "halt -p")
-```
-
-### `.bash_output`
-Executes command in bash. _Returns_ map including `"exit"` for exit code,
-`"stdout"` for command stdout and `"stderr"` for command stderr. _Arguments_ 
are
-command as string and optional map of environment variables.
-
-Example in ruby that creates temporary file and raises exception in case of 
failure.
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.bash_output"), "mktemp")
-    if result["exit"] != 0
-      raise "Failed to create temporary file with #{result["stderr"]}"
-    end
-    file_path = result["stdout"]
-```
-
-Example in ruby passing ENV variable VERBOSE=1
-
-```
-  result = Yast::SCR.Execute(Yast::Path.new(".target.bash_output"), "mktemp", 
{"VERBOSE" => "1"})
-```
-
-### `.bash_input`
-Executes command in bash and pass string on stdin. _Returns_ exit code.
-_Arguments_ are command and string that is given to stdin.
-
-Example in ruby that change password to pwd.
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.bash_input"), "passwd", 
"pwd\npwd\n")
-    if result["exit"] != 0
-      raise "Failed to change password"
-    end
-```
-
-### `.bash_background`
-Executes command in bash in background. _Returns_ zero if succeed and -1 if
-failed. _Arguments_ are command as string and optional map of environment
-variables.
-
-Example in ruby that does time consuming job.
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.bash_background"), 
"sleep 1000000")
-    if result["exit"] != 0
-      raise "I cannot sleep. Do not disturb me!"
-    end
-```
-
-### `.symlink`
-Creates symlink. _Returns_ boolean depending on success. _Arguments_ are two
-strings, one with source path and second with target one.
-
-Example in ruby create symlink `/tmp2` pointing to `/tmp`
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.symlink"), "/tmp", 
"/tmp2")
-    raise "Creating symlink failed" unless result
-```
-
-### `.mkdir`
-
-Creates directory and all its parents. _Returns_ boolean depending on success.
-_Arguments_ are string with path and optional integer with mode. If mode is not
-specified, 0755 is used.
-
-Example in ruby create directory `/tmp/foo/bar` with mode 0700.
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.mkdir"), 
"/tmp/foo/bar", 0700)
-    raise "Creating directory failed" unless result
-```
-
-### `.remove`
-Removes a file. _Returns_ boolean depending on success.
-_Argument_ is string with path to file.
-*note*: Cannot remove a directory
-
-Example in ruby remove file `/tmp/foo`.
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.remove"), "/tmp/foo")
-    raise "Removing file failed" unless result
-```
-
-### `.mount`
-
-Mounts a (block) device at a mountpoint.
-_Arguments_ are array with device, mountpoint strings and optional third 
element
-for logfile and optional options to pass to mount.
-*note*: Deprecated use bash agent directly to run mount
-
-The return value is true or false, depending of the success
-
-Example in ruby how to mount floppy.
-
-```
-    result = Yast::SCR.Execute(
-      Yast::Path.new(".target.mount"),
-      ["/dev/floppy", "/floppy", "/var/log/y2mountlog"],
-      "-t msdos"
-    )
-    raise "Mounting floppy failed" unless result
-```
-
-### `.umount`
-
-Unmounts a (block) device at a mountpoint.
-_Argument_ is mountpoint
-*note*: Deprecated use bash agent directly to run umount
-
-The return value is true or false, depending of the success
-
-Example in ruby how to umount floppy.
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.umount"), "/floppy")
-    raise "Unmounting floppy failed" unless result
-```
-
-### `.insmod`
-
-Load module in target system.
-_Arguments_ are module and options for it.
-*note*: Deprecated use bash agent directly to run insmod
-
-The return value is true or false, depending of the success
-
-Example in ruby how to insert module.
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.insmod"), "a_module", 
"an option")
-    raise "Module insertion failed" unless result
-```
-
-### `.modprobe`
-
-Load module in target system.
-_Arguments_ are module and options for it.
-*note*: Deprecated use bash agent directly to run modprobe
-
-The return value is true or false, depending of the success
-
-Example in ruby how to insert module.
-
-```
-    result = Yast::SCR.Execute(Yast::Path.new(".target.modprobe"), "a_module", 
"an option")
-    raise "Module insertion failed" unless result
-```
-
-## Commands For Read/Write
-
-### `.string`
-
-Reads/writes file as a single string.
-_Arguments for writing_ can have two types. The first is string filename and 
string value.
-The second one is array with string filename and integer filemode and string 
content.
-_Arguments for reading_ is only string filename.
-
-The return value fore reading is content of file or nil in case of failure.
-For writing it return true or false, depending of the success.
-
-Example in ruby how to read file content.
-
-```
-    content = Yast::SCR.Read(Yast::Path.new(".target.string"), "/root/test")
-    raise "Reading file failed" unless content
-```
-
-Example in ruby how to write file without specified mode.
-
-```
-    result = Yast::SCR.Write(Yast::Path.new(".target.string"), "/root/test", 
"test content")
-    raise "Writing to file failed" unless result
-```
-
-Example in ruby how to write file with specified mode.
-
-```
-    result = Yast::SCR.Write(Yast::Path.new(".target.string"), ["/root/test", 
0600], "test content")
-    raise "Writing to file failed" unless result
-```
-
-### `.ycp` or `.yast2`
-
-Reads/Writes programming data serialized as ycp to given file.
-_Arguments for writing_ can have two types. The first is string filename and 
any value.
-The second one is array with string filename and integer filemode and any 
value.
-_Arguments for reading_ is string filename and optional default value if file 
not found.
-
-Reading for `.yast2` have one speciality, that it search in y2path for 
data/_filename_.
-
-The return value is data from file or nil if failed for reading and true or 
false, depending of
-the success, for writing.
-
-Example in ruby how to read structure from file.
-
-```
-    content = Yast::SCR.Read(Yast::Path.new(".target.ycp"), "/root/test.ycp")
-    raise "Reading file failed" unless content
-```
-
-Example in ruby how to read structure from file relative to y2path with 
default value.
-
-```
-    content = Yast::SCR.Read(Yast::Path.new(".target.yast2"), "test.ycp", 
:missing)
-```
-
-Example in ruby how to write data.
-
-```
-    data = { :a => "test" }
-    result = Yast::SCR.Write(Yast::Path.new(".target.yast2"), 
"/root/test.ycp", data)
-    raise "Writing to file failed" unless result
-```
-
-### `.byte`
-Reads/Writes bytes as byteblock from/to given file.
-_Arguments for writing_ are filename and byteblock.
-_Argument for reading_ is filename.
-
-Example in ruby how to read/write byteblock.
-
-```
-    content = Yast::SCR.Read(Yast::Path.new(".target.byte"), "/root/test")
-    raise "Reading byteblock failed" unless content
-    res = Yast::SCR.Write(Yast::Path.new(".target.byte"), "/root/test2", 
content)
-    raise "Writing byteblock failed" unless res
-```
-
-### `.passwd`
-Write-only command to set or modify the encrypted password of already existing 
-user in /etc/passwd and /etc/shadow.
-_Argument_ is crypted password.
-The return value is true or false, depending of the success
-
-Example in ruby how to change root password.
-
-```
-    content = Yast::SCR.Write(Yast::Path.new(".target.passwd.root"), 
crypted_password)
-    raise "Changing root password failed" unless content
-```
-
-### `.tmpdir`
-Read-only command to return the (instance specific) directory for storing 
temporary
-files. The directory (and its contents) will be removed by the SystemAgent
-destructor (usually when yast2 exits)
-
-Example in ruby how to read tmpdir.
-
-```
-  path = Yast::SCR.Read(Yast::Path.new(".target.tmpdir"))
-```
-
-### `.dir`
-Read-only command to read a directory. Returns a list of strings, one string 
for
-each file contained in the directory path is pointing to.
-The entries '.' and '..' are NOT returned. Returns nil and
-doesn't log an error, if path does not point to a readable directory.
-If a default value is given, this is returned if path isn't accessible.
-
-_Arguments_ are string path and optional default value.
-
-Example in ruby how to get list of files in directory.
-
-```
-  files = Yast::SCR.Read(Yast::Path.new(".target.dir"), 
"/etc/sysconfig/network")
-  raise "Reading directory content failed" unless files
-```
-
-### `.size`
-Read-only command to read current size of file.
-Returns -1 if the file does not exist
-
-_Argument_ is string path to file.
-
-Example in ruby how to get size of file.
-
-```
-  file_size = Yast::SCR.Read(Yast::Path.new(".target.size"), "/root/test")
-```
-
-### `.stat`
-Read-only command to return a map with file information (see stat(2)). If
-the file does not exist return an empty map.
-
-_Argument_ is string path to file.
-
-### `.lstat`
-Read-only command to return a map with file information (see lstat(2)). If
-the file does not exist return an empty map. Only difference to stat is that
-lstat does not follow link(s) and returns info about link itself
-
-_Argument_ is string path to file.
-
-### `.symlink`
-Read-only command to get the content of the symbolic link filename. If the 
filename
-does not exist or is not symbolic link, nil is returned and an error logged.
-
-_Argument_ is string path to symlink.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/base/Makefile.am 
new/yast2-core-3.1.14/base/Makefile.am
--- old/yast2-core-3.1.13/base/Makefile.am      2014-10-31 17:16:21.000000000 
+0100
+++ new/yast2-core-3.1.14/base/Makefile.am      2014-12-04 15:04:13.000000000 
+0100
@@ -2,6 +2,6 @@
 # Makefile.am for core/base
 #
 
-SUBDIRS = src tools
+SUBDIRS = src tools testsuite
 
 EXTRA_DIST = test-helper.exp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/base/testsuite/Makefile.am 
new/yast2-core-3.1.14/base/testsuite/Makefile.am
--- old/yast2-core-3.1.13/base/testsuite/Makefile.am    1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-core-3.1.14/base/testsuite/Makefile.am    2014-12-04 
15:04:13.000000000 +0100
@@ -0,0 +1,9 @@
+ITESTS = \
+  target_root.ycp
+
+EXTRA_DIST = $(ITESTS) y2base.sh
+
+check-local:
+       for t in $(ITESTS); do \
+         ./y2base.sh $$t || { cat $${t%.*}.log; exit 1; }; \
+       done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-core-3.1.13/base/testsuite/data/toplevel/target_root 
new/yast2-core-3.1.14/base/testsuite/data/toplevel/target_root
--- old/yast2-core-3.1.13/base/testsuite/data/toplevel/target_root      
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-core-3.1.14/base/testsuite/data/toplevel/target_root      
2014-12-04 15:04:13.000000000 +0100
@@ -0,0 +1 @@
+BOOT_IMAGE=fbdev ro root=801
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/base/testsuite/target_root.ycp 
new/yast2-core-3.1.14/base/testsuite/target_root.ycp
--- old/yast2-core-3.1.13/base/testsuite/target_root.ycp        1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-core-3.1.14/base/testsuite/target_root.ycp        2014-12-04 
15:04:13.000000000 +0100
@@ -0,0 +1,41 @@
+{
+    any with_scr_root(string root, any () action) {
+        string component = sformat("chroot=%1:scr", root);
+        boolean check_version = false;
+        integer handle = WFM::SCROpen(component, check_version);
+        WFM::SCRSetDefault(handle);
+
+        any result = action();
+
+        WFM::SCRSetDefault(0);
+        WFM::SCRClose(handle);
+        return result;
+    }
+
+    boolean test_anyagent() {
+        SCR::RegisterAgent(
+          .tested,
+          `ag_anyagent(
+            `Description (
+              `File ("/toplevel/target_root"),
+              "#\n",                // Comment
+              true,                 // read-only
+              `List (
+                `String ("^ \n"),
+                " "
+              )
+            )
+          )
+        );
+
+        any read = SCR::Read(.tested);
+
+        any expected = ["BOOT_IMAGE=fbdev", "ro", "root=801"];
+        y2milestone ("Expected: %1", expected);
+        y2milestone ("Read:     %1", read);
+        return read == expected;
+    }
+
+    string root = sformat("%1/data", WFM::Args(0));
+    return with_scr_root(root, test_anyagent);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/base/testsuite/y2base.sh 
new/yast2-core-3.1.14/base/testsuite/y2base.sh
--- old/yast2-core-3.1.13/base/testsuite/y2base.sh      1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-core-3.1.14/base/testsuite/y2base.sh      2014-12-04 
15:04:13.000000000 +0100
@@ -0,0 +1,18 @@
+#!/bin/sh
+ROOT=../..
+LIBS=src/.libs
+AG_ANY_DIR=$ROOT/agent-any/$LIBS
+# The agent is looked for not in $Y2DIR but in $Y2DIR/plugin so create 'plugin'
+ln -snf . $AG_ANY_DIR/plugin
+export Y2DIR=$AG_ANY_DIR
+export LD_LIBRARY_PATH="\
+$ROOT/liby2util-r/$LIBS:\
+$ROOT/libycp/$LIBS:\
+$ROOT/liby2/$LIBS:\
+$ROOT/libscr/$LIBS:\
+$ROOT/wfm/$LIBS:\
+$ROOT/scr/$LIBS\
+"
+# ignore incompatible ruby-bindings while developing
+export Y2DISABLELANGUAGEPLUGINS=1
+../$LIBS/y2base -l ${1%.*}.log ./$1 -S "($(pwd))" testsuite
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/doc/systemagent.md 
new/yast2-core-3.1.14/doc/systemagent.md
--- old/yast2-core-3.1.13/doc/systemagent.md    1970-01-01 01:00:00.000000000 
+0100
+++ new/yast2-core-3.1.14/doc/systemagent.md    2014-12-04 15:04:13.000000000 
+0100
@@ -0,0 +1,326 @@
+# Target Agent
+
+## General
+
+The target agent is the SCR interface to (shell) commands
+of the target system.
+
+## Paths
+
+Target agent is attached to `.target` path. See all available `.target` 
commands below.
+Target agent can be also invoked via WFM where it lives under `.local` root.
+Difference between WFM `.local` and SCR `.target` is only after SCR switch,
+which is used for example in installation, when `.local` always work on
+root `/` and `.target` work on SCR target.
+
+## Commands For Execute
+
+### `.bash`
+Executes command in bash. _Returns_ exit code of command. _Arguments_ are 
command
+as string and optional map of environment variables.
+
+Example in ruby that calls `halt -p`
+
+```
+    exit_code = SCR.Execute(Yast::Path.new(".target.bash"), "halt -p")
+```
+
+### `.bash_output`
+Executes command in bash. _Returns_ map including `"exit"` for exit code,
+`"stdout"` for command stdout and `"stderr"` for command stderr. _Arguments_ 
are
+command as string and optional map of environment variables.
+
+Example in ruby that creates temporary file and raises exception in case of 
failure.
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.bash_output"), "mktemp")
+    if result["exit"] != 0
+      raise "Failed to create temporary file with #{result["stderr"]}"
+    end
+    file_path = result["stdout"]
+```
+
+Example in ruby passing ENV variable VERBOSE=1
+
+```
+  result = Yast::SCR.Execute(Yast::Path.new(".target.bash_output"), "mktemp", 
{"VERBOSE" => "1"})
+```
+
+### `.bash_input`
+Executes command in bash and pass string on stdin. _Returns_ exit code.
+_Arguments_ are command and string that is given to stdin.
+
+Example in ruby that change password to pwd.
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.bash_input"), "passwd", 
"pwd\npwd\n")
+    if result["exit"] != 0
+      raise "Failed to change password"
+    end
+```
+
+### `.bash_background`
+Executes command in bash in background. _Returns_ zero if succeed and -1 if
+failed. _Arguments_ are command as string and optional map of environment
+variables.
+
+Example in ruby that does time consuming job.
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.bash_background"), 
"sleep 1000000")
+    if result["exit"] != 0
+      raise "I cannot sleep. Do not disturb me!"
+    end
+```
+
+### `.symlink`
+Creates symlink. _Returns_ boolean depending on success. _Arguments_ are two
+strings, one with source path and second with target one.
+
+Example in ruby create symlink `/tmp2` pointing to `/tmp`
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.symlink"), "/tmp", 
"/tmp2")
+    raise "Creating symlink failed" unless result
+```
+
+### `.mkdir`
+
+Creates directory and all its parents. _Returns_ boolean depending on success.
+_Arguments_ are string with path and optional integer with mode. If mode is not
+specified, 0755 is used.
+
+Example in ruby create directory `/tmp/foo/bar` with mode 0700.
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.mkdir"), 
"/tmp/foo/bar", 0700)
+    raise "Creating directory failed" unless result
+```
+
+### `.remove`
+Removes a file. _Returns_ boolean depending on success.
+_Argument_ is string with path to file.
+*note*: Cannot remove a directory
+
+Example in ruby remove file `/tmp/foo`.
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.remove"), "/tmp/foo")
+    raise "Removing file failed" unless result
+```
+
+### `.mount`
+
+Mounts a (block) device at a mountpoint.
+_Arguments_ are array with device, mountpoint strings and optional third 
element
+for logfile and optional options to pass to mount.
+*note*: Deprecated use bash agent directly to run mount
+
+The return value is true or false, depending of the success
+
+Example in ruby how to mount floppy.
+
+```
+    result = Yast::SCR.Execute(
+      Yast::Path.new(".target.mount"),
+      ["/dev/floppy", "/floppy", "/var/log/y2mountlog"],
+      "-t msdos"
+    )
+    raise "Mounting floppy failed" unless result
+```
+
+### `.umount`
+
+Unmounts a (block) device at a mountpoint.
+_Argument_ is mountpoint
+*note*: Deprecated use bash agent directly to run umount
+
+The return value is true or false, depending of the success
+
+Example in ruby how to umount floppy.
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.umount"), "/floppy")
+    raise "Unmounting floppy failed" unless result
+```
+
+### `.insmod`
+
+Load module in target system.
+_Arguments_ are module and options for it.
+*note*: Deprecated use bash agent directly to run insmod
+
+The return value is true or false, depending of the success
+
+Example in ruby how to insert module.
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.insmod"), "a_module", 
"an option")
+    raise "Module insertion failed" unless result
+```
+
+### `.modprobe`
+
+Load module in target system.
+_Arguments_ are module and options for it.
+*note*: Deprecated use bash agent directly to run modprobe
+
+The return value is true or false, depending of the success
+
+Example in ruby how to insert module.
+
+```
+    result = Yast::SCR.Execute(Yast::Path.new(".target.modprobe"), "a_module", 
"an option")
+    raise "Module insertion failed" unless result
+```
+
+## Commands For Read/Write
+
+### `.string`
+
+Reads/writes file as a single string.
+_Arguments for writing_ can have two types. The first is string filename and 
string value.
+The second one is array with string filename and integer filemode and string 
content.
+_Arguments for reading_ is only string filename.
+
+The return value fore reading is content of file or nil in case of failure.
+For writing it return true or false, depending of the success.
+
+Example in ruby how to read file content.
+
+```
+    content = Yast::SCR.Read(Yast::Path.new(".target.string"), "/root/test")
+    raise "Reading file failed" unless content
+```
+
+Example in ruby how to write file without specified mode.
+
+```
+    result = Yast::SCR.Write(Yast::Path.new(".target.string"), "/root/test", 
"test content")
+    raise "Writing to file failed" unless result
+```
+
+Example in ruby how to write file with specified mode.
+
+```
+    result = Yast::SCR.Write(Yast::Path.new(".target.string"), ["/root/test", 
0600], "test content")
+    raise "Writing to file failed" unless result
+```
+
+### `.ycp` or `.yast2`
+
+Reads/Writes programming data serialized as ycp to given file.
+_Arguments for writing_ can have two types. The first is string filename and 
any value.
+The second one is array with string filename and integer filemode and any 
value.
+_Arguments for reading_ is string filename and optional default value if file 
not found.
+
+Reading for `.yast2` have one speciality, that it search in y2path for 
data/_filename_.
+
+The return value is data from file or nil if failed for reading and true or 
false, depending of
+the success, for writing.
+
+Example in ruby how to read structure from file.
+
+```
+    content = Yast::SCR.Read(Yast::Path.new(".target.ycp"), "/root/test.ycp")
+    raise "Reading file failed" unless content
+```
+
+Example in ruby how to read structure from file relative to y2path with 
default value.
+
+```
+    content = Yast::SCR.Read(Yast::Path.new(".target.yast2"), "test.ycp", 
:missing)
+```
+
+Example in ruby how to write data.
+
+```
+    data = { :a => "test" }
+    result = Yast::SCR.Write(Yast::Path.new(".target.yast2"), 
"/root/test.ycp", data)
+    raise "Writing to file failed" unless result
+```
+
+### `.byte`
+Reads/Writes bytes as byteblock from/to given file.
+_Arguments for writing_ are filename and byteblock.
+_Argument for reading_ is filename.
+
+Example in ruby how to read/write byteblock.
+
+```
+    content = Yast::SCR.Read(Yast::Path.new(".target.byte"), "/root/test")
+    raise "Reading byteblock failed" unless content
+    res = Yast::SCR.Write(Yast::Path.new(".target.byte"), "/root/test2", 
content)
+    raise "Writing byteblock failed" unless res
+```
+
+### `.passwd`
+Write-only command to set or modify the encrypted password of already existing 
+user in /etc/passwd and /etc/shadow.
+_Argument_ is crypted password.
+The return value is true or false, depending of the success
+
+Example in ruby how to change root password.
+
+```
+    content = Yast::SCR.Write(Yast::Path.new(".target.passwd.root"), 
crypted_password)
+    raise "Changing root password failed" unless content
+```
+
+### `.tmpdir`
+Read-only command to return the (instance specific) directory for storing 
temporary
+files. The directory (and its contents) will be removed by the SystemAgent
+destructor (usually when yast2 exits)
+
+Example in ruby how to read tmpdir.
+
+```
+  path = Yast::SCR.Read(Yast::Path.new(".target.tmpdir"))
+```
+
+### `.dir`
+Read-only command to read a directory. Returns a list of strings, one string 
for
+each file contained in the directory path is pointing to.
+The entries '.' and '..' are NOT returned. Returns nil and
+doesn't log an error, if path does not point to a readable directory.
+If a default value is given, this is returned if path isn't accessible.
+
+_Arguments_ are string path and optional default value.
+
+Example in ruby how to get list of files in directory.
+
+```
+  files = Yast::SCR.Read(Yast::Path.new(".target.dir"), 
"/etc/sysconfig/network")
+  raise "Reading directory content failed" unless files
+```
+
+### `.size`
+Read-only command to read current size of file.
+Returns -1 if the file does not exist
+
+_Argument_ is string path to file.
+
+Example in ruby how to get size of file.
+
+```
+  file_size = Yast::SCR.Read(Yast::Path.new(".target.size"), "/root/test")
+```
+
+### `.stat`
+Read-only command to return a map with file information (see stat(2)). If
+the file does not exist return an empty map.
+
+_Argument_ is string path to file.
+
+### `.lstat`
+Read-only command to return a map with file information (see lstat(2)). If
+the file does not exist return an empty map. Only difference to stat is that
+lstat does not follow link(s) and returns info about link itself
+
+_Argument_ is string path to file.
+
+### `.symlink`
+Read-only command to get the content of the symbolic link filename. If the 
filename
+does not exist or is not symbolic link, nil is returned and an error logged.
+
+_Argument_ is string path to symlink.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/package/yast2-core.changes 
new/yast2-core-3.1.14/package/yast2-core.changes
--- old/yast2-core-3.1.13/package/yast2-core.changes    2014-10-31 
17:16:22.000000000 +0100
+++ new/yast2-core-3.1.14/package/yast2-core.changes    2014-12-04 
15:04:13.000000000 +0100
@@ -1,4 +1,14 @@
 -------------------------------------------------------------------
+Tue Nov 25 09:59:49 UTC 2014 - mvid...@suse.com
+
+- ag_any: respect target root also when the file
+  does not exist in the original root (boo#903747).
+  If applied at installation time as a DUD, it fixes
+  "Internal error... in SaveModulesToLoad" during
+  an upgrade to oS 13.2.
+- 3.1.14
+
+-------------------------------------------------------------------
 Fri Oct 24 12:29:04 UTC 2014 - lsle...@suse.cz
 
 - yast2-core-devel: removed obsolete dependencies (flex, sysfsutils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.13/package/yast2-core.spec 
new/yast2-core-3.1.14/package/yast2-core.spec
--- old/yast2-core-3.1.13/package/yast2-core.spec       2014-10-31 
17:16:22.000000000 +0100
+++ new/yast2-core-3.1.14/package/yast2-core.spec       2014-12-04 
15:04:13.000000000 +0100
@@ -18,7 +18,7 @@
 
 
 Name:           yast2-core
-Version:        3.1.13
+Version:        3.1.14
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to