Hi,
I'm adding two profiles in rules.xml, both contain <packages> and <remove-packages> entries (and addon produtcs). I'm adding the second profile as:
<rule> ... <result> <profile>profiles/sled-only.xml</profile> <continue config:type="boolean">true</continue> <dont_merge config:type="list"> <element>listentry</element> <element>package</element> </dont_merge> </result> </rule>
Merging of the two add_on_product listentries works fine, but the packages are not merged. E.g. I have
<packages config:type="list"> <package>sendmail</package> </packages>
in the first profile and
<packages config:type="list"> <package>lilo</package> </packages>
in the sled-only.xml. But lilo is not added and in y2log I see only "software":$["packages":["sendmail"]]
although at some point earlier I find AutoInstallRules.ycp:590 user defined dont_merge for rules found. dontmerge is ["listentry", "package"]
When merge the two xml files manually according to your blog, i.e. with /usr/bin/xsltproc --novalid --param replace "'false'" --param dontmerge1 "'package'" --param with "'sled-only.xml'" --output out.xml /usr/share/autoinstall/xslt/merge.xslt lmu.xml
then out.xml contains the merge: <ns1:packages config:type="list"> <package>sendmail</package><package>lilo</package> </ns1:packages>
Am I doing sth. wrong?
cu, Frank
On Wednesday 01 April 2009 11:31:43 Frank Steiner wrote:
although at some point earlier I find AutoInstallRules.ycp:590 user defined dont_merge for rules found. dontmerge is ["listentry", "package"]
can you paste the "Merge command:" and one line later the STDOUT/STDERR output from the log? Maybe you can try the merge command if it looks correct and check the output
On Wednesday 01 April 2009 12:11:40 Uwe Gansert wrote:
can you paste the "Merge command:" and one line later the STDOUT/STDERR output from the log? Maybe you can try the merge command if it looks correct and check the output
ah, I did not see you are using rules. The "Merge command:" is not logged then. Just the STDOUT/STDERR.
Uwe Gansert wrote
On Wednesday 01 April 2009 12:11:40 Uwe Gansert wrote:
can you paste the "Merge command:" and one line later the STDOUT/STDERR output from the log? Maybe you can try the merge command if it looks correct and check the output
ah, I did not see you are using rules. The "Merge command:" is not logged then. Just the STDOUT/STDERR.
I guess you mean the following stuff. Is there any debug option I can use the see what merge command is executed?
2009-04-01 09:12:18 <1> cantor(4239) [YCP] AutoInstallRules.ycp:679 Working on file: profiles/lmu.xml 2009-04-01 09:12:18 <1> cantor(4239) [YCP] XML.ycp:113 Reading /tmp/YaST2-04239-eiwl00/rules/profiles/lmu.xml 2009-04-01 09:12:18 <1> cantor(4239) [agent-xml] XmlAgent.cc(Read):758 Setting XML generic error handler 2009-04-01 09:12:18 <1> cantor(4239) [agent-xml] XmlAgent.cc(Read):793 Freeing generic XML error handler 2009-04-01 09:12:18 <1> cantor(4239) [YCP] AutoInstallRules.ycp:679 Working on file: profiles/sled-only.xml 2009-04-01 09:12:18 <1> cantor(4239) [YCP] AutoInstallRules.ycp:712 Merge result: $["exit":0, "stderr":"", "stdout":""] 2009-04-01 09:12:18 <1> cantor(4239) [YCP] XML.ycp:113 Reading /tmp/YaST2-04239-eiwl00/result.xml 2009-04-01 09:12:18 <1> cantor(4239) [agent-xml] XmlAgent.cc(Read):758 Setting XML generic error handler 2009-04-01 09:12:18 <1> cantor(4239) [agent-xml] XmlAgent.cc(Read):793 Freeing generic XML error handler 2009-04-01 09:12:18 <1> cantor(4239) [YCP] AutoInstallRules.ycp:679 Working on file: profiles/part_cantor_keep.xml 2009-04-01 09:12:19 <1> cantor(4239) [YCP] AutoInstallRules.ycp:712 Merge result: $["exit":0, "stderr":"", "stdout":""] 2009-04-01 09:12:19 <1> cantor(4239) [YCP] XML.ycp:113 Reading /tmp/YaST2-04239-eiwl00/result.xml 2009-04-01 09:12:19 <1> cantor(4239) [agent-xml] XmlAgent.cc(Read):758 Setting XML generic error handler 2009-04-01 09:12:19 <1> cantor(4239) [agent-xml] XmlAgent.cc(Read):793 Freeing generic XML error handler 2009-04-01 09:12:19 <1> cantor(4239) [YCP] AutoInstallRules.ycp:736 Ok=true 2009-04-01 09:12:19 <1> cantor(4239) [YCP] XML.ycp:113 Reading /tmp/YaST2-04239-eiwl00/rules/prefinal_autoinst.xml 2009-04-01 09:12:19 <1> cantor(4239) [agent-xml] XmlAgent.cc(Read):758 Setting XML generic error handler 2009-04-01 09:12:19 <1> cantor(4239) [agent-xml] XmlAgent.cc(Read):793 Freeing generic XML error handler
This was finally solved by the Novell support:
YaST cannot correctly merge two profiles if the tags are in different orders. I.e.:
profile1.xml: <add-on>..</add-on> <packages>..</packages>
profile2.xml <packages>..</packages> <add-on>..</add-on>
Those two won't merge correctly, like I've seen it.
The strange thing was, that my two profiles that I put into AY were correcttly ordered! Both had <packages> first, and <add-on> second.
But AY took my first profile and created a base_profile.xml from it, in which the tags were ordered alphabetically! Thus, base_profile.xml had <add-on> before <package>, and so merging with my second profile went wrong.
I solved this by putting <add-on> before <package> in all my profiles. There will be a fix for future releases that AY/YaST sorts all profiles alphabetically before it merges them, so that order of tags in your hand-written profiles won't matter. I guess that will come with SP1.
cu, Frank
Dear Frank!
In which version of openSUSE does this problem occur? 11.1?
Frank Steiner wrote:
This was finally solved by the Novell support:
So you are probably talking about SLES?
YaST cannot correctly merge two profiles if the tags are in different orders. I.e.:
profile1.xml: <add-on>..</add-on> <packages>..</packages>
profile2.xml <packages>..</packages> <add-on>..</add-on>
Those two won't merge correctly, like I've seen it.
The strange thing was, that my two profiles that I put into AY were correcttly ordered! Both had <packages> first, and <add-on> second.
But AY took my first profile and created a base_profile.xml from it, in which the tags were ordered alphabetically! Thus, base_profile.xml had <add-on> before <package>, and so merging with my second profile went wrong.
In base-profile.xml the tags were ordered alphabetically. But not in the second profile? Is that true?
For me merging software section in openSUSE 11.1 didn't work at all, when I first tried it. I didn't try again, but maybe this was the reason.
I solved this by putting <add-on> before <package> in all my profiles. There will be a fix for future releases that AY/YaST sorts all profiles alphabetically before it merges them, so that order of tags in your hand-written profiles won't matter. I guess that will come with SP1.
Many thanks for all your informations concerning this problem and its solution.
Best regards,
Guenther Haas wrote
Dear Frank!
In which version of openSUSE does this problem occur? 11.1?
Frank Steiner wrote:
This was finally solved by the Novell support:
So you are probably talking about SLES?
Right, but openSuSE 11.1 and SLES 11 have a common code base so most of the stuff is identical on both systems.
In base-profile.xml the tags were ordered alphabetically. But not in the second profile? Is that true?
Yes, because base-profile.xml was generated from my first, hand-written profile and while processing, YaST sorted the tags. The second profile was my original hand-written profile which was not pre-processed by YaST (that's actually what's going to change as far as I understood).
cu, Frank
autoinstall@lists.opensuse.org