Author: dmacvicar
Date: Thu Apr 12 17:43:21 2007
New Revision: 5362
URL: http://svn.opensuse.org/viewcvs/zypp?rev=5362&view=rev
Log:
- Put the RepomdFileReader class where it belongs
- The PatchesFileReader class is for now only
a copy of the RepomdFileReader
- Add a unit test for the class
Added:
trunk/libzypp/tests/parser/
trunk/libzypp/tests/parser/CMakeLists.txt
trunk/libzypp/tests/parser/yum/
trunk/libzypp/tests/parser/yum/CMakeLists.txt
trunk/libzypp/tests/parser/yum/RepomdFileReader_test.cc
trunk/libzypp/tests/parser/yum/data/
trunk/libzypp/tests/parser/yum/data/patches.xml
trunk/libzypp/tests/parser/yum/data/repomd-1.xml
trunk/libzypp/tests/parser/yum/data/repomd-1.xml.solution
trunk/libzypp/zypp/parser/yum/PatchesFileReader.cc
trunk/libzypp/zypp/parser/yum/PatchesFileReader.h
trunk/libzypp/zypp/parser/yum/RepomdFileReader.cc
trunk/libzypp/zypp/parser/yum/RepomdFileReader.h
Modified:
trunk/libzypp/devel/devel.dmacvicar/ScanSource.cc
trunk/libzypp/devel/devel.dmacvicar/YUMDownloader.cc
trunk/libzypp/tests/CMakeLists.txt
trunk/libzypp/zypp/CMakeLists.txt
Modified: trunk/libzypp/devel/devel.dmacvicar/ScanSource.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.dmacvicar/ScanSource.cc?rev=5362&r1=5361&r2=5362&view=diff
==============================================================================
--- trunk/libzypp/devel/devel.dmacvicar/ScanSource.cc (original)
+++ trunk/libzypp/devel/devel.dmacvicar/ScanSource.cc Thu Apr 12 17:43:21 2007
@@ -5,6 +5,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -153,24 +154,35 @@
LOG << "===Parse content..." << endl;
try
- {
- debug::Measure m( "Parse" );
- src.resolvables();
- m.elapsed();
- //LOG << m.asString() << endl;
- }
+ {
+ debug::Measure m( "Parse" );
+ src.resolvables();
+ m.elapsed();
+ //LOG << m.asString() << endl;
+ }
catch ( const Exception & except_r )
- {
- LOG << "***Failed: " << except_r << endl;
- continue;
- }
+ {
+ LOG << "***Failed: " << except_r << endl;
+ continue;
+ }
LOG << for_each( src.resolvables().begin(), src.resolvables().end(),
ResStoreStats() ) << endl;
if ( verbose )
+ {
+ dumpRange( LOG, src.resolvables().begin(), src.resolvables().end() ) << endl;
+ }
+#define TestKind Product
+
+ for (ResStore::const_iterator it = src.resolvables().begin(); it != src.resolvables().end(); ++it)
+ {
+ if ( isKind<TestKind>(*it) )
{
- dumpRange( LOG, src.resolvables().begin(), src.resolvables().end() ) << endl;
+ zypp::TestKind::constPtr res = asKind<TestKind>( *it );
+ cout << res->name() << " | " << res->edition() << std::endl;
+ cout << res->distributionName() << " | " << res->distributionEdition() << std::endl;
}
-
+ }
+
//SourceManager::sourceManager()->addSource( src );
//SourceManager::sourceManager()->store( "/", true );
}
Modified: trunk/libzypp/devel/devel.dmacvicar/YUMDownloader.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.dmacvicar/YUMDownloader.cc?rev=5362&r1=5361&r2=5362&view=diff
==============================================================================
--- trunk/libzypp/devel/devel.dmacvicar/YUMDownloader.cc (original)
+++ trunk/libzypp/devel/devel.dmacvicar/YUMDownloader.cc Thu Apr 12 17:43:21 2007
@@ -6,6 +6,8 @@
#include "zypp/Date.h"
+
+#include "zypp/parser/yum/RepomdFileReader.h"
#include "YUMDownloader.h"
using namespace std;
@@ -18,87 +20,6 @@
namespace yum
{
-class RepomdFileReader
-{
-public:
- typedef function ProcessResource;
-
- enum Tag
- {
- tag_NONE,
- tag_Repomd,
- tag_Data,
- tag_Location,
- tag_CheckSum,
- tag_Timestamp,
- tag_OpenCheckSum
- };
-
- RepomdFileReader( const Pathname &repomd_file, ProcessResource callback )
- : _tag(tag_NONE), _callback(callback)
- {
- Reader reader( repomd_file );
- MIL << "Reading " << repomd_file << endl;
- reader.foreachNode( bind( &RepomdFileReader::consumeNode, this, _1 ) );
- }
-
- bool consumeNode( Reader & reader_r )
- {
- //MIL << reader_r->name() << endl;
- std::string data_type;
- if ( reader_r->nodeType() == XML_READER_TYPE_ELEMENT )
- {
- if ( reader_r->name() == "repomd" )
- {
- _tag = tag_Repomd;
- return true;
- }
- if ( reader_r->name() == "data" )
- {
- _tag = tag_Data;
- _type = reader_r->getAttribute("type").asString();
- return true;
- }
- if ( reader_r->name() == "location" )
- {
- _tag = tag_Location;
- _location.filename( reader_r->getAttribute("href").asString() );
- return true;
- }
- if ( reader_r->name() == "checksum" )
- {
- _tag = tag_CheckSum;
- string checksum_type = reader_r->getAttribute("type").asString() ;
- string checksum_vaue = reader_r.nodeText().asString();
- _location.checksum( CheckSum( checksum_type, checksum_vaue ) );
- return true;
- }
- if ( reader_r->name() == "timestamp" )
- {
- // ignore it
- return true;
- }
- }
- else if ( reader_r->nodeType() == XML_READER_TYPE_END_ELEMENT )
- {
- //MIL << "end element" << endl;
- if ( reader_r->name() == "data" )
- _callback( _location, _type );
- return true;
- }
- return true;
- }
-
- private:
- OnMediaLocation _location;
- Tag _tag;
- std::string _type;
- ProcessResource _callback;
- CheckSum _checksum;
- std::string _checksum_type;
- Date _timestamp;
-};
-
YUMDownloader::YUMDownloader( const Url &url, const Pathname &path )
: _url(url), _path(path)
{
Modified: trunk/libzypp/tests/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/CMakeLists.txt?rev=5362&r1=5361&r2=5362&view=diff
==============================================================================
--- trunk/libzypp/tests/CMakeLists.txt (original)
+++ trunk/libzypp/tests/CMakeLists.txt Thu Apr 12 17:43:21 2007
@@ -1,5 +1,8 @@
ENABLE_TESTING()
+INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+ADD_DEFINITIONS( -DTESTS_SRC_DIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}\\\" )
#ADD_SUBDIRECTORY( cache )
#ADD_SUBDIRECTORY( media )
ADD_SUBDIRECTORY( zypp )
+ADD_SUBDIRECTORY( parser )
\ No newline at end of file
Added: trunk/libzypp/tests/parser/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/parser/CMakeLists.txt?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/tests/parser/CMakeLists.txt (added)
+++ trunk/libzypp/tests/parser/CMakeLists.txt Thu Apr 12 17:43:21 2007
@@ -0,0 +1 @@
+ADD_SUBDIRECTORY( yum )
\ No newline at end of file
Added: trunk/libzypp/tests/parser/yum/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/parser/yum/CMakeLists.txt?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/tests/parser/yum/CMakeLists.txt (added)
+++ trunk/libzypp/tests/parser/yum/CMakeLists.txt Thu Apr 12 17:43:21 2007
@@ -0,0 +1,4 @@
+ADD_EXECUTABLE( RepomdFileReader RepomdFileReader_test.cc )
+TARGET_LINK_LIBRARIES( RepomdFileReader zypp boost_unit_test_framework )
+
+ADD_TEST(RepomdFileReader ${CMAKE_CURRENT_BINARY_DIR}/RepomdFileReader ${CMAKE_CURRENT_SOURCE_DIR}/data )
\ No newline at end of file
Added: trunk/libzypp/tests/parser/yum/RepomdFileReader_test.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/parser/yum/RepomdFileReader_test.cc?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/tests/parser/yum/RepomdFileReader_test.cc (added)
+++ trunk/libzypp/tests/parser/yum/RepomdFileReader_test.cc Thu Apr 12 17:43:21 2007
@@ -0,0 +1,97 @@
+#include
+#include <iostream>
+#include <fstream>
+#include <vector>
+#include <list>
+#include
+#include
+#include
+
+#include "zypp/parser/yum/RepomdFileReader.h"
+#include "zypp/Url.h"
+#include "zypp/PathInfo.h"
+
+using std::cout;
+using std::endl;
+using std::string;
+using namespace zypp;
+using namespace boost::unit_test;
+
+using namespace zypp::source::yum;
+
+class Collector
+{
+public:
+ Collector()
+ {}
+
+ bool callback( const OnMediaLocation &loc, const string &dtype )
+ {
+ items.push_back( make_pair( dtype, loc ) );
+ //items.push_back(loc);
+ //cout << items.size() << endl;
+ return true;
+ }
+
+ vector > items;
+ //vector<OnMediaLocation> items;
+};
+
+void repomd_read_test(const string &dir)
+{
+ list<Pathname> entries;
+ filesystem::readdir( entries, Pathname(dir), false );
+ for ( list<Pathname>::const_iterator it = entries.begin(); it != entries.end(); ++it )
+ {
+ Pathname file = *it;
+ if ( ( file.basename().substr(0, 6) == "repomd" ) && (file.extension() == ".xml" ) )
+ {
+ cout << *it << endl;
+
+ Collector collect;
+ RepomdFileReader( file, bind( &Collector::callback, &collect, _1, _2 ));
+
+ std::ifstream ifs( file.extend(".solution").asString().c_str() );
+
+ int count = 0;
+ while ( ifs && ! ifs.eof() && count < collect.items.size() )
+ {
+ string dtype;
+ string checksum_type;
+ string checksum;
+ string loc;
+
+ getline(ifs, dtype);
+ BOOST_CHECK_EQUAL( collect.items[count].first, dtype);
+ getline(ifs, checksum_type);
+ getline(ifs, checksum);
+ BOOST_CHECK_EQUAL( collect.items[count].second.checksum(), CheckSum(checksum_type, checksum) );
+ getline(ifs, loc);
+ BOOST_CHECK_EQUAL( collect.items[count].second.filename(), Pathname(loc) );
+
+ count++;
+ }
+ BOOST_CHECK_EQUAL( collect.items.size(), count );
+ }
+ }
+}
+
+test_suite*
+init_unit_test_suite( int argc, char *argv[] )
+{
+ if (argc < 2)
+ {
+ cout << "RepomdFileReader_test:"
+ " path to directory with test data required as parameter" << endl;
+ return (test_suite *)0;
+ }
+
+ test_suite* test= BOOST_TEST_SUITE("RepomdFileReader");
+ string datadir = argv[1];
+ std::string const params[] = { datadir };
+ test->add(BOOST_PARAM_TEST_CASE(&repomd_read_test,
+ (std::string const*)params, params+1));
+ return test;
+}
+
+// vim: set ts=2 sts=2 sw=2 ai et:
Added: trunk/libzypp/tests/parser/yum/data/patches.xml
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/parser/yum/data/patches.xml?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/tests/parser/yum/data/patches.xml (added)
+++ trunk/libzypp/tests/parser/yum/data/patches.xml Thu Apr 12 17:43:21 2007
@@ -0,0 +1,759 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<patches xmlns="http://novell.com/package/metadata/suse/patches">
+ <patch id="fetchmsttfonts.sh-2333">
+ <checksum type="sha">6b72b4f3617d0d51af28399c0f5e0af401440245</checksum>
+ <location href="repodata/patch-fetchmsttfonts.sh-2333.xml"/>
+ </patch>
+ <patch id="glabels-2348">
+ <checksum type="sha">b02ba598d8ed5f8a31859d3b34e72e1ddecbe894</checksum>
+ <location href="repodata/patch-glabels-2348.xml"/>
+ </patch>
+ <patch id="openssl-2349">
+ <checksum type="sha">321ee41de68be4e83dfb74559c14300a59b85ccf</checksum>
+ <location href="repodata/patch-openssl-2349.xml"/>
+ </patch>
+ <patch id="gv-2350">
+ <checksum type="sha">ec9e8a3f3ce2588cecd84ab95ec910d41db5d74b</checksum>
+ <location href="repodata/patch-gv-2350.xml"/>
+ </patch>
+ <patch id="tar-2351">
+ <checksum type="sha">d803372cd5d844ee01ab6fb3d1b4332391fa1206</checksum>
+ <location href="repodata/patch-tar-2351.xml"/>
+ </patch>
+ <patch id="flash-player-2359">
+ <checksum type="sha">c2de5dd35ec2dcccc118d9d7f539e768dfd5ec50</checksum>
+ <location href="repodata/patch-flash-player-2359.xml"/>
+ </patch>
+ <patch id="lineak_kde-2361">
+ <checksum type="sha">7fb791963114836621873280c7edd58887b91784</checksum>
+ <location href="repodata/patch-lineak_kde-2361.xml"/>
+ </patch>
+ <patch id="evince-2362">
+ <checksum type="sha">28f0c33aa4a34830a4b7b8a795db609bfd3d7531</checksum>
+ <location href="repodata/patch-evince-2362.xml"/>
+ </patch>
+ <patch id="capi4hylafax-2366">
+ <checksum type="sha">98c2d98fe33439563047eef97c6db065c8361bbe</checksum>
+ <location href="repodata/patch-capi4hylafax-2366.xml"/>
+ </patch>
+ <patch id="resmgr-2371">
+ <checksum type="sha">f449fabf0a7bedfc9f561ea5d04e160c521a5186</checksum>
+ <location href="repodata/patch-resmgr-2371.xml"/>
+ </patch>
+ <patch id="release-notes-2374">
+ <checksum type="sha">e1dd5a93ce9bb796348557d7d8e16ef54fb8d90d</checksum>
+ <location href="repodata/patch-release-notes-2374.xml"/>
+ </patch>
+ <patch id="privoxy-2375">
+ <checksum type="sha">a73445a3630084c867d63868d9d064625a84ea6d</checksum>
+ <location href="repodata/patch-privoxy-2375.xml"/>
+ </patch>
+ <patch id="kdeaddons3-konqueror-2383">
+ <checksum type="sha">792bad7440845613b608c771c2d948607e02759d</checksum>
+ <location href="repodata/patch-kdeaddons3-konqueror-2383.xml"/>
+ </patch>
+ <patch id="krusader-2386">
+ <checksum type="sha">de603b359e148a7666b5b695b76602c4689ff193</checksum>
+ <location href="repodata/patch-krusader-2386.xml"/>
+ </patch>
+ <patch id="gdm-2387">
+ <checksum type="sha">6dff2c1367613b7eae36db090233bfbf31a92920</checksum>
+ <location href="repodata/patch-gdm-2387.xml"/>
+ </patch>
+ <patch id="gpg-2388">
+ <checksum type="sha">3266d24fa2fb7aeb4ba303ccd77fbe8b27f75ad0</checksum>
+ <location href="repodata/patch-gpg-2388.xml"/>
+ </patch>
+ <patch id="clamav-2391">
+ <checksum type="sha">394bec89d3f5f976a9f7ae074a0e4c0d5582139a</checksum>
+ <location href="repodata/patch-clamav-2391.xml"/>
+ </patch>
+ <patch id="mono-core-2392">
+ <checksum type="sha">6630055daac876bcb0a6ebf36f63d28341b1ff6e</checksum>
+ <location href="repodata/patch-mono-core-2392.xml"/>
+ </patch>
+ <patch id="sysstat-2401">
+ <checksum type="sha">d3de77e29165bdbce88310a6ce9f97f3a5368377</checksum>
+ <location href="repodata/patch-sysstat-2401.xml"/>
+ </patch>
+ <patch id="xorg-x11-server-2403">
+ <checksum type="sha">905a98399c20efb91592d2767ec187823c7b154d</checksum>
+ <location href="repodata/patch-xorg-x11-server-2403.xml"/>
+ </patch>
+ <patch id="dazuko-2404">
+ <checksum type="sha">5314e6c2d4e21a38dd2ea05ee0495d7dd27f0931</checksum>
+ <location href="repodata/patch-dazuko-2404.xml"/>
+ </patch>
+ <patch id="cups-2406">
+ <checksum type="sha">329b6083dfe59ddb7d50cb9e92686eb7ecc48d6d</checksum>
+ <location href="repodata/patch-cups-2406.xml"/>
+ </patch>
+ <patch id="squirrelmail-2409">
+ <checksum type="sha">b5ec61bcf901f4270fc3ba6a18926c20102c94c9</checksum>
+ <location href="repodata/patch-squirrelmail-2409.xml"/>
+ </patch>
+ <patch id="wxGTK-2411">
+ <checksum type="sha">c38d7746f8aca8d40347879bfba5d977ca8fc03f</checksum>
+ <location href="repodata/patch-wxGTK-2411.xml"/>
+ </patch>
+ <patch id="ImageMagick-2413">
+ <checksum type="sha">c1dca99b03a2b012c141a64c8fcc494d957baed2</checksum>
+ <location href="repodata/patch-ImageMagick-2413.xml"/>
+ </patch>
+ <patch id="squirrelmail-2417">
+ <checksum type="sha">f239f615760d15515bd4f0316cc99e40d25a6117</checksum>
+ <location href="repodata/patch-squirrelmail-2417.xml"/>
+ </patch>
+ <patch id="MozillaFirefox-2418">
+ <checksum type="sha">f30517b5083e9bc007adf9cc974a36fc7bba3f0b</checksum>
+ <location href="repodata/patch-MozillaFirefox-2418.xml"/>
+ </patch>
+ <patch id="liboil-2419">
+ <checksum type="sha">24769a5bbd9e57cd59806b186088d5f0dffa5e30</checksum>
+ <location href="repodata/patch-liboil-2419.xml"/>
+ </patch>
+ <patch id="MozillaThunderbird-2421">
+ <checksum type="sha">6c2aa38c513f7eeda2b38555182b8200c08f6468</checksum>
+ <location href="repodata/patch-MozillaThunderbird-2421.xml"/>
+ </patch>
+ <patch id="pm-utils-2422">
+ <checksum type="sha">c0b54062cb5b16cbb18d383beb721c60b2a36f72</checksum>
+ <location href="repodata/patch-pm-utils-2422.xml"/>
+ </patch>
+ <patch id="sysvinit-2424">
+ <checksum type="sha">640a5b7ca790a3becc9c26d8434adfac560a14c5</checksum>
+ <location href="repodata/patch-sysvinit-2424.xml"/>
+ </patch>
+ <patch id="java-1_4_2-sun-2425">
+ <checksum type="sha">94c690e13540511db05ee397e9ab5fc9905b086b</checksum>
+ <location href="repodata/patch-java-1_4_2-sun-2425.xml"/>
+ </patch>
+ <patch id="java-1_5_0-sun-2427">
+ <checksum type="sha">fb1786ca30124e82b24e57b694a58da9f920e6b3</checksum>
+ <location href="repodata/patch-java-1_5_0-sun-2427.xml"/>
+ </patch>
+ <patch id="cups-2430">
+ <checksum type="sha">bb6aea44ad2e2ddb0f50842b15f791b7c0a0b346</checksum>
+ <location href="repodata/patch-cups-2430.xml"/>
+ </patch>
+ <patch id="w3m-2433">
+ <checksum type="sha">d9ba43f21238b71a7b8cfb6d9256e404cffb7cc0</checksum>
+ <location href="repodata/patch-w3m-2433.xml"/>
+ </patch>
+ <patch id="unison-2436">
+ <checksum type="sha">42e904686825e904752238b85085771ee51965c7</checksum>
+ <location href="repodata/patch-unison-2436.xml"/>
+ </patch>
+ <patch id="lvm2-2438">
+ <checksum type="sha">cd88e95ae02706069fe6f3031178bf26e9e06d3a</checksum>
+ <location href="repodata/patch-lvm2-2438.xml"/>
+ </patch>
+ <patch id="yast2-sudo-2441">
+ <checksum type="sha">ab7741ef2411c11a7ec941fc8736feebfca73398</checksum>
+ <location href="repodata/patch-yast2-sudo-2441.xml"/>
+ </patch>
+ <patch id="krb5-2442">
+ <checksum type="sha">2f8c1cd5d147c89b06c0898d4392f1196098236f</checksum>
+ <location href="repodata/patch-krb5-2442.xml"/>
+ </patch>
+ <patch id="xorg-x11-server-2444">
+ <checksum type="sha">a26f9f36ed0a0f6a45cb5369234ff44d6c535310</checksum>
+ <location href="repodata/patch-xorg-x11-server-2444.xml"/>
+ </patch>
+ <patch id="sax2-2445">
+ <checksum type="sha">61a24339218f1fd480085fe0e3f754baa8820cb3</checksum>
+ <location href="repodata/patch-sax2-2445.xml"/>
+ </patch>
+ <patch id="python-2446">
+ <checksum type="sha">c37bf9a8ff3810e2c9a674bd9aadfed24f8c2ab2</checksum>
+ <location href="repodata/patch-python-2446.xml"/>
+ </patch>
+ <patch id="cacti-2447">
+ <checksum type="sha">2cdfac93ac338ccf87abe8049f13bb415428a279</checksum>
+ <location href="repodata/patch-cacti-2447.xml"/>
+ </patch>
+ <patch id="kdelibs3-2448">
+ <checksum type="sha">9adf70721a91e7666c40c45c1c2270bd673d2ac4</checksum>
+ <location href="repodata/patch-kdelibs3-2448.xml"/>
+ </patch>
+ <patch id="kdeutils3-extra-2450">
+ <checksum type="sha">d0a21646dc9d1c244e7e35888a0fb52aaeb1b5e2</checksum>
+ <location href="repodata/patch-kdeutils3-extra-2450.xml"/>
+ </patch>
+ <patch id="jarnal-2451">
+ <checksum type="sha">8daf1728afb47779fd28e0021ea6ff55f18f1149</checksum>
+ <location href="repodata/patch-jarnal-2451.xml"/>
+ </patch>
+ <patch id="kdelibs3-2452">
+ <checksum type="sha">a515c1a96ac1b55f50852cfda93a49004ce4c79a</checksum>
+ <location href="repodata/patch-kdelibs3-2452.xml"/>
+ </patch>
+ <patch id="xorg-x11-server-2453">
+ <checksum type="sha">a3f5b8927b7f1f47f347e7ee3ab821995dca00b7</checksum>
+ <location href="repodata/patch-xorg-x11-server-2453.xml"/>
+ </patch>
+ <patch id="cyrus-imapd-2454">
+ <checksum type="sha">4fdf8c67eaa488edbe668ead3d995caa38a1936b</checksum>
+ <location href="repodata/patch-cyrus-imapd-2454.xml"/>
+ </patch>
+ <patch id="opera-2456">
+ <checksum type="sha">5209e7b0a7f89ec7c225de065d4cbc4fbefcbddb</checksum>
+ <location href="repodata/patch-opera-2456.xml"/>
+ </patch>
+ <patch id="mediawiki-2457">
+ <checksum type="sha">669837ce13f07df59ac79ce6201c176342ed27c4</checksum>
+ <location href="repodata/patch-mediawiki-2457.xml"/>
+ </patch>
+ <patch id="compiz-2458">
+ <checksum type="sha">a41806bf5d57c36825ad832be3d0f13d1695d70a</checksum>
+ <location href="repodata/patch-compiz-2458.xml"/>
+ </patch>
+ <patch id="libzypp-2460">
+ <checksum type="sha">bdbbba1841bebd9822458f3a3fb1c88141e78281</checksum>
+ <location href="repodata/patch-libzypp-2460.xml"/>
+ </patch>
+ <patch id="bzip2-2465">
+ <checksum type="sha">1b84ea4aa922b21a7039330c0fdbf2775dd13444</checksum>
+ <location href="repodata/patch-bzip2-2465.xml"/>
+ </patch>
+ <patch id="autoyast2-2466">
+ <checksum type="sha">c7266496955cee3242ae100ffd731ce4323d6b89</checksum>
+ <location href="repodata/patch-autoyast2-2466.xml"/>
+ </patch>
+ <patch id="squid-2467">
+ <checksum type="sha">883f737c6ecedd05670bad4784a37e2c67a8c5da</checksum>
+ <location href="repodata/patch-squid-2467.xml"/>
+ </patch>
+ <patch id="totem-2468">
+ <checksum type="sha">538c771158fa860793ed285990641b1ed04330b5</checksum>
+ <location href="repodata/patch-totem-2468.xml"/>
+ </patch>
+ <patch id="java-1_4_2-sun-demo-2469">
+ <checksum type="sha">32ae23cb16bff2f8e6ec4ba168e6a75d541efc8c</checksum>
+ <location href="repodata/patch-java-1_4_2-sun-demo-2469.xml"/>
+ </patch>
+ <patch id="ulogd-2470">
+ <checksum type="sha">cea742686fabc65af02a9dd7bea89b39cbdb62c1</checksum>
+ <location href="repodata/patch-ulogd-2470.xml"/>
+ </patch>
+ <patch id="xpdf-tools-2472">
+ <checksum type="sha">8f021c3fec51df6155c44276b87260bbf074c0a2</checksum>
+ <location href="repodata/patch-xpdf-tools-2472.xml"/>
+ </patch>
+ <patch id="xpdf-2473">
+ <checksum type="sha">73e3b82edf6537e759d3c7fe103654baad9155cf</checksum>
+ <location href="repodata/patch-xpdf-2473.xml"/>
+ </patch>
+ <patch id="neon-2476">
+ <checksum type="sha">9b83d8d408138a521c7926be0c569047eb5d866a</checksum>
+ <location href="repodata/patch-neon-2476.xml"/>
+ </patch>
+ <patch id="libzypp-2477">
+ <checksum type="sha">837cb40fa331f256281577e8ca81fe73b9c27e2a</checksum>
+ <location href="repodata/patch-libzypp-2477.xml"/>
+ </patch>
+ <patch id="gtk2-2479">
+ <checksum type="sha">050a31137f1ff1ca986c27addaf894deaa10b6ad</checksum>
+ <location href="repodata/patch-gtk2-2479.xml"/>
+ </patch>
+ <patch id="nss_ldap-2480">
+ <checksum type="sha">cd51f150dda049a82acca2ef4b0524465947ddc2</checksum>
+ <location href="repodata/patch-nss_ldap-2480.xml"/>
+ </patch>
+ <patch id="cups-2481">
+ <checksum type="sha">ec3095ea0c8b996b49061d79f7afb780ab4ea84b</checksum>
+ <location href="repodata/patch-cups-2481.xml"/>
+ </patch>
+ <patch id="bluez-utils-2482">
+ <checksum type="sha">c53aeb36ef68f4f1b6e6ac0f38df63c22f22359d</checksum>
+ <location href="repodata/patch-bluez-utils-2482.xml"/>
+ </patch>
+ <patch id="xine-lib-2487">
+ <checksum type="sha">31c74fc5d4ba42bf3301fa95b806caa978659127</checksum>
+ <location href="repodata/patch-xine-lib-2487.xml"/>
+ </patch>
+ <patch id="kdegraphics3-2489">
+ <checksum type="sha">7cbcd6c1064568aeb0e523d2587336e742e44fcb</checksum>
+ <location href="repodata/patch-kdegraphics3-2489.xml"/>
+ </patch>
+ <patch id="xorg-x11-Xvnc-2491">
+ <checksum type="sha">4f331f6ea3e5c5a90f66a871162114ca94f92f76</checksum>
+ <location href="repodata/patch-xorg-x11-Xvnc-2491.xml"/>
+ </patch>
+ <patch id="bluez-utils-2492">
+ <checksum type="sha">b5a4c65f2356613b4de6ad1bc2dd0582e77b0ee6</checksum>
+ <location href="repodata/patch-bluez-utils-2492.xml"/>
+ </patch>
+ <patch id="koffice-2495">
+ <checksum type="sha">18e4e361c7688a57f7b7963c359fee4f58d29b08</checksum>
+ <location href="repodata/patch-koffice-2495.xml"/>
+ </patch>
+ <patch id="gtk2-2499">
+ <checksum type="sha">f812f28e10039b5bfd249e3902b905e92a7eb769</checksum>
+ <location href="repodata/patch-gtk2-2499.xml"/>
+ </patch>
+ <patch id="hal-2500">
+ <checksum type="sha">90c4516d8073322a05f4235dbe1f7c4770c6e4e0</checksum>
+ <location href="repodata/patch-hal-2500.xml"/>
+ </patch>
+ <patch id="libsoup-2503">
+ <checksum type="sha">7d9f7a7fdd96843f5d962aef984cc0c5c2534f30</checksum>
+ <location href="repodata/patch-libsoup-2503.xml"/>
+ </patch>
+ <patch id="squid-2504">
+ <checksum type="sha">fffd63b332907c46b926499e27b6ec0ad9025ddb</checksum>
+ <location href="repodata/patch-squid-2504.xml"/>
+ </patch>
+ <patch id="acroread-2506">
+ <checksum type="sha">b0bbd764da5ec2651bf030e7051d045341ddbdd7</checksum>
+ <location href="repodata/patch-acroread-2506.xml"/>
+ </patch>
+ <patch id="flash-player-2509">
+ <checksum type="sha">5e2c95f36ceb9c7d94c4a2df8ec60aaf36dde810</checksum>
+ <location href="repodata/patch-flash-player-2509.xml"/>
+ </patch>
+ <patch id="compat-g77-2510">
+ <checksum type="sha">11a15f477e35a5e4879a8883074c13e6ab321141</checksum>
+ <location href="repodata/patch-compat-g77-2510.xml"/>
+ </patch>
+ <patch id="libgtop-2512">
+ <checksum type="sha">c71c5d298bf5b11fcc0c0865b1302a7ba9970c0c</checksum>
+ <location href="repodata/patch-libgtop-2512.xml"/>
+ </patch>
+ <patch id="zypper-2513">
+ <checksum type="sha">fb916bb899aa6d2b1ae8d211ee84ceb0a66f1fd8</checksum>
+ <location href="repodata/patch-zypper-2513.xml"/>
+ </patch>
+ <patch id="smb4k-2514">
+ <checksum type="sha">558c89fe1d04efa2d7c5988be9344376f2eacace</checksum>
+ <location href="repodata/patch-smb4k-2514.xml"/>
+ </patch>
+ <patch id="amarok-2516">
+ <checksum type="sha">18473edb5c4b6853aea94db3883bcfe496b5b6ee</checksum>
+ <location href="repodata/patch-amarok-2516.xml"/>
+ </patch>
+ <patch id="yast2-trans-de-2518">
+ <checksum type="sha">4c3d0446ffd36ce86b40da43135913a18349ef44</checksum>
+ <location href="repodata/patch-yast2-trans-de-2518.xml"/>
+ </patch>
+ <patch id="compiz-2519">
+ <checksum type="sha">188b82cfb54dd61f0fe0e5beea054d5a9591e0a5</checksum>
+ <location href="repodata/patch-compiz-2519.xml"/>
+ </patch>
+ <patch id="fetchmail-2520">
+ <checksum type="sha">85a08c9bc4eebac24854a9eb7da257a3fe8f5b6d</checksum>
+ <location href="repodata/patch-fetchmail-2520.xml"/>
+ </patch>
+ <patch id="spamassassin-2523">
+ <checksum type="sha">e711370f446cf3538fbaf64c9faaf0eadaedb580</checksum>
+ <location href="repodata/patch-spamassassin-2523.xml"/>
+ </patch>
+ <patch id="libzypp-2524">
+ <checksum type="sha">16921f0179c7c3dcb504b9ffb82abd32e84086ac</checksum>
+ <location href="repodata/patch-libzypp-2524.xml"/>
+ </patch>
+ <patch id="yast2-printer-2525">
+ <checksum type="sha">147a7b5f084395bd427c273ba8f25f312cc87193</checksum>
+ <location href="repodata/patch-yast2-printer-2525.xml"/>
+ </patch>
+ <patch id="powersave-2526">
+ <checksum type="sha">afd07ae38e0585e615022a7df3cd469c2c99fdbb</checksum>
+ <location href="repodata/patch-powersave-2526.xml"/>
+ </patch>
+ <patch id="cups-2527">
+ <checksum type="sha">5b9d9747bffc3368ea2f7c8c7b3ff8e0cc4605f7</checksum>
+ <location href="repodata/patch-cups-2527.xml"/>
+ </patch>
+ <patch id="bind-2529">
+ <checksum type="sha">1b1c1fdb9ad132cd6504c8b437cfe519bc9c0dfa</checksum>
+ <location href="repodata/patch-bind-2529.xml"/>
+ </patch>
+ <patch id="libzypp-2533">
+ <checksum type="sha">2af5b888f4f4c9b9be8b9bc2aaae02efd436b924</checksum>
+ <location href="repodata/patch-libzypp-2533.xml"/>
+ </patch>
+ <patch id="chmlib-2536">
+ <checksum type="sha">664ef6d8c867824f20b15a9af4d2957fd79897bd</checksum>
+ <location href="repodata/patch-chmlib-2536.xml"/>
+ </patch>
+ <patch id="kchmviewer-2539">
+ <checksum type="sha">ad29afc8f5dd7ca1f4faa4a2aaed644c80d844b6</checksum>
+ <location href="repodata/patch-kchmviewer-2539.xml"/>
+ </patch>
+ <patch id="rrdtool-2540">
+ <checksum type="sha">8cc33adb78b9fccccc7f2fc03d5df13f8a79eae5</checksum>
+ <location href="repodata/patch-rrdtool-2540.xml"/>
+ </patch>
+ <patch id="yast2-sound-2541">
+ <checksum type="sha">ccece044c2ba608c8233d70a4aa68c466c1862f1</checksum>
+ <location href="repodata/patch-yast2-sound-2541.xml"/>
+ </patch>
+ <patch id="fetchmail-2542">
+ <checksum type="sha">339f1a841955652ccaccd9c9e936c21abe85a2f2</checksum>
+ <location href="repodata/patch-fetchmail-2542.xml"/>
+ </patch>
+ <patch id="kdenetwork3-InstantMessenger-2547">
+ <checksum type="sha">3ef0e4f08055c2f458c0efa5dfdd4d7aee384122</checksum>
+ <location href="repodata/patch-kdenetwork3-InstantMessenger-2547.xml"/>
+ </patch>
+ <patch id="openssl-2548">
+ <checksum type="sha">67602c57de3f98ffd2c7434b6952f79481feceb8</checksum>
+ <location href="repodata/patch-openssl-2548.xml"/>
+ </patch>
+ <patch id="autofs-2549">
+ <checksum type="sha">4da7e1958d56142f48d99b9ab1b16425aeb0cd96</checksum>
+ <location href="repodata/patch-autofs-2549.xml"/>
+ </patch>
+ <patch id="qemu-2550">
+ <checksum type="sha">940c331de3e40be9f570e012b8ca9bbab6d594d2</checksum>
+ <location href="repodata/patch-qemu-2550.xml"/>
+ </patch>
+ <patch id="cross-avr-binutils-2551">
+ <checksum type="sha">da26f814db1c2f04cd8fc27495aecdbd66f73daf</checksum>
+ <location href="repodata/patch-cross-avr-binutils-2551.xml"/>
+ </patch>
+ <patch id="digikam-2552">
+ <checksum type="sha">299f0dff3447555cea60a63fdf97e81e1bd56096</checksum>
+ <location href="repodata/patch-digikam-2552.xml"/>
+ </patch>
+ <patch id="samba-2555">
+ <checksum type="sha">a7a501a1465dfcb3e125d14c1a67efd2638be166</checksum>
+ <location href="repodata/patch-samba-2555.xml"/>
+ </patch>
+ <patch id="fetchmail-2563">
+ <checksum type="sha">10b87459f9209a43097bebd31f9ec8cff4354c11</checksum>
+ <location href="repodata/patch-fetchmail-2563.xml"/>
+ </patch>
+ <patch id="kdegraphics3-pdf-2565">
+ <checksum type="sha">8d0d0b963c5fa85c92d5a9b5c86c88063b2faf8e</checksum>
+ <location href="repodata/patch-kdegraphics3-pdf-2565.xml"/>
+ </patch>
+ <patch id="koffice-wordprocessing-2577">
+ <checksum type="sha">5f43e01206494f0d0cbab846bfbb157285e22efc</checksum>
+ <location href="repodata/patch-koffice-wordprocessing-2577.xml"/>
+ </patch>
+ <patch id="samba-2584">
+ <checksum type="sha">5e86626239c4798708e7d2432708cf98d6a001d2</checksum>
+ <location href="repodata/patch-samba-2584.xml"/>
+ </patch>
+ <patch id="ImageMagick-2585">
+ <checksum type="sha">5af58df93d8f36428726d0cf55fc5bb6a18a8bfd</checksum>
+ <location href="repodata/patch-ImageMagick-2585.xml"/>
+ </patch>
+ <patch id="poppler-2590">
+ <checksum type="sha">924e7f989e3d6f159e717e2d76b21de572ce7ec2</checksum>
+ <location href="repodata/patch-poppler-2590.xml"/>
+ </patch>
+ <patch id="NetworkManager-kde-2591">
+ <checksum type="sha">93a54883e5b9170839fc81a72c534f76e7987c19</checksum>
+ <location href="repodata/patch-NetworkManager-kde-2591.xml"/>
+ </patch>
+ <patch id="GraphicsMagick-2593">
+ <checksum type="sha">64a57f29d835e46f7f00e939d4b505cb546d0654</checksum>
+ <location href="repodata/patch-GraphicsMagick-2593.xml"/>
+ </patch>
+ <patch id="chmlib-2595">
+ <checksum type="sha">88ee8256ac3875e2b087ab9723bb13f071f9de73</checksum>
+ <location href="repodata/patch-chmlib-2595.xml"/>
+ </patch>
+ <patch id="gpdf-2596">
+ <checksum type="sha">115f31bcb61f37f264daa4b0ef8220816be05de7</checksum>
+ <location href="repodata/patch-gpdf-2596.xml"/>
+ </patch>
+ <patch id="kdenetwork3-InstantMessenger-2599">
+ <checksum type="sha">c5a5fd01f5266d3f30fe33b5fc1679b35af3d4d4</checksum>
+ <location href="repodata/patch-kdenetwork3-InstantMessenger-2599.xml"/>
+ </patch>
+ <patch id="kdebase3-2600">
+ <checksum type="sha">b6654a37408c21d66e60cf7a78a1cddb991b797a</checksum>
+ <location href="repodata/patch-kdebase3-2600.xml"/>
+ </patch>
+ <patch id="pam-2601">
+ <checksum type="sha">fd76c123487f884cf10b161c87afe5b7bc9f05f8</checksum>
+ <location href="repodata/patch-pam-2601.xml"/>
+ </patch>
+ <patch id="fetchmail-2602">
+ <checksum type="sha">d3533c47354977c9f821eb4e579c43ea919d4488</checksum>
+ <location href="repodata/patch-fetchmail-2602.xml"/>
+ </patch>
+ <patch id="novfs-kmp-bigsmp-2630">
+ <checksum type="sha">06f48c215e805213e339fa581670fb35e2151786</checksum>
+ <location href="repodata/patch-novfs-kmp-bigsmp-2630.xml"/>
+ </patch>
+ <patch id="clamav-2632">
+ <checksum type="sha">b5217b10a1a3e513085665d994dded954a72e884</checksum>
+ <location href="repodata/patch-clamav-2632.xml"/>
+ </patch>
+ <patch id="timezone-2634">
+ <checksum type="sha">e2d31e95095a1c7dd242c577f3a394a39d7e75be</checksum>
+ <location href="repodata/patch-timezone-2634.xml"/>
+ </patch>
+ <patch id="gwenview-2637">
+ <checksum type="sha">b6f7e30d0d8f3e699e8593a178b5fd63c865ad0e</checksum>
+ <location href="repodata/patch-gwenview-2637.xml"/>
+ </patch>
+ <patch id="wireshark-2638">
+ <checksum type="sha">7ebc8745836d63bdfee712bca5c71ba328877047</checksum>
+ <location href="repodata/patch-wireshark-2638.xml"/>
+ </patch>
+ <patch id="hal-resmgr-2639">
+ <checksum type="sha">4eb206f1dba689554bc3e113fd87ad2a4fcdbf78</checksum>
+ <location href="repodata/patch-hal-resmgr-2639.xml"/>
+ </patch>
+ <patch id="klamav-2640">
+ <checksum type="sha">505cc81dc924efb58154806700b1d261cc33fbb9</checksum>
+ <location href="repodata/patch-klamav-2640.xml"/>
+ </patch>
+ <patch id="ekiga-2641">
+ <checksum type="sha">3d960c76d7dd38393c631c63212f0a8c4f08ad98</checksum>
+ <location href="repodata/patch-ekiga-2641.xml"/>
+ </patch>
+ <patch id="libwpd-2642">
+ <checksum type="sha">b31ced09fece6d2f9fad37653acfda9eb9e7ba2b</checksum>
+ <location href="repodata/patch-libwpd-2642.xml"/>
+ </patch>
+ <patch id="rubygems-2644">
+ <checksum type="sha">26a5b6e1a3c77afa7fd77171bcbef2d78f7df11f</checksum>
+ <location href="repodata/patch-rubygems-2644.xml"/>
+ </patch>
+ <patch id="MozillaFirefox-2647">
+ <checksum type="sha">420d992e8b4436cc7ebc0609183ba040db340dc5</checksum>
+ <location href="repodata/patch-MozillaFirefox-2647.xml"/>
+ </patch>
+ <patch id="koffice-wordprocessing-2648">
+ <checksum type="sha">bf0b411e4eb5494a27ebef8d5b9cd923da4fe2c8</checksum>
+ <location href="repodata/patch-koffice-wordprocessing-2648.xml"/>
+ </patch>
+ <patch id="agfa-fonts-2650">
+ <checksum type="sha">19126ca4e55852b98ffa69c6c3fcff12743af49c</checksum>
+ <location href="repodata/patch-agfa-fonts-2650.xml"/>
+ </patch>
+ <patch id="OpenOffice_org-2652">
+ <checksum type="sha">0bbcdeab9294272a677f9b4a7b57e13701244010</checksum>
+ <location href="repodata/patch-OpenOffice_org-2652.xml"/>
+ </patch>
+ <patch id="gdm-2653">
+ <checksum type="sha">df03ccdfcb0f188ac3072c5086ab86b425a66f8e</checksum>
+ <location href="repodata/patch-gdm-2653.xml"/>
+ </patch>
+ <patch id="ruby-2655">
+ <checksum type="sha">8ffefa033ac19a70938a7af71854184d6b902e45</checksum>
+ <location href="repodata/patch-ruby-2655.xml"/>
+ </patch>
+ <patch id="sylpheed-claws-2685">
+ <checksum type="sha">df121b6b7cc82715a4544f491a0104b50a28eb20</checksum>
+ <location href="repodata/patch-sylpheed-claws-2685.xml"/>
+ </patch>
+ <patch id="php5-2687">
+ <checksum type="sha">f34eb5a2f4399578c78e6dca5dd165077787c806</checksum>
+ <location href="repodata/patch-php5-2687.xml"/>
+ </patch>
+ <patch id="klamav-2688">
+ <checksum type="sha">da442e32fe4401897261051bf817e1a029e804c3</checksum>
+ <location href="repodata/patch-klamav-2688.xml"/>
+ </patch>
+ <patch id="clamav-2690">
+ <checksum type="sha">ff002a87486fbd2c68b445e58b6ac0d307e8dbad</checksum>
+ <location href="repodata/patch-clamav-2690.xml"/>
+ </patch>
+ <patch id="seamonkey-2691">
+ <checksum type="sha">fd8198e09f073515c67cf90a879ff57bfde0cfa9</checksum>
+ <location href="repodata/patch-seamonkey-2691.xml"/>
+ </patch>
+ <patch id="gnokii-2689">
+ <checksum type="sha">2453275e874a7d65c9f21cc50885f50202d617bf</checksum>
+ <location href="repodata/patch-gnokii-2689.xml"/>
+ </patch>
+ <patch id="doxygen-2694">
+ <checksum type="sha">fad24b42e3d7d8c35e410017ca85dd375f2b7f1d</checksum>
+ <location href="repodata/patch-doxygen-2694.xml"/>
+ </patch>
+ <patch id="enlightenment-2695">
+ <checksum type="sha">e74c7b27498161c9ba056869ba1813658f4ef4e0</checksum>
+ <location href="repodata/patch-enlightenment-2695.xml"/>
+ </patch>
+ <patch id="gnome-terminal-2696">
+ <checksum type="sha">36f9b9e6ff739fe7d82a58b59fcb74be6581a752</checksum>
+ <location href="repodata/patch-gnome-terminal-2696.xml"/>
+ </patch>
+ <patch id="kpowersave-2698">
+ <checksum type="sha">c1e569e948b46ddcd33369c9479e6ad92fb8c7ec</checksum>
+ <location href="repodata/patch-kpowersave-2698.xml"/>
+ </patch>
+ <patch id="clamav-2700">
+ <checksum type="sha">3dd423deeb41c58b11f54184d59367d152d78f24</checksum>
+ <location href="repodata/patch-clamav-2700.xml"/>
+ </patch>
+ <patch id="autofs-2703">
+ <checksum type="sha">678cae267889c434cbdd81654066244270a341b6</checksum>
+ <location href="repodata/patch-autofs-2703.xml"/>
+ </patch>
+ <patch id="ivtv-kmp-bigsmp-2704">
+ <checksum type="sha">9539aa93b99854e21cc69248bd82249f75a6f6e0</checksum>
+ <location href="repodata/patch-ivtv-kmp-bigsmp-2704.xml"/>
+ </patch>
+ <patch id="kernel-2705">
+ <checksum type="sha">fedf719a3be03d6c93fc04f78b50ce7be1465606</checksum>
+ <location href="repodata/patch-kernel-2705.xml"/>
+ </patch>
+ <patch id="yast2-printer-2706">
+ <checksum type="sha">b95d82b3c1e22c1ce2ec2ea96ffb9ba94e1a2adb</checksum>
+ <location href="repodata/patch-yast2-printer-2706.xml"/>
+ </patch>
+ <patch id="MozillaThunderbird-2734">
+ <checksum type="sha">be5018a378fbce22ad2f1f94266f251dfb0fecc2</checksum>
+ <location href="repodata/patch-MozillaThunderbird-2734.xml"/>
+ </patch>
+ <patch id="gstreamer010-plugins-base-2737">
+ <checksum type="sha">93496c003d8a1565e88fa37bc28b62b685b86223</checksum>
+ <location href="repodata/patch-gstreamer010-plugins-base-2737.xml"/>
+ </patch>
+ <patch id="gstreamer010-plugins-base-2805">
+ <checksum type="sha">40b9fd23e3eb4141d8b28794c40aeebdee7dcc1d</checksum>
+ <location href="repodata/patch-gstreamer010-plugins-base-2805.xml"/>
+ </patch>
+ <patch id="evolution-2824">
+ <checksum type="sha">7d6301a829eda6ff7ab006302c38943693defd44</checksum>
+ <location href="repodata/patch-evolution-2824.xml"/>
+ </patch>
+ <patch id="avahi-2982">
+ <checksum type="sha">c338bfb439e94dc27774a76d860285577b9ade19</checksum>
+ <location href="repodata/patch-avahi-2982.xml"/>
+ </patch>
+ <patch id="syslog-ng-2984">
+ <checksum type="sha">eb0c412124838a4ff2ff884642a88fac1578da8f</checksum>
+ <location href="repodata/patch-syslog-ng-2984.xml"/>
+ </patch>
+ <patch id="tomcat5-2985">
+ <checksum type="sha">95ce884347ae5fb4f8b030f9e302f75dec58cefd</checksum>
+ <location href="repodata/patch-tomcat5-2985.xml"/>
+ </patch>
+ <patch id="xine-lib-2989">
+ <checksum type="sha">91dba1fffdd033eb289fec17dd2a288658dbb586</checksum>
+ <location href="repodata/patch-xine-lib-2989.xml"/>
+ </patch>
+ <patch id="xorg-x11-libs-3070">
+ <checksum type="sha">069398c5d7b94dc32c6102243b478584a76b84bb</checksum>
+ <location href="repodata/patch-xorg-x11-libs-3070.xml"/>
+ </patch>
+ <patch id="rekall-2991">
+ <checksum type="sha">2c534ad1e2a36b668f7d22f37b5e0457f5892359</checksum>
+ <location href="repodata/patch-rekall-2991.xml"/>
+ </patch>
+ <patch id="gpg-2995">
+ <checksum type="sha">bce7d390d3db0bdedf63304a9b739645e7c10eb8</checksum>
+ <location href="repodata/patch-gpg-2995.xml"/>
+ </patch>
+ <patch id="gstreamer010-plugins-base-2992">
+ <checksum type="sha">5d0fa6b2d1a729ed86d6bdc54bb3eeabb1bfea38</checksum>
+ <location href="repodata/patch-gstreamer010-plugins-base-2992.xml"/>
+ </patch>
+ <patch id="unrar-2996">
+ <checksum type="sha">c1e7abcd4dc9ffda6f97dc8c98e68d36f0fa51e5</checksum>
+ <location href="repodata/patch-unrar-2996.xml"/>
+ </patch>
+ <patch id="ktorrent-2998">
+ <checksum type="sha">ff9e274c83ef488d9eed486c7eae9f2952d4c29e</checksum>
+ <location href="repodata/patch-ktorrent-2998.xml"/>
+ </patch>
+ <patch id="ekiga-3023">
+ <checksum type="sha">2dd405d9651c0f9b87412b07488d4b03796390e9</checksum>
+ <location href="repodata/patch-ekiga-3023.xml"/>
+ </patch>
+ <patch id="krb5-apps-servers-3021">
+ <checksum type="sha">f4b8a55a8b737a513c4531487888ff231126cce9</checksum>
+ <location href="repodata/patch-krb5-apps-servers-3021.xml"/>
+ </patch>
+ <patch id="pam_ssh-3024">
+ <checksum type="sha">5413228a54cf99ce20ad08e6917605f7a9ceeabe</checksum>
+ <location href="repodata/patch-pam_ssh-3024.xml"/>
+ </patch>
+ <patch id="TeXmacs-3030">
+ <checksum type="sha">a17b3f3406caf33fb9160d2464b0945bc2b0a8ad</checksum>
+ <location href="repodata/patch-TeXmacs-3030.xml"/>
+ </patch>
+ <patch id="perl-Bootloader-3029">
+ <checksum type="sha">2ec2f7e3abf84e60ce2a2e3935e3373242f97d27</checksum>
+ <location href="repodata/patch-perl-Bootloader-3029.xml"/>
+ </patch>
+ <patch id="kernel-3032">
+ <checksum type="sha">b83c95c8f2337d42ea1b8b1e606ca83c8acc17b8</checksum>
+ <location href="repodata/patch-kernel-3032.xml"/>
+ </patch>
+ <patch id="NetworkManager-3031">
+ <checksum type="sha">89d9e49eb0c49803ab2bd5d51570f8e688f93196</checksum>
+ <location href="repodata/patch-NetworkManager-3031.xml"/>
+ </patch>
+ <patch id="file-3033">
+ <checksum type="sha">9501fa94de1e6e9a896cc2e29d66424e17d429e4</checksum>
+ <location href="repodata/patch-file-3033.xml"/>
+ </patch>
+ <patch id="squid-3036">
+ <checksum type="sha">882e3dad4edfc0e2e923d4fc49c78341acea368d</checksum>
+ <location href="repodata/patch-squid-3036.xml"/>
+ </patch>
+ <patch id="libwpd-3038">
+ <checksum type="sha">03671597239a76a8716da20528d4a71d24e44825</checksum>
+ <location href="repodata/patch-libwpd-3038.xml"/>
+ </patch>
+ <patch id="opensuse-updater-3037">
+ <checksum type="sha">f6a3e069f70f9250d7ae0c5f7497999714552ddc</checksum>
+ <location href="repodata/patch-opensuse-updater-3037.xml"/>
+ </patch>
+ <patch id="krb5-3045">
+ <checksum type="sha">a7a9803370986ec4de2913c416db11a0c207d8a1</checksum>
+ <location href="repodata/patch-krb5-3045.xml"/>
+ </patch>
+ <patch id="qt3-3048">
+ <checksum type="sha">4b3f9bbb0f413a4b70392219f501ad782e5c647a</checksum>
+ <location href="repodata/patch-qt3-3048.xml"/>
+ </patch>
+ <patch id="gwenview-3055">
+ <checksum type="sha">7f65de9106151c59e1b91eab1c195e5765445894</checksum>
+ <location href="repodata/patch-gwenview-3055.xml"/>
+ </patch>
+ <patch id="libqt4-3056">
+ <checksum type="sha">1c801d3a719e843a50f43faceff0bd2bf77f3e82</checksum>
+ <location href="repodata/patch-libqt4-3056.xml"/>
+ </patch>
+ <patch id="ktorrent-3057">
+ <checksum type="sha">06cd8e287e5cc94bf936726e9a8540283ad42af5</checksum>
+ <location href="repodata/patch-ktorrent-3057.xml"/>
+ </patch>
+ <patch id="kdelibs3-3058">
+ <checksum type="sha">555d3279e2485cae5feb3a7c57b0ee0f16ae8ba6</checksum>
+ <location href="repodata/patch-kdelibs3-3058.xml"/>
+ </patch>
+ <patch id="inkscape-3062">
+ <checksum type="sha">cd767b5b8690e08ec5b1f231641cd6a4a7d1dec4</checksum>
+ <location href="repodata/patch-inkscape-3062.xml"/>
+ </patch>
+ <patch id="perl-Bootloader-3059">
+ <checksum type="sha">24e57eaa5bc4c6080577f7555b9b28ba30c298e6</checksum>
+ <location href="repodata/patch-perl-Bootloader-3059.xml"/>
+ </patch>
+ <patch id="scpm-3064">
+ <checksum type="sha">262095e2c3ad96a3c892c0e06baad6c995ac52b9</checksum>
+ <location href="repodata/patch-scpm-3064.xml"/>
+ </patch>
+ <patch id="mediawiki-3065">
+ <checksum type="sha">beba36db67a885e7a43a2b8d0f5b6a1e394fad39</checksum>
+ <location href="repodata/patch-mediawiki-3065.xml"/>
+ </patch>
+ <patch id="freetype2-3066">
+ <checksum type="sha">079e72f31dcd4e20a786501b6670d581480cb249</checksum>
+ <location href="repodata/patch-freetype2-3066.xml"/>
+ </patch>
+ <patch id="xorg-x11-libX11-3069">
+ <checksum type="sha">b7bf854b78d3ba9488e4a9c46bf48d6e7501ead5</checksum>
+ <location href="repodata/patch-xorg-x11-libX11-3069.xml"/>
+ </patch>
+ <patch id="xorg-x11-server-3071">
+ <checksum type="sha">8dd539e1cb8196a3bde56ec0e5d9717bf74d3696</checksum>
+ <location href="repodata/patch-xorg-x11-server-3071.xml"/>
+ </patch>
+ <patch id="xmms-3073">
+ <checksum type="sha">f96cebcb74f4e9067976240f8da5dff3dbc954e3</checksum>
+ <location href="repodata/patch-xmms-3073.xml"/>
+ </patch>
+</patches>
Added: trunk/libzypp/tests/parser/yum/data/repomd-1.xml
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/parser/yum/data/repomd-1.xml?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/tests/parser/yum/data/repomd-1.xml (added)
+++ trunk/libzypp/tests/parser/yum/data/repomd-1.xml Thu Apr 12 17:43:21 2007
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<repomd xmlns="http://linux.duke.edu/metadata/repo">
+ <data type="patches">
+ <location href="repodata/patches.xml"/>
+ <checksum type="sha">63d86413540fbb2647e5b5de556d4e4b53f032d9</checksum>
+ <timestamp>1176225512</timestamp>
+ <open-checksum type="sha">63d86413540fbb2647e5b5de556d4e4b53f032d9</open-checksum>
+ </data>
+ <data type="other">
+ <location href="repodata/other.xml.gz"/>
+ <checksum type="sha">f76cb1f9f1963edc614848944b99e2664eba4b4a</checksum>
+ <timestamp>1176225558</timestamp>
+ <open-checksum type="sha">f9cf4f4520ebe75e4bd66c1572521b414dfea564</open-checksum>
+ </data>
+ <data type="primary">
+ <location href="repodata/primary.xml.gz"/>
+ <checksum type="sha">fd1ea55f143820333b702cda4f97b286daf65171</checksum>
+ <timestamp>1176225549</timestamp>
+ <open-checksum type="sha">3bfb8413a4698b86f632bb914f6dc8a4e3ac9660</open-checksum>
+ </data>
+ <data type="filelists">
+ <location href="repodata/filelists.xml.gz"/>
+ <checksum type="sha">689fecabbb0907f51f5bb7211048e091c6f2bc84</checksum>
+ <timestamp>1176225550</timestamp>
+ <open-checksum type="sha">ce38366eaded03cb8b3fdc64bb31ea5304e9901c</open-checksum>
+ </data>
+</repomd>
Added: trunk/libzypp/tests/parser/yum/data/repomd-1.xml.solution
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/parser/yum/data/repomd-1.xml.solution?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/tests/parser/yum/data/repomd-1.xml.solution (added)
+++ trunk/libzypp/tests/parser/yum/data/repomd-1.xml.solution Thu Apr 12 17:43:21 2007
@@ -0,0 +1,17 @@
+patches
+sha1
+63d86413540fbb2647e5b5de556d4e4b53f032d9
+repodata/patches.xml
+other
+sha1
+f76cb1f9f1963edc614848944b99e2664eba4b4a
+repodata/other.xml.gz
+primary
+sha1
+fd1ea55f143820333b702cda4f97b286daf65171
+repodata/primary.xml.gz
+filelists
+sha1
+689fecabbb0907f51f5bb7211048e091c6f2bc84
+repodata/filelists.xml.gz
+
Modified: trunk/libzypp/zypp/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/CMakeLists.txt?rev=5362&r1=5361&r2=5362&view=diff
==============================================================================
--- trunk/libzypp/zypp/CMakeLists.txt (original)
+++ trunk/libzypp/zypp/CMakeLists.txt Thu Apr 12 17:43:21 2007
@@ -533,6 +533,8 @@
parser/yum/YUMPrimaryParser.cc
parser/yum/YUMProductParser.cc
parser/yum/YUMRepomdParser.cc
+ parser/yum/RepomdFileReader.cc
+ parser/yum/PatchesFileReader.cc
)
SET( zypp_parser_yum_HEADERS
@@ -547,6 +549,8 @@
parser/yum/YUMPrimaryParser.h
parser/yum/YUMProductParser.h
parser/yum/YUMRepomdParser.h
+ parser/yum/RepomdFileReader.h
+ parser/yum/PatchesReader.cc
parser/yum/schemanames.h
)
Added: trunk/libzypp/zypp/parser/yum/PatchesFileReader.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/PatchesFileReader.cc?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/zypp/parser/yum/PatchesFileReader.cc (added)
+++ trunk/libzypp/zypp/parser/yum/PatchesFileReader.cc Thu Apr 12 17:43:21 2007
@@ -0,0 +1,77 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+
+#include <fstream>
+#include "zypp/base/String.h"
+#include "zypp/base/Logger.h"
+#include "zypp/parser/yum/PatchesFileReader.h"
+
+
+using namespace std;
+using namespace zypp::xml;
+
+namespace zypp { namespace source { namespace yum {
+
+PatchesFileReader::PatchesFileReader( const Pathname &repomd_file, ProcessResource callback )
+ : _tag(tag_NONE), _callback(callback)
+{
+ Reader reader( repomd_file );
+ MIL << "Reading " << repomd_file << endl;
+ reader.foreachNode( bind( &PatchesFileReader::consumeNode, this, _1 ) );
+}
+
+bool PatchesFileReader::consumeNode( Reader & reader_r )
+{
+ //MIL << reader_r->name() << endl;
+ std::string data_type;
+ if ( reader_r->nodeType() == XML_READER_TYPE_ELEMENT )
+ {
+ if ( reader_r->name() == "repomd" )
+ {
+ _tag = tag_Patches;
+ return true;
+ }
+ if ( reader_r->name() == "data" )
+ {
+ _tag = tag_Data;
+ _type = reader_r->getAttribute("type").asString();
+ return true;
+ }
+ if ( reader_r->name() == "location" )
+ {
+ _tag = tag_Location;
+ _location.filename( reader_r->getAttribute("href").asString() );
+ return true;
+ }
+ if ( reader_r->name() == "checksum" )
+ {
+ _tag = tag_CheckSum;
+ string checksum_type = reader_r->getAttribute("type").asString() ;
+ string checksum_vaue = reader_r.nodeText().asString();
+ _location.checksum( CheckSum( checksum_type, checksum_vaue ) );
+ return true;
+ }
+ if ( reader_r->name() == "timestamp" )
+ {
+ // ignore it
+ return true;
+ }
+ }
+ else if ( reader_r->nodeType() == XML_READER_TYPE_END_ELEMENT )
+ {
+ //MIL << "end element" << endl;
+ if ( reader_r->name() == "data" )
+ _callback( _location, _type );
+ return true;
+ }
+ return true;
+}
+
+} } } //ns zypp::source::yum
+
Added: trunk/libzypp/zypp/parser/yum/PatchesFileReader.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/PatchesFileReader.h?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/zypp/parser/yum/PatchesFileReader.h (added)
+++ trunk/libzypp/zypp/parser/yum/PatchesFileReader.h Thu Apr 12 17:43:21 2007
@@ -0,0 +1,61 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef zypp_source_yum_PatchesFileReader_H
+#define zypp_source_yum_PatchesFileReader_H
+
+#include "zypp/Date.h"
+#include "zypp/CheckSum.h"
+#include "zypp/OnMediaLocation.h"
+#include "zypp/base/Function.h"
+#include "zypp/parser/xml/Reader.h"
+
+using namespace std;
+using namespace zypp::xml;
+
+namespace zypp
+{
+ namespace source
+ {
+ namespace yum
+ {
+
+ class PatchesFileReader
+ {
+ public:
+ typedef function ProcessResource;
+
+ enum Tag
+ {
+ tag_NONE,
+ tag_Patches,
+ tag_Data,
+ tag_Location,
+ tag_CheckSum,
+ tag_Timestamp,
+ tag_OpenCheckSum
+ };
+
+ PatchesFileReader( const Pathname &repomd_file, ProcessResource callback );
+ bool consumeNode( Reader & reader_r );
+
+ private:
+ OnMediaLocation _location;
+ Tag _tag;
+ std::string _type;
+ ProcessResource _callback;
+ CheckSum _checksum;
+ std::string _checksum_type;
+ Date _timestamp;
+ };
+ }
+ }
+}
+#endif
+
Added: trunk/libzypp/zypp/parser/yum/RepomdFileReader.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/RepomdFileReader.cc?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/zypp/parser/yum/RepomdFileReader.cc (added)
+++ trunk/libzypp/zypp/parser/yum/RepomdFileReader.cc Thu Apr 12 17:43:21 2007
@@ -0,0 +1,77 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+
+#include <fstream>
+#include "zypp/base/String.h"
+#include "zypp/base/Logger.h"
+#include "zypp/parser/yum/RepomdFileReader.h"
+
+
+using namespace std;
+using namespace zypp::xml;
+
+namespace zypp { namespace source { namespace yum {
+
+RepomdFileReader::RepomdFileReader( const Pathname &repomd_file, ProcessResource callback )
+ : _tag(tag_NONE), _callback(callback)
+{
+ Reader reader( repomd_file );
+ MIL << "Reading " << repomd_file << endl;
+ reader.foreachNode( bind( &RepomdFileReader::consumeNode, this, _1 ) );
+}
+
+bool RepomdFileReader::consumeNode( Reader & reader_r )
+{
+ //MIL << reader_r->name() << endl;
+ std::string data_type;
+ if ( reader_r->nodeType() == XML_READER_TYPE_ELEMENT )
+ {
+ if ( reader_r->name() == "repomd" )
+ {
+ _tag = tag_Repomd;
+ return true;
+ }
+ if ( reader_r->name() == "data" )
+ {
+ _tag = tag_Data;
+ _type = reader_r->getAttribute("type").asString();
+ return true;
+ }
+ if ( reader_r->name() == "location" )
+ {
+ _tag = tag_Location;
+ _location.filename( reader_r->getAttribute("href").asString() );
+ return true;
+ }
+ if ( reader_r->name() == "checksum" )
+ {
+ _tag = tag_CheckSum;
+ string checksum_type = reader_r->getAttribute("type").asString() ;
+ string checksum_vaue = reader_r.nodeText().asString();
+ _location.checksum( CheckSum( checksum_type, checksum_vaue ) );
+ return true;
+ }
+ if ( reader_r->name() == "timestamp" )
+ {
+ // ignore it
+ return true;
+ }
+ }
+ else if ( reader_r->nodeType() == XML_READER_TYPE_END_ELEMENT )
+ {
+ //MIL << "end element" << endl;
+ if ( reader_r->name() == "data" )
+ _callback( _location, _type );
+ return true;
+ }
+ return true;
+}
+
+} } } //ns zypp::source::yum
+
Added: trunk/libzypp/zypp/parser/yum/RepomdFileReader.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/RepomdFileReader.h?rev=5362&view=auto
==============================================================================
--- trunk/libzypp/zypp/parser/yum/RepomdFileReader.h (added)
+++ trunk/libzypp/zypp/parser/yum/RepomdFileReader.h Thu Apr 12 17:43:21 2007
@@ -0,0 +1,61 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef zypp_source_yum_RepomdFileReader_H
+#define zypp_source_yum_RepomdFileReader_H
+
+#include "zypp/Date.h"
+#include "zypp/CheckSum.h"
+#include "zypp/OnMediaLocation.h"
+#include "zypp/base/Function.h"
+#include "zypp/parser/xml/Reader.h"
+
+using namespace std;
+using namespace zypp::xml;
+
+namespace zypp
+{
+ namespace source
+ {
+ namespace yum
+ {
+
+ class RepomdFileReader
+ {
+ public:
+ typedef function ProcessResource;
+
+ enum Tag
+ {
+ tag_NONE,
+ tag_Repomd,
+ tag_Data,
+ tag_Location,
+ tag_CheckSum,
+ tag_Timestamp,
+ tag_OpenCheckSum
+ };
+
+ RepomdFileReader( const Pathname &repomd_file, ProcessResource callback );
+ bool consumeNode( Reader & reader_r );
+
+ private:
+ OnMediaLocation _location;
+ Tag _tag;
+ std::string _type;
+ ProcessResource _callback;
+ CheckSum _checksum;
+ std::string _checksum_type;
+ Date _timestamp;
+ };
+ }
+ }
+}
+#endif
+
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org