Author: jsrain Date: Fri Feb 15 15:22:27 2008 New Revision: 44522 URL: http://svn.opensuse.org/viewcvs/yast?rev=44522&view=rev Log: committed initial version of system update from within running system Added: trunk/system-update/ trunk/system-update/MAINTAINER trunk/system-update/Makefile.cvs trunk/system-update/RPMNAME trunk/system-update/VERSION trunk/system-update/aclocal.m4 trunk/system-update/agents/ trunk/system-update/agents/Makefile.am trunk/system-update/configure.in.in trunk/system-update/doc/ trunk/system-update/doc/Makefile.am trunk/system-update/doc/autodocs/ trunk/system-update/doc/autodocs/Makefile.am trunk/system-update/package/ trunk/system-update/package/yast2-system-update.changes trunk/system-update/src/ trunk/system-update/src/Makefile.am trunk/system-update/src/SystemUpdate.ycp trunk/system-update/src/config/ trunk/system-update/src/config/Makefile.am trunk/system-update/src/config/system-update.desktop trunk/system-update/src/config/system-update.xml trunk/system-update/src/helps.ycp trunk/system-update/src/inst_system_update_prepare_system.ycp trunk/system-update/src/inst_system_update_repo_select.ycp trunk/system-update/src/system-update.sh trunk/system-update/src/system-update.ycp trunk/system-update/testsuite/ trunk/system-update/testsuite/Makefile.am trunk/system-update/testsuite/tests/ trunk/system-update/testsuite/tests/SystemUpdate.err trunk/system-update/testsuite/tests/SystemUpdate.out trunk/system-update/testsuite/tests/SystemUpdate.ycp trunk/system-update/yast2-system-update.spec.in Added: trunk/system-update/MAINTAINER URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/MAINTAINER?rev=4452... ============================================================================== --- trunk/system-update/MAINTAINER (added) +++ trunk/system-update/MAINTAINER Fri Feb 15 15:22:27 2008 @@ -0,0 +1 @@ +Jiri Srain <jsrain@suse.cz> Added: trunk/system-update/Makefile.cvs URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/Makefile.cvs?rev=44... ============================================================================== --- trunk/system-update/Makefile.cvs (added) +++ trunk/system-update/Makefile.cvs Fri Feb 15 15:22:27 2008 @@ -0,0 +1,22 @@ +# +# Makefile.cvs +# +PREFIX = /usr + +LIB = $(shell y2tool get-lib) + +configure: all + ./configure --prefix=$(PREFIX) --libdir=$(PREFIX)/$(LIB) + +all: + y2tool y2autoconf + y2tool y2automake + autoreconf --force --install + +install: configure + make + make install + +reconf: all + ./config.status --recheck + ./config.status Added: trunk/system-update/RPMNAME URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/RPMNAME?rev=44522&a... ============================================================================== --- trunk/system-update/RPMNAME (added) +++ trunk/system-update/RPMNAME Fri Feb 15 15:22:27 2008 @@ -0,0 +1 @@ +yast2-system-update Added: trunk/system-update/VERSION URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/VERSION?rev=44522&a... ============================================================================== --- trunk/system-update/VERSION (added) +++ trunk/system-update/VERSION Fri Feb 15 15:22:27 2008 @@ -0,0 +1 @@ +2.15.0 Added: trunk/system-update/aclocal.m4 URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/aclocal.m4?rev=4452... ============================================================================== --- trunk/system-update/aclocal.m4 (added) +++ trunk/system-update/aclocal.m4 Fri Feb 15 15:22:27 2008 @@ -0,0 +1,600 @@ +# generated automatically by aclocal 1.10 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_if(m4_PACKAGE_VERSION, [2.61],, +[m4_fatal([this file was generated for autoconf 2.61. +You have another version of autoconf. If you want to use that, +you should regenerate the build system entirely.], [63])]) + +# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10])dnl +_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*(.*)"` +# and then we would define $MISSING as +# MISSING="${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +test x"${MISSING+set}" = xset || MISSING="${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\/$]]* | ?:[[\/]]*) ;; + */*) mkdir_p="$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: $? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar <conftest.tar]) + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + Added: trunk/system-update/agents/Makefile.am URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/agents/Makefile.am?... ============================================================================== --- trunk/system-update/agents/Makefile.am (added) +++ trunk/system-update/agents/Makefile.am Fri Feb 15 15:22:27 2008 @@ -0,0 +1,7 @@ +# Makefile.am for system-update/agents + +agent_SCRIPTS = + +scrconf_DATA = + +EXTRA_DIST = $(agent_SCRIPTS) $(scrconf_DATA) Added: trunk/system-update/configure.in.in URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/configure.in.in?rev... ============================================================================== --- trunk/system-update/configure.in.in (added) +++ trunk/system-update/configure.in.in Fri Feb 15 15:22:27 2008 @@ -0,0 +1,12 @@ +## YCP module configure.in.in + +## Initialize +@YAST2-INIT-COMMON@ +@YAST2-INIT-YCP@ + +## some common checks +@YAST2-CHECKS-COMMON@ +@YAST2-CHECKS-YCP@ + +## and generate the output... +@YAST2-OUTPUT@ Added: trunk/system-update/doc/Makefile.am URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/doc/Makefile.am?rev... ============================================================================== --- trunk/system-update/doc/Makefile.am (added) +++ trunk/system-update/doc/Makefile.am Fri Feb 15 15:22:27 2008 @@ -0,0 +1,10 @@ +# Makefile.am for system-update/doc + +SUBDIRS = autodocs + +htmldir = $(docdir) + +doc_DATA = +html_DATA = + +EXTRA_DIST = $(doc_DATA) $(html_DATA) Added: trunk/system-update/doc/autodocs/Makefile.am URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/doc/autodocs/Makefi... ============================================================================== --- trunk/system-update/doc/autodocs/Makefile.am (added) +++ trunk/system-update/doc/autodocs/Makefile.am Fri Feb 15 15:22:27 2008 @@ -0,0 +1,3 @@ +# Makefile.am for system-update/doc/autodocs + +include $(top_srcdir)/autodocs-ycp.ami Added: trunk/system-update/package/yast2-system-update.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/package/yast2-syste... ============================================================================== --- trunk/system-update/package/yast2-system-update.changes (added) +++ trunk/system-update/package/yast2-system-update.changes Fri Feb 15 15:22:27 2008 @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Fri Feb 15 15:21:51 CET 2008 - jsrain@suse.cz + +- initial version Added: trunk/system-update/src/Makefile.am URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/Makefile.am?rev... ============================================================================== --- trunk/system-update/src/Makefile.am (added) +++ trunk/system-update/src/Makefile.am Fri Feb 15 15:22:27 2008 @@ -0,0 +1,28 @@ +# Makefile.am for system-update/src + +SUBDIRS=config + +yncludedir = @yncludedir@/system-update + +client_DATA = \ + system-update.ycp \ + inst_system_update_prepare_system.ycp \ + inst_system_update_repo_select.ycp + +ynclude_DATA = \ + helps.ycp + +module_DATA = \ + SystemUpdate.ycp + +ybin_SCRIPTS = \ + system-update.sh + +# create a symlink for local build, #145327 +system-update: + ln -sf . $@ +ycpchook = system-update + +EXTRA_DIST = $(client_DATA) $(ynclude_DATA) $(module_DATA) $(ybin_SCRIPTS) + +include $(top_srcdir)/Makefile.am.common Added: trunk/system-update/src/SystemUpdate.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/SystemUpdate.yc... ============================================================================== --- trunk/system-update/src/SystemUpdate.ycp (added) +++ trunk/system-update/src/SystemUpdate.ycp Fri Feb 15 15:22:27 2008 @@ -0,0 +1,113 @@ +/* ------------------------------------------------------------------------------ + * Copyright (c) 2006 Novell, Inc. All Rights Reserved. + * + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of version 2 of the GNU General Public License as published by the + * Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, contact Novell, Inc. + * + * To contact Novell about this file by physical or electronic mail, you may find + * current contact information at www.novell.com. + * ------------------------------------------------------------------------------ + */ + +/** + * File: modules/SystemUpdate.ycp + * Package: Configuration of system-update + * Summary: SystemUpdate settings, input and output functions + * Authors: Jiri Srain <jsrain@suse.cz> + * + * $Id: SystemUpdate.ycp 41350 2007-10-10 16:59:00Z dfiser $ + * + * Representation of the configuration of system-update. + * Input and output routines. + */ + +{ + +module "SystemUpdate"; +textdomain "system-update"; + +import "Progress"; +import "Report"; +import "Summary"; +import "Message"; +import "Arch"; + +list<string> images = [ "common", "root" ]; + +global integer repo = -1; + +global string inst_sys_dir = ""; + +boolean RunCommand (string cmd) { + y2milestone ("Executing command %1", cmd); + map out = (map)SCR::Execute (.target.bash_output, cmd); + integer exit = out["exit"]:-1; + if (exit != 0) + { + Report::Error ("Error"); + y2error ("Execution failed: %1", out); + return false; + } + return true; +} + +global integer ImagesCount () { + return size (images) + 1; // add initrd +} + +global boolean PrepareInstSystem () { + + // TODO add language image to images list + + // first, unpack the initrd + // progress title + Progress::Title (_("Downloading initial ramdisk...")); + string initrd = Pkg::SourceProvideFile (repo, 1, sformat ("/boot/%1/loader/initrd", Arch::architecture ())); + Progress::NextStep (); + // progress title + Progress::Title (_("Uncompressing initial ramdisk...")); + string cmd = sformat ("cd %1; gunzip -fc %2 | cpio -i", inst_sys_dir, initrd); + if (! RunCommand (cmd)) + return false; + + boolean ret = true; + + // now unpack other (cramfs/squashfs/..) images + foreach (string img, images, { + Progress::NextStep (); + // progress title + Progress::Title (sformat (_("Downloading image %1..."), img)); + string image = Pkg::SourceProvideFile (repo, 1, sformat ("/boot/%1/%2", Arch::architecture (), img)); + Progress::NextStep (); + // progress title + Progress::Title (sformat (_("Uncompressing image %1..."), img)); + string tmpdir = (string)SCR::Read (.target.tmpdir) + "/inst-sys"; + cmd = sformat ("test -d %2 || mkdir -p %2 && mount -o loop %1 %2", image, tmpdir); + if (! RunCommand (cmd)) + ret = false; + + // copy inst-sys image out to the system - in order to allow to switch CDs + cmd = sformat ("cp -a %2/* %1", inst_sys_dir, tmpdir); + if (! RunCommand (cmd)) + ret = false; + + // umount inst-sys to free the CD drive + cmd = sformat ("umount %1", tmpdir); + if (! RunCommand (cmd)) + ret = false; + }); + + return ret; +} + +/* EOF */ +} Added: trunk/system-update/src/config/Makefile.am URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/config/Makefile... ============================================================================== --- trunk/system-update/src/config/Makefile.am (added) +++ trunk/system-update/src/config/Makefile.am Fri Feb 15 15:22:27 2008 @@ -0,0 +1,14 @@ +# +# Makefile.am for update/src +# + +controldir = $(yast2dir)/control + +controldir = /etc/YaST2 + +control_DATA = \ + system-update.xml + +desktop_DATA = system-update.desktop + +EXTRA_DIST = $(desktop_DATA) $(control_DATA) Added: trunk/system-update/src/config/system-update.desktop URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/config/system-u... ============================================================================== --- trunk/system-update/src/config/system-update.desktop (added) +++ trunk/system-update/src/config/system-update.desktop Fri Feb 15 15:22:27 2008 @@ -0,0 +1,24 @@ +[Desktop Entry] +Type=Application +Categories=Qt;X-SuSE-YaST;X-SuSE-YaST-Misc; + +X-KDE-ModuleType=Library +X-KDE-RootOnly=true +X-KDE-HasReadOnlyMode=true +X-KDE-Library=yast2 +X-SuSE-YaST-Call=system-update + +X-SuSE-YaST-Group=Misc +X-SuSE-YaST-Argument= +X-SuSE-YaST-RootOnly=true +X-SuSE-YaST-AutoInst= +X-SuSE-YaST-Geometry= +X-SuSE-YaST-SortKey= +X-SuSE-YaST-AutoInstResource=system-update + +Icon=yast-system-update +Exec=/usr/lib/YaST2/bin/system-update.sh + +Name=SystemUpdate +GenericName=system-update +X-KDE-SubstituteUID=true Added: trunk/system-update/src/config/system-update.xml URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/config/system-u... ============================================================================== --- trunk/system-update/src/config/system-update.xml (added) +++ trunk/system-update/src/config/system-update.xml Fri Feb 15 15:22:27 2008 @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<!DOCTYPE productDefines SYSTEM "/usr/share/YaST2/control/control.dtd"> +<productDefines xmlns="http://www.suse.com/1.0/yast2ns" + xmlns:config="http://www.suse.com/1.0/configns"> + +<!-- +Work around for the text domain +textdomain="update" +--> + + <textdomain>update</textdomain> + <software> + <upgrade_repo>nfs://tullamore.suse.cz/local/inst/os11</upgrade_repo> + </software> + + <proposals config:type="list"> + <proposal> + <label>Update Settings</label> + <mode>update</mode> + <name>update</name> + <stage>normal</stage> + <proposal_modules config:type="list"> + <proposal_module>update</proposal_module> + <proposal_module>packages</proposal_module> + <proposal_module>backup</proposal_module> + <proposal_module>language</proposal_module> + </proposal_modules> + </proposal> + </proposals> + + <workflows config:type="list"> + <workflow> + <label>Update</label> + <defaults> + <archs>all</archs> + </defaults> + <stage>normal</stage> + <mode>update</mode> + <modules config:type="list"> + <module> + <label>Repository Selection</label> + <name>inst_system_update_repo_select</name> + </module> + <module> + <name>inst_system_update_prepare_system</name> + <label>Perform Update</label> + </module> + </modules> + </workflow> + </workflows> +</productDefines> Added: trunk/system-update/src/helps.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/helps.ycp?rev=4... ============================================================================== --- trunk/system-update/src/helps.ycp (added) +++ trunk/system-update/src/helps.ycp Fri Feb 15 15:22:27 2008 @@ -0,0 +1,119 @@ +/* ------------------------------------------------------------------------------ + * Copyright (c) 2006 Novell, Inc. All Rights Reserved. + * + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of version 2 of the GNU General Public License as published by the + * Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, contact Novell, Inc. + * + * To contact Novell about this file by physical or electronic mail, you may find + * current contact information at www.novell.com. + * ------------------------------------------------------------------------------ + */ + +/** + * File: include/system-update/helps.ycp + * Package: Configuration of system-update + * Summary: Help texts of all the dialogs + * Authors: Jiri Srain <jsrain@suse.cz> + * + * $Id: helps.ycp 27914 2006-02-13 14:32:08Z locilka $ + */ + +{ + +textdomain "system-update"; + +/** + * All helps are here + */ +map HELPS = $[ + + /* Read dialog help 1/2 */ + "read" : _("<p><b><big>Initializing system-update Configuration</big></b><br> +Please wait...<br></p> +") + + + /* Read dialog help 2/2 */ + _("<p><b><big>Aborting Initialization:</big></b><br> +Safely abort the configuration utility by pressing <b>Abort</b> now.</p> +"), + + /* Write dialog help 1/2 */ + "write" : _("<p><b><big>Saving system-update Configuration</big></b><br> +Please wait...<br></p> +") + + + /* Write dialog help 2/2 */ +_("<p><b><big>Aborting Saving:</big></b><br> +Abort the save procedure by pressing <b>Abort</b>. +An additional dialog informs whether it is safe to do so. +</p> +"), + + /* Summary dialog help 1/3 */ + "summary" : _("<p><b><big>SystemUpdate Configuration</big></b><br> +Configure system-update here.<br></p> +") + + + /* Summary dialog help 2/3 */ + _("<p><b><big>Adding a system-update:</big></b><br> +Choose an system-update from the list of detected system-updates. +If your system-update was not detected, use <b>Other (not detected)</b>. +Then press <b>Configure</b>.</p> +") + + + /* Summary dialog help 3/3 */ + _("<p><b><big>Editing or Deleting:</big></b><br> +If you press <b>Edit</b>, an additional dialog in which to change +the configuration opens.</p> +"), + + /* Ovreview dialog help 1/3 */ + "overview" : _("<p><b><big>SystemUpdate Configuration Overview</big></b><br> +Obtain an overview of installed system-updates. Additionally +edit their configurations.<br></p> +") + + + /* Ovreview dialog help 2/3 */ +_("<p><b><big>Adding a system-update:</big></b><br> +Press <b>Add</b> to configure a system-update.</p>") + + + /* Ovreview dialog help 3/3 */ +_("<p><b><big>Editing or Deleting:</big></b><br> +Choose a system-update to change or remove. +Then press <b>Edit</b> or <b>Delete</b> as desired.</p> +"), + + /* Configure1 dialog help 1/2 */ + "c1" : _("<p><b><big>Configuration Part One</big></b><br> +Press <b>Next</b> to continue. +<br></p>") + + + /* Configure1 dialog help 2/2 */ +_("<p><b><big>Selecting Something</big></b><br> +It is not possible. You must code it first. :-) +</p>"), + + /* Configure2 dialog help 1/2 */ + "c2" : _("<p><b><big>Configuration Part Two</big></b><br> +Press <b>Next</b> to continue. +<br></p> +") + + + /* Configure2 dialog help 2/2 */ +_("<p><b><big>Selecting Something</big></b><br> +It is not possible. You must code it first. :-) +</p>"), + +]; + +/* EOF */ +} Added: trunk/system-update/src/inst_system_update_prepare_system.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/inst_system_upd... ============================================================================== --- trunk/system-update/src/inst_system_update_prepare_system.ycp (added) +++ trunk/system-update/src/inst_system_update_prepare_system.ycp Fri Feb 15 15:22:27 2008 @@ -0,0 +1,99 @@ +{ + import "GetInstArgs"; + import "SystemUpdate"; + import "Progress"; + import "ProductFeatures"; + import "Report"; + import "Installation"; + + textdomain "installation"; + + symbol ret = `next; + if (GetInstArgs::going_back()) + return `auto; + + list<string> stages = [ + // progress stage, text in dialog (short, infinitiv) + _("Initialize upgrade repositoy"), + // progress stage, text in dialog (short, infinitiv) + _("Download installation images"), + // progress stage, text in dialog (short, infinitiv) + _("Update installation images"), + ]; + + integer steps = 1 // prepare repo + + 2 * SystemUpdate::ImagesCount () // stage 1 + + 1; // stage 2 + + Progress::New (_("Preparing Upgrade Environment"), + " ", steps, stages, [], ""); + +// initialize upgrade repository + Progress::NextStage (); + Progress::Title (_("Initializing upgrade repository...")); + string repo_url = ProductFeatures::GetStringFeature ("software", "upgrade_repo"); +/* Have some weird problem create repo with YaST + In the future, problems because of metadata may occurre + + integer repo_id = Pkg::SourceCreate (repo_url, ""); +Report::Message (sformat ("%1", repo_id)); + if (repo_id < 0) + { + Report::Error (_("Failed to initialize upgrade repository")); + return `abort; + } +*/ +// prepare inst-sys image in the temporary dir + Progress::NextStage (); + if (!( SystemUpdate::PrepareInstSystem ())) + { + Report::Error (_("Failed to prepare upgrade environment")); + return `abort; + } + +// initiate upgrade + + Progress::NextStage (); + Progress::Title (_("Updating installation images...")); + SCR::Write (.target.string, SystemUpdate::inst_sys_dir + Installation::run_update_file, ""); +// SCR::Write (.target.string, SystemUpdate::inst_sys_dir + "/var/lib/YaST2/run_system_update", ""); + +// copy files from current system + + list<string> files = [ "/etc/resolv.conf" ]; + foreach (string f, files, { + string cmd = sformat ("/bin/cp %1 %2%1", f, SystemUpdate::inst_sys_dir); + map out = (map)SCR::Execute (.target.bash_output, cmd); + if (out["exit"]:-1 != 0) + { + y2error ("Executing %1 failed: %2", cmd, out); + Report::Error (sformat (_("Failed to copy %1 to installation system"), f)); + return `abort; + } + }); + +// copy files from media + + files = [ "/content", "/control.xml", "license.tar.gz" ]; + foreach (string f, files, { + string local_file = Pkg::SourceProvideFile (SystemUpdate::repo, 1, f); + string cmd = sformat ("/bin/cp %1 %2%3", local_file, SystemUpdate::inst_sys_dir, f); + map out = (map)SCR::Execute (.target.bash_output, cmd); + if (out["exit"]:-1 != 0) + { + y2error ("Executing %1 failed: %2", cmd, out); + Report::Error (sformat (_("Failed to copy %1 to installation system"), f)); + return `abort; + } + }); + +// write install.inf + + SCR::Execute (.target.bash, sformat ("echo "YaSTRepoURL: %1" >> %2/etc/install.inf", repo_url, SystemUpdate::inst_sys_dir)); + + Progress::Finish (); + + Report::Message (_("YaST will start the update process now.")); + + return `next; +} Added: trunk/system-update/src/inst_system_update_repo_select.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/inst_system_upd... ============================================================================== --- trunk/system-update/src/inst_system_update_repo_select.ycp (added) +++ trunk/system-update/src/inst_system_update_repo_select.ycp Fri Feb 15 15:22:27 2008 @@ -0,0 +1,64 @@ +{ + import "GetInstArgs"; + import "SystemUpdate"; + import "PackageCallbacksInit"; + import "Popup"; + import "Label"; + import "Wizard"; + + textdomain "installation"; + + map out = (map)SCR::Execute (.target.bash_output, "echo $UPDATE_TMP_DIR"); + SystemUpdate::inst_sys_dir = out["stdout"]:""; + list<string> components = splitstring (SystemUpdate::inst_sys_dir, "\n"); + SystemUpdate::inst_sys_dir = components[0]:""; + y2milestone ("Using temporary dir %1", SystemUpdate::inst_sys_dir); + + PackageCallbacksInit::InitPackageCallbacks (); + + boolean restore = Pkg::SourceRestore(); + if( ! restore ) + { + boolean cont = Popup::AnyQuestionRichText( + Label::ErrorMsg(), + // Error popup + _("<p>There were errors while restoring the repository configuration.</p>\n") + "<p>" + Pkg::LastError() + "</p>", + 50, 15, + Label::ContinueButton(), Label::CancelButton(), `focus_no + ); + + // really continue? + if (!cont) { + return `abort; + } + } + + any sourceStatesIn = Pkg::SourceEditGet(); + + list items = maplist (map<string,any> s, Pkg::SourceEditGet(), { + return `item (`id (s["SrcId"]:-1), s["name"]:"Unnamed Source"); + }); + term contents = `SelectionBox (`id (`repos), _("Available Repositories"), items); + Wizard::SetContents ("Repositories", contents, "", true, true); + + any ret = nil; + while (ret == nil) + { + ret = UI::UserInput (); + if (ret == `next) + { + integer item = (integer)UI::QueryWidget (`id (`repos), `Value); + if (item == nil) + { + ret = nil; + Popup::Message ("Select a repository to upgrade from"); + } + else + { + SystemUpdate::repo = item; + } + } + } + + return (symbol)ret; +} Added: trunk/system-update/src/system-update.sh URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/system-update.s... ============================================================================== --- trunk/system-update/src/system-update.sh (added) +++ trunk/system-update/src/system-update.sh Fri Feb 15 15:22:27 2008 @@ -0,0 +1,39 @@ +#!/bin/bash + +# define temporary directory - cannot use YaST, since it needs to persist +# multiple runs of YaST + +export UPDATE_TMP_DIR=`mktemp -d`; + +test -d $UPDATE_TMP_DIR || ( echo "Failed to create temporary directory" && exit 1 ); + +echo "Created tmp dir $UPDATE_TMP_DIR"; + +# start YaST to define installation repo +# prepare inst-sys image in the temporary dir +# write install.inf + +/sbin/yast2 system-update || ( echo "Failed to run YaST" && exit 2 ); + +# bind-mount root /sys /proc +mkdir "$UPDATE_TMP_DIR/sys" 2>/dev/null ; mount --rbind /sys "$UPDATE_TMP_DIR/sys" +mkdir "$UPDATE_TMP_DIR/proc" 2>/dev/null ; mount --rbind /proc "$UPDATE_TMP_DIR/proc" +mkdir "$UPDATE_TMP_DIR/mnt" 2>/dev/null ; mount --rbind / "$UPDATE_TMP_DIR/mnt" + +# run YaST in chroot + +# FIXME ensure somehow about using different workflow - will be tricky :-( +chroot $UPDATE_TMP_DIR /usr/lib/YaST2/startup/YaST2.First-Stage + +# FIXME remove following line +exit 0; + +# ummount (incl. /proc, /sys) +umount $UPDATE_TMP_DIR/mnt || ( echo "Umount failed" && exit 99 ); +umount $UPDATE_TMP_DIR/proc || ( echo "Umount failed" && exit 99 ); +umount $UPDATE_TMP_DIR/sys || ( echo "Umount failed" && exit 99 ); + +# clean-up +rm -rf $UPDATE_TMP_DIR; + +exit 0; Added: trunk/system-update/src/system-update.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/src/system-update.y... ============================================================================== --- trunk/system-update/src/system-update.ycp (added) +++ trunk/system-update/src/system-update.ycp Fri Feb 15 15:22:27 2008 @@ -0,0 +1,64 @@ +/** + * File: clients/update.ycp + * Module: System update + * Summary: Main update client + * Authors: Klaus Kaempf <kkaempf@suse.de> + * Arvin Schnell <arvin@suse.de> + * Lukas Ocilka <locilka@suse.cz> + * + * $Id: update.ycp 37767 2007-05-02 08:16:04Z locilka $ + */ + +{ + textdomain "update"; + + import "Mode"; + import "Update"; + import "Wizard"; + import "ProductControl"; + import "Label"; + import "Mode"; + import "GetInstArgs"; + import "CommandLine"; + + // Bugzilla #269910, CommanLine "support" + // argmap is only a map, CommandLine uses string parameters + if (size (GetInstArgs::argmap()) == 0 && size (WFM::Args()) > 0) { + Mode::SetUI ("commandline"); + y2milestone ("Mode CommandLine not supported, exiting..."); + // TRANSLATORS: error message - the module does not provide command line interface + CommandLine::Print(_("There is no user interface available for this module.")); + return `auto; + } + + // somewhere, DirInstall is imported that wants Pkg in the constructor + import "PackageLock"; + // check whether having the packager for ourselves + if (! PackageLock::Check ()) + return `abort; + + // set normal mode and update + Mode::SetMode ("update"); + + Update::disallow_upgrade = true; + Update::onlyUpdateInstalled = true; + Update::deleteOldPackages = false; + + ProductControl::custom_control_file = "/etc/YaST2/system-update.xml"; + + Wizard::OpenNextBackStepsDialog(); + Wizard::SetNextButton(`next, Label::AcceptButton()); + + if (!ProductControl::Init()) + { + y2error("control file %1 not found", ProductControl::custom_control_file ); + } + list<map> stage_mode = [$["stage": "normal", "mode": Mode::mode() ]]; + ProductControl::AddWizardSteps(stage_mode); + + symbol ret = ProductControl::Run(); + + Wizard::CloseDialog (); + + return `next; +} Added: trunk/system-update/testsuite/Makefile.am URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/testsuite/Makefile.... ============================================================================== --- trunk/system-update/testsuite/Makefile.am (added) +++ trunk/system-update/testsuite/Makefile.am Fri Feb 15 15:22:27 2008 @@ -0,0 +1,21 @@ +# +# Makefile.am for .../testsuite +# +# Do not edit this file (Makefile.am) as it will be overwritten! +# + +AUTOMAKE_OPTIONS = dejagnu +EXTRA_DIST = $(wildcard tests/*.out) $(wildcard tests/*.err) $(wildcard tests/*.ycp) $(wildcard tests/*.yh) + +testsuite_prepare = @ydatadir@/testsuite/Makefile.testsuite + +all-local: $(testsuite_prepare) + make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir) + +clean-local: $(testsuite_prepare) + make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir) clean + +check-local: $(testsuite_prepare) + make -f $(testsuite_prepare) RPMNAME=$(RPMNAME) srcdir=$(srcdir) check + +# EOF Added: trunk/system-update/testsuite/tests/SystemUpdate.err URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/testsuite/tests/Sys... ============================================================================== (empty) Added: trunk/system-update/testsuite/tests/SystemUpdate.out URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/testsuite/tests/Sys... ============================================================================== --- trunk/system-update/testsuite/tests/SystemUpdate.out (added) +++ trunk/system-update/testsuite/tests/SystemUpdate.out Fri Feb 15 15:22:27 2008 @@ -0,0 +1,2 @@ +Dump SystemUpdate::Modified +Return false Added: trunk/system-update/testsuite/tests/SystemUpdate.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/testsuite/tests/Sys... ============================================================================== --- trunk/system-update/testsuite/tests/SystemUpdate.ycp (added) +++ trunk/system-update/testsuite/tests/SystemUpdate.ycp Fri Feb 15 15:22:27 2008 @@ -0,0 +1,13 @@ +{ + +// testedfiles: SystemUpdate.ycp + +include "testsuite.ycp"; +TESTSUITE_INIT([], nil); + +import "SystemUpdate"; + +DUMP("SystemUpdate::Modified"); +TEST(``(SystemUpdate::Modified()), [], nil); + +} Added: trunk/system-update/yast2-system-update.spec.in URL: http://svn.opensuse.org/viewcvs/yast/trunk/system-update/yast2-system-update... ============================================================================== --- trunk/system-update/yast2-system-update.spec.in (added) +++ trunk/system-update/yast2-system-update.spec.in Fri Feb 15 15:22:27 2008 @@ -0,0 +1,31 @@ +@HEADER-COMMENT@ + +@HEADER@ +Requires: yast2 +BuildRequires: perl-XML-Writer update-desktop-files yast2 yast2-devtools yast2-testsuite + +BuildArchitectures: noarch + +Summary: Configuration of system-update + +%description +- + +@PREP@ + +@BUILD@ + +@INSTALL@ + +@CLEAN@ + +%files +%defattr(-,root,root) +%dir @yncludedir@/system-update +@yncludedir@/system-update/* +@clientdir@/system-update.ycp +@clientdir@/system-update_*.ycp +@moduledir@/SystemUpdate.* +@moduledir@/SystemUpdate2.* +@desktopdir@/system-update.desktop +%doc @docdir@ -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org