Hello community,
here is the log from the commit of package yast2-product-creator
checked in at Mon Nov 12 21:30:33 CET 2007.
--------
--- yast2-product-creator/yast2-product-creator.changes 2007-11-01 16:22:49.000000000 +0100
+++ /mounts/work_src_done/NOARCH/yast2-product-creator/yast2-product-creator.changes 2007-11-12 16:46:42.240829000 +0100
@@ -1,0 +2,42 @@
+Mon Nov 12 15:35:42 CET 2007 - lslezak@suse.cz
+
+- select the current language if there is no language selected,
+ prevent the solver from allocating too much resources (#339756)
+- 2.16.5
+
+-------------------------------------------------------------------
+Mon Nov 12 13:11:58 CET 2007 - jsuchome@suse.cz
+
+- image-creator:
+ do not allow importing non-system configurations (#340495)
+
+-------------------------------------------------------------------
+Fri Nov 9 17:04:59 CET 2007 - lslezak@suse.cz
+
+- y2mkiso - updated and enhanced help text (#336821)
+
+-------------------------------------------------------------------
+Fri Nov 9 10:36:55 CET 2007 - lslezak@suse.cz
+
+- properly download /boot, /docu and slideshow files (#338625)
+- compress metadata if needed, replace the old one, support
+ compressed patter files, generate packages.DU only up to
+ the 3rd directory level (#335183)
+- copy PPC boot files in /suseboot, /ppc and /PS3 (#335177)
+- add GPG key to installation initrd on PPC architecture (#339449)
+- install required package createrepo (#331530), install additional
+ packages on PPC
+- fixed ISO image creation on PPC when the path contained spaces
+ (#335164)
+- skip isolinux configuration when the architecture is not i386
+ or x86_64 (#335167)
+- display download callbacks in the main window, no flashing popups
+ (#338626)
+
+-------------------------------------------------------------------
+Fri Nov 2 11:13:58 CET 2007 - jsuchome@suse.cz
+
+- correctly escape strings which should be written to config.xml
+ (seen in #338090)
+
+-------------------------------------------------------------------
Old:
----
yast2-product-creator-2.16.4.tar.bz2
New:
----
yast2-product-creator-2.16.5.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-product-creator.spec ++++++
--- /var/tmp/diff_new_pack.s12967/_old 2007-11-12 21:30:14.000000000 +0100
+++ /var/tmp/diff_new_pack.s12967/_new 2007-11-12 21:30:14.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package yast2-product-creator (Version 2.16.4)
+# spec file for package yast2-product-creator (Version 2.16.5)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,12 +11,12 @@
# norootforbuild
Name: yast2-product-creator
-Version: 2.16.4
+Version: 2.16.5
Release: 1
License: GPL v2 or later
Group: System/YaST
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-product-creator-2.16.4.tar.bz2
+Source0: yast2-product-creator-2.16.5.tar.bz2
Prefix: /usr
BuildRequires: autoyast2-installation perl-XML-Writer update-desktop-files yast2-devtools yast2-packager yast2-security yast2-testsuite
PreReq: %fillup_prereq
@@ -36,7 +36,7 @@
%prep
-%setup -n yast2-product-creator-2.16.4
+%setup -n yast2-product-creator-2.16.5
%build
%{prefix}/bin/y2tool y2autoconf
@@ -83,6 +83,33 @@
/usr/lib/YaST2/servers_non_y2/ag_*
/var/adm/fillup-templates/sysconfig.product-creator
%changelog
+* Mon Nov 12 2007 - lslezak@suse.cz
+- select the current language if there is no language selected,
+ prevent the solver from allocating too much resources (#339756)
+- 2.16.5
+* Mon Nov 12 2007 - jsuchome@suse.cz
+- image-creator:
+ do not allow importing non-system configurations (#340495)
+* Fri Nov 09 2007 - lslezak@suse.cz
+- y2mkiso - updated and enhanced help text (#336821)
+* Fri Nov 09 2007 - lslezak@suse.cz
+- properly download /boot, /docu and slideshow files (#338625)
+- compress metadata if needed, replace the old one, support
+ compressed patter files, generate packages.DU only up to
+ the 3rd directory level (#335183)
+- copy PPC boot files in /suseboot, /ppc and /PS3 (#335177)
+- add GPG key to installation initrd on PPC architecture (#339449)
+- install required package createrepo (#331530), install additional
+ packages on PPC
+- fixed ISO image creation on PPC when the path contained spaces
+ (#335164)
+- skip isolinux configuration when the architecture is not i386
+ or x86_64 (#335167)
+- display download callbacks in the main window, no flashing popups
+ (#338626)
+* Fri Nov 02 2007 - jsuchome@suse.cz
+- correctly escape strings which should be written to config.xml
+ (seen in #338090)
* Thu Nov 01 2007 - jsuchome@suse.cz
- fixed checking if repository has 'plaindir' format (#338115)
- show which repositories YaST failed to add (#337618)
++++++ yast2-product-creator-2.16.4.tar.bz2 -> yast2-product-creator-2.16.5.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/configure new/yast2-product-creator-2.16.5/configure
--- old/yast2-product-creator-2.16.4/configure 2007-10-25 15:23:08.000000000 +0200
+++ new/yast2-product-creator-2.16.5/configure 2007-11-12 16:20:26.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for yast2-product-creator 2.16.0.
+# Generated by GNU Autoconf 2.61 for yast2-product-creator 2.16.5.
#
# Report bugs to http://bugs.opensuse.org/.
#
@@ -574,8 +574,8 @@
# Identity of this package.
PACKAGE_NAME='yast2-product-creator'
PACKAGE_TARNAME='yast2-product-creator'
-PACKAGE_VERSION='2.16.0'
-PACKAGE_STRING='yast2-product-creator 2.16.0'
+PACKAGE_VERSION='2.16.5'
+PACKAGE_STRING='yast2-product-creator 2.16.5'
PACKAGE_BUGREPORT='http://bugs.opensuse.org/'
ac_unique_file="RPMNAME"
@@ -1197,7 +1197,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures yast2-product-creator 2.16.0 to adapt to many kinds of systems.
+\`configure' configures yast2-product-creator 2.16.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1268,7 +1268,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of yast2-product-creator 2.16.0:";;
+ short | recursive ) echo "Configuration of yast2-product-creator 2.16.5:";;
esac
cat <<\_ACEOF
@@ -1346,7 +1346,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-yast2-product-creator configure 2.16.0
+yast2-product-creator configure 2.16.5
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1360,7 +1360,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by yast2-product-creator $as_me 2.16.0, which was
+It was created by yast2-product-creator $as_me 2.16.5, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2181,7 +2181,7 @@
# Define the identity of the package.
PACKAGE='yast2-product-creator'
- VERSION='2.16.0'
+ VERSION='2.16.5'
cat >>confdefs.h <<_ACEOF
@@ -2408,7 +2408,7 @@
-VERSION="2.16.0"
+VERSION="2.16.5"
RPMNAME="yast2-product-creator"
MAINTAINER="Ladislav Slezak "
@@ -3303,7 +3303,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by yast2-product-creator $as_me 2.16.0, which was
+This file was extended by yast2-product-creator $as_me 2.16.5, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3346,7 +3346,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-yast2-product-creator config.status 2.16.0
+yast2-product-creator config.status 2.16.5
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/configure.in new/yast2-product-creator-2.16.5/configure.in
--- old/yast2-product-creator-2.16.4/configure.in 2007-10-25 15:23:04.000000000 +0200
+++ new/yast2-product-creator-2.16.5/configure.in 2007-11-12 16:20:21.000000000 +0100
@@ -3,7 +3,7 @@
dnl -- This file is generated by y2autoconf 2.15.9 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(yast2-product-creator, 2.16.0, http://bugs.opensuse.org/, yast2-product-creator)
+AC_INIT(yast2-product-creator, 2.16.5, http://bugs.opensuse.org/, yast2-product-creator)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -17,7 +17,7 @@
AM_INIT_AUTOMAKE(tar-ustar) dnl searches for some needed programs
dnl Important YaST2 variables
-VERSION="2.16.0"
+VERSION="2.16.5"
RPMNAME="yast2-product-creator"
MAINTAINER="Ladislav Slezak "
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/Makefile.in new/yast2-product-creator-2.16.5/Makefile.in
--- old/yast2-product-creator-2.16.4/Makefile.in 2007-10-25 15:23:11.000000000 +0200
+++ new/yast2-product-creator-2.16.5/Makefile.in 2007-11-12 16:20:30.000000000 +0100
@@ -44,8 +44,8 @@
@CREATE_PKGCONFIG_TRUE@am__append_1 = $(RPMNAME).pc.in
subdir = .
DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/configure config.guess \
- config.sub install-sh missing
+ $(srcdir)/Makefile.in $(top_srcdir)/configure TODO \
+ config.guess config.sub install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/scripts/y2mkiso new/yast2-product-creator-2.16.5/scripts/y2mkiso
--- old/yast2-product-creator-2.16.4/scripts/y2mkiso 2007-06-21 14:02:29.000000000 +0200
+++ new/yast2-product-creator-2.16.5/scripts/y2mkiso 2007-11-09 17:04:36.000000000 +0100
@@ -28,18 +28,28 @@
DEST=$2
BOOT_ARCH=$3
+HFS_BLESS=
+
function usage()
{
-echo "This script creates an ISO image from an existing directory containing a SuSE source."
-echo "The directory has to have files according to the SuSE media specification. This script"
-echo "will also search for the needed files to make a bootable CD and will create one if "
-echo "all files are available"
+echo "This script creates an ISO image from an existing directory containing"
+echo "a SUSE source. The directory has to have files according to the SUSE"
+echo "media specification. This script will also search for the needed files"
+echo "to make a bootable CD and will create one if all files are available."
+echo
+echo "$0 <directory> []"
echo
-echo "$0 <directory> <iso file name>"
+echo " directory - path to the source directory"
+echo " iso_file_name - output file name (e.g. /tmp/product.iso)"
+echo " boot_architecture - name of the target architecture, set to"
+echo " the directory name in /boot, e.g. i386, x86_64, ppc..."
+echo " If it's missing the old layout (plain /boot directory)"
+echo " is used."
}
if [ -z "$SOURCE" -o -z "$DEST" ]; then
- echo "Missing parameters."
+ echo "ERROR: Missing parameters."
+ echo
usage
exit 1
fi
@@ -212,7 +222,8 @@
# use netatalk and macbinary filename translation
# bless a directory named suseboot, mark it bootable
echo using suseboot for hfs boot
- PARAMS="$PARAMS -part --netatalk --macbin -hfs-bless $SOURCE/suseboot"
+ PARAMS="$PARAMS -part --netatalk --macbin"
+ HFS_BLESS="suseboot"
FILE_MAPPING="/usr/share/YaST2/data/product-creator/HFS_mapping"
if [ -f $FILE_MAPPING ] ; then
echo using $FILE_MAPPING for hfs mapping
@@ -246,7 +257,8 @@
# use netatalk and macbinary filename translation
# bless a directory named suseboot, mark it bootable
echo using suseboot for hfs boot
- PARAMS="$PARAMS -part --netatalk --macbin -hfs-bless $SOURCE/suseboot"
+ PARAMS="$PARAMS -part --netatalk --macbin"
+ HFS_BLESS="suseboot"
FILE_MAPPING="/usr/share/YaST2/data/product-creator/HFS_mapping"
if [ -f $FILE_MAPPING ] ; then
echo using $FILE_MAPPING for hfs mapping
@@ -340,13 +352,22 @@
fi
fi
-set -x
-mkisofs \
- -p "$CD_PREPARER" \
- $PUB_OPT "$CD_PUBLISHER" \
- $PARAMS -o "$DEST" $XPARAMS "$SOURCE"
-set +x
-
+if [ -z "$HFS_BLESS" ] ; then
+ set -x
+ mkisofs \
+ -p "$CD_PREPARER" \
+ $PUB_OPT "$CD_PUBLISHER" \
+ $PARAMS -o "$DEST" $XPARAMS "$SOURCE"
+ set +x
+else
+ set -x
+ mkisofs \
+ -p "$CD_PREPARER" \
+ $PUB_OPT "$CD_PUBLISHER" \
+ -hfs-bless "$SOURCE/$HFS_BLESS" \
+ $PARAMS -o "$DEST" $XPARAMS "$SOURCE"
+ set +x
+fi
if [ -d "$SOURCE2" ] ; then
echo removing $SOURCE2
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/src/complex.ycp new/yast2-product-creator-2.16.5/src/complex.ycp
--- old/yast2-product-creator-2.16.4/src/complex.ycp 2007-11-01 16:15:14.000000000 +0100
+++ new/yast2-product-creator-2.16.5/src/complex.ycp 2007-11-12 15:47:32.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Dialogs definitions
* Authors: Anas Nashif
*
- * $Id: complex.ycp 41570 2007-10-25 14:01:56Z jsuchome $
+ * $Id: complex.ycp 41969 2007-11-12 14:19:15Z jsuchome $
*/
{
@@ -267,17 +267,29 @@
help );
- if(ProductCreator::Abort()) return `abort;
+ if(ProductCreator::Abort())
+ {
+ ProductCreator::ResetCallbacks();
+ return `abort;
+ }
Progress::NextStage();
+ // redirect the download callbacks
+ ProductCreator::RedirectCallbacks();
+
if (!ProductCreator::CreateSkeleton())
{
Report::Error(_("Error while creating skeleton."));
+ ProductCreator::ResetCallbacks();
return `overview;
}
- if(ProductCreator::Abort()) return `abort;
+ if(ProductCreator::Abort())
+ {
+ ProductCreator::ResetCallbacks();
+ return `abort;
+ }
Progress::NextStage();
if (ProductCreator::Config["pkgtype"]:"" == "autoyast")
{
@@ -288,9 +300,12 @@
if (ProductCreator::Config["bootconfig"]:"" != "")
{
y2debug("bootconfig available");
- SCR::Write(.target.string,
- sformat("%1/boot/loader/isolinux.cfg", ProductCreator::skel_root),
- ProductCreator::Config["bootconfig"]:"" );
+
+ string fname = (ProductCreator::Config["code10"]:false)
+ ? sformat("%1/boot/%2/loader/isolinux.cfg", ProductCreator::skel_root, Arch::architecture())
+ : sformat("%1/boot/loader/isolinux.cfg", ProductCreator::skel_root);
+
+ SCR::Write(.target.string, fname, ProductCreator::Config["bootconfig"]:"" );
}
}
@@ -298,6 +313,7 @@
Progress::NextStage();
if (!ProductCreator::CopyPackages())
{
+ ProductCreator::ResetCallbacks();
return `overview;
}
@@ -306,6 +322,7 @@
Progress::NextStage();
if (!ProductCreator::SignSourceStep())
{
+ ProductCreator::ResetCallbacks();
return `overview;
}
}
@@ -360,6 +377,9 @@
}
} until (ret == `next || ret == `back || ret == `abort);
+
+ ProductCreator::ResetCallbacks();
+
return (symbol)ret;
}
@@ -527,6 +547,13 @@
return `skip_isolinux;
}
+ // skip isolinux configuration if the architecture
+ // is not i386 or x86_64 - there is no isolinux
+ if (Arch::architecture() != "i386" && Arch::architecture() != "x86_64")
+ {
+ return `skip_isolinux;
+ }
+
return `next;
}
@@ -551,6 +578,11 @@
if (FileUtils::Exists (images_dir + "/" + d + "/config.xml"))
{
map config = Kiwi::ReadConfigXML (images_dir + "/" + d);
+ if (config["image_type"]:"" != "system")
+ {
+ y2warning ("%1 not a 'system' image type, skipping", d);
+ return;
+ }
string task = "iso";
// FIXME duplicated in kiwi_dialogs
foreach (string type, map data, config["type"]:$[], {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/src/dialogs.ycp new/yast2-product-creator-2.16.5/src/dialogs.ycp
--- old/yast2-product-creator-2.16.4/src/dialogs.ycp 2007-10-25 16:01:57.000000000 +0200
+++ new/yast2-product-creator-2.16.5/src/dialogs.ycp 2007-11-12 16:12:07.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Dialogs definitions
* Authors: Anas Nashif
*
- * $Id: dialogs.ycp 41570 2007-10-25 14:01:56Z jsuchome $
+ * $Id: dialogs.ycp 41978 2007-11-12 15:12:05Z lslezak $
*/
{
@@ -925,6 +925,9 @@
list<string> addons = patterns;
+ // ensure that a langugage is selected
+ ProductCreator::CheckLanguage();
+
if (size(addons) > 0 || ProductCreator::Config["base"]:"" != "")
{
y2milestone("base pattern: %1, addons: %2", base_pattern, addons);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/src/helps.ycp new/yast2-product-creator-2.16.5/src/helps.ycp
--- old/yast2-product-creator-2.16.4/src/helps.ycp 2007-09-13 09:36:17.000000000 +0200
+++ new/yast2-product-creator-2.16.5/src/helps.ycp 2007-07-16 15:53:26.000000000 +0200
@@ -4,7 +4,7 @@
* Summary: Help texts of all the dialogs
* Authors: Anas Nashif
*
- * $Id: helps.ycp 38945 2007-06-21 12:19:17Z jsuchome $
+ * $Id: helps.ycp 38497 2007-06-18 09:29:24Z jsuchome $
*/
{
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/src/kiwi_dialogs.ycp new/yast2-product-creator-2.16.5/src/kiwi_dialogs.ycp
--- old/yast2-product-creator-2.16.4/src/kiwi_dialogs.ycp 2007-11-01 12:11:29.000000000 +0100
+++ new/yast2-product-creator-2.16.5/src/kiwi_dialogs.ycp 2007-11-12 15:47:32.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Dialogs for kiwi configuration
* Authors: Jiri Suchomel
*
- * $Id: kiwi_dialogs.ycp 41581 2007-10-26 08:38:56Z jsuchome $
+ * $Id: kiwi_dialogs.ycp 41969 2007-11-12 14:19:15Z jsuchome $
*/
{
textdomain "product-creator";
@@ -1573,11 +1573,20 @@
// read the new configuration and update UI accordingly
// (no need to read config if it is provided as argument)
- void update_config (string dir, map config) {
+ boolean update_config (string dir, map config) {
kiwi_configuration = dir;
Config =
(config == $[] ? Kiwi::ReadConfigXML (kiwi_configuration) : config);
+
+ if (Config["image_type"]:"" != "system")
+ {
+ y2warning ("%1 does not have 'system' image type, skipping", dir);
+ // error popup
+ Popup::Error (_("Selected directory does not contain valid description of system configuration"));
+ return false;
+ }
+
// busy popup
Popup::ShowFeedback (_("Importing repositories..."), _("Please wait..."));
repositories = Kiwi::ImportImageRepositories (Config, dir);
@@ -1611,6 +1620,7 @@
});
UI::ChangeWidget (`id (`type), `Items, type_its);
UI::ChangeWidget (`id (`type), `Value, kiwi_task);
+ return true;
}
list template_items = maplist (string dir, map template, Kiwi::Templates, {
@@ -1736,10 +1746,9 @@
kiwi_configuration== "" ? Kiwi::images_dir : kiwi_configuration,
// popup for file selection dialog
_("Directory to Import"));
- if (dir!= nil)
+ if (dir!= nil && update_config (dir, $[]))
{
UI::ChangeWidget (`id (`import_dir), `Value, dir);
- update_config (dir, $[]);
}
}
else if (ret == `template)
@@ -1747,7 +1756,8 @@
string dir = (string) UI::QueryWidget (`id (`template), `Value);
update_config (dir, Kiwi::Templates[dir]:$[]);
}
- else if (is (ret, string)) // system repository selected
+ else if (is (ret, string) && // system repository selected
+ ret != "rb_dir" && ret != "rb_new")
{
map system_repo = Kiwi::initial_repositories[(string)ret]:$[];
if (!haskey (repositories, (string)ret))
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/src/Kiwi.ycp new/yast2-product-creator-2.16.5/src/Kiwi.ycp
--- old/yast2-product-creator-2.16.4/src/Kiwi.ycp 2007-11-01 16:17:32.000000000 +0100
+++ new/yast2-product-creator-2.16.5/src/Kiwi.ycp 2007-11-12 15:47:32.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Data for kiwi configuration, input and output functions.
* Authors: Jiri Suchomel
*
- * $Id: Kiwi.ycp 41570 2007-10-25 14:01:56Z jsuchome $
+ * $Id: Kiwi.ycp 41969 2007-11-12 14:19:15Z jsuchome $
*/
{
module "Kiwi";
@@ -247,9 +247,10 @@
children = children + "\n" + Map2XML (chmap, level + 1);
});
else if (subkey == "__value")
- value = sformat ("%1", val);
+ value = String::EscapeTags (sformat ("%1", val));
else if (is (val, string))
- ret = sformat ("%1 %2=\"%3\"", ret, subkey, val);
+ ret = sformat ("%1 %2=\"%3\"",
+ ret, subkey, String::EscapeTags (tostring (val)));
});
if (non_unique_key[key]:false)
return sformat ("%1/>", ret);
@@ -275,6 +276,8 @@
return ret;
map config = (map) SCR::Read (.kiwi, base_path + "/config.xml");
+ if (config == nil)
+ return ret;
map packages = config["packages"]:$[];
// rest parts of "packages" are saved in product-creator map
ret["ignore"] = maplist (map p,
@@ -306,7 +309,7 @@
ret["xen_disk"] = packages["xen","disk"]:"";
if (packages["xen","memory"]:"" != "")
ret["xen_memory"] = tointeger (packages["xen","memory"]:"512");
- foreach (string key, [ "author", "contact", "specification",
+ foreach (string key, [ "author", "contact", "image_type", "specification",
"packagemanager", "version", "rpm-check-signatures", "rpm-force",
"sizeunit", "type", "name", "repository", "defaultdestination",
"schemeversion", "defaultroot", "inherit", "locale"],
@@ -792,7 +795,9 @@
{
string name = config["name"]:"";
string ver = config["version"]:"";
- if (name_version[name]:"" == ver)
+ if (config["image_type"]:"" != "system")
+ y2warning ("%1 not a 'system' image type, skipping", name);
+ else if (name_version[name]:"" == ver)
y2warning ("template %1,%2 already imported", name, ver);
else
{
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/src/ProductCreator.ycp new/yast2-product-creator-2.16.5/src/ProductCreator.ycp
--- old/yast2-product-creator-2.16.4/src/ProductCreator.ycp 2007-10-29 09:24:01.000000000 +0100
+++ new/yast2-product-creator-2.16.5/src/ProductCreator.ycp 2007-11-12 16:12:07.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Data for configuration of product-creator, input and output functions.
* Authors: Anas Nashif
*
- * $Id: ProductCreator.ycp 41600 2007-10-29 08:24:00Z jsuchome $
+ * $Id: ProductCreator.ycp 41978 2007-11-12 15:12:05Z lslezak $
*
* Representation of the configuration of product-creator.
* Input and output routines.
@@ -32,6 +32,7 @@
import "GPGWidgets";
import "Mode";
import "CommandLine";
+import "FileUtils";
global define void enableSources();
@@ -785,38 +786,64 @@
return true;
}
-boolean CopyDirectoryRec(integer srcid, integer mid, string src, string target)
+boolean CopyDirectoryR(integer srcid, integer mid, string src, string target, boolean optional)
{
y2milestone("CopyDirectoryRec: srcid: %1, mid: %2, src: %3, target: %4", srcid, mid, src, target);
- string local_dir = Pkg::SourceProvideDir(srcid, mid, src);
+ string local_dir = Pkg::SourceProvideDirectory(srcid, mid, src, optional, true);
y2milestone("local_dir: %1", local_dir);
if (local_dir == nil || local_dir == "")
{
- // an error message, %1 is the directory, %2 is URL of the source
- Report::Error(sformat(_("Cannot read directory %1\nfrom source %2."), src, Pkg::SourceGeneralData(srcid)["url"]:""));
+ if (!optional)
+ {
+ // an error message, %1 is the directory, %2 is URL of the source
+ Report::Error(sformat(_("Cannot read directory %1\nfrom source %2."), src, Pkg::SourceGeneralData(srcid)["url"]:""));
+ }
+
return false;
}
return Exec(sformat("/bin/cp -a -f -- '%1' '%2'", String::Quote(local_dir), String::Quote(target)));
}
-boolean CopyDirectoryNonRec(integer srcid, integer mid, string src, string target)
+boolean CopyDirectoryRec(integer srcid, integer mid, string src, string target)
+{
+ return CopyDirectoryR(srcid, mid, src, target, false);
+}
+
+boolean CopyDirectoryRecOpt(integer srcid, integer mid, string src, string target)
+{
+ return CopyDirectoryR(srcid, mid, src, target, true);
+}
+
+list<string> GetList(integer srcid, integer mid, string dir)
{
// get file list from directory.yast
- string file_list = Pkg::SourceProvideOptionalFile(srcid, 1, "directory.yast");
+ string file_list = Pkg::SourceProvideOptionalFile(srcid, mid, sformat("%1/directory.yast", dir));
if (file_list == nil || file_list == "")
{
y2error("directory.yast was not found, a YUM source?");
- return false;
+ return nil;
}
string f = (string)SCR::Read(.target.string, file_list);
list<string> files = splitstring(f, "\n");
y2milestone("Remote objects: %1", files);
+ return files;
+}
+
+boolean CopyDirectoryNonRec(integer srcid, integer mid, string src, string target)
+{
+ // get file list from directory.yast
+ list<string> files = GetList(srcid, mid, "");
+ if (files == nil)
+ {
+ files = [];
+ }
+
files = filter(string file, files, {return !regexpmatch(file, "/$") && file != "";});
y2milestone("Remote files: %1", files);
@@ -830,11 +857,126 @@
return true;
}
+boolean CopyDocu(integer srcid, string target)
+{
+ list<string> lst = GetList(srcid, 1, "");
+ if (lst == nil)
+ {
+ lst = [];
+ }
+
+ boolean ret = true;
+
+ if (contains(lst, "docu/"))
+ {
+ y2milestone("Copying /docu subdirectory");
+ Exec(sformat("/bin/mkdir -p '%1/docu'", String::Quote(target)));
+
+ boolean r = CopyDirectoryRecOpt(srcid, 1, "/docu", target);
+
+ if (!r)
+ {
+ list<string> files = [
+ "docu/RELEASE-NOTES.en.html", "docu/RELEASE-NOTES.en.rtf"
+ ];
+
+ y2internal("Directory listing may be missing using fixed list: %1", files);
+
+ foreach(string f, files,
+ {
+ CopyFile(srcid, 1, f, target + f);
+ }
+ );
+ }
+
+ ret = ret && r;
+ }
+
+ return ret;
+}
+
boolean CopyPPCBoot(integer srcid, string target)
{
- return CopyDirectoryRec(srcid, 1, "/ppc", target)
- && CopyDirectoryRec(srcid, 1, "/etc", target)
- && CopyDirectoryRec(srcid, 1, "/suseboot", target);
+ y2milestone("Copying PPC boot files");
+
+ list<string> lst = GetList(srcid, 1, "");
+ if (lst == nil)
+ {
+ lst = [];
+ }
+
+ boolean ret = true;
+
+ if (contains(lst, "ppc/"))
+ {
+ y2internal("Copying /ppc subdirectory");
+ boolean r = CopyDirectoryRecOpt(srcid, 1, "/ppc", target);
+
+ if (!r)
+ {
+ y2internal("Directory listing may be missing, copying /ppc/bootinfo.txt");
+ CopyFile(srcid, 1, "/ppc/bootinfo.txt", target + "/ppc");
+ }
+
+ ret = ret && r;
+ }
+
+ if (contains(lst, "PS3/"))
+ {
+ y2internal("Copying /ppc subdirectory");
+ boolean r = CopyDirectoryRecOpt(srcid, 1, "/PS3", target);
+
+ if (!r)
+ {
+ y2internal("Directory listing may be missing, copying /ppc/bootinfo.txt");
+ Exec(sformat("/bin/mkdir -p '%1/PS3/otheros'", String::Quote(target)));
+ CopyFile(srcid, 1, "/PS3/otheros/otheros.bld", target + "/PS3/otheros");
+ }
+
+ ret = ret && r;
+ }
+
+ if (contains(lst, "suseboot/"))
+ {
+ y2internal("Copying /suseboot subdirectory");
+ boolean r = CopyDirectoryRecOpt(srcid, 1, "/suseboot", target);
+ y2internal("Result: %1", r);
+
+ if (!r)
+ {
+ list<string> files = [
+ "/suseboot/inst32", "/suseboot/inst64", "/suseboot/os-chooser",
+ "/suseboot/yaboot", "/suseboot/yaboot.cnf", "/suseboot/yaboot.ibm",
+ "/suseboot/yaboot.txt"
+ ];
+
+ y2internal("Directory listing may be missing using fixed list: %1", files);
+
+ foreach(string f, files,
+ {
+ CopyFile(srcid, 1, f, target + f);
+ }
+ );
+ }
+
+ ret = ret && r;
+ }
+
+ if (contains(lst, "etc/"))
+ {
+ y2internal("Copying /etc subdirectory");
+ boolean r = CopyDirectoryRecOpt(srcid, 1, "/etc", target);
+
+ if (!r)
+ {
+ y2internal("Directory listing may be missing, copying /etc/yaboot.conf");
+ CopyFile(srcid, 1, "/etc/yaboot.conf", target + "/etc");
+ }
+
+ ret = ret && r;
+ }
+
+ return ret;
}
string UpDir(string input)
@@ -1058,9 +1200,12 @@
integer base_source = checkProductDependency();
boolean bootable_product = isBootSource(base_source);
- if (bootable_product)
+ // ppc64 has /boot/ppc
+ string boot_architecture = (arch == "ppc64") ? "ppc" : arch;
+
+ if (bootable_product && Config["code10"]:false)
{
- Exec(sformat("/bin/mkdir -p '%1/boot/%2'", String::Quote(skel_root), String::Quote(arch)));
+ Exec(sformat("/bin/mkdir -p '%1/boot/%2'", String::Quote(skel_root), String::Quote(boot_architecture)));
}
list<integer> enabled = Pkg::SourceGetCurrent(true);
@@ -1086,7 +1231,7 @@
}
else if (Arch::ppc() || Arch::ppc64())
{
- Exec(sformat("/bin/mkdir -p '%1/etc'", String::Quote(skel_root)));
+ Exec(sformat("/bin/mkdir -p '%1/PS3'", String::Quote(skel_root)));
Exec(sformat("/bin/mkdir -p '%1/ppc'", String::Quote(skel_root)));
Exec(sformat("/bin/mkdir -p '%1/suseboot'", String::Quote(skel_root)));
}
@@ -1124,6 +1269,9 @@
if (source == "")
return false;
+ // copy /docu (release notes) when present
+ CopyDocu(id, skel_root);
+
y2milestone("source: %1", source);
descr_dir = this_source["productData","descrdir"]:"suse/setup/descr";
@@ -1339,6 +1487,13 @@
CopyDirectoryRec(base_source, 1, "boot/loader", sformat("%1/boot", skel_root));
}
}
+ else if (Arch::ppc() || Arch::ppc64())
+ {
+ CopyPPCBoot(base_source, skel_root);
+
+ // recursive copy of /boot
+ CopyDirectoryRec(base_source, 1, "boot", skel_root);
+ }
else
{
// recursive copy of /boot/loader/*
@@ -1347,7 +1502,12 @@
}
else
{
- CopyDirectoryRec(base_source, 1, "/boot", skel_root);
+ CopyDirectoryRec(base_source, 1, "boot", skel_root);
+
+ if (Arch::ppc() || Arch::ppc64())
+ {
+ CopyPPCBoot(base_source, skel_root);
+ }
}
}
}
@@ -1384,13 +1544,13 @@
string l_dirlist = Pkg::SourceProvideOptionalFile(source_id, 1, slidedir + "directory.yast");
if (l_dirlist != nil)
{
- string l_slidedir = Pkg::SourceProvideDir(source_id, 1, slidedir);
+ string l_slidedir = Pkg::SourceProvideDirectory(source_id, 1, slidedir, true, true);
if (l_slidedir != nil && l_slidedir != "")
{
// copy slide show
Exec(sformat("/bin/mkdir -p '%1/%2'", String::Quote(skel_root), String::Quote(slidedir)));
- Exec(sformat("/bin/cp -a -- '%1/*' '%2/%3'", String::Quote(l_slidedir), String::Quote(skel_root), String::Quote(slidedir)));
+ Exec(sformat("/bin/cp -a -- '%1' '%2/%3'", String::Quote(l_slidedir), String::Quote(skel_root), String::Quote(datadir + "/setup/")));
}
}
else
@@ -1526,12 +1686,14 @@
files = [];
}
- files = filter(string f, files, {return regexpmatch(f, "\\.pat$");});
+ files = filter(string f, files, {return regexpmatch(f, "\\.pat$") || regexpmatch(f, "\\.pat.gz$");});
y2milestone("found pattern files: %1", files);
- list<string> used_files_regexps = maplist(string p, used_patterns, {return sformat("^%1-.*\\.pat$", p);});
- y2debug("used_files_regexps: %1", used_files_regexps);
+ list<string> used_files_regexps = (list<string>)union(maplist(string p, used_patterns, {return sformat("^%1-.*\\.pat$", p);}),
+ maplist(string p, used_patterns, {return sformat("^%1-.*\\.pat.gz$", p);}));
+
+ y2internal("used_files_regexps: %1", used_files_regexps);
boolean refresh_diryast = false;
foreach(string f, files,
@@ -1567,9 +1729,8 @@
success = success && Exec(cmd);
y2debug("success: %1", success);
- cmd = sformat("cd '%1/%2'; ls *.pat > '%1/%2/patterns'", String::Quote(skel_root), String::Quote(descrDir));
- success = success && Exec(cmd);
- y2debug("success: %1", success);
+ cmd = sformat("cd '%1/%2'; ls *.pat *.pat.gz > '%1/%2/patterns'", String::Quote(skel_root), String::Quote(descrDir));
+ Exec(cmd);
}
}
@@ -1629,6 +1790,37 @@
return ret;
}
+string DumpKernelFromObjectFile(string object)
+{
+ y2milestone("Extracting kernel from file %1", object);
+ string tmpdir = (string)SCR::Read(.target.tmpdir);
+ string target = tmpdir + "/tmp_kernel.gz";
+
+ string command = sformat("objcopy -O binary -j .kernel:vmlinux.strip '%1' '%2'", String::Quote(object), String::Quote(target));
+ string ret = (Exec(command)) ? target : "";
+
+ y2milestone("Kernel extracted to %1", ret);
+
+ return ret;
+}
+
+string GunzipKernel(string kernel_gz)
+{
+ string command = sformat("gunzip -f %1", kernel_gz);
+ boolean success = Exec(command);
+ string ret = "";
+
+ // remove .gz suffix from the file name
+ if (success)
+ {
+ ret = regexpsub (kernel_gz, "^(.*)\\.gz$", "\\1");
+ }
+
+ y2milestone("Kernel unpacked to %1", ret);
+
+ return ret;
+}
+
global boolean InsertKeyToInitrds(string gpg_key, string base_dir)
{
// get initrd list
@@ -1644,12 +1836,54 @@
find_output = out["stdout"]:"";
}
+ map inst_mapping = $[];
+
if (SCR::Read(.target.size, base_dir + "/suseboot") >= 0)
{
y2milestone("Searching for 'initrd*' in %1/suseboot...", base_dir);
command = sformat("cd '%1' && find suseboot -type f -name 'initrd*'", String::Quote(base_dir));
out = (map)SCR::Execute(.target.bash_output, command);
find_output = find_output + out["stdout"]:"";
+
+ if (size(out["stdout"]:"") == 0)
+ {
+ y2milestone("initrd not found, searching for inst*");
+
+ command = sformat("cd '%1' && find suseboot -type f -name 'inst32'; find suseboot -type f -name 'inst64'", String::Quote(base_dir));
+ out = (map)SCR::Execute(.target.bash_output, command);
+
+ list<string> inst_files = splitstring(out["stdout"]:"", "\n");
+ // remove empty strings
+ inst_files = filter(string inst, inst_files, {return inst != "";});
+
+ if (size(inst_files) > 0)
+ {
+ y2milestone("Found inst* files: %1", inst_files);
+
+ integer index = 0;
+ // unpack the initrd from the inst* object
+ foreach(string inst, inst_files,
+ {
+ string tmp_initrd = sformat("suseboot/.tmp_yast_initrd%1.gz", index);
+
+ command = sformat("cd '%1' && objcopy -O binary -j .kernel:initrd '%2' '%3'", String::Quote(base_dir), String::Quote(inst), tmp_initrd);
+
+ out = (map)SCR::Execute(.target.bash_output, command);
+
+ if (out["exit"]:-1 == 0)
+ {
+ y2milestone("Extracted %1 from %2", tmp_initrd, inst);
+ find_output = find_output + tmp_initrd + "\n";
+
+ inst_mapping = add(inst_mapping, inst, tmp_initrd);
+ }
+
+ index = index + 1;
+ }
+ );
+
+ }
+ }
}
list<string> initrds = splitstring(find_output, "\n");
@@ -1672,6 +1906,50 @@
}
);
+ // put the initrd back to the inst file
+ foreach(string orig_inst, string tmp_initrd, inst_mapping,
+ {
+ y2milestone("%1 -> %2", tmp_initrd, orig_inst);
+
+ if (orig_inst == "suseboot/inst32" || orig_inst == "suseboot/inst64")
+ {
+ // extract kernel
+ string gzkernel = DumpKernelFromObjectFile(base_dir + "/" + orig_inst);
+
+ if (gzkernel != "")
+ {
+ // unpack the kernel image - required by mkzimage
+ string kernel = GunzipKernel(gzkernel);
+ string tmp_dir = (string)SCR::Read( .target.tmpdir );
+
+ string initrd_copy = sformat("%1/tmp_initrd", tmp_dir);
+
+ // copy the initrd to a temp dir - mkzimage doesn't work properly
+ // when there is a space in path
+ ret = ret && Exec(sformat("mv '%1/%2' '%3'", String::Quote(base_dir), tmp_initrd, initrd_copy));
+
+ // create new inst file
+ // see mk_ppc_installation-images_bootbinaries.sh (installation-images)
+ command = sformat("/bin/mkzimage --board chrp --vmlinux '%1' --initrd '%2' --output '%3/new_inst' --tmp '%3'",
+ kernel, initrd_copy, tmp_dir);
+ ret = ret && Exec(command);
+
+ // remove the temporary files
+ command = sformat("rm -f '%1' '%2'", kernel, initrd_copy);
+ ret = ret && Exec(command);
+
+ // move the new file to the target directory
+ command = sformat("mv '%1/new_inst' '%2/%3'", tmp_dir, String::Quote(base_dir), orig_inst);
+ ret = ret && Exec(command);
+ }
+ }
+ else
+ {
+ y2warning("Unsupported inst file: %1", orig_inst);
+ }
+ }
+ );
+
return ret;
}
@@ -1941,7 +2219,20 @@
return;
}
-
+/**
+ * Check if there is a language selected in the package manager,
+ * if not then select the language used in the UI. Htis prevents the solver
+ * from allocating too many resources (see bug #339756)
+ */
+global void CheckLanguage()
+{
+ if (Pkg::GetPackageLocale() == "" && Pkg::GetAdditionalLocales() == [])
+ {
+ y2warning("No language selected, preselecting the current UI language: %1", UI::GetLanguage(true));
+ // if there is nothing selected yet then preset the language
+ Pkg::SetPackageLocale(UI::GetLanguage(true));
+ }
+}
/**
* Set packages to be copied to iso image tree
@@ -1958,18 +2249,22 @@
if (kernel == "") {
kernels = [
"kernel-64k-pagesize",
+ "kernel-bigsmp",
"kernel-pae",
"kernel-debug",
"kernel-default",
"kernel-iseries64",
"kernel-pmac64",
"kernel-pseries64",
+ "kernel-ppc64",
"kernel-s390",
"kernel-s390x",
"kernel-smp",
"kernel-sn2",
"kernel-xen",
- "kernel-um"
+ "kernel-xenpae",
+ "kernel-um",
+ "kernel-vanilla"
];
} else {
kernels = add(kernels, kernel);
@@ -2015,6 +2310,8 @@
Pkg::DoProvide(packages);
+ CheckLanguage();
+
boolean ret = Pkg::PkgSolve(false);
return (ret);
@@ -2148,6 +2445,68 @@
y2debug("source_id: %1, url: %2, task: %3, error: %4, reason: %5", numeric_id, url, task, error, reason);
}
+global void InitDownload(string task)
+{
+ y2debug("InitDownload: %1", task);
+}
+
+global void DestDownload()
+{
+ y2debug("DestDownload");
+}
+
+global void StartDownload (string url, string localfile)
+{
+ // reformat the URL
+ string url_report = URL::FormatURL(URL::Parse(url), 60);
+
+ if (Mode::commandline()) {
+ CommandLine::PrintVerbose(url_report);
+ }
+ else
+ {
+ // change the label
+ UI::ChangeWidget(`id(`pb), `Label, sformat(_("Copying %1"), url_report));
+ }
+}
+
+
+global void StartDownloadEmpty (string url, string localfile)
+{
+ y2debug("StartDownload: %1", url);
+}
+
+global boolean ProgressDownload (integer percent, integer expected_size)
+{
+ return UI::PollInput() != `abort;
+}
+
+global void RedirectCallbacks()
+{
+ Pkg::CallbackSourceReportStart("ProductCreator::CallbackSourceReportStart");
+ Pkg::CallbackSourceReportProgress("ProductCreator::CallbackSourceReportProgress");
+ Pkg::CallbackSourceReportEnd("ProductCreator::CallbackSourceReportEnd");
+
+ Pkg::CallbackInitDownload ("ProductCreator::InitDownload");
+ Pkg::CallbackStartDownload ("ProductCreator::StartDownload");
+ Pkg::CallbackProgressDownload ("ProductCreator::ProgressDownload");
+ // use the standard callback handler
+ Pkg::CallbackDoneDownload ("PackageCallbacks::DoneDownload");
+ Pkg::CallbackDestDownload ("ProductCreator::DestDownload");
+}
+
+global void ResetCallbacks()
+{
+ Pkg::CallbackSourceReportStart("PackageCallbacks::CallbackSourceReportStart");
+ Pkg::CallbackSourceReportProgress("PackageCallbacks::CallbackSourceReportProgress");
+ Pkg::CallbackSourceReportEnd("PackageCallbacks::CallbackSourceReportEnd");
+
+ Pkg::CallbackInitDownload ("PackageCallbacks::InitDownload");
+ Pkg::CallbackStartDownload ("PackageCallbacks::StartDownload");
+ Pkg::CallbackProgressDownload ("PackageCallbacks::ProgressDownload");
+ Pkg::CallbackDoneDownload ("PackageCallbacks::DoneDownload");
+ Pkg::CallbackDestDownload ("PackageCallbacks::DestDownload");
+}
/**
* CopyPackages()
@@ -2163,13 +2522,10 @@
boolean ret = true;
- // disable source report callbacks - there is a progress dialog
- Pkg::CallbackSourceReportStart("ProductCreator::CallbackSourceReportStart");
- Pkg::CallbackSourceReportProgress("ProductCreator::CallbackSourceReportProgress");
- Pkg::CallbackSourceReportEnd("ProductCreator::CallbackSourceReportEnd");
-
y2milestone("Package summary: %1", toCopy);
+ Pkg::CallbackStartDownload ("ProductCreator::StartDownloadEmpty");
+
// copy the packages
foreach(integer source, map srcmapping, toCopy,
{
@@ -2239,16 +2595,23 @@
else
{
// TODO FIXME get datadir from the source
- ret = ret && Exec(sformat("cd '%1/%2/%3' && /usr/bin/create_package_descr -x setup/descr/EXTRA_PROV",
+ ret = ret && Exec(sformat("cd '%1/%2/%3' && /usr/bin/create_package_descr -x setup/descr/EXTRA_PROV -M 3",
String::Quote(basedir), String::Quote(subdir), String::Quote(datadir)));
+
+ // check if the metadata are gzipped
+ boolean compressed_meta = FileUtils::Exists(sformat("%1/%2/%3/setup/descr/packages.DU.gz", basedir, subdir, datadir));
+ y2internal("Compressed metadata: %1", compressed_meta);
+
+ if (compressed_meta)
+ {
+ ret = ret && Exec(sformat("cd '%1/%2/%3/setup/descr/' && gzip -9 -f packages packages.DU packages.en",
+ String::Quote(basedir), String::Quote(subdir), String::Quote(datadir)));
+ }
}
}
);
- // restore the source report callbacks
- Pkg::CallbackSourceReportStart("PackageCallbacks::SourceReportStart");
- Pkg::CallbackSourceReportProgress("PackageCallbacks::SourceReportProgress");
- Pkg::CallbackSourceReportEnd("PackageCallbacks::SourceReportEnd");
+ Pkg::CallbackStartDownload ("ProductCreator::StartDownload");
return ret;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/src/routines.ycp new/yast2-product-creator-2.16.5/src/routines.ycp
--- old/yast2-product-creator-2.16.4/src/routines.ycp 2007-09-13 09:36:17.000000000 +0200
+++ new/yast2-product-creator-2.16.5/src/routines.ycp 2007-07-16 15:53:26.000000000 +0200
@@ -4,7 +4,7 @@
* Summary: Miscelanous functions for configuration of product-creator.
* Authors: Anas Nashif
*
- * $Id: routines.ycp 38945 2007-06-21 12:19:17Z jsuchome $
+ * $Id: routines.ycp 37838 2007-05-04 13:18:14Z lslezak $
*/
{
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/src/wizards.ycp new/yast2-product-creator-2.16.5/src/wizards.ycp
--- old/yast2-product-creator-2.16.4/src/wizards.ycp 2007-10-26 10:38:57.000000000 +0200
+++ new/yast2-product-creator-2.16.5/src/wizards.ycp 2007-11-09 10:37:53.000000000 +0100
@@ -4,7 +4,7 @@
* Summary: Wizards definitions
* Authors: Anas Nashif
*
- * $Id: wizards.ycp 41581 2007-10-26 08:38:56Z jsuchome $
+ * $Id: wizards.ycp 41902 2007-11-09 09:37:52Z lslezak $
*/
{
@@ -296,7 +296,17 @@
Wizard::CreateDialog();
Wizard::SetDesktopIcon("cd-creator");
// .content_file agent is in yast2-instserver package - TODO: move it to yast2.rpm
- if (!Package::InstallAll(["inst-source-utils", "mkisofs", "yast2-instserver"]))
+ list<string> required_packages = ["inst-source-utils", "mkisofs", "yast2-instserver", "createrepo"];
+
+ // add PPC specific packages
+ if (Arch::architecture() == "ppc" || Arch::architecture() == "ppc64")
+ {
+ // /bin/objcopy - binutils
+ // /bin/mkzimage - lilo
+ required_packages = (list<string>)union(required_packages, ["binutils", "lilo"]);
+ }
+
+ if (!Package::InstallAll(required_packages))
{
Popup::Error(_("Installation of required packages
failed."));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/TODO new/yast2-product-creator-2.16.5/TODO
--- old/yast2-product-creator-2.16.4/TODO 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-product-creator-2.16.5/TODO 2007-11-09 16:26:08.000000000 +0100
@@ -0,0 +1,11 @@
+Do the same for s390 and s390x:
+
++ // ppc64 has /boot/ppc
++ string boot_architecture = (arch == "ppc64") ? "ppc" : arch;
++
++ if (bootable_product && Config["code10"]:false)
+ {
+- Exec(sformat("/bin/mkdir -p '%1/boot/%2'", String::Quote(skel_root), String::Quote(arch)));
++ Exec(sformat("/bin/mkdir -p '%1/boot/%2'", String::Quote(skel_root), String::Quote(boot_architecture)));
+ }
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-product-creator-2.16.4/VERSION new/yast2-product-creator-2.16.5/VERSION
--- old/yast2-product-creator-2.16.4/VERSION 2007-11-01 16:17:07.000000000 +0100
+++ new/yast2-product-creator-2.16.5/VERSION 2007-11-12 16:19:33.000000000 +0100
@@ -1 +1 @@
-2.16.4
+2.16.5
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org