Author: jsuchome
Date: Wed Oct 22 16:25:18 2008
New Revision: 52440
URL: http://svn.opensuse.org/viewcvs/yast?rev=52440&view=rev
Log:
- added template for .prod files
- reading/writing .prod files: WIP
Added:
trunk/add-on-creator/src/template.prod
Modified:
trunk/add-on-creator/package/yast2-add-on-creator.changes
trunk/add-on-creator/src/AddOnCreator.ycp
trunk/add-on-creator/src/Makefile.am
trunk/add-on-creator/src/complex.ycp
trunk/add-on-creator/yast2-add-on-creator.spec.in
Modified: trunk/add-on-creator/package/yast2-add-on-creator.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/add-on-creator/package/yast2-add-on-creator.changes?rev=52440&r1=52439&r2=52440&view=diff
==============================================================================
--- trunk/add-on-creator/package/yast2-add-on-creator.changes (original)
+++ trunk/add-on-creator/package/yast2-add-on-creator.changes Wed Oct 22 16:25:18 2008
@@ -1,4 +1,9 @@
-------------------------------------------------------------------
+Wed Oct 22 15:57:06 CEST 2008 - jsuchome@suse.cz
+
+- added template for .prod files
+
+-------------------------------------------------------------------
Mon Oct 13 16:27:48 CEST 2008 - jsuchome@suse.cz
- removed obsoleted keys from content file (fate#305172)
Modified: trunk/add-on-creator/src/AddOnCreator.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/add-on-creator/src/AddOnCreator.ycp?rev=52440&r1=52439&r2=52440&view=diff
==============================================================================
--- trunk/add-on-creator/src/AddOnCreator.ycp (original)
+++ trunk/add-on-creator/src/AddOnCreator.ycp Wed Oct 22 16:25:18 2008
@@ -166,12 +166,12 @@
"value" : "1",
"mandatory" : true,
],
- "DISTRIBUTION" : $[ // FIXME default to NAME if missing
+ "DISTRIBUTION" : $[
"key" : "DISTRIBUTION",
// label of content file key
- "label" : _("Distribution name"), // FIXME
+ "label" : _("Distribution name"),
// help text for content file 'DISTRIBUTION' key
- "help" : _(""),
+ "help" : _("Some string denoting the distribution. The same string is most probably used in the .rpms to denote the distribution. Usually a composition of the name, version and architecture."),
],
"DESCRDIR" : $[
"key" : "DESCRDIR",
@@ -244,11 +244,6 @@
"help" : _("URL of the update source."),
],
/*
- "SHORTLABEL" : $[
- "key" : "SHORTLABEL",
- // label of content file 'SHORTLABEL' key
- "label" : _("Short label"),
- ],
"DEFAULTBASE" : $[
"key" : "DEFAULTBASE",
// label of content file key
@@ -562,7 +557,6 @@
// TODO add some key for sorting, so output file is readable
- // FIXME new keys, add labels after 11.0
"Ext" : $[
// label for 'Ext' pattern key
"label" : _("Extends"),
@@ -688,7 +682,96 @@
global map content_map = $[];
// info for product.xml
-global map product_info = $[];
+global map product_info = $[
+ "REQUIRES" : $[
+ "key" : "REQUIRES",
+ // label of key
+ "label" : _("Resolvables that must be installed"),
+ // help text for 'REQUIRES' key
+ "help" : _("<p>Resolvables that must be installed on the system to meet the needs of this product.</p>
+<p>This is a space-separated list of names or <tt>kind:name</tt> pairs optionally followed by version constraints. Just a name denotes a dependency to a package, such as <tt>sles-release</tt> or <tt>sles-release-10</tt>. The kind can be package, pattern, or product, such as <tt>pattern:basesystem</tt>.</p>"),
+ "mandatory" : true,
+ ],
+ "PREREQUIRES" : $[
+ "key" : "PREREQUIRES",
+ // labeliption of PREREQUIRES key
+ "label" : _("Resolvables needed before installation"),
+ // help text for 'PREREQUIRES' key
+ "help" : _("Resolvables that must be installed on the system before the installation of this product. The syntax is the same as for <b>REQUIRES</b>."),
+ ],
+ "PROVIDES" : $[
+ "key" : "PROVIDES",
+ // label of PROVIDES key
+ "label" : _("Resolvables provided"),
+ // help text for 'PROVIDES' key
+ "help" : _("Capabilities this product provides. They can be used to match <b>REQUIRES</b> from others. Every resolvable has a provides by default- its own name and edition. For example, package <i>bar-1.42-1</i> provides the capability <tt>bar = 1.42-1</tt>."),
+ ],
+ "CONFLICTS" : $[
+ "key" : "CONFLICTS",
+ // label of 'CONFLICTS' key
+ "label" : _("Conflicting resolvables"),
+ // help text for 'CONFLICTS' key
+ "help" : _("This resolvable cannot be installed if the specified resolvable or one that provides the capability is installed."),
+ ],
+ "OBSOLETES" : $[
+ "key" : "OBSOLETES",
+ // label of 'OBSOLETES' key
+ "label" : _("Resolvables made obsolete"),
+ // help text for 'OBSOLETES' key
+ "help" : _("When this resolvable is installed, it uninstalls any other resolvable with a name matching this keyword."),
+ ],
+ "RECOMMENDS" : $[
+ "key" : "RECOMMENDS",
+ // label of 'RECOMMENDS' key
+ "label" : _("Recommended resolvables"),
+ // help text for 'RECOMMENDS' key
+ "help" : _("A weak version of <b>REQUIRES</b>. An attempt is made to fulfill <b>RECOMMENDS</b>, but they are silently ignored if no match is possible."),
+ ],
+ "SUGGESTS" : $[
+ "key" : "SUGGESTS",
+ // label of 'SUGGESTS' key
+ "label" : _("Suggested resolvables"),
+ // help text for 'SUGGESTS' key
+ "help" : _("These are just hints for an application and not handled during dependency resolution."),
+ ],
+ "SUPPLEMENTS" : $[
+ "key" : "SUPPLEMENTS",
+ // label of 'SUPPLEMENTS' key
+ "label" : _("Supplemented resolvables"),
+ // help text for 'SUPPLEMENTS' key
+ "help" : _("A reverse <b>RECOMMENDS</b>. This product is installed if the specified capability is provided by an installed resolvable. The dependency resolver installs it. Uninstalling it is silently accepted."),
+ ],
+ "ENHANCES" : $[
+ "key" : "ENHANCES",
+ // label of 'ENHANCES' key
+ "label" : _("Enhanced resolvables"),
+ // help text for 'ENHANCES' key
+ "help" : _("A reverse <b>SUGGESTS</b>. This product can be installed if this capability is provided by an installed resolvable. It is just a hint for an application. For example, <i>SuSEplugger</i> can suggest packages for installation if specific hardware is found."),
+ ],
+ "release" : $[
+ "key" : "release",
+ // table item label
+ "label" : _("The release number"),
+ ],
+ "releasenotes" : $[
+ "key" : "releasenotes",
+ // table item label
+ "label" : _("The URL for release notes rpm"),
+ ],
+ "description" : $[
+ "key" : "description",
+ // table item label
+ "label" : _("Product description"),
+ ],
+ "summary" : $[
+ "key" : "summary",
+ // table item label
+ "label" : _("Product summary"),
+ ],
+];
+
+// the content of .prod file, as read using any_xml agent
+map product_xml = $[];
/**
@@ -762,15 +845,6 @@
*/
global boolean modified = false;
-/**
- * Data was modified?
- * @return true if modified
- */
-global boolean Modified() {
- y2debug("modified=%1",modified);
- return modified;
-}
-
boolean gzip_is_installed = nil;
boolean gzip_installed () {
@@ -785,6 +859,55 @@
];
/**
+ * argument for any_xml agent: key indicating content of element without
+ * attributes
+ */
+global string content_key = "__yast_content__";
+
+// data for .prod file (dependencies..., part will be copied from content file)
+global map prod_file = $[];
+
+/**
+ * Data was modified?
+ * @return true if modified
+ */
+global boolean Modified() {
+ y2debug("modified=%1",modified);
+ return modified;
+}
+
+
+/**
+ * import the data from given xml file
+ * @param path to .prod file
+ * @ret map of imported data
+ */
+global map ReadProductXML (string prod_file_path) {
+
+ map ret = $[];
+ if (!FileUtils::Exists (prod_file_path))
+ {
+ y2warning ("no such file %1", prod_file_path);
+ return ret;
+ }
+
+ // read rest of config.xml using more generic agent
+ map anyxml = (map) SCR::Read (.anyxml, $[
+ "file" : prod_file_path,
+ "args" : $[
+ "ForceArray" : 1,
+ "KeepRoot" : 1,
+ "KeyAttr" : [],
+ "ForceContent" : 1,
+ "ContentKey" : content_key,
+ ]
+ ]);
+// ret = anyxml["products",0]:$[];
+ ret = (map) anyxml;
+ return ret;
+}
+
+/**
* Take list of content-file data and update global content_map.
* If argument is empty, global 'content' list is used as an input.
*/
@@ -935,6 +1058,11 @@
== "yes")
compress_package_descriptions = true;
+ // FIXME importing existing product: read product_xml from the release
+ // package and create product_info map from it
+ if (product_xml == $[])
+ // read the template file
+ product_xml = ReadProductXML ("/home/jsuchome/buildservice/template.prod");
return true;
}
@@ -1227,8 +1355,6 @@
current_product["copyright_files",name] = cont;
});
- // FIXME autorun
-
// read the info.txt
string info_path = dir_path + "/media.1/info.txt";
if (FileUtils::Exists (info_path))
@@ -1449,16 +1575,13 @@
);
entry["value"] = archs;
}
+ if (key == "DISTRIBUTION" && content_map[key]:"" == "")
+ {
+ entry["value"] =
+ content_map["NAME"]:"" + " "+ content_map["VERSION"]:"";
+ }
content = add (content, entry);
});
- /*
- map arch_skel = content_specials["ARCH"]:$[];
- foreach (string key, string val, arch_map, {
- arch_skel["key"] = key;
- arch_skel["value"] = val;
- content = add (content, arch_skel);
- });
- */
}
string required_rpm_path = current_product["required_rpm_path"]:"";
// 4. read the list of packages, not present on AddOn
@@ -1593,7 +1716,7 @@
global void GenerateDirectories (string base_path) {
integer i = 1;
- integer no_of_medias = 1; // FIXME layout is different for more media
+ integer no_of_medias = 1;
while (i <= no_of_medias)
{
string media_path = sformat ("%1/media.%2", base_path, i);
@@ -1754,7 +1877,7 @@
return true;
}
/**
- * Create the products file FIXME editor - see ExpertSettingsDialog3
+ * Create the products file TODO editor - see ExpertSettingsDialog3
* @param base_path path to base output directory
* @return success
*/
@@ -2012,6 +2135,68 @@
/**
+ * Use BuildService tools to create -release package with product info
+ */
+global boolean GenerateReleasePackage (string base_path) {
+
+ /*
+ string contents = "";
+
+// contents = MapAny2XML ("description", config["description",0]:$[], 1);
+
+
+ contents = sformat ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+http://www.w3.org/2001/XInclude\">
+<products>
+%1
+</products>
+</productdefinition>", contents);
+
+ SCR::Write (.target.string, tmpdir + "/add-on.prod.xml", contents);
+ */
+
+ // 1. update product_xml map using product_info and content,
+ // write the result into temporary .prod file
+ string name = content_map["NAME"]:"add-on";
+
+ product_xml["product",0,"id"] = name;
+ product_xml["product",0,"name",0, content_key] = name;
+ product_xml["product",0,"version",0, content_key] = content_map["VERSION"]:"1.0";
+
+ foreach (string key, ["release", "summary", "description"], {
+ product_xml["product",0,key,0,content_key]=product_info[key,"value"]:"";
+ });
+ if (product_info["releasenotes","value"]:"" != "")
+ product_xml["product",0,"urls"] = [ $[
+ "url" : [ $[
+ content_key : product_info["releasenotes","value"]:"",
+ ]],
+ ]];
+
+
+ SCR::Write (.anyxml, $[
+ "file" : sformat ("%1/%2.prod", tmpdir, content_map["NAME"]:"add-on"),
+ "xml" : product_xml,
+ "args" : $[
+ "XMLDecl" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>",
+ "ForceContent" : 1,
+ "ForceArray" : 1,
+ "KeepRoot" : 1,
+ "ContentKey" : content_key,
+ "KeyAttr" : [],
+ ]
+ ]);
+
+ // 2. FIXME call bs_productconvert to generate a packgae/spec file
+ // (is the call of rpmbuild needed?)
+
+ // 3. FIXME copy package into the place
+
+ return true;
+}
+
+
+/**
* Write the modification of installation workflow
* @param base_path path to base output directory
* @param desc_path path to workflow description file
@@ -2483,6 +2668,7 @@
map modified_product = union (current_product, $[
"content_map" : content_map,
+ "product_info" : product_info,
"available_packages" : available_packages,
"arch_directories" : arch_directories,
"package2filename" : package2filename,
@@ -2503,10 +2689,13 @@
modified = true;
}
+// select the given product:
+// fill in the global variables specific for the given product
global void SelectProduct (map product) {
current_product = product;
content_map = product["content_map"]:$[];
+ product_info = product["product_info"]:$[];
// generate content from content_map
content = [];
@@ -2707,6 +2896,8 @@
CopyRPMs (current_product["rpm_path"]:"", base_output_path);
+ GenerateReleasePackage (base_output_path);
+
WritePackageDescriptions (
full_descr_path,
current_product["packages_descr"]:$[]);
Modified: trunk/add-on-creator/src/Makefile.am
URL: http://svn.opensuse.org/viewcvs/yast/trunk/add-on-creator/src/Makefile.am?rev=52440&r1=52439&r2=52440&view=diff
==============================================================================
--- trunk/add-on-creator/src/Makefile.am (original)
+++ trunk/add-on-creator/src/Makefile.am Wed Oct 22 16:25:18 2008
@@ -2,6 +2,8 @@
yncludedir = @yncludedir@/add-on-creator
+ydatadir = @ydatadir@/add-on-creator
+
client_DATA = \
add-on-creator.ycp
@@ -19,11 +21,14 @@
AddOnCreator.ycp \
PackagesDescr.pm
+ydata_DATA = \
+ template.prod
+
# create a symlink for local build, #145327
add-on-creator:
ln -sf . $@
ycpchook = add-on-creator
-EXTRA_DIST = $(client_DATA) $(ynclude_DATA) $(module_DATA) $(desktop_DATA)
+EXTRA_DIST = $(client_DATA) $(ynclude_DATA) $(module_DATA) $(desktop_DATA) $(ydata_DATA)
include $(top_srcdir)/Makefile.am.common
Modified: trunk/add-on-creator/src/complex.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/add-on-creator/src/complex.ycp?rev=52440&r1=52439&r2=52440&view=diff
==============================================================================
--- trunk/add-on-creator/src/complex.ycp (original)
+++ trunk/add-on-creator/src/complex.ycp Wed Oct 22 16:25:18 2008
@@ -376,20 +376,20 @@
map current_product = AddOnCreator::current_product;
-// FIXME handle REQUIRES in new product-specific package
- string requires = AddOnCreator::product_info["REQUIRES"]:"";
+ string requires = AddOnCreator::product_info["REQUIRES","value"]:"";
if (requires == "")
- requires = "product:openSUSE = 11.0"; // FIXME different values
+ requires = "openSUSE-release = 11.1";
string old_dir = current_product["rpm_path"]:"";
if (old_dir == nil)
current_product["rpm_path"] = "";
string old_requires = requires;
- string product = AddOnCreator::content_map["NAME"]:"";
+ map content_map = AddOnCreator::content_map;
+ string product = content_map["NAME"]:content_map["PRODUCT"]:"";
string old_product = product == "" ? nil : product;
- string version = AddOnCreator::content_map["VERSION"]:"";
+ string version = content_map["VERSION"]:"";
string old_version = version;
// dialog caption
@@ -409,34 +409,22 @@
`VSpacing (0.4),
`RadioButtonGroup (`id(`rd),
`Left(`HVSquash(`VBox (
- `Left (`RadioButton(`id(`sles10sp1), `opt (`notify),
+ `Left (`RadioButton(`id(`sles11), `opt (`notify),
// radio button label
- _("SUSE &Linux Enterprise Server 10 SP1"),
- requires == "product:SUSE_SLES = 10.1")),
- `Left (`RadioButton(`id(`sles10sp2), `opt (`notify),
+ _("SUSE &Linux Enterprise Server 11"),
+ requires == "sles-release = 11")),//FIXME
+ `Left (`RadioButton(`id(`sled11), `opt (`notify),
// radio button label
- _("SUSE &Linux Enterprise Server 10 SP2"),
- requires == "product:SUSE_SLES = 10.2")),
- `Left (`RadioButton(`id(`sled10sp1), `opt (`notify),
+ _("SUSE L&inux Enterprise Desktop 11"),
+ requires == "sled-release = 11")),//FIXME
+ `Left (`RadioButton(`id(`sle11), `opt (`notify),
// radio button label
- _("SUSE L&inux Enterprise Desktop 10 SP1"),
- requires == "product:SUSE_SLED = 10.1")),
- `Left (`RadioButton(`id(`sled10sp2), `opt (`notify),
+ _("S&USE Linux Enterprise 11"),//FIXME
+ requires == "sle-release-11")),
+ `Left (`RadioButton(`id(`opensuse111), `opt (`notify),
// radio button label
- _("SUSE L&inux Enterprise Desktop 10 SP2"),
- requires == "product:SUSE_SLED = 10.2")),
- `Left (`RadioButton(`id(`sle10sp1), `opt (`notify),
- // radio button label
- _("S&USE Linux Enterprise 10 SP1"),
- requires == "product:SUSE_SLE = 10.1")),
- `Left (`RadioButton(`id(`sle10sp2), `opt (`notify),
- // radio button label
- _("S&USE Linux Enterprise 10 SP2"),
- requires == "product:SUSE_SLE = 10.2")),
- `Left (`RadioButton(`id(`opensuse11), `opt (`notify),
- // radio button label
- _("OpenSUSE &11.0"),
- requires == "product:openSUSE = 11.0")),
+ _("OpenSUSE &11.1"),
+ requires == "openSUSE-release = 11.1")),
`HBox (
`Left(`RadioButton(`id(`other), `opt (`notify),
// radio button label
@@ -517,32 +505,20 @@
{
UI::SetFocus (`id(`other_val));
}
- else if (ret == `sles10sp1) {
- requires = "product:SUSE_SLES = 10.1";
- UI::ChangeWidget (`id(`other_val), `Enabled, false);
- }
- else if (ret == `sles10sp2) {
- requires = "product:SUSE_SLES = 10.2";
- UI::ChangeWidget (`id(`other_val), `Enabled, false);
- }
- else if (ret == `sled10sp1) {
- requires = "product:SUSE_SLED = 10.1";
- UI::ChangeWidget (`id(`other_val), `Enabled, false);
- }
- else if (ret == `sled10sp2) {
- requires = "product:SUSE_SLED = 10.2";
+ else if (ret == `sles11) {
+ requires = ""; // FIXME...
UI::ChangeWidget (`id(`other_val), `Enabled, false);
}
- else if (ret == `sle10sp1) {
- requires = "product:SUSE_SLE = 10.1";
+ else if (ret == `sled11) {
+ requires = "";
UI::ChangeWidget (`id(`other_val), `Enabled, false);
}
- else if (ret == `sle10sp2) {
- requires = "product:SUSE_SLE = 10.2";
+ else if (ret == `sle11) {
+ requires = "";
UI::ChangeWidget (`id(`other_val), `Enabled, false);
}
- else if (ret == `opensuse11) {
- requires = "product:openSUSE = 11.0";
+ else if (ret == `opensuse111) {
+ requires = "openSUSE-release = 11.1";
UI::ChangeWidget (`id(`other_val), `Enabled, false);
}
else if (ret == `other) {
@@ -573,7 +549,7 @@
AddOnCreator::current_product["required_rpm_path"] = req_dir;
if (requires == "")
requires = (string) UI::QueryWidget (`id(`other_val), `Value);
- AddOnCreator::product_info["REQUIRES"] = requires;
+ AddOnCreator::product_info["REQUIRES","value"] = requires;
AddOnCreator::content_map["NAME"] = product;
AddOnCreator::content_map["VERSION"] = version;
@@ -736,10 +712,11 @@
any ContentFileDialog() {
// dialog caption - 'content' is file name
- string caption = _("Product Definition (content File)");
+ string caption = _("Product Definition");
map current_product = AddOnCreator::current_product;
list<map> content = AddOnCreator::content;
+ mapproduct_info = AddOnCreator::product_info;
integer linguas_entry = -1;
@@ -760,7 +737,20 @@
return ret;
}
+ // generate items for prod file table
+ list get_prod_items () {
+ list ret = [];
+ foreach (string key, map entry, product_info, {
+ ret = add (ret, `item (`id (key),
+ key, entry["value"]:"", entry["label"]:"")
+ );
+ });
+ return ret;
+ }
+
term contents = `HBox (`HSpacing (), `VBox (
+ // label
+ `Left (`Label (_("content File"))),
`Table (`id(`content_table), `opt(`notify), `header (
// table header
_("Key"),
@@ -782,7 +772,26 @@
_("Show &Only Required Keywords"), true
)
),
- `VSpacing ()
+ `VSpacing (0.4),
+ // label
+ `Left (`Label (_("Product File"))),
+ `Table (`id(`prod_table), `opt(`notify), `header (
+ // table header
+ _("Key"),
+ // table header
+ _("Value"),
+ // table header
+ _("Description")
+ ),
+ get_prod_items ()
+ ),
+ `HBox (
+ `PushButton (`id (`edit_prod), Label::EditButton ()),
+ // push button label
+ `PushButton (`id(`import_prod), _("I&mport")),
+ `HStretch()
+ ),
+ `VSpacing (0.2)
),`HSpacing ());
Wizard::SetContentsButtons(caption, contents, HELPS["content"]:"",
@@ -853,6 +862,18 @@
}
UI::SetFocus (`id (`content_table));
}
+ else if (ret == `edit_prod || ret == `prod_table) {
+ string key = (string)
+ UI::QueryWidget (`id (`prod_table), `CurrentItem);
+ any val = (string) EditValue (product_info[key]:$[], "prod");
+ if (val != nil)
+ {
+ product_info[key,"value"] = val;
+ UI::ChangeWidget (`id (`prod_table),`Item (key,1), val);
+ }
+ UI::SetFocus (`id (`prod_table));
+ }
+ // FIXME `import_prod
else if (ret == `next) {
list<string> missing = [];
foreach (map entry, content, {
@@ -872,7 +893,6 @@
foreach (map entry, content, {
if (entry["key"]:"" == "LABEL" && entry["value"]:"" == "")
index = i;
-// FIXME fill default value of DISTRIBUTION and BASEARCHS (and not only in UI)
if (entry["key"]:"" == "NAME")
product = entry["value"]:"";
i = i + 1;
@@ -881,6 +901,7 @@
content[index,"value"] = product;
AddOnCreator::content = content;
AddOnCreator::UpdateContentMap (content);
+ AddOnCreator::product_info = product_info;
break;
}
else if(ret == `abort || ret == `cancel) {
@@ -938,7 +959,7 @@
any value = entry["value"]:nil;
if (value == nil)
{
- if (table_type == "content")
+ if (table_type == "content" || table_type == "prod")
value = "";
if (type == "package-list")
value = [];
Added: trunk/add-on-creator/src/template.prod
URL: http://svn.opensuse.org/viewcvs/yast/trunk/add-on-creator/src/template.prod?rev=52440&view=auto
==============================================================================
--- trunk/add-on-creator/src/template.prod (added)
+++ trunk/add-on-creator/src/template.prod Wed Oct 22 16:25:18 2008
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<product schemeversion="0.0">
+ <vendor></vendor>
+ <name></name>
+ <version></version>
+ <release>0</release>
+ <arch>%{_target_cpu}</arch>
+ <summary></summary>
+ <description></description>
+ <linguas>
+ <language>en_US</language>
+ </linguas>
+ <urls>
+ </urls>
+</product>
Modified: trunk/add-on-creator/yast2-add-on-creator.spec.in
URL: http://svn.opensuse.org/viewcvs/yast/trunk/add-on-creator/yast2-add-on-creator.spec.in?rev=52440&r1=52439&r2=52440&view=diff
==============================================================================
--- trunk/add-on-creator/yast2-add-on-creator.spec.in (original)
+++ trunk/add-on-creator/yast2-add-on-creator.spec.in Wed Oct 22 16:25:18 2008
@@ -31,6 +31,8 @@
@moduledir@/AddOnCreator.*
@moduledir@/PackagesDescr.pm
@desktopdir@/add-on-creator.desktop
+%dir @ydatadir@/add-on-creator
+@ydatadir@/add-on-creator/
#agents:
@scrconfdir@/*.scr
@agentdir@/ag_*
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org