Author: locilka
Date: Mon Apr 28 15:58:50 2008
New Revision: 47119
URL: http://svn.opensuse.org/viewcvs/yast?rev=47119&view=rev
Log:
- Optional and extra URLs moved to control file as well as default
update repository (bnc #381360).
Modified:
trunk/installation/VERSION
trunk/installation/control/control.openSUSE.xml
trunk/installation/package/yast2-installation.changes
trunk/installation/src/clients/desktop_finish.ycp
trunk/installation/src/clients/inst_extrasources.ycp
Modified: trunk/installation/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/trunk/installation/VERSION?rev=47119&r1=47118&r2=47119&view=diff
==============================================================================
--- trunk/installation/VERSION (original)
+++ trunk/installation/VERSION Mon Apr 28 15:58:50 2008
@@ -1 +1 @@
-2.16.40
+2.16.41
Modified: trunk/installation/control/control.openSUSE.xml
URL: http://svn.opensuse.org/viewcvs/yast/trunk/installation/control/control.openSUSE.xml?rev=47119&r1=47118&r2=47119&view=diff
==============================================================================
--- trunk/installation/control/control.openSUSE.xml (original)
+++ trunk/installation/control/control.openSUSE.xml Mon Apr 28 15:58:50 2008
@@ -67,29 +67,33 @@
<!-- Default update repository, bnc #381360 -->
<baseurl>http://download.opensuse.org/update/11.0/</baseurl>
- <path>/</path>
+ /
<enabled config:type="boolean">true</enabled>
<autorefresh config:type="boolean">true</autorefresh>
+ <priority config:type="integer">120</priority>
<!-- Replacement for EXTRAURLS and OPTIONALURLS -->
<baseurl>http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/</baseurl>
- <path>/</path>
+ /
<enabled config:type="boolean">false</enabled>
<autorefresh config:type="boolean">true</autorefresh>
+ <priority config:type="integer">20</priority>
<baseurl>http://download.opensuse.org/distribution/SL-Factory-non-oss/inst-source-ext...</baseurl>
- <path>/</path>
+ /
<enabled config:type="boolean">false</enabled>
<autorefresh config:type="boolean">true</autorefresh>
+ <priority config:type="integer">20</priority>
<baseurl>http://download.opensuse.org/distribution/SL-OSS-factory-debug/inst-source-d...</baseurl>
- <path>/</path>
+ /
<enabled config:type="boolean">false</enabled>
<autorefresh config:type="boolean">true</autorefresh>
+ <priority config:type="integer">20</priority>
</software>
Modified: trunk/installation/package/yast2-installation.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/installation/package/yast2-installation.changes?rev=47119&r1=47118&r2=47119&view=diff
==============================================================================
--- trunk/installation/package/yast2-installation.changes (original)
+++ trunk/installation/package/yast2-installation.changes Mon Apr 28 15:58:50 2008
@@ -5,6 +5,7 @@
(bnc #381821).
- Optional and extra URLs moved to control file as well as default
update repository (bnc #381360).
+- 2.16.41
-------------------------------------------------------------------
Fri Apr 25 18:15:09 CEST 2008 - locilka@suse.cz
Modified: trunk/installation/src/clients/desktop_finish.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/installation/src/clients/desktop_finish.ycp?rev=47119&r1=47118&r2=47119&view=diff
==============================================================================
--- trunk/installation/src/clients/desktop_finish.ycp (original)
+++ trunk/installation/src/clients/desktop_finish.ycp Mon Apr 28 15:58:50 2008
@@ -68,29 +68,11 @@
// installed packages
if ( !Mode::update () )
{
- map > desktop_data = $[
- "gnome" : $[
- "package" : ["gdm"],
- ],
- "kde" : $[
- "package" : ["kde4-kdm"],
- ],
- "kde3" : $[
- "package" : ["kdebase3-kdm"],
-
- ],
- "xfce" : $[
- "package" : ["xfce"],
-
- ],
- "twm" : $[
- "package" : ["xorg-x11"],
- ],
- ];
-
map dd_map = DefaultDesktop::GetAllDesktopsMap ();
string selected_desktop = DefaultDesktop::Desktop();
+ y2milestone ("Selected desktop: %1", selected_desktop);
+
if (selected_desktop == nil || selected_desktop == "")
selected_desktop = "gnome";
@@ -98,35 +80,34 @@
string default_wm = dd_map[selected_desktop, "desktop"]:"";
string default_cursor = dd_map[selected_desktop, "cursor"]:"";
- list <string> selected_desktops = DefaultDesktop::SelectedDesktops();
+ list <string> selected_desktops = DefaultDesktop::SelectedDesktops();
- list <string> desktop_order = ["gnome", "kde", "kde3"];
+ list <string> desktop_order = ["gnome", "kde", "kde3", "xfce", "min_x", "textmode"];
- boolean desktop_found = false;
- string pattern_desktop = "gnome";
+ boolean desktop_found = false;
+ string pattern_desktop = "gnome";
- // check what packages are in the patterns
- // and adjust logon and window manager according to it
- foreach (string d, desktop_order, {
- if (contains (selected_desktops, d)) {
- pattern_desktop = d;
- desktop_found = true;
- y2milestone ("Setting desktop according to pattern to %1", pattern_desktop);
- break;
- }
- });
-
- // if no desktop was found according to pattern, try
- // installed packages
- // first the logon manager
- desktop_order = add (desktop_order, "twm");
- desktop_order = prepend (desktop_order, pattern_desktop);
- desktop_found = false;
+ // check what packages are in the patterns
+ // and adjust logon and window manager according to it
+ foreach (string d, desktop_order, {
+ if (contains (selected_desktops, d)) {
+ pattern_desktop = d;
+ desktop_found = true;
+ y2milestone ("Setting desktop according to pattern to %1", pattern_desktop);
+ break;
+ }
+ });
+
+ // if no desktop was found according to pattern, try
+ // installed packages
+ // first the logon manager
+ desktop_order = prepend (desktop_order, pattern_desktop);
+ desktop_found = false;
- foreach (string d, desktop_order, {
+ foreach (string d, desktop_order, {
if (desktop_found) break;
- foreach (string package, desktop_data[d, "package"]:[], {
+ foreach (string package, dd_map[d, "packages"]:[], {
if (Pkg::IsProvided (package) && (Pkg::PkgInstalled (package) || Pkg::IsSelected (package))) {
y2milestone ("package %1 selected or installed", package);
desktop_found = true;
@@ -139,13 +120,13 @@
default_cursor = dd_map[d, "cursor"]:default_cursor;
y2milestone ("Setting cursor theme %1 - package selected", default_cursor);
+ } else {
+ y2milestone ("Package %1 for desktop %2 not selected or installed, trying next desktop...", package, d);
}
-
- y2milestone ("Package %1 not selected or installed, trying next desktop...", package);
});
return desktop_found;
- });
+ });
y2milestone ("Default desktop: %1", default_wm);
y2milestone ("Default logon manager: %1", default_dm);
Modified: trunk/installation/src/clients/inst_extrasources.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/installation/src/clients/inst_extrasources.ycp?rev=47119&r1=47118&r2=47119&view=diff
==============================================================================
--- trunk/installation/src/clients/inst_extrasources.ycp (original)
+++ trunk/installation/src/clients/inst_extrasources.ycp Mon Apr 28 15:58:50 2008
@@ -3,14 +3,11 @@
* Package: yast2-installation
* Summary: Automatically register software repositories from content file
* Authors: Ladislav Slezák
+ * Lukas Ocilka
*
* Assumptions:
- * - the sources and target must be initialized in this script
- * (bugzilla #263289)
* - the sources will be saved afterwards
* (which means that running this client alone will not work)
- * - the added sources are disabled by default and they are added
- * in offline mode (no metadata is dowloaded)
*
* $Id$
*/
@@ -23,105 +20,74 @@
import "SourceManager";
import "Mode";
import "PackageLock";
-
-// the tag providing location of the additional sources in content file
-string content_file_tag = "EXTRAURLS";
-string optional_tag = "OPTIONALURLS";
+import "ProductFeatures";
+// We need the constructor
+import "ProductControl";
/**
- * Dowload and parse content files from current installation sources
+ * Returns list of maps of repositories to register. See bnc #381360.
+ *
* @param registered URLs of already registered repositories (they will be ignored to not register the same repository one more)
- * @return list<string> Extra URLs to register
+ * @return list <map> of URLs to register
*/
-define list<string> GetExtraURLs(list<string> registered)
+define list <map> GetURLsToRegister (list <string> registered)
{
- list<string> extra_urls = [];
-
- list<map> products = Pkg::ResolvableProperties("", `product, "");
- y2milestone("Products: %1", products);
-
- foreach(map product, products,
- {
- // get the extra sources
- list<string> extra = (list<string>)product["extra_urls"]:[];
- list<string> optional = (list<string>)product["optional_urls"]:[];
-
- if (size(extra) > 0)
- {
- foreach(string url, extra,
- {
- // is the URL already registered?
- if (!contains(registered, url))
- {
- extra_urls = add(extra_urls, url);
- }
- else
- {
- y2milestone("Source %1 is already registered", url);
- }
- }
- );
- }
+ list <map> urls_from_control_file = (list <map>) ProductFeatures::GetFeature ("software", "extra_urls");
- if (size(optional) > 0)
- {
- foreach(string url, optional,
- {
- // is the URL already registered?
- if (!contains(registered, url))
- {
- extra_urls = add(extra_urls, url);
- }
- else
- {
- y2milestone("Source %1 is already registered", url);
- }
- }
- );
+ if (urls_from_control_file == nil) {
+ y2milestone ("Empty or errorneous software/extra_urls: %1", urls_from_control_file);
+ return [];
+ }
- }
+ urls_from_control_file = filter (map one_url, urls_from_control_file, {
+ if (contains (registered, one_url["baseurl"]:"")) {
+ y2milestone ("Already registered: %1", one_url["baseurl"]:"");
+ return false;
}
- );
+ return true;
+ });
- y2milestone("Extra sources: %1", extra_urls);
- return extra_urls;
+ y2milestone ("Repositories to register: %1", urls_from_control_file);
+ return urls_from_control_file;
}
/**
* Register the installation sources in offline mode (no network connection required).
* The repository metadata will be downloaded by sw_single (or another yast module) when the repostory is enabled
- * @param url_list list of the sources to register
+ *
+ * @param list <map> list of the sources to register
* @return list<integer> list of created source IDs
*/
-define list<integer> RegisterRepos(list<string> url_list)
+define list <integer> RegisterRepos (list <map> url_list)
{
- list<integer> ret = [];
- y2milestone("Repositories to register: %1", url_list);
+ list <integer> ret = [];
- foreach(string new_url, url_list,
- {
- // map with repository parameters: $[ "enabled" : boolean,
- // "autorefresh" : boolean, "name" : string, "alias" : string,
- // "base_urls" : list<string>, "prod_dir" : string, "type" : string ]
- map repo_prop = $[];
+ foreach (map new_url, url_list, {
+ map repo_prop = $[];
// extra repos are disabled by default
- repo_prop["enabled"] = false;
- repo_prop["autorefresh"] = true;
- repo_prop["name"] = new_url;
- repo_prop["alias"] = new_url;
- repo_prop["base_urls"] = [ new_url ];
+ repo_prop["enabled"] = new_url["enabled"]:false;
+ repo_prop["autorefresh"] = new_url["autorefresh"]:true;
- integer new_repo_id = Pkg::RepositoryAdd(repo_prop);
+ repo_prop["name"] = new_url["baseurl"]:"";
+ repo_prop["alias"] = new_url["baseurl"]:"";
- if (new_repo_id >= 0)
- {
- y2milestone("Registered extra repository: %1: %2", new_repo_id, repo_prop);
+ repo_prop["base_urls"] = [new_url["baseurl"]:""];
- ret = add(ret, new_repo_id);
+ if (haskey (new_url, "prod_dir")) {
+ repo_prop["prod_dir"] = new_url["prod_dir"]:"/";
}
- else
- {
+
+ if (haskey (new_url, "priority")) {
+ repo_prop["priority"] = new_url["priority"]:99;
+ }
+
+ integer new_repo_id = Pkg::RepositoryAdd (repo_prop);
+
+ if (new_repo_id != nil && new_repo_id >= 0) {
+ y2milestone ("Registered extra repository: %1: %2", new_repo_id, repo_prop);
+ ret = add (ret, new_repo_id);
+ } else {
y2error("Cannot register: %1", repo_prop);
}
}
@@ -130,6 +96,11 @@
return ret;
}
+/**
+ * Returns list of already registered repositories.
+ *
+ * @return list <string> of registered repositories
+ */
list<string> RegisteredUrls()
{
// get all registered installation sources
@@ -192,18 +163,15 @@
list <string> already_registered = RegisteredUrls();
-// $[ string url : boolean default ]
-list<string> register_url = GetExtraURLs(already_registered);
+list <map> register_url = GetURLsToRegister (already_registered);
// any confirmed source to register?
-if (size(register_url) > 0)
-{
+if (size (register_url) > 0) {
// register (create) the sources
- list<integer> added_ids = RegisterRepos(register_url);
+ list <integer> added_ids = RegisterRepos (register_url);
// synchronize the sources if any source has been added
- if (size(added_ids) > 0)
- {
+ if (size (added_ids) > 0) {
y2milestone ("syncing to zmd");
boolean synced = SourceManager::SyncAddedAndDeleted (added_ids, []);
y2milestone ("sync status: %1", synced);
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org