+++ /dev/null
-#include <iostream>
-#include <ctime>
-
-#include <fstream>
-#include <list>
-#include <string>
-#include <zypp/base/Logger.h>
-#include <zypp/base/Exception.h>
-#include <zypp/base/String.h>
-#include <zypp/base/IOStream.h>
-#include <zypp/base/PtrTypes.h>
-
-#include <zypp/CapFactory.h>
-#include <zypp/CapSet.h>
-
-using namespace std;
-using namespace zypp;
-
-// work around flaw in y2logview
-template<class _Tp>
- void printOnHack( const _Tp & obj )
- {
- MIL << obj << endl;
- };
-
-///////////////////////////////////////////////////////////////////
-// Just for the stats
-struct Measure
-{
- time_t _begin;
- Measure()
- : _begin( time(NULL) )
- {
- USR << "START MEASURE..." << endl;
- }
- ~Measure()
- {
- USR << "DURATION: " << (time(NULL)-_begin) << " sec." << endl;
- }
-};
-
-///////////////////////////////////////////////////////////////////
-// Print stream status
-ostream & operator<<( ostream & str, const istream & obj ) {
- return str
- << (obj.good() ? 'g' : '_')
- << (obj.eof() ? 'e' : '_')
- << (obj.fail() ? 'F' : '_')
- << (obj.bad() ? 'B' : '_');
-}
-
-///////////////////////////////////////////////////////////////////
-// Fits forEachLine. A simple 'do' function
-void collect( const std::string & linre_r )
-{
- DBG << linre_r << endl;
-}
-///////////////////////////////////////////////////////////////////
-// Fits forEachLine. A simple 'do' functor counting lines as base.
-/*
- Line processing is prepared by providing 'virtual void doConsume(std::string)'.
- That's what a derived Collector will overload.
- */
-struct Collector : public std::unary_function<const std::string &, bool>
-{
- unsigned _lineNo;
- Collector()
- : _lineNo( 0 )
- {}
- virtual ~Collector()
- {}
- virtual void doConsume( const std::string & line_r )
- {}
- bool operator()( const std::string & line_r )
- {
- ++_lineNo;
- if ( ! (_lineNo % 10000) )
- DBG << "Got " << _lineNo << " lines..." << endl;
- doConsume( line_r );
- return true;
- }
-};
-///////////////////////////////////////////////////////////////////
-// Fits forEachLine. An impatient collector ;)
-struct ImpatientCollector : public Collector
-{
- virtual void doConsume( const std::string & line_r )
- {
- if ( _lineNo == 1234 )
- ZYPP_THROW( Exception("takes to long") );
- }
-};
-///////////////////////////////////////////////////////////////////
-// Fits forEachLine. Almost usefull collector.
-/*
- Note that it's still a functor 'void operator()( const std::string & )'.
-
- On every invocation the string is parsed into a Capability, and the
- Capability is stored in a CapSet.
-
- Exceptions building the Capability are caught and collected in a
- Failure list. It's a matter of taste whether to immediately abort,
- or to parse to the end check for collected errors then. Room for
- improvement.
-
- see enhacedCollectorUsage().
-*/
-struct EnhacedCollector : public Collector
-{
- // Stores line number, original string and Exception
- struct Failure
- {
- unsigned _lineNo;
- std::string _line;
- Exception _excpt;
- Failure( unsigned lineNo_r,
- const std::string & line_r, const Exception & excpt_r )
- : _lineNo( lineNo_r ), _line( line_r ), _excpt( excpt_r )
- {}
- };
-
- typedef std::list<Failure> FailedList;
-
- CapFactory _factory;
- unsigned _capLines;
- CapSet _caps;
- FailedList _failures;
-
-
- EnhacedCollector()
- : _capLines( 0 )
- {}
-
- void makeCap( const string & line_r )
- {
- ++_capLines; // count attempts
- try
- {
- // bulid Package deps.
- _caps.insert( _factory.parse( ResKind::package, line_r ) );
- }
- catch( Exception & excpt_r )
- {
- _failures.push_back( Failure(_lineNo, line_r, excpt_r) );
- }
- }
-
- virtual void doConsume( const std::string & line_r )
- {
- makeCap( line_r );
- }
-};
-
-// Print a Failure
-ostream & operator<<( ostream & str, const EnhacedCollector::Failure & obj )
-{
- return str << str::form( "[%u] \"%s\" ==> %s",
- obj._lineNo,
- obj._line.c_str(),
- obj._excpt.asString().c_str() );
-}
-
-// Print EnhacedCollector stats
-ostream & operator<<( ostream & str, const EnhacedCollector & obj )
-{
- str << "Lines parsed : " << obj._lineNo << endl;
- str << "Cap lines : " << obj._capLines << endl;
- str << "Capabilites : " << obj._caps.size() << endl;
- str << "Parse errors : " << obj._failures.size() << endl;
- if ( obj._failures.size() )
- {
- copy( obj._failures.begin(), obj._failures.end(),
- ostream_iterator<EnhacedCollector::Failure>(ERR,"\n") );
- //-something-we-should-not-do-unless-....---------^^^
- }
- return str;
-}
-
-///////////////////////////////////////////////////////////////////
-// Fits forEachLine.
-/*
- Within a packages file, not every line defines a Capability. So
- EnhacedCollector is refined to turn Capability collection on and
- off, as appropriate. A dumb version simply storing all Capabilities
- defined somewhere in the packages file.
-*/
-struct PackageParseCollector : public EnhacedCollector
-{
- static std::string _rxStrDeps;
- static str::regex _rxDepOn;
- static str::regex _rxDepOff;
-
- str::smatch _what;
- bool _consume;
-
- PackageParseCollector()
- : _consume( false )
- {}
-
- bool matches( const string & line_r, const str::regex & rx_r )
- {
- return str::regex_match( line_r.begin(), line_r.end(), rx_r );
- }
-
- virtual void doConsume( const std::string & line_r )
- {
- if ( _consume )
- {
- if ( matches( line_r, _rxDepOff ) )
- {
- _consume = false;
- }
- else
- {
- EnhacedCollector::doConsume( line_r );
- }
- }
- else if ( matches( line_r, _rxDepOn ) )
- {
- _consume = true;
- }
- }
-};
-
-std::string PackageParseCollector::_rxStrDeps( "(Req|Prq|Prv|Con|Obs)" );
-str::regex PackageParseCollector::_rxDepOn ( str::form( "\\+%s:", _rxStrDeps.c_str() ) );
-str::regex PackageParseCollector::_rxDepOff( str::form( "-%s:", _rxStrDeps.c_str() ) );
-
-/******************************************************************
-**
-** FUNCTION NAME : enhacedCollectorUsage
-** FUNCTION TYPE :
-*/
-void enhacedCollectorUsage()
-{
- // EnhacedCollector: Simply collect strings which are expected to
- // be Capabilities. Error handling is delayed by collecting failures.
- EnhacedCollector collector;
- collector( "" );
- collector( "foo baa kaa" );
- collector( "/bin/sh" );
- collector( "/bin/sh" );
- collector( "/bin/sh" );
- collector( "/bin/sh" );
-
- MIL << collector << endl;
- MIL << "Capabilities found:" << endl;
- for_each( collector._caps.begin(), collector._caps.end(),
- printOnHack<Capability> );
-}
-
-/******************************************************************
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-*/
-int main( int argc, char * argv[] )
-{
- --argc;
- ++argv;
- if ( ! argc )
- {
- cerr << "Usage: Example.createCapabilities <packages file>" << endl;
- return 1;
- }
- string file( argv[0] );
-
- INT << "===[START]==========================================" << endl;
-
- // dump PackageParseCollector: open the file, and build Capabilities
- // from each appropriate line. Collecting failures.
-
- ifstream str( file.c_str() );
- (str?DBG:ERR) << file << ": " << str << endl;
- shared_ptr<Measure> duration( new Measure );
-
- PackageParseCollector datacollect;
- try
- {
- iostr::forEachLine( str, datacollect );
- }
- catch ( Exception & excpt_r )
- {
- // Note: Exceptions building a Capability are caught. So this is
- // something different. Maybe a bored ImpatientCollector.
- ZYPP_CAUGHT( excpt_r );
- ERR << "Parse error at line " << datacollect._lineNo << ": " << excpt_r << endl;
- return 1;
- }
-
- duration.reset();
- DBG << file << ": " << str << endl;
-
- MIL << datacollect << endl;
- MIL << "Capabilities found:" << endl;
- for_each( datacollect._caps.begin(), datacollect._caps.end(),
- printOnHack<Capability> );
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include <list>
-#include <string>
-#include <zypp/base/Logger.h>
-
-#include <zypp/Package.h>
-#include <zypp/detail/PackageImpl.h>
-#include <zypp/CapFactory.h>
-#include <zypp/CapSet.h>
-
-using namespace std;
-using namespace zypp;
-
-// refine parsing and add it to lib
-//
-template<typename _Res>
- struct CapSetInsert : public std::unary_function<const std::string &, void>
- {
- CapSet & _x;
- CapFactory _f;
- CapSetInsert( CapSet & x )
- : _x(x)
- {}
- void operator()( const std::string & v )
- { _x.insert( _f.parse( ResTraits<_Res>::kind, v ) ); }
- };
-
-inline std::list<std::string> parseDeps()
-{
- const char * init[] = {
- "xextra:/usr/X11R6/bin/Xvfb"
- "/bin/sh",
- "rpmlib(PayloadFilesHavePrefix) <= 4.0-1",
- "rpmlib(CompressedFileNames) <= 3.0.4-1",
- "/bin/sh",
- "libc.so.6",
- "libc.so.6(GLIBC_2.0)",
- "libc.so.6(GLIBC_2.3.4)",
- "libhd.so.11",
- "libsysfs.so.1",
- "rpmlib(PayloadIsBzip2) <= 3.0.5-1",
- };
- const char ** begin = init;
- const char ** end = init + ( sizeof(init) / sizeof(const char *) );
-
- std::list<std::string> ret( begin, end );
- return ret;
-}
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
-
- // Collect basic Resolvable data
- NVRAD dataCollect;
-
- // parse basic values
- dataCollect.name = "foo";
- dataCollect.edition = Edition("1.0","42");
- dataCollect.arch = Arch_i386;
-
- // parse dependencies
- std::list<std::string> depList( parseDeps() );
- try
- {
- for_each( depList.begin(), depList.end(),
- CapSetInsert<Package>(dataCollect[Dep::PROVIDES]) );
- }
- catch(...)
- {
- INT << dataCollect[Dep::PROVIDES] << endl;
- }
- // ...parse other deps
-
- // create the object
- detail::ResImplTraits<detail::PackageImpl>::Ptr pkgImpl;
- Package::Ptr pkg( detail::makeResolvableAndImpl( dataCollect, pkgImpl ) );
- DBG << *pkg << endl;
- DBG << pkg->deps() << endl;
-
-
- // finalize implementation class construction
- // ... aditional data ...
-
- DBG << pkg << endl;
- DBG << *pkg << endl;
- DBG << pkg->deps() << endl;
-
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
-
+++ /dev/null
-
-// g++ parse1.cc -o parse1 -O2 -Wall -lzypp
-
-
-#include "zypp/base/Logger.h"
-#include "zypp/base/PtrTypes.h"
-#include "zypp/base/Exception.h"
-#include "zypp/ZYppFactory.h"
-#include "zypp/ZYppCallbacks.h"
-#include "zypp/ResPoolProxy.h"
-#include "zypp/ResPool.h"
-#include "zypp/ResFilters.h"
-#include "zypp/Package.h"
-#include "zypp/Pattern.h"
-#include "zypp/Language.h"
-#include "zypp/PackageKeyword.h"
-#include "zypp/NameKindProxy.h"
-#include "zypp/RepoManager.h"
-#include "zypp/RepoInfo.h"
-#include "zypp/TmpPath.h"
-
-
-using namespace std;
-using namespace zypp;
-using namespace zypp::filesystem;
-
-
-int
-main (int argc, char* argv[])
-{
- TmpDir tmpCachePath;
- TmpDir tmpRawCachePath;
- TmpDir tmpKnownReposPath;
-
- RepoManagerOptions opts;
- opts.repoCachePath = tmpCachePath.path();
- opts.repoRawCachePath = tmpRawCachePath.path();
- opts.knownReposPath = tmpKnownReposPath.path();
-
- RepoManager repoManager (opts);
-
- RepoInfo nrepo;
- nrepo.setAlias( "factorytest" )
- .setName( "Test Repo for Factory." )
- .setEnabled( true )
- .setAutorefresh( false )
- // .addBaseUrl(Url("ftp://dist.suse.de/install/stable-x86/"));
- // .addBaseUrl(Url("http://software.opensuse.org/download/home:/Arvin42/openSUSE_Factory/"));
- .addBaseUrl(Url("file:///ARVIN/zypp/trunk/repotools/tmp"));
-
- repoManager.addRepository( nrepo );
-
- ResPool pool( getZYpp()->pool() );
-
- USR << "pool: " << pool << endl;
-
- RepoInfoList repos = repoManager.knownRepositories();
- for ( RepoInfoList::iterator it = repos.begin(); it != repos.end(); it++ )
- {
- RepoInfo& nrepo( *it );
-
- SEC << "refreshMetadata" << endl;
- repoManager.refreshMetadata( nrepo );
- SEC << "buildCache" << endl;
- repoManager.buildCache( nrepo );
-
- // here SQLite is upto-date
-
- SEC << nrepo << endl;
- Repository nrep = repoManager.createFromCache( nrepo );
- getZYpp()->addResolvables(nrep.resolvables());
- }
-
- USR << "pool: " << pool << endl;
-
- for (ResPool::const_iterator itRes = pool.begin(); itRes != pool.end(); itRes++)
- {
- cout << (*itRes)->name() << ' '
- << (*itRes)->kind() << ' '
- << (*itRes)->arch() << ' '
- << (*itRes)->edition() << endl;
-
- CapSet caps;
-
- caps = (*itRes)->dep(Dep::PROVIDES);
- for (CapSet::const_iterator itCap = caps.begin(); itCap != caps.end(); itCap++)
- cout << " Provides: " << itCap->asString() << std::endl;
-
- caps = (*itRes)->dep(Dep::REQUIRES);
- for (CapSet::const_iterator itCap = caps.begin(); itCap != caps.end(); itCap++)
- cout << " Requires: " << itCap->asString() << std::endl;
-
- cout << std::endl;
- }
-
- return 0;
-}
+++ /dev/null
-
-// g++ parse2.cc -o parse2 -O2 -Wall -lzypp
-
-
-#include "zypp/base/Logger.h"
-#include "zypp/base/PtrTypes.h"
-#include "zypp/base/Exception.h"
-#include "zypp/ZYppFactory.h"
-#include "zypp/ZYppCallbacks.h"
-#include "zypp/ResPoolProxy.h"
-#include "zypp/ResPool.h"
-#include "zypp/ResPoolManager.h"
-#include "zypp/ResFilters.h"
-#include "zypp/Package.h"
-#include "zypp/Pattern.h"
-#include "zypp/Language.h"
-#include "zypp/PackageKeyword.h"
-#include "zypp/NameKindProxy.h"
-#include "zypp/RepoManager.h"
-#include "zypp/RepoInfo.h"
-#include "zypp/TmpPath.h"
-
-
-using namespace std;
-using namespace zypp;
-using namespace zypp::filesystem;
-
-
-int
-main (int argc, char* argv[])
-{
- TmpDir tmpCachePath;
- TmpDir tmpRawCachePath;
- TmpDir tmpKnownReposPath;
-
- RepoManagerOptions opts;
- opts.repoCachePath = tmpCachePath.path();
- opts.repoRawCachePath = tmpRawCachePath.path();
- opts.knownReposPath = tmpKnownReposPath.path();
-
- RepoManager repoManager (opts);
-
- RepoInfo nrepo;
- nrepo.setAlias( "factorytest" )
- .setName( "Test Repo for Factory." )
- .setEnabled( true )
- .setAutorefresh( false )
- // .addBaseUrl(Url("ftp://dist.suse.de/install/stable-x86/"));
- // .addBaseUrl(Url("http://software.opensuse.org/download/home:/Arvin42/openSUSE_Factory/"));
- .addBaseUrl(Url("file:///ARVIN/zypp/trunk/repotools/tmp"));
-
- repoManager.addRepository( nrepo );
-
- ResPoolManager resPoolManager;
-
- RepoInfoList repos = repoManager.knownRepositories();
- for ( RepoInfoList::iterator it = repos.begin(); it != repos.end(); it++ )
- {
- RepoInfo& nrepo( *it );
-
- SEC << "refreshMetadata" << endl;
- repoManager.refreshMetadata( nrepo );
- SEC << "buildCache" << endl;
- repoManager.buildCache( nrepo );
-
- // here SQLite is upto-date
-
- SEC << nrepo << endl;
- Repository nrep = repoManager.createFromCache( nrepo );
- resPoolManager.insert(nrep.resolvables());
- }
-
- ResPool pool(resPoolManager.accessor());
-
- USR << "pool: " << pool << endl;
-
- for (ResPool::const_iterator itRes = pool.begin(); itRes != pool.end(); itRes++)
- {
- cout << (*itRes)->name() << ' '
- << (*itRes)->kind() << ' '
- << (*itRes)->arch() << ' '
- << (*itRes)->edition() << endl;
-
- CapSet caps;
-
- caps = (*itRes)->dep(Dep::PROVIDES);
- for (CapSet::const_iterator itCap = caps.begin(); itCap != caps.end(); itCap++)
- cout << " Provides: " << itCap->asString() << std::endl;
-
- caps = (*itRes)->dep(Dep::REQUIRES);
- for (CapSet::const_iterator itCap = caps.begin(); itCap != caps.end(); itCap++)
- cout << " Requires: " << itCap->asString() << std::endl;
-
- cout << std::endl;
- }
-
- return 0;
-}
+++ /dev/null
-<channel><subchannel>
-<package>
- <name>G</name>
- <summary>A kake package</summary>
- <description>A fake package</description>
- <section>misc</section>
- <history>
- <update>
- <hid>12345</hid>
- <epoch>0</epoch>
- <version>1.0</version>
- <release>1</release>
- <filename>foo.bar</filename>
- <filesize>123</filesize>
- <installedsize>234</installedsize>
- <md5sum>0f55f36a3240858038a281911605024e</md5sum>
- <importance>suggested</importance>
- <description>Yggdrasil Linux</description>
- </update>
- </history>
- <provides>
- <dep name="x" op="(any)" version="1.0"/>
- </provides>
- <conflicts>
- <dep name="mytest" op="=" version="3.14"/>
- </conflicts>
-</package>
-<package>
- <name>A</name>
- <summary>A fake package</summary>
- <description>A fake package</description>
- <section>misc</section>
- <history>
- <update>
- <hid>12345</hid>
- <epoch>0</epoch>
- <version>1.0</version>
- <release>1</release>
- <filename>foo.bar</filename>
- <filesize>123</filesize>
- <installedsize>234</installedsize>
- <md5sum>820f1595e3ee235d10c76bdc322dedc9ef4efaca</md5sum>
- <importance>suggested</importance>
- <description>Yggdrasil Linux</description>
- </update>
- </history>
- <requires>
- <dep name="b" op="(any)" version="1.0"/>
- </requires>
- <provides>
- <dep name="a" op="(any)" version="1.0"/>
- </provides>
-</package>
-<package>
- <name>B</name>
- <summary>A fake package</summary>
- <description>A fake package</description>
- <section>misc</section>
- <history>
- <update>
- <hid>12345</hid>
- <epoch>0</epoch>
- <version>1.0</version>
- <release>1</release>
- <filename>foo.bar</filename>
- <filesize>123</filesize>
- <installedsize>234</installedsize>
- <md5sum>19bec77adb2239f7119a8344b370b5394f0a612b</md5sum>
- <importance>suggested</importance>
- <description>Yggdrasil Linux</description>
- </update>
- </history>
- <requires>
- <dep name="c" op="(any)" version="1.0"/>
- </requires>
- <provides>
- <dep name="b" op="(any)" version="1.0"/>
- </provides>
- <conflicts>
- <dep name="e" op="(any)" version="1.0"/>
- </conflicts>
-</package>
-<package>
- <name>C</name>
- <summary>A fake package</summary>
- <description>A fake package</description>
- <section>misc</section>
- <history>
- <update>
- <hid>12345</hid>
- <epoch>0</epoch>
- <version>1.0</version>
- <release>1</release>
- <filename>foo.bar</filename>
- <filesize>123</filesize>
- <installedsize>234</installedsize>
- <md5sum>06cd8090cd152b040d60d1273cba96a17d6a9ecc</md5sum>
- <importance>suggested</importance>
- <description>Yggdrasil Linux</description>
- </update>
- </history>
- <provides>
- <dep name="c" op="(any)" version="1.0"/>
- </provides>
-</package>
-<package>
- <name>D</name>
- <summary>A fake package</summary>
- <description>A fake package</description>
- <section>misc</section>
- <history>
- <update>
- <hid>12345</hid>
- <epoch>0</epoch>
- <version>1.0</version>
- <release>1</release>
- <filename>foo.bar</filename>
- <filesize>123</filesize>
- <installedsize>234</installedsize>
- <md5sum>4068e284e3ef4f7722c221c2c205e822ab0e4d5a</md5sum>
- <importance>suggested</importance>
- <description>Yggdrasil Linux</description>
- </update>
- </history>
- <provides>
- <dep name="d" op="(any)" version="1.0"/>
- <dep name="c" op="(any)" version="1.0"/>
- </provides>
-</package>
-<package>
- <name>E</name>
- <summary>A fake package</summary>
- <description>A fake package</description>
- <section>misc</section>
- <history>
- <update>
- <hid>12345</hid>
- <epoch>0</epoch>
- <version>1.0</version>
- <release>1</release>
- <filename>foo.bar</filename>
- <filesize>123</filesize>
- <installedsize>234</installedsize>
- <md5sum>b97216c5d6cdbba41cb51036fce3030967209fea</md5sum>
- <importance>suggested</importance>
- <description>Yggdrasil Linux</description>
- </update>
- </history>
- <provides>
- <dep name="c" op="(any)" version="1.0"/>
- <dep name="e" op="(any)" version="1.0"/>
- <dep name="x" op="(any)" version="1.0"/>
- </provides>
-</package>
-</subchannel></channel>
+++ /dev/null
-#!/usr/bin/ruby -w
-
-###
-#
-# ToDos:
-# - find out wether the operator != exists in Yum-dependencies or not
-# - all capitalized strings are placeholder and need a valid input
-#
-###
-
-require 'optparse'
-require 'rexml/document'
-
-include REXML
-
-
-class Dependency
- attr_accessor :name, :op, :version
- def initialize( dep_array )
- @name = dep_array[0]
- @op = dep_array[1]
- @version = dep_array[2]
- end
- def to_s
- "name=#{@name} op=#{@op} version=#{@version}\n"
- end
-end
-
-class Provides < Dependency
- @@count = 0
- def initialize( p_array )
- super
- @@count += 1
- end
- def Provides.count
- @@count
- end
- def to_s
- ' [p] ' + super
- end
-end
-
-class Conflicts < Dependency
- @@count = 0
- def initialize( c_array )
- super
- @@count += 1
- end
- def Conflicts.count
- @@count
- end
- def to_s
- ' [c] ' + super
- end
-end
-
-class Requires < Dependency
- @@count = 0
- def initialize( r_array )
- super
- @@count += 1
- end
- def Requires.count
- @@count
- end
- def to_s
- ' [r] ' + super
- end
-end
-
-
-class Package
- attr_accessor :type, :name, :arch, :epoch, :ver, :rel, :chksum, :chktype, :pkgid, :summary, :descr, :provides, :conflicts, :requires
-
- @@count = 0
-
- def initialize( pkg ) # accepts a <package> section of Helix-XML
- @@count += 1
- @name = pkg.elements['name'] == nil ? raise( 'Missing package-name in Helix sourcefile.' ) : pkg.elements['name'].text
- @type = 'rpm'
- @arch = 'i386'
- @epoch = validate_input( pkg, 'history/update/epoch', '0' ) # Epoch
- @ver = validate_input( pkg, 'history/update/version', '1.0' ) # Version
- @rel = validate_input( pkg, 'history/update/release', '1' ) # Release
- @chksum = validate_input( pkg, 'history/update/md5sum', '0' ) # Checksum
- @chktype = 'md5sum' # Checksum type; not needed for now; helix uses md5, yum uses sha-1
- @pkgid = @chksum == '0' ? 'NO' : 'YES'
- @summary = validate_input( pkg, 'summary', 'n/a' )
- @descr = validate_input( pkg, 'description', 'n/a' ) # Package description
- # dependencies
- @provides = Array.new
- @conflicts = Array.new
- @requires = Array.new
- XPath.each( pkg, 'provides/dep' ) { |p| @provides << Provides.new( conv_dependency(p) ) }
- XPath.each( pkg, 'conflicts/dep' ) { |c| @conflicts << Conflicts.new( conv_dependency(c) ) }
- XPath.each( pkg, 'requires/dep' ) { |r| @requires << Requires.new( conv_dependency(r) ) }
- end
-
- def Package.count
- @@count
- end
-
- #def Package.to_yum
- #end
-
- def to_s
- "[Package] name=#{@name} \
- epoch=#{@epoch} version=#{@ver} release=#{@rel} \
- #{@chktype}=#{@chksum}
- summary: #{@summary}
- description: #{@descr}\
- \n#{@provides}#{@conflicts}#{@requires}"
- end
-
- private
- def validate_input( pkg, xpath, default_val )
- pkg.elements[xpath] == nil || pkg.elements[xpath].text == nil ? default_val : pkg.elements[xpath].text
- end
-
- def conv_dependency( dep )
- dep_array = Array.new(3)
- dep_array[0] = dep.attributes['name']
- dep_array[2] = dep.attributes['version']
- case dep.attributes['op']
- when '='
- dep_array[1] = 'EQ'
- when '!='
- #raise( "Operator != bug in conv_dependency() found." )
- dep_array[1] = 'TODO' # Have to check if this operator exists in yum TODO
- when '>'
- dep_array[1] = 'GT'
- when '≥'
- dep_array[1] = 'GE'
- when '<'
- dep_array[1] = 'LT'
- when '≤'
- dep_array[1] = 'LE'
- else
- dep_array[1,2] = nil
- end
- dep_array
- end
-
-end
-
-
-# command-line options defaults
-show = false
-of = nil
-filename = nil
-
-
-# parse command-line options
-ARGV.options do |o|
- o.banner = 'Usage: ' + File.basename($0) + ' FILE [-s|-o YUMFILE]'
- o.separator 'Options:'
- o.on( '-s', '--show', 'output will be printed to stdout' ) { |s| show = true }
- o.on( '-o YUMFILE', '--outfile', 'specify the outputfile' ) { |out| of = out }
- o.separator ' without this parameter given, the outputfile is named <Helixfile>.yum.xml'
- o.separator ''
- o.on_tail( '-h', '--help', 'show this screen' ) { puts o; exit 0 }
-end
-
-
-# start exception-block
-begin
-
-ARGV.parse!
-
-filename = ARGV[0] || raise( 'No Helixfile given.' )
-
-if not File.exists?( filename )
- raise( 'File not found.' )
-elsif not File.readable?( filename )
- raise( 'File not readable.' )
-elsif File.zero?( filename )
- puts 'Nothing to do.'; exit 0
-end
-
-puts "[file] #{filename} (" + File.size(filename).to_s + " bytes)"
-# use file to instanciate an XML-Object and close filehandle immediate
-infile = File.open( filename )
-input = Document.new infile
-
-# without -o the output file is named like the inputfile with the ending .yum.xml
-if not show and of.nil?
- outfile = filename.sub(/(^.*)(\.xml)/, '\1.yum.xml')
- outfile = File.new( outfile, 'w+' )
-elsif not show and not of.nil?
- outfile = of
- outfile = File.new( outfile, 'w+' )
-else
- outfile = nil
-end
-
-
-output = Document.new
-
-packages = Array.new
-
-
-# get the first package
-current = XPath.first( input, '/channel/subchannel/package' )
-# and add it to the packages-array - add every following package
-while current != nil
- packages << Package.new( current )
- current = current.next_element
-end
-
-puts Package.count.to_s + ' packages processed.'
-
-
-output << XMLDecl.new( '1.0', 'UTF-8' )
-output << Element.new( 'metadata' )
-output.root.add_namespace( 'http://linux.duke.edu/metadata/common' )
-output.root.add_namespace( 'rpm', 'http://linux.duke.edu/metadata/rpm' )
-output.root.add_attribute( 'packages', Package.count )
-
-
-# generate the Yum document ####################################################
-packages.each do |p|
- ### Main information for testcases ###
- pkg = Element.new( 'package' )
- pkg.add_attribute( 'type', p.type )
-
- name = Element.new( 'name' ).add_text p.name
- arch = Element.new( 'arch' ).add_text p.arch
-
- ver = Element.new( 'version' )
- ver.add_attribute( 'epoch', p.epoch )
- ver.add_attribute( 'ver', p.ver )
- ver.add_attribute( 'rel', p.rel )
-
- csum = Element.new( 'checksum' ).add_text p.chksum
- csum.add_attribute( 'pkgid', p.pkgid )
- csum.add_attribute( 'type', p.chktype )
-
- sum = Element.new( 'summary' ) .add_text p.summary
- desc = Element.new( 'description' ).add_text p.descr
- pker = Element.new( 'packager' ) .add_text 'SUSE LINUX Products GmbH. <http://bugzilla.novell.com>'
- url = Element.new( 'url' )
-
- ### TODO ###
-# time = Element.new( 'time' )
-# time.add_attribute( 'file', 'TIMESTAMP' )
-# time.add_attribute( 'build', 'TIMESTAMP' )
-# size = Element.new( 'size' )
-# size.add_attribute( 'package', 'SIZE' )
-# size.add_attribute( 'installed', 'SIZE' )
-# size.add_attribute( 'archive', 'SIZE' )
-
- ### Path on installation-source ###
-# loc = Element.new( 'location' )
-# loc.add_attribute( 'href', 'PATH/TO/PACKAGE-VERSION.rpm' )
-
- ### <format> section ###
- form = Element.new( 'format' )
- # additional package information
-# licence = Element.new( 'rpm:license' ).add_text 'GPL'
-# vendor = Element.new( 'rpm:vendor' ) .add_text 'Novell, Inc.'
-# group = Element.new( 'rpm:group' ) .add_text 'SYSTEM/PACKAGEMANAGER'
-# bhost = Element.new( 'rpm:buildhost' ).add_text 'BUILDHOST'
-# srpm = Element.new( 'rpm:sourcerpm' ) .add_text 'PACKAGE-VERSION.src.rpm'
-
-# hrange = Element.new( 'rpm:header-range' )
-# hrange.add_attribute( 'start', 'VALUE' )
-# hrange.add_attribute( 'end', 'VALUE' )
-
- ### Dependencies ###
- # provides
- prov = Element.new( 'rpm:provides' )
- p.provides.each do |provides|
- prov.add_element( 'rpm:entry', {
- 'name'=>provides.name,
- 'flags'=>provides.op,
- 'ver'=>provides.version
- }
- )
- end
-
- # conflicts
- conf = Element.new( 'rpm:conflicts' )
- p.conflicts.each do |conflicts|
- conf.add_element( 'rpm:entry', {
- 'name'=>conflicts.name,
- 'flags'=>conflicts.op,
- 'ver'=>conflicts.version
- }
- )
- end
-
- # requires
- requ = Element.new( 'rpm:requires' )
- p.requires.each do |requires|
- requ.add_element( 'rpm:entry', {
- 'name'=>requires.name,
- 'flags'=>requires.op,
- 'ver'=>requires.version
- }
- )
- end
-
- # location of the installed file
- #file = Element.new( 'file' ).add_text '/PATH/FILE'
-
- #form << licence
- #form << vendor
- #form << group
- #form << bhost
- #form << srpm
- #form << hrange
- form << prov
- form << conf if conf.has_elements?
- form << requ if requ.has_elements?
- #form << file
-
- pkg << name
- pkg << arch
- pkg << ver
- pkg << csum
- pkg << sum
- pkg << desc
- pkg << pker
- pkg << url
-# pkg << time
-# pkg << size
-# pkg << loc
- pkg << form
-
- output.root << pkg
-end # generate the Yum document ###############################################
-
-
-# write formated xml into file or stdout
-if not outfile.nil?
- output.write( outfile, 0 )
- outfile.close
-else
- output.write( $stdout, 0 )
- puts ''
-end
-
-
-rescue => exc
- STDERR.puts "E: #{exc.message}"
- exit 1
-ensure
- infile.close
-end
+++ /dev/null
-ADD_SUBDIRECTORY( yum )
-
-INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} )
-
-
-########### next target ###############
-
-SET(Msg_SRCS
-Msg.cc
-)
-
-ADD_EXECUTABLE(Msg ${Msg_SRCS})
-
-
-SET(Msg.debug_SRCS
-$(Msg_SOURCES)
-)
-
-ADD_EXECUTABLE(Msg.debug ${Msg.debug_SRCS})
-
-SET(Patch_SRCS
-Patch.cc
-)
-
-ADD_EXECUTABLE(Patch ${Patch_SRCS})
-
-SET(Patch.debug_SRCS
-$(Patch_SOURCES)
-)
-
-ADD_EXECUTABLE(Patch.debug ${Patch.debug_SRCS})
+++ /dev/null
-#include <iostream>
-#include <zypp/base/Logger.h>
-#include <zypp/detail/MessageImpl.h>
-#include <zypp/Message.h>
-
-
-using namespace std;
-using namespace zypp;
-
-class MyMessageImpl : public detail::MessageImpl
-{
- public:
- MyMessageImpl (std::string text)
- {
- _text = text;
- }
-};
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
-
- std::string text = "My message to be shown to user";
- std::string _name( "msg1" );
- Edition _edition( "1.0", "42" );
- Arch _arch( "noarch" );
- shared_ptr<detail::MessageImpl> mp1(new MyMessageImpl(text));
- Message::Ptr m( detail::makeResolvableFromImpl( _name, _edition, _arch, mp1));
-
- DBG << *m << endl;
- DBG << " \"" << m->text() << "\"" << endl;
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include <zypp/base/Logger.h>
-
-///////////////////////////////////////////////////////////////////
-
-#include <zypp/Message.h>
-#include <zypp/detail/MessageImpl.h>
-#include <zypp/detail/PatchImpl.h>
-#include <zypp/Package.h>
-#include <zypp/Patch.h>
-#include <zypp/detail/PackageImpl.h>
-
-
-using namespace std;
-using namespace zypp;
-
-class MyPatchImpl : public detail::PatchImpl
-{
- public:
- MyPatchImpl (detail::PatchImpl::AtomList atoms)
- {
- _reboot_needed = false;
- _atoms = atoms;
- }
-};
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
-
- detail::PatchImpl::AtomList atoms;
-
- std::string _name( "foo" );
- Edition _edition( "1.0", "42" );
- Arch _arch( "i386" );
- base::shared_ptr<detail::PackageImpl> pi( new detail::PackageImpl );
- Package::Ptr p( detail::makeResolvableFromImpl( _name, _edition, _arch, pi ));
- atoms.push_back (p);
-
- std::string _name2( "bar" );
- Edition _edition2( "1.0", "43" );
- Arch _arch2( "noarch" );
- base::shared_ptr<detail::PackageImpl> pi2(new detail::PackageImpl);
- Package::Ptr p2( detail::makeResolvableFromImpl( _name, _edition, _arch, pi2));
- atoms.push_back (p2);
-
- base::shared_ptr<detail::PatchImpl> pt1(new MyPatchImpl(atoms));
- Patch::Ptr q( detail::makeResolvableFromImpl( std::string("patch1"), _edition, _arch, pt1));
- DBG << *q << endl;
- DBG << " Interactive: " << q->interactive () << endl;
- Patch::AtomList a = q->atoms ();
- for (Patch::AtomList::iterator it = a.begin (); it != a.end (); it++)
- {
- DBG << " " << **it << endl;
- }
-
- INT << "====================================================" << endl;
-
- std::string _name3( "msg" );
- Edition _ed3( "1.0", "42" );
- Arch _arch3( "noarch" );
- base::shared_ptr<detail::MessageImpl> mi(new detail::MessageImpl);
- Message::Ptr m (detail::makeResolvableFromImpl( _name3, _ed3, _arch3, mi));
-
- atoms.push_back (m);
-
- base::shared_ptr<detail::PatchImpl> pt2(new MyPatchImpl(atoms));
- Patch::Ptr q2( detail::makeResolvableFromImpl( std::string("patch2"), _edition, _arch, pt2));
- DBG << *q2 << endl;
- DBG << " Interactive: " << q2->interactive () << endl;
- a = q2->atoms ();
- for (Patch::AtomList::iterator it = a.begin (); it != a.end (); it++)
- {
- DBG << " " << **it << endl;
- }
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include <zypp/base/Logger.h>
-
-///////////////////////////////////////////////////////////////////
-
-#include <zypp/Message.h>
-#include <zypp/detail/MessageImpl.h>
-#include <zypp/detail/PatchImpl.h>
-#include <zypp/Patch.h>
-#include <zypp/Package.h>
-#include <zypp/detail/PackageImpl.h>
-#include <zypp/Script.h>
-#include <zypp/detail/ScriptImpl.h>
-#include <zypp/Resolvable.h>
-#include <zypp/detail/ResolvableImpl.h>
-#include <zypp/Capability.h>
-#include <zypp/capability/CapabilityImpl.h>
-
-#include <zypp/parser/yum/YUMParser.h>
-#include <zypp/base/Logger.h>
-#include <zypp/source/yum/YUMScriptImpl.h>
-#include <zypp/source/yum/YUMMessageImpl.h>
-#include <zypp/source/yum/YUMPackageImpl.h>
-#include <zypp/source/yum/YUMSource.h>
-
-#include <map>
-#include <set>
-
-#include <zypp/CapFactory.h>
-
-using namespace zypp::detail;
-
-using namespace std;
-using namespace zypp;
-using namespace zypp::parser::yum;
-using namespace zypp::source::yum;
-
-
- // FIXME me this piece of code after solutions are selected
- // this orders the atoms of a patch
-/*
- Resolvable::Ptr previous;
- bool first = true;
- for (detail::PatchImpl::AtomList::iterator it = atoms.begin();
- it != atoms.end();
- it++)
- {
- if (! first)
- {
- Dependencies deps = (*it)->deps();
- CapSet req = deps.prerequires();
- req.insert( Capability( _f.parse( previous->name(), previous->kind())));
- deps.setPrerequires( req );
- (*it)->setDeps( deps );
- }
- first = false;
- previous = *it;
- }
-*/
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
-
-YUMSource src;
-Patch::Ptr patch1;
-YUMPatchParser iter(cin,"");
-for (;
- !iter.atEnd();
- ++iter) {
- patch1 = src.createPatch(**iter);
- }
-if (iter.errorStatus())
- throw *iter.errorStatus();
-
-
-
-// process the patch
-
-DBG << patch1 << endl;
-DBG << *patch1 << endl;
-//DBG << patch1->deps() << endl;
-Patch::AtomList at = patch1->atoms();
-for (Patch::AtomList::iterator it = at.begin();
- it != at.end();
- it++)
-{
- //DBG << **it << endl;
- //DBG << (**it).deps() << endl;
-}
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include <zypp/base/Logger.h>
-
-///////////////////////////////////////////////////////////////////
-
-#include <zypp/Message.h>
-#include <zypp/detail/MessageImpl.h>
-#include <zypp/detail/PatchImpl.h>
-#include <zypp/Patch.h>
-#include <zypp/Package.h>
-#include <zypp/detail/PackageImpl.h>
-
-#include <map>
-#include <set>
-
-
-using namespace std;
-using namespace zypp;
-
-class MyPatchImpl : public detail::PatchImpl
-{
- public:
- MyPatchImpl( detail::PatchImpl::AtomList atoms,
- std::string category)
- {
- _reboot_needed = false;
- _atoms = atoms;
- _category = category;
- }
-};
-
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
-
- detail::PatchImpl::AtomList atoms;
-
- std::string _name( "foo" );
- Edition _edition( "1.0", "42" );
- Arch _arch( "i386" );
- base::shared_ptr<detail::PackageImpl> pi( new detail::PackageImpl );
- Package::Ptr p( detail::makeResolvableFromImpl( _name, _edition, _arch, pi ));
- atoms.push_back (p);
-
- std::string _name2( "bar" );
- Edition _edition2( "1.0", "43" );
- Arch _arch2( "noarch" );
- base::shared_ptr<detail::PackageImpl> pi2( new detail::PackageImpl );
- Package::Ptr p2( detail::makeResolvableFromImpl( _name2, _edition2, _arch2, pi2 ));
- atoms.push_back (p2);
-
- base::shared_ptr<detail::PatchImpl> pt1(new MyPatchImpl(atoms,"recommended"));
- Patch::Ptr patch1( detail::makeResolvableFromImpl( std::string("patch1"), _edition, _arch, pt1));
-
- detail::PatchImpl::AtomList atoms2;
- std::string _name3( "msg" );
- Arch _arch3( "noarch" );
- base::shared_ptr<detail::MessageImpl> mi( new detail::MessageImpl );
- Message::Ptr m( detail::makeResolvableFromImpl( _name, _edition, _arch, mi ));
- atoms.push_back (m);
-
- base::shared_ptr<detail::PatchImpl> pt2(new MyPatchImpl(atoms,"recommended"));
- Patch::Ptr patch2( detail::makeResolvableFromImpl( std::string("patch2"), _edition, _arch, pt2));
-
-
- list<Patch::Ptr> patches;
- patches.push_back (patch1);
- patches.push_back (patch2);
-
- // input values
- bool interactive_run = true;
- set<string> levels_to_preselect;
- levels_to_preselect.insert ("security");
- levels_to_preselect.insert ("recommended");
-
- // output values
- list<Patch::Ptr> patches_to_display;
- list<Patch::Ptr> patches_for_manual;
-
-// really start here
-
- // count patches to offer
- if (interactive_run)
- {
- for (list<Patch::Ptr>::iterator it = patches.begin();
- it != patches.end();
- it++)
- {
- (*it)->select ();
- }
- DBG << "Running solver here..." << endl; // TODO
- for (list<Patch::Ptr>::iterator it = patches.begin();
- it != patches.end();
- it++)
- {
- if ((*it)->any_atom_selected())
- {
- patches_to_display.push_back( *it );
- }
- (*it)->select();
- }
- }
-
- // count patches to preselect
- for (list<Patch::Ptr>::iterator it = patches.begin();
- it != patches.end();
- it++)
- {
- Patch::Ptr ptr = *it;
- string category = ptr->category ();
- // interactive patches can be applied only in interactive mode
- if (interactive_run
- || (! (ptr->reboot_needed() || ptr->interactive())))
- {
- if (levels_to_preselect.count( category ) > 0)
- {
- // select only packages severe enough
- DBG << "Selecting patch: " << *ptr << endl;
- ptr->select();
- }
- else
- {
- // and the rest keep neutral (they can be selected by dependencies)
- DBG << "Category unsufficient: " << *ptr << endl;
- ptr->select(); // FIXME unselect, but not taboo
- }
- }
- else
- {
- // in non-interactive mode, they mustn't be applied in any case
- DBG << "Patch interactive: " << *ptr << endl;
- ptr->select(); // FIXME taboo - mustn't be selected by resolver
- // instead, admin should be notified
- patches_for_manual.push_back( ptr );
-
- }
- }
- DBG << "Running solver here..." << endl; // TODO
- // hoping resolver solves obsoletes as well
-
- for (list<Patch::Ptr>::iterator it = patches.begin();
- it != patches.end();
- it++)
- {
- Patch::Ptr ptr = *it;
- if (! ptr->any_atom_selected())
- {
- ptr->select(); // TODO use deselected here instead
- }
- }
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include "zypp/base/Logger.h"
-#include "zypp/target/rpm/RpmDb.h"
-#include "zypp/ZYpp.h"
-#include "zypp/ZYppFactory.h"
-#include "zypp/SourceManager.h"
-
-
-using namespace std;
-using namespace zypp;
-using namespace zypp::target::rpm;
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
-
- // initialize target
- ZYpp::Ptr zypp = ZYppFactory::instance().getZYpp();
- zypp->initTarget("/");
- Target_Ptr target = zypp->target();
- target->setInstallationLogfile("/tmp/instlog");
- RpmDb & rpm = target->rpmDb();
-rpm.installPackage("/tmp/xxx.rpm");
-
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include "zypp/base/Logger.h"
-#include "zypp/target/rpm/RpmDb.h"
-
-
-using namespace std;
-using namespace zypp;
-using namespace zypp::target::rpm;
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
-
- RpmDb db;
-
- DBG << "===[DB OBJECT CREATED]==============================" << endl;
-
- db.initDatabase();
-
- DBG << "===[DATABASE INITIALIZED]===========================" << endl;
-
- std::list<Package::Ptr> packages = db.getPackages();
- for (std::list<Package::Ptr>::const_iterator it = packages.begin();
- it != packages.end();
- it++)
- {
-// DBG << **it << endl;
- }
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include <zypp/base/Logger.h>
-#include <zypp/detail/ScriptImpl.h>
-#include <zypp/Script.h>
-
-
-using namespace std;
-using namespace zypp;
-
-class MyScriptImpl : public detail::ScriptImpl
-{
- public:
- MyScriptImpl (std::string do_script, std::string undo_script = "")
- {
- _do_script = do_script;
- _undo_script = undo_script;
- }
-};
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
-
- std::string do_script = "#!/bin/bash\ndo_script";
- std::string undo_script = "#!/bin/bash\nundo_script";
- std::string _name( "script1" );
- Edition _edition( "1.0", "42" );
- Arch _arch( "noarch" );
- base::shared_ptr<detail::ScriptImpl> sp1(new MyScriptImpl(do_script));
- Script::Ptr s( detail::makeResolvableFromImpl( _name, _edition, _arch, sp1));
-
- DBG << *s << endl;
- DBG << " \"" << s->do_script() << "\"" << endl;
- DBG << " \"" << s->undo_script() << "\"" << endl;
- DBG << " " << s->undo_available() << endl;
-
- INT << "====================================================" << endl;
-
- base::shared_ptr<detail::ScriptImpl> sp2(new MyScriptImpl(do_script, undo_script));
- Script::Ptr s2( detail::makeResolvableFromImpl( _name, _edition, _arch, sp2));
-
- DBG << *s2 << endl;
- DBG << " \"" << s2->do_script() << "\"" << endl;
- DBG << " \"" << s2->undo_script() << "\"" << endl;
- DBG << " " << s2->undo_available() << endl;
-
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include <fstream>
-#include <map>
-#include "zypp/base/Logger.h"
-#include "zypp/SourceFactory.h"
-#include "zypp/Source.h"
-#include "zypp/source/SourceImpl.h"
-#include "zypp/SourceCache.h"
-#include "zypp/SourceManager.h"
-
-using namespace std;
-using namespace zypp;
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
- SourceCache().restoreSources();
- Source_Ref s = SourceManager::sourceManager()->findSource(0);
- ResStore store = s.resolvables();
- for (ResStore::const_iterator it = store.begin();
- it != store.end(); it++)
- {
- ERR << **it << endl;
- }
-
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include <fstream>
-#include <map>
-#include "zypp/base/Logger.h"
-#include "zypp/SourceManager.h"
-#include "zypp/Source.h"
-#include "zypp/source/SourceImpl.h"
-#include "zypp/ResPoolManager.h"
-
-using namespace std;
-using namespace zypp;
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
- SourceManager_Ptr mgr = SourceManager::sourceManager();
- unsigned id = mgr->addSource(Url("ftp://cml.suse.cz/netboot/find/SUSE-10.1-CD-OSS-i386-Beta1-CD1"), Pathname("/"));
- ERR << id << endl;
- Source & src = mgr->findSource(id);
- Pathname p = src.provideFile("/control.xml", 0);
- ERR << p << endl;
- const ResStore store = src.resolvables();
- ERR << store << endl;
- mgr->removeSource(id);
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-#include <iostream>
-#include <fstream>
-#include <map>
-#include "zypp/base/Logger.h"
-#include "zypp/SourceFactory.h"
-#include "zypp/Source.h"
-#include "zypp/source/SourceImpl.h"
-#include "zypp/SourceCache.h"
-#include "zypp/Package.h"
-#include "zypp/Message.h"
-
-using namespace std;
-using namespace zypp;
-
-/******************************************************************
-**
-**
-** FUNCTION NAME : main
-** FUNCTION TYPE : int
-**
-** DESCRIPTION :
-*/
-int main( int argc, char * argv[] )
-{
- INT << "===[START]==========================================" << endl;
- SourceFactory _f;
- Pathname p = "/";
-// Url url = Url("ftp://cml.suse.cz/netboot/find/SUSE-10.1-CD-OSS-i386-Beta1-CD1");
-// Url url = Url("http://users.suse.cz/~jsrain/devel.jsrain");
-// Url url = Url("dir:/local/zypp/libzypp/devel/devel.jsrain");
- Url url = Url("http://armstrong.suse.de/download/Code/10/update/i386/");
- Source_Ref s = _f.createFrom( url, p );
- ResStore store = s.resolvables();
- for (ResStore::const_iterator it = store.begin();
- it != store.end(); it++)
- {
- ERR << **it << endl;
- if (isKind<Message>(*it))
- {
- ERR << "Message" << endl;
- Message::constPtr pkg = boost::dynamic_pointer_cast<const Message>( *it );
- ERR << "Patch PTR: " << pkg->patch() << endl;
- if (pkg->patch())
- ERR << "Patch: " << *(pkg->patch()) << endl;
- }
- }
-// SourceCache().storeSource(s);
-// ERR << store << endl;
- INT << "===[END]============================================" << endl;
- return 0;
-}
+++ /dev/null
-ADD_SUBDIRECTORY( YUMParser.test )
-
-INCLUDE_DIRECTORIES( ${LIBZYPP_SOURCE_DIR}/zypp/parser/yum ${LIBZYPP_SOURCE_DIR}/zypp ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${KDE3_INCLUDE_DIR} ${QT_INCLUDE_DIR} )
-
-
-########### install files ###############
-
-
-
-
-#original Makefile.am contents follow:
-
-##
-## Makefile.am for packagemanager/testsuite/devel.mir
-##
-#
-#SUBDIRS = YUMParser.test
-#
-#AUTOMAKE_OPTIONS = dejagnu
-#
-#PACKAGE = YUMParser
-#
-#INCLUDES = -I$(top_srcdir)/zypp/parser/yum -I$(top_srcdir)/zypp -I$(oldincludedir)/libxml2 -I$(includedir)
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<repomd xmlns="http://linux.duke.edu/metadata/repo">
- <data type="other">
- <location href="repodata/other.xml"/>
- <checksum type="sha">e7ba668ab0d49486f0a3e7a0b168406a88a46ed9</checksum>
- <timestamp>1119534896</timestamp>
- <open-checksum type="sha">394bb178eb19423f1c9f255acfd50719809cabba</open-checksum>
- </data>
- <data type="filelists">
- <location href="repodata/filelists.xml"/>
- <checksum type="sha">603594e2dd7d875a876babaf1b39f3aede460ef1</checksum>
- <timestamp>1119534896</timestamp>
- <open-checksum type="sha">047041a0149308416aa1b62eb5e11a191ca6c2e9</open-checksum>
- </data>
- <data type="primary">
- <location href="repodata/primary.xml"/>
- <checksum type="sha">20f45621426fcd74364d6fabe6929d1164797801</checksum>
- <timestamp>1119534896</timestamp>
- <open-checksum type="sha">e8f9b1f8b3aa049ba3e3e813ee33e37302e9b16a</open-checksum>
- </data>
- <data type="product">
- <location href="repodata/product.xml"/>
- <checksum type="sha">20f45621426fcd74364d6fabe6929d1164797801</checksum>
- <timestamp>1119534896</timestamp>
- <open-checksum type="sha">e8f9b1f8b3aa049ba3e3e813ee33e37302e9b16a</open-checksum>
- </data>
- <data type="group">
- <location href="repodata/group.xml"/>
- <checksum type="sha">20f45621426fcd74364d6fabe6929d1164797801</checksum>
- <timestamp>1119534896</timestamp>
- <open-checksum type="sha">e8f9b1f8b3aa049ba3e3e813ee33e37302e9b16a</open-checksum>
- </data>
- <data type="patches">
- <location href="repodata/patches.xml"/>
- <checksum type="sha">20f45621426fcd74364d6fabe6929d1164797801</checksum>
- <timestamp>1119534896</timestamp>
- <open-checksum type="sha">e8f9b1f8b3aa049ba3e3e813ee33e37302e9b16a</open-checksum>
- </data>
-</repomd>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata xmlns="http://linux.duke.edu/metadata/common"
- xmlns:rpm="http://linux.duke.edu/metadata/rpm"
- xmlns:suse="http://novell.com/package/metadata/suse/common"
- packages="8">
-<package type="rpm">
- <name>packetfilter</name>
- <arch>noarch</arch>
- <version epoch="0" ver="0.9.1" rel="3"/>
- <checksum type="sha" pkgid="YES">8121d38334a682f5bf2c8320388395ba7e4b276d</checksum>
- <summary>A packetfilter wrapper compatible with ipfwadm, ipchains, iptables</summary>
- <description>This package consists of a simple firewall wrapper script
-providing a packet filter mini-language to state your
-filtering needs independent of the used firewall type.
-It's just like a service start/stop script and started
-during the normal System V boot sequence.
-
-See the README for details.</description>
- <packager/>
- <url/>
- <time file="1011218465" build="1011218465"/>
- <size package="7333" installed="16835" archive="17904"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="packetfilter-0.9.1-3.noarch.rpm"/>
- <format>
- <rpm:license>(c) 2002, Michael Radziej, under Gnu LPL</rpm:license>
- <rpm:vendor/>
- <rpm:group>unsorted</rpm:group>
- <rpm:buildhost>martin.suse.de</rpm:buildhost>
- <rpm:sourcerpm>packetfilter-0.9.1-3.src.rpm</rpm:sourcerpm>
- <rpm:header-range start="168" end="2268"/>
- <rpm:provides>
- <rpm:entry name="packetfilter" flags="EQ" epoch="0" ver="0.9.1" rel="3"/>
- </rpm:provides>
- <rpm:requires>
- <rpm:entry name="/bin/bash"/>
- <rpm:entry name="/bin/sh" pre="1"/>
- </rpm:requires>
- <file>/etc/packetfilter/def</file>
- <file>/etc/init.d/packetfilter</file>
- <file>/usr/sbin/rcpacketfilter</file>
- <file>/etc/packetfilter/ppp0</file>
- <file type="dir">/etc/packetfilter</file>
- </format>
-</package>
-<package type="rpm">
- <name>packetfilter</name>
- <arch>noarch</arch>
- <version epoch="0" ver="0.9.1" rel="4"/>
- <checksum type="sha" pkgid="YES">5f5547fe534991d161f5cbd9b823276a86eb55ea</checksum>
- <summary>A packetfilter wrapper compatible with ipfwadm, ipchains, iptables</summary>
- <description>This package consists of a simple firewall wrapper script
-providing a packet filter mini-language to state your
-filtering needs independent of the used firewall type.
-It's just like a service start/stop script and started
-during the normal System V boot sequence.
-
-See the README for details.</description>
- <packager/>
- <url/>
- <time file="1011218885" build="1011218885"/>
- <size package="9119" installed="23203" archive="25560"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="packetfilter-0.9.1-4.noarch.rpm"/>
- <format>
- <rpm:license>(c) 2002, Michael Radziej, under Gnu LPL</rpm:license>
- <rpm:vendor/>
- <rpm:group>unsorted</rpm:group>
- <rpm:buildhost>martin.suse.de</rpm:buildhost>
- <rpm:sourcerpm>packetfilter-0.9.1-4.src.rpm</rpm:sourcerpm>
- <rpm:header-range start="168" end="3397"/>
- <rpm:provides>
- <rpm:entry name="packetfilter" flags="EQ" epoch="0" ver="0.9.1" rel="4"/>
- </rpm:provides>
- <rpm:requires>
- <rpm:entry name="/bin/bash"/>
- <rpm:entry name="/bin/sh" pre="1"/>
- </rpm:requires>
- <file>/etc/packetfilter/def</file>
- <file>/etc/init.d/packetfilter</file>
- <file>/usr/sbin/rcpacketfilter</file>
- <file>/etc/packetfilter/ppp0</file>
- <file type="dir">/etc/packetfilter</file>
- </format>
-</package>
-<package type="rpm">
- <name>bbconf</name>
- <arch>i386</arch>
- <version epoch="0" ver="1.2" rel="1"/>
- <checksum type="sha" pkgid="YES">f9d63f4369eda675a65522ab6c985a60e73a1ceb</checksum>
- <summary>bbconf</summary>
- <description>bbconf is a complete GUI blackbox configuration tool, using plugins to
-allow other developers to easily develop plugins to run inside bbconf to
-allow every aspect of blackbox and its companion programs to be configured
-easily in a single application. bbconf comes with 4 plugins, allowing
-configuration of blackbox's keybindings, blackbox's menus, and blackbox's
-style files/themes.</description>
- <packager>movingparts.net</packager>
- <url>http://bbconf.sourceforge.net/</url>
- <time file="1010404157" build="1010404154"/>
- <size package="295403" installed="901567" archive="905072"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="bbconf-1.2-1.i386.rpm"/>
- <format>
- <rpm:license>GPL</rpm:license>
- <rpm:vendor>movingparts.net <http://movingparts.net></rpm:vendor>
- <rpm:group>X11/Applications</rpm:group>
- <rpm:buildhost>martin.suse.de</rpm:buildhost>
- <rpm:sourcerpm>bbconf-1.2-1.src.rpm</rpm:sourcerpm>
- <rpm:header-range start="168" end="5168"/>
- <rpm:provides>
- <rpm:entry name="libbbconf.so"/>
- <rpm:entry name="libmenu.so"/>
- <rpm:entry name="libkeybindings.so"/>
- <rpm:entry name="libthemes.so"/>
- <rpm:entry name="bbconf" flags="EQ" epoch="0" ver="1.2" rel="1"/>
- </rpm:provides>
- <rpm:requires>
- <rpm:entry name="libXrender.so.1"/>
- <rpm:entry name="libstdc++-libc6.2-2.so.3"/>
- <rpm:entry name="libmng.so.1"/>
- <rpm:entry name="libc.so.6(GLIBC_2.0)"/>
- <rpm:entry name="libICE.so.6"/>
- <rpm:entry name="ld-linux.so.2"/>
- <rpm:entry name="libpng.so.2"/>
- <rpm:entry name="/sbin/ldconfig" pre="1"/>
- <rpm:entry name="liblcms.so.1"/>
- <rpm:entry name="libc.so.6"/>
- <rpm:entry name="libdl.so.2(GLIBC_2.0)"/>
- <rpm:entry name="libz.so.1"/>
- <rpm:entry name="libXmu.so.6"/>
- <rpm:entry name="libc.so.6(GLIBC_2.1.3)"/>
- <rpm:entry name="libXi.so.6"/>
- <rpm:entry name="libresolv.so.2"/>
- <rpm:entry name="libGL.so.1"/>
- <rpm:entry name="libGLU.so.1"/>
- <rpm:entry name="libfreetype.so.6"/>
- <rpm:entry name="libXft.so.1"/>
- <rpm:entry name="libX11.so.6"/>
- <rpm:entry name="libqt.so.2"/>
- <rpm:entry name="libSM.so.6"/>
- <rpm:entry name="libXt.so.6"/>
- <rpm:entry name="libdl.so.2(GLIBC_2.1)"/>
- <rpm:entry name="libjpeg.so.62"/>
- <rpm:entry name="libXext.so.6"/>
- <rpm:entry name="libdl.so.2"/>
- <rpm:entry name="/bin/sh" pre="1"/>
- <rpm:entry name="libm.so.6"/>
- </rpm:requires>
- <file>/usr/bin/bbconf</file>
- <suse:authors>
- <suse:author>First Author</suse:author>
- <suse:author>Second Author</suse:author>
- </suse:authors>
- <suse:keywords>
- <suse:keyword>One keyword</suse:keyword>
- <suse:keyword>Another one</suse:keyword>
- </suse:keywords>
- <suse:media mediaid='2'/>
- <suse:dirsizes>
- <suse:dirsize path="/usr/bin" size-kbyte="520" filecount="2"/>
- <suse:dirsize path="/usr/share/doc" size-kbyte="100" filecount="25"/>
- </suse:dirsizes>
- <suse:freshen>
- <suse:entry name="nothing" flags="EQ" epoch="0" ver="1.1" rel="521"/>
- <suse:entry name="anything" flags="LT" epoch="0" ver="1.2" rel="125"/>
- </suse:freshen>
- <suse:install_only/>
- </format>
-</package>
-<package type="rpm">
- <name>PlatinGUI</name>
- <arch>noarch</arch>
- <version epoch="0" ver="620" rel="0"/>
- <checksum type="sha" pkgid="YES">eced88b6e724e4a45b82f2723912ef2e29ee134b</checksum>
- <summary>SAPGUI for the JAVA Environment</summary>
- <description>This package provides the frontend application to connect to a SAP R/3 System.
-There are two scripts for starting the application, "guilogon" and "guistart".
-For further information, direct your browser to the documentation in
-file: /usr/share/doc/packages/PlatinGUI/doc/manual.htm</description>
- <packager/>
- <url/>
- <time file="1016026813" build="1016026421"/>
- <size package="36667755" installed="95672876" archive="95690012"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="PlatinGUI-620-0.noarch.rpm"/>
- <format>
- <rpm:license>(c) by SAP</rpm:license>
- <rpm:vendor/>
- <rpm:group>SuSE internal</rpm:group>
- <rpm:buildhost>martin.suse.de</rpm:buildhost>
- <rpm:sourcerpm>PlatinGUI-620-0.src.rpm</rpm:sourcerpm>
- <rpm:header-range start="168" end="17093"/>
- <rpm:provides>
- <rpm:entry name="libJPlatin.so"/>
- <rpm:entry name="PlatinGUI" flags="EQ" epoch="0" ver="620" rel="0"/>
- </rpm:provides>
- <rpm:requires>
- <rpm:entry name="libm.so.6(GLIBC_2.0)"/>
- <rpm:entry name="libstdc++-libc6.2-2.so.3"/>
- <rpm:entry name="libc.so.6(GLIBC_2.0)"/>
- <rpm:entry name="libICE.so.6"/>
- <rpm:entry name="ld-linux.so.2"/>
- <rpm:entry name="libc.so.6"/>
- <rpm:entry name="libdl.so.2(GLIBC_2.0)"/>
- <rpm:entry name="libpthread.so.0(GLIBC_2.0)"/>
- <rpm:entry name="libc.so.6(GLIBC_2.2)"/>
- <rpm:entry name="libc.so.6(GLIBC_2.1.2)"/>
- <rpm:entry name="/bin/sh"/>
- <rpm:entry name="libdl.so.2"/>
- <rpm:entry name="libX11.so.6"/>
- <rpm:entry name="libSM.so.6"/>
- <rpm:entry name="libc.so.6(GLIBC_2.1)"/>
- <rpm:entry name="libXt.so.6"/>
- <rpm:entry name="libdl.so.2(GLIBC_2.1)"/>
- <rpm:entry name="libXpm.so.4"/>
- <rpm:entry name="libpthread.so.0"/>
- <rpm:entry name="libXext.so.6"/>
- <rpm:entry name="libpthread.so.0(GLIBC_2.1)"/>
- <rpm:entry name="libm.so.6"/>
- </rpm:requires>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilnl.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/saphttp</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmuxsvr</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilsv.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilpt.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/guilogon</file>
- <file>/usr/bin/guilogon</file>
- <file>/opt/PlatinGUI/6.20/bin/sapftp</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbux</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmpox</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwiles.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilx2.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilen.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwiltr.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilde.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilru.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmsux</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmhox</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmhpx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilhr.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilpl.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmmsx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmhix</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilfr.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilth.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/sapgui</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmgax</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilcs.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbmx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilx1.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilda.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxvalogo.gmf</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilsl.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/sapgui</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbtx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbax</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilhu.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilit.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmscx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmupx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbfx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmnex</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmstx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxvasap1.gmf</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilko.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilno.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxvasap2.gmf</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilro.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/guistart</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilzh.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmdlx</file>
- <file>/opt/PlatinGUI/6.20/bin/libJPlatin.so</file>
- <file type="dir">/opt/PlatinGUI/6.20/bin/gmux</file>
- </format>
-</package>
-<package type="rpm">
- <name>packetfilter</name>
- <arch>src</arch>
- <version epoch="0" ver="0.9.1" rel="3"/>
- <checksum type="sha" pkgid="YES">77b165fcb30789fb8c4c669e21fed3d04938f607</checksum>
- <summary>A packetfilter wrapper compatible with ipfwadm, ipchains, iptables</summary>
- <description>This package consists of a simple firewall wrapper script
-providing a packet filter mini-language to state your
-filtering needs independent of the used firewall type.
-It's just like a service start/stop script and started
-during the normal System V boot sequence.
-
-See the README for details.</description>
- <packager/>
- <url/>
- <time file="1011218465" build="1011218465"/>
- <size package="8889" installed="7775" archive="8160"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="packetfilter-0.9.1-3.src.rpm"/>
- <format>
- <rpm:license>(c) 2002, Michael Radziej, under Gnu LPL</rpm:license>
- <rpm:vendor/>
- <rpm:group>unsorted</rpm:group>
- <rpm:buildhost>martin.suse.de</rpm:buildhost>
- <rpm:sourcerpm/>
- <rpm:header-range start="168" end="1488"/>
- </format>
-</package>
-<package type="rpm">
- <name>bbconf</name>
- <arch>src</arch>
- <version epoch="0" ver="1.2" rel="1"/>
- <checksum type="sha" pkgid="YES">548c0cac5b1e89c0200879a9b337e7d5fc183122</checksum>
- <summary>bbconf</summary>
- <description>bbconf is a complete GUI blackbox configuration tool, using plugins to
-allow other developers to easily develop plugins to run inside bbconf to
-allow every aspect of blackbox and its companion programs to be configured
-easily in a single application. bbconf comes with 4 plugins, allowing
-configuration of blackbox's keybindings, blackbox's menus, and blackbox's
-style files/themes.</description>
- <packager>movingparts.net</packager>
- <url>http://bbconf.sourceforge.net/</url>
- <time file="1010402287" build="1010364098"/>
- <size package="559740" installed="561644" archive="562024"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="bbconf-1.2-1.src.rpm"/>
- <format>
- <rpm:license>GPL</rpm:license>
- <rpm:vendor>movingparts.net <http://movingparts.net></rpm:vendor>
- <rpm:group>X11/Applications</rpm:group>
- <rpm:buildhost>macmir.spieleck.de</rpm:buildhost>
- <rpm:sourcerpm/>
- <rpm:header-range start="168" end="1600"/>
- </format>
-</package>
-<package type="rpm">
- <name>PlatinGUI</name>
- <arch>src</arch>
- <version epoch="0" ver="620" rel="0"/>
- <checksum type="sha" pkgid="YES">5d34c98c42302406c5c0a31c163ee6145c014f9d</checksum>
- <summary>SAPGUI for the JAVA Environment</summary>
- <description>This package provides the frontend application to connect to a SAP R/3 System.
-There are two scripts for starting the application, "guilogon" and "guistart".
-For further information, direct your browser to the documentation in
-file: /usr/share/doc/packages/PlatinGUI/doc/manual.htm</description>
- <packager/>
- <url/>
- <time file="1016026466" build="1016026421"/>
- <size package="36057152" installed="36898821" archive="36899204"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="PlatinGUI-620-0.src.rpm"/>
- <format>
- <rpm:license>(c) by SAP</rpm:license>
- <rpm:vendor/>
- <rpm:group>SuSE internal</rpm:group>
- <rpm:buildhost>martin.suse.de</rpm:buildhost>
- <rpm:sourcerpm/>
- <rpm:header-range start="168" end="1412"/>
- </format>
-</package>
-<package type="rpm">
- <name>packetfilter</name>
- <arch>src</arch>
- <version epoch="0" ver="0.9.1" rel="4"/>
- <checksum type="sha" pkgid="YES">dffba597ee9614af9ad1db6a82141d024a94ab6a</checksum>
- <summary>A packetfilter wrapper compatible with ipfwadm, ipchains, iptables</summary>
- <description>This package consists of a simple firewall wrapper script
-providing a packet filter mini-language to state your
-filtering needs independent of the used firewall type.
-It's just like a service start/stop script and started
-during the normal System V boot sequence.
-
-See the README for details.</description>
- <packager/>
- <url/>
- <time file="1011218885" build="1011218885"/>
- <size package="8896" installed="7790" archive="8172"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="packetfilter-0.9.1-4.src.rpm"/>
- <format>
- <rpm:license>(c) 2002, Michael Radziej, under Gnu LPL</rpm:license>
- <rpm:vendor/>
- <rpm:group>unsorted</rpm:group>
- <rpm:buildhost>martin.suse.de</rpm:buildhost>
- <rpm:sourcerpm/>
- <rpm:header-range start="168" end="1488"/>
- </format>
-</package>
-
-</metadata>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<filelists xmlns="http://linux.duke.edu/metadata/filelists" packages="8">
-<package pkgid="8121d38334a682f5bf2c8320388395ba7e4b276d" name="packetfilter" arch="noarch">
- <version epoch="0" ver="0.9.1" rel="3"/>
- <file>/etc/init.d/packetfilter</file>
- <file>/etc/packetfilter/def</file>
- <file>/etc/packetfilter/ppp0</file>
- <file>/usr/sbin/rcpacketfilter</file>
- <file>/usr/share/doc/packages/packetfilter/README</file>
- <file type="dir">/etc/packetfilter</file>
- <file type="dir">/usr/share/doc/packages/packetfilter</file>
- <file type="dir">/usr/share/doc/packages/packetfilter/samples</file>
-</package>
-<package pkgid="5f5547fe534991d161f5cbd9b823276a86eb55ea" name="packetfilter" arch="noarch">
- <version epoch="0" ver="0.9.1" rel="4"/>
- <file>/etc/init.d/packetfilter</file>
- <file>/etc/packetfilter/def</file>
- <file>/etc/packetfilter/ppp0</file>
- <file>/usr/sbin/rcpacketfilter</file>
- <file>/usr/share/doc/packages/packetfilter/README</file>
- <file>/usr/share/doc/packages/packetfilter/samples/isdn-router/def</file>
- <file>/usr/share/doc/packages/packetfilter/samples/isdn-router/eth0</file>
- <file>/usr/share/doc/packages/packetfilter/samples/isdn-router/ppp0</file>
- <file>/usr/share/doc/packages/packetfilter/samples/tdsl-ipsec/def</file>
- <file>/usr/share/doc/packages/packetfilter/samples/tdsl-ipsec/eth0</file>
- <file>/usr/share/doc/packages/packetfilter/samples/tdsl-ipsec/ipsec0</file>
- <file>/usr/share/doc/packages/packetfilter/samples/tdsl-ipsec/ppp0</file>
- <file type="dir">/etc/packetfilter</file>
- <file type="dir">/usr/share/doc/packages/packetfilter</file>
- <file type="dir">/usr/share/doc/packages/packetfilter/samples</file>
- <file type="dir">/usr/share/doc/packages/packetfilter/samples/isdn-router</file>
- <file type="dir">/usr/share/doc/packages/packetfilter/samples/tdsl-ipsec</file>
-</package>
-<package pkgid="f9d63f4369eda675a65522ab6c985a60e73a1ceb" name="bbconf" arch="i386">
- <version epoch="0" ver="1.2" rel="1"/>
- <file>/usr/bin/bbconf</file>
- <file>/usr/doc/bbconf/AUTHORS</file>
- <file>/usr/doc/bbconf/COPYING</file>
- <file>/usr/doc/bbconf/ChangeLog</file>
- <file>/usr/doc/bbconf/README</file>
- <file>/usr/doc/bbconf/README.html</file>
- <file>/usr/doc/bbconf/TODO</file>
- <file>/usr/man/man1/bbconf.1.gz</file>
- <file>/usr/share/bbconf/plugins/libbbconf.la</file>
- <file>/usr/share/bbconf/plugins/libbbconf.so</file>
- <file>/usr/share/bbconf/plugins/libkeybindings.la</file>
- <file>/usr/share/bbconf/plugins/libkeybindings.so</file>
- <file>/usr/share/bbconf/plugins/libmenu.la</file>
- <file>/usr/share/bbconf/plugins/libmenu.so</file>
- <file>/usr/share/bbconf/plugins/libthemes.la</file>
- <file>/usr/share/bbconf/plugins/libthemes.so</file>
- <file>/usr/share/doc/packages/bbconf/AUTHORS</file>
- <file>/usr/share/doc/packages/bbconf/COPYING</file>
- <file>/usr/share/doc/packages/bbconf/ChangeLog</file>
- <file>/usr/share/doc/packages/bbconf/README</file>
- <file>/usr/share/doc/packages/bbconf/README.html</file>
- <file>/usr/share/doc/packages/bbconf/TODO</file>
- <file type="dir">/usr/bin</file>
- <file type="dir">/usr/doc</file>
- <file type="dir">/usr/doc/bbconf</file>
- <file type="dir">/usr/man</file>
- <file type="dir">/usr/man/man1</file>
- <file type="dir">/usr/share</file>
- <file type="dir">/usr/share/bbconf</file>
- <file type="dir">/usr/share/bbconf/plugins</file>
- <file type="dir">/usr/share/doc/packages/bbconf</file>
-</package>
-<package pkgid="eced88b6e724e4a45b82f2723912ef2e29ee134b" name="PlatinGUI" arch="noarch">
- <version epoch="0" ver="620" rel="0"/>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbax</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbfx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbmx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbtx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmbux</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmdlx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmgax</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmhix</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmhox</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmhpx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmmsx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmnex</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmpox</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmscx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmstx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmsux</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmupx</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gmuxsvr</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxvalogo.gmf</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxvasap1.gmf</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxvasap2.gmf</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilcs.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilda.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilde.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilen.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwiles.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilfr.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilhr.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilhu.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilit.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilko.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilnl.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilno.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilpl.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilpt.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilro.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilru.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilsl.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilsv.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilth.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwiltr.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilx1.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilx2.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/gxwilzh.txt</file>
- <file>/opt/PlatinGUI/6.20/bin/gmux/sapgui</file>
- <file>/opt/PlatinGUI/6.20/bin/guilogon</file>
- <file>/opt/PlatinGUI/6.20/bin/guistart</file>
- <file>/opt/PlatinGUI/6.20/bin/libJPlatin.so</file>
- <file>/opt/PlatinGUI/6.20/bin/sapftp</file>
- <file>/opt/PlatinGUI/6.20/bin/sapgui</file>
- <file>/opt/PlatinGUI/6.20/bin/saphttp</file>
- <file>/opt/PlatinGUI/6.20/install.properties</file>
- <file>/opt/PlatinGUI/6.20/jar/AcrobatViewerS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/GuiStartS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/IceBrowserS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/Linux-gmux.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/Linux-graphics.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/Linux-lib.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/Manual.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/Unix-localstart.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/iCubeS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/platincoreS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapCalendarS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapChartS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapContextMenuS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapGridS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapHtmlViewerS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapImageS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapTextEditS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapToolBarS.jar</file>
- <file>/opt/PlatinGUI/6.20/jar/sapTreeS.jar</file>
- <file>/usr/bin/guilogon</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/admconf/guiconf.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/admconf/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/admconf/msgsrv.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/admconf/router.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/applet/conndata.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/applet/htmlref.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/applet/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/applet/install.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/applet/intro.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/applet/jscript.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/backgrnd/conndata.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/backgrnd/connstr.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/backgrnd/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/backgrnd/jnlp.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/backgrnd/signing.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/backgrnd/trace.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/install/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/install/install.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/install/mac.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/intro/applet.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/intro/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/intro/platin.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/main.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/manual.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/relnotes/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/relnotes/issues.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/relnotes/missing.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/relnotes/new.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/relnotes/upgrade.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/start/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/start/mac.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/start/os2.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/start/unix.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/start/win32.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/aix.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/hpux.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/linux.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/mac.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/os2.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/solaris.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/tru64.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/sysreq/win32.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/userconf/index.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/userconf/settings.htm</file>
- <file>/usr/share/doc/packages/PlatinGUI/doc/userconf/systems.htm</file>
- <file type="dir">/opt/PlatinGUI/6.20</file>
- <file type="dir">/opt/PlatinGUI/6.20/bin</file>
- <file type="dir">/opt/PlatinGUI/6.20/bin/gmux</file>
- <file type="dir">/opt/PlatinGUI/6.20/jar</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/admconf</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/applet</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/backgrnd</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/install</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/intro</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/relnotes</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/start</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/sysreq</file>
- <file type="dir">/usr/share/doc/packages/PlatinGUI/doc/userconf</file>
-</package>
-<package pkgid="77b165fcb30789fb8c4c669e21fed3d04938f607" name="packetfilter" arch="src">
- <version epoch="0" ver="0.9.1" rel="3"/>
- <file>packetfilter.spec</file>
- <file>packetfilter.tgz</file>
-</package>
-<package pkgid="548c0cac5b1e89c0200879a9b337e7d5fc183122" name="bbconf" arch="src">
- <version epoch="0" ver="1.2" rel="1"/>
- <file>bbconf-1.2.tar.gz</file>
- <file>bbconf.spec</file>
-</package>
-<package pkgid="5d34c98c42302406c5c0a31c163ee6145c014f9d" name="PlatinGUI" arch="src">
- <version epoch="0" ver="620" rel="0"/>
- <file>PlatinGUI-620.tgz</file>
- <file>PlatinGUI.spec</file>
-</package>
-<package pkgid="dffba597ee9614af9ad1db6a82141d024a94ab6a" name="packetfilter" arch="src">
- <version epoch="0" ver="0.9.1" rel="4"/>
- <file>packetfilter.spec</file>
- <file>packetfilter.tgz</file>
-</package>
-
-</filelists>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<groups xmlns="http://linux.duke.edu/metadata/groups">
- <group>
- <groupid>foo</groupid>
- <name>foobar</name>
- <name lang='en.US'>foobar</name>
- <default>false</default>
- <uservisible>true</uservisible>
- <description>This is my group, it is soooooooo coool!</description>
- <description lang='en.US'>Duh</description>
- <grouplist>
- <metapkg type="mandatory">othergroup</metapkg>
- <metapkg type="optional">stillother</metapkg>
- <metapkg type="default">stillmore</metapkg>
- <metapkg>other</metapkg>
- </grouplist>
- <packagelist>
- <packagereq type="mandatory" epoch="0" ver="1" rel="1">pkgname</packagereq>
- <packagereq epoch="1" ver="2" rel="0">otherpkgname</packagereq>
- </packagelist>
- </group>
-</groups>
-
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<otherdata xmlns="http://linux.duke.edu/metadata/other" packages="8">
-<package pkgid="8121d38334a682f5bf2c8320388395ba7e4b276d" name="packetfilter" arch="noarch">
- <version epoch="0" ver="0.9.1" rel="3"/>
-</package>
-<package pkgid="5f5547fe534991d161f5cbd9b823276a86eb55ea" name="packetfilter" arch="noarch">
- <version epoch="0" ver="0.9.1" rel="4"/>
-</package>
-<package pkgid="f9d63f4369eda675a65522ab6c985a60e73a1ceb" name="bbconf" arch="i386">
- <version epoch="0" ver="1.2" rel="1"/>
-</package>
-<package pkgid="eced88b6e724e4a45b82f2723912ef2e29ee134b" name="PlatinGUI" arch="noarch">
- <version epoch="0" ver="620" rel="0"/>
-</package>
-<package pkgid="77b165fcb30789fb8c4c669e21fed3d04938f607" name="packetfilter" arch="src">
- <version epoch="0" ver="0.9.1" rel="3"/>
-</package>
-<package pkgid="548c0cac5b1e89c0200879a9b337e7d5fc183122" name="bbconf" arch="src">
- <version epoch="0" ver="1.2" rel="1"/>
-</package>
-<package pkgid="5d34c98c42302406c5c0a31c163ee6145c014f9d" name="PlatinGUI" arch="src">
- <version epoch="0" ver="620" rel="0"/>
-</package>
-<package pkgid="dffba597ee9614af9ad1db6a82141d024a94ab6a" name="packetfilter" arch="src">
- <version epoch="0" ver="0.9.1" rel="4"/>
-</package>
-
-</otherdata>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<patch
- xmlns="http://novell.com/package/metadata/suse/patch"
- xmlns:patch="http://novell.com/package/metadata/suse/patch"
- xmlns:yum="http://linux.duke.edu/metadata/common"
- xmlns:rpm="http://linux.duke.edu/metadata/rpm"
- xmlns:suse="http://novell.com/package/metadata/suse/common"
- patchid="foo-12321"
- timestamp="2342342"
- engine="1.0">
- <yum:name>foo</yum:name>
- <summary lang="en">install if you have lots of foo</summary>
- <description lang="en">fixes Bug #231312</description>
- <yum:version epoch="0" ver="1" rel="2"/>
- <rpm:provides><rpm:entry kind="patch" name="foo-patch-fitzefatze"/></rpm:provides>
- <rpm:conflicts><rpm:entry kind="package" name="foo-oldpatch" epoch="1" ver="1" rel="2" flags="EQ"/></rpm:conflicts>
- <suse:freshen>
- <suse:entry kind="package" name="foo" epoch="2" ver="3" rel="4" flags="LE"/>
- <suse:entry kind="package" name="foo-devel" epoch="3" ver="4" rel="5" flags="LE"/>
- </suse:freshen>
- <rpm:requires><rpm:entry kind="patch" name="blah-234" epoch="4" ver="5" rel="6" flags="EQ"/></rpm:requires>
- <category>security</category>
- <reboot_needed/>
- <package_manager/>
- <update_script>
-<![CDATA[#!/bin/bash
-rpm -Uhv * > /dev/null
-]]>
- </update_script>
- <atoms>
- <script>
- <yum:name>foo-patch-script-1</yum:name>
- <yum:version epoch="0" ver="1" rel="2"/>
- <do>#!/bin/bash</do>
- <undo>#!/bin/unbash</undo>
- <suse:freshen>
- <suse:entry kind="package" name="foo" epoch="2" ver="3" rel="4" flags="LE"/>
- <suse:entry kind="package" name="foo-devel" epoch="3" ver="4" rel="5" flags="LE"/>
- </suse:freshen>
- </script>
- </atoms>
- <atoms>
- <message type="OK">
- <yum:name>foo-patch-message-1</yum:name>
- <yum:version epoch="0" ver="1" rel="2"/>
- <text>Just note that the very critical package foo will be installed just now</text>
- <suse:freshen>
- <suse:entry kind="package" name="foo" epoch="2" ver="3" rel="4" flags="LE"/>
- <suse:entry kind="package" name="foo-devel" epoch="3" ver="4" rel="5" flags="LE"/>
- </suse:freshen>
- </message>
- </atoms>
- <atoms>
- <package xmlns="http://linux.duke.edu/metadata/common"
- type="rpm">
- <name>foo</name>
- <arch>noarch</arch>
- <version epoch="2" ver="3" rel="4"/>
- <checksum type="sha" pkgid="YES">8121d38334a682f5bf2c8320388395ba7e4b276d</checksum>
- <patch:summary lang="en">A packetfilter wrapper compatible with ipfwadm, ipchains, iptables</patch:summary>
- <patch:description lang="en">This package consists of a simple firewall wrapper script
- providing a packet filter mini-language to state your
- filtering needs independent of the used firewall type.
- It's just like a service start/stop script and started
- during the normal System V boot sequence.
-
- See the README for details.</patch:description>
- <packager/>
- <url/>
- <time file="1011218465" build="1011218465"/>
- <size package="7333" installed="16835" archive="17904"/>
- <location xml:base="http://w3.suse.de/~mir/repo" href="packetfilter-0.9.1-3.noarch.rpm"/>
- <format>
- <rpm:license>(c) 2002, Michael Radziej, under Gnu LPL</rpm:license>
- <rpm:vendor/>
- <rpm:group>unsorted</rpm:group>
- <rpm:buildhost>martin.suse.de</rpm:buildhost>
- <rpm:sourcerpm>packetfilter-0.9.1-3.src.rpm</rpm:sourcerpm>
- <rpm:header-range start="168" end="2268"/>
- <rpm:provides>
- <rpm:entry name="packetfilter" flags="EQ" epoch="0" ver="0.9.1" rel="3"/>
- </rpm:provides>
- <rpm:requires>
- <rpm:entry name="/bin/bash"/>
- <rpm:entry name="/bin/sh" pre="1"/>
- </rpm:requires>
- <file>/etc/packetfilter/def</file>
- <file>/etc/init.d/packetfilter</file>
- <file>/usr/sbin/rcpacketfilter</file>
- <file>/etc/packetfilter/ppp0</file>
- <file type="dir">/etc/packetfilter</file>
- </format>
- <pkgfiles xmlns="http://novell.com/package/metadata/suse/patch">
- <plainrpm arch="noarch" filename="foo.rpm" downloadsize="56678" md5sum="234233" buildtime="23443"/>
- <patchrpm arch="noarch" filename="foo.patch.rpm" downloadsize="56278" md5sum="2344533" buildtime="23243">
- <base_version epoch="1" ver="2" rel="3"/>
- <base_version epoch="2" ver="3" rel="4"/>
- </patchrpm>
- <deltarpm arch="noarch" filename="foo-delta-bla.delta.rpm" downloadsize="234" md5sum="1222" buildtime="2232">
- <base_version epoch="3" ver="4" rel="5" md5sum="312321" buildtime="3232" sequence_info="irgendwas"/>
- </deltarpm>
- </pkgfiles>
- </package>
- </atoms>
-</patch>
-
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<product
- xmlns="http://novell.com/package/metadata/suse/product"
- xmlns:product="http://novell.com/package/metadata/suse/product"
- xmlns:yum="http://linux.duke.edu/metadata/common"
- xmlns:rpm="http://linux.duke.edu/metadata/rpm"
- xmlns:suse="http://novell.com/package/metadata/suse/common"
- type="add-on">
- <vendor>Novell Inc.</vendor>
- <name>OES</name>
- <version epoch="0" ver="1" rel="2"/>
- <displayname lang="en">Open Enterprise Server</displayname>
- <description lang="en">Opens your server to enterprise</description>
- <rpm:provides><rpm:entry kind="product" name="OES"/></rpm:provides>
-</product>
-
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<patches xmlns="http://novell.com/package/metadata/suse/patches">
- <patch id="12345">
- <checksum type="sha">e7ba668ab0d49486f0a3e7a0b168406a88a46ed9</checksum>
- <location href="repodata/patch.xml"/>
- </patch>
- <patch id="54321">
- <checksum type="md5">e7ba668ab0d49486f0a3e7a0b168406a88a46ed9</checksum>
- <location href="repodata/patch2.xml"/>
- </patch>
-</patches>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<patterns xmlns="http://linux.duke.edu/metadata/patterns">
- <pattern>
- <patternid>foo</patternid>
- <name>foobar</name>
- <name lang='en.US'>foobar</name>
- <default>false</default>
- <uservisible>true</uservisible>
- <description>This is my pattern, it is soooooooo coool!</description>
- <description lang='en.US'>Duh</description>
- <patternlist>
- <metapkg type="mandatory">otherpattern</metapkg>
- <metapkg type="optional">stillother</metapkg>
- <metapkg type="default">stillmore</metapkg>
- <metapkg>other</metapkg>
- </patternlist>
- <packagelist>
- <packagereq type="mandatory" epoch="0" ver="1" rel="1">pkgname</packagereq>
- <packagereq epoch="1" ver="2" rel="0">otherpkgname</packagereq>
- </packagelist>
- </pattern>
-</patterns>
-
+++ /dev/null
-003-filelists-correct.test.xml
\ No newline at end of file
+++ /dev/null
-004-group-correct.test.xml
\ No newline at end of file
+++ /dev/null
-005-other-correct.test.xml
\ No newline at end of file
+++ /dev/null
-006-patch-correct.test.xml
\ No newline at end of file
+++ /dev/null
-008-patches-correct.test.xml
\ No newline at end of file
+++ /dev/null
-002-primary-correct.test.xml
\ No newline at end of file
+++ /dev/null
-007-product-correct.test.xml
\ No newline at end of file
+++ /dev/null
-001-repomd-correct.test.xml
\ No newline at end of file
+++ /dev/null
-INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${KDE3_INCLUDE_DIR} ${QT_INCLUDE_DIR} )
-
-
-########### install files ###############
-
-
-
-
-#original Makefile.am contents follow:
-
+++ /dev/null
-INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${KDE3_INCLUDE_DIR} ${QT_INCLUDE_DIR} )
-
-
-########### next target ###############
-
-SET(installation_sources_SRCS
-installation_sources.cc
-)
-
-KDE3_AUTOMOC(${installation_sources_SRCS})
-
-KDE3_ADD_EXECUTABLE(installation_sources ${installation_sources_SRCS})
-
-TARGET_LINK_LIBRARIES(installation_sources ${QT_AND_KDECORE_LIBS} zypp )
-
-
-########### install files ###############
-
-
-
-
-#original Makefile.am contents follow:
-
-### Process this file with automake to produce Makefile.in
-### ##################################################
-#
-#noinst_PROGRAMS = installation_sources
-#
-### ##################################################
-#
-#INCLUDES =
-#
-#AM_LDFLAGS =
-#
-#AM_CXXFLAGS =
-#
-#
-### ##################################################
-#
-#installation_sources_SOURCES = installation_sources.cc
-#installation_sources_LDADD = ../../zypp/libzypp.la
-#
-### ##################################################
-#
-##$(noinst_PROGRAMS): $(top_srcdir)/zypp/lib@PACKAGE@.la
-#
-##$(top_srcdir)/zypp/lib@PACKAGE@.la:
-## $(MAKE) -C $(top_srcdir)/zypp
-#
-### ##################################################
+++ /dev/null
-installation_sources was a part of yast2-packagemanager.rpm but
-unfortunately was not ported to libzypp in time. This package
-provides the port. Libzypp may integrate it (and obsolete this
-package) in the future.
-
-Usage:
- installation_sources [options] -a url Add source at given URL.
- -n name Name the source.
- -e Enable source. This is the default.
- -d Disable source.
- -f Autorefresh source.
- -Y Answer Yes to all checksum and signature questions.
- installation_sources -s Show all available sources.
-
---
-Martin Vidner, YaST developer
-http://en.opensuse.org/User:Mvidner
-
-
+++ /dev/null
-/**
- * installation_sources
- */
-
-#include <getopt.h>
-#include <time.h>
-
-#include <iomanip>
-#include <list>
-#include <string>
-
-#include <boost/format.hpp>
-
-#include <zypp/ZYpp.h>
-#include <zypp/ZYppFactory.h>
-#include <zypp/SourceFactory.h>
-#include <zypp/SourceManager.h>
-#include <zypp/KeyRing.h>
-#include <zypp/Digest.h>
-#include <zypp/base/LogControl.h>
-#include <zypp/base/Logger.h>
-#include <zypp/base/Exception.h>
-
-#undef ZYPP_BASE_LOGGER_LOGGROUP
-#define ZYPP_BASE_LOGGER_LOGGROUP "installation_sources"
-
-using namespace std;
-using namespace zypp;
-using boost::format;
-
-bool callbackAnswer = false;
-
-static
-bool readCallbackAnswer()
-{
- cerr << "> " << (callbackAnswer? "yes": "no") << endl;
- return callbackAnswer;
-}
-
-static
-bool askIt (const boost::format & msg)
-{
- MIL << msg << endl;
- cerr << msg << endl;
- return readCallbackAnswer ();
-}
-
-///////////////////////////////////////////////////////////////////
-// KeyRingReceive
-///////////////////////////////////////////////////////////////////
-struct KeyRingReceive : public zypp::callback::ReceiveReport<zypp::KeyRingReport>
-{
- virtual bool askUserToAcceptUnsignedFile( const std::string &file )
- {
- return askIt (
- format(_("File %s is not signed.\n"
- "Use it anyway?"))
- % file
- );
- }
-
- virtual bool askUserToAcceptUnknownKey( const std::string &file, const std::string &keyid, const std::string &keyname, const std::string &fingerprint )
- {
- return askIt (
- format(_("File %s is signed with an unknown key:\n"
- "%s|%s|%s\n"
- "Use the file anyway?"))
- % file % keyid % keyname % fingerprint
- );
- }
-
- virtual bool askUserToTrustKey( const std::string &keyid, const std::string &keyname, const std::string &fingerprint )
- {
- return askIt (
- format(_("Untrusted key found:\n"
- "%s|%s|%s\n"
- "Trust key?"))
- % keyid % keyname % fingerprint
- );
- }
-
- virtual bool askUserToAcceptVerificationFailed( const std::string &file, const std::string &keyid, const std::string &keyname, const std::string &fingerprint )
- {
- return askIt (
- format(_("File %s failed integrity check with the folowing key:\n"
- "%s|%s|%s\n"
- "Use the file anyway?"))
- % file % keyid % keyname % fingerprint
- );
- }
-};
-
-
-struct DigestReceive : public zypp::callback::ReceiveReport<zypp::DigestReport>
-{
- virtual bool askUserToAcceptNoDigest( const zypp::Pathname &file )
- {
- return askIt (
- format(_("File %s does not have a checksum.\n"
- "Use the file anyway?"))
- % file
- );
- }
-
- virtual bool askUserToAccepUnknownDigest( const Pathname &file, const std::string &name )
- {
- return askIt (
- format(_("File %s has an unknown checksum %s.\n"
- "Use the file anyway?"))
- % file % name
- );
- }
-
- virtual bool askUserToAcceptWrongDigest( const Pathname &file, const std::string &requested, const std::string &found )
- {
- return askIt (
- format(_("File %s has an invalid checksum.\n"
- "Expected %s, found %s\n"
- "Use the file anyway?"))
- % file % requested % found
- );
- }
-};
-
-static
-std::string timestamp ()
-{
- time_t t = time(NULL);
- struct tm * tmp = localtime(&t);
-
- if (tmp == NULL) {
- return "";
- }
-
- char outstr[50];
- if (strftime(outstr, sizeof(outstr), "%Y%m%d-%H%M%S", tmp) == 0) {
- return "";
- }
- return outstr;
-}
-
-void usage()
-{
- // TODO: -r remove
- cout << "Usage:" << endl
- << " installation_sources [options] -a url Add source at given URL." << endl
- << " -n name Name the source." << endl
- << " -e Enable source. This is the default." << endl
- << " -d Disable source." << endl
- << " -f Autorefresh source." << endl
- << " -Y Answer Yes to all checksum and signature questions." << endl
- << " installation_sources -s Show all available sources." << endl;
- exit( 1 );
-}
-
-/******************************************************************
- **
- **
- ** FUNCTION NAME : main
- ** FUNCTION TYPE : int
- **
- ** DESCRIPTION :
- */
-int main( int argc, char **argv )
-{
- const char *logfile = getenv("ZYPP_LOGFILE");
- if (logfile == NULL)
- logfile = "/var/log/YaST2/y2log";
- zypp::base::LogControl::instance().logfile( logfile );
-
- MIL << "START" << endl;
-
- const char *urlStr = 0;
- string alias;
-
- bool showSources = false;
- bool addSource = false;
- bool enableSource = true; // -e per default
- bool autoRefresh = false;
-
- int c;
- while( 1 ) {
- c = getopt( argc, argv, "desa:fYn:" );
- if ( c < 0 ) break;
-
- switch ( c ) {
- case 's':
- showSources = true;
- break;
- case 'a':
- addSource = true;
- urlStr = optarg;
- break;
- case 'n':
- alias = optarg;
- break;
- case 'd':
- enableSource = false;
- break;
- case 'e':
- enableSource = true;
- break;
- case 'f':
- autoRefresh = true;
- break;
- case 'Y':
- callbackAnswer = true;
- break;
- default:
- cerr << "Error parsing command line." << endl;
- case '?':
- case 'h':
- usage();
- }
- }
-
- if ( showSources && addSource ) usage();
- if ( !showSources && !addSource ) usage();
-
- try {
-
-
- ZYpp::Ptr Z = NULL;
- try {
- Z = getZYpp();
- }
- catch ( const Exception & excpt_r ) {
- ZYPP_CAUGHT (excpt_r);
- cerr << "A transaction is already in progress." << endl;
- exit(1);
- }
-
- KeyRingReceive keyring_rcv;
- keyring_rcv.connect ();
- DigestReceive digest_rcv;
- digest_rcv.connect ();
-
- SourceManager_Ptr manager = SourceManager::sourceManager();
- manager->restore ("/", true /*use_cache*/);
-
- list<SourceManager::SourceId> sourceIds;
-
- if ( addSource ) {
- Url url;
- try {
- url = Url( urlStr );
- }
- catch ( const Exception & excpt_r ) {
- ZYPP_CAUGHT( excpt_r );
- cerr << "URL is invalid." << endl;
- cerr << excpt_r.asUserString() << endl;
- exit( 1 );
- }
-
- Pathname path;
- Pathname cache;
- bool is_base = false;
- if (alias.empty ())
- alias = timestamp ();
- // more products?
- // try
- Source_Ref source = SourceFactory().createFrom( url, path, alias, cache, is_base );
- SourceManager::SourceId sourceId = manager->addSource( source );
-
- if (enableSource)
- source.enable();
- else
- source.disable();
- source.setAutorefresh (autoRefresh);
-
- sourceIds.push_back( sourceId );
- cout << "Added Installation Sources:" << endl;
- }
-
- if ( showSources ) {
- sourceIds = manager->allSources ();
- cout << "Installation Sources:" << endl;
- }
-
- list<SourceManager::SourceId>::const_iterator it;
- for( it = sourceIds.begin(); it != sourceIds.end(); ++it ) {
- Source_Ref source = manager->findSource(*it);
- cout << ( source.enabled() ? "[x]" : "[ ]" );
- cout << ( source.autorefresh() ? "* " : " " );
- cout << source.alias() << " (" << source.url() << ")" << endl;
- }
- if ( addSource ) {
- manager->store( "/", true /*metadata_cache*/ );
- }
-
- digest_rcv.disconnect ();
- keyring_rcv.disconnect ();
- }
- catch ( const Exception & excpt_r ) {
- ZYPP_CAUGHT( excpt_r );
- cerr << excpt_r.asUserString() << endl;
- exit( 1 );
- }
- catch ( const exception & excpt_r ) {
- cerr << excpt_r.what() << endl;
- exit( 1 );
- }
-
- MIL << "END" << endl;
- return 0;
-}
+++ /dev/null
-#
-# spec file for package installation_sources
-#
-# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
-#
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
-#
-
-# norootforbuild
-
-Name: installation_sources
-BuildRequires: libzypp-devel
-License: GPL
-Group: System/Packages
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Autoreqprov: on
-Version: 0.0.1
-Summary: Command Line Tool for libzypp Installation Sources
-Release: 0
-Source: installation_sources.cc
-Source1: README
-Prefix: /usr
-
-%description
-Command Line Tool for libzypp Installation Sources.
-Resurrection of a program that was in yast2-packagemanager.rpm.
-
-Authors:
---------
- Martin Vidner <mvidner@suse.cz>
-
-%prep
-%setup -c -T
-cp %SOURCE0 %SOURCE1 .
-
-%build
-g++ -o installation_sources installation_sources.cc -lzypp
-
-%install
-install -d ${RPM_BUILD_ROOT}%{prefix}/bin
-install installation_sources ${RPM_BUILD_ROOT}%{prefix}/bin
-
-%post
-
-%postun
-
-%clean
-
-%files
-%defattr(-,root,root)
-%{prefix}/bin/installation_sources
-%doc README
-
-%changelog
-* Tue Jul 04 2006 - mvidner@suse.cz
-- Released in build.opensuse.org
+++ /dev/null
-PROJECT(pdbtozypp)
-
-SET( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib" )
-
-SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -O2 -Wall -W -fpic -D_REENTRANT" )
-
-FIND_PACKAGE(Zypp REQUIRED)
-IF ( NOT ZYPP_LIBRARY )
- MESSAGE( FATAL_ERROR " zypp not found" )
-ELSE ( NOT ZYPP_LIBRARY )
- MESSAGE( STATUS "zypp found" )
-ENDIF ( NOT ZYPP_LIBRARY )
-
-SET( pdbtozypp_SRCS
- db.cc
- pdbtozypp.cc
- resolvable.cc
- )
-
-SET( pdbtozypp_HEADERS
- db.h
- pdbtozypp.h
- resolvable.h
- )
-
-INSTALL( FILES ${pdbtozypp_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/pdbtozypp" )
-
-ADD_LIBRARY(pdbtozypp SHARED ${pdbtozypp_SRCS})
-TARGET_LINK_LIBRARIES(pdbtozypp ${ZYPP_LIBRARY} )
-TARGET_LINK_LIBRARIES(pdbtozypp -lmysqlclient )
-
-INSTALL(TARGETS pdbtozypp LIBRARY DESTINATION ${LIB_INSTALL_DIR} )
-
-#ADD_SUBDIRECTORY(swig)
+++ /dev/null
-#include "db.h"
-#include <iostream>
-
-using std::string;
-
-//Constructor
-
-database::database(string nHost, string nUsername, string nPassword, string nDatabase, unsigned int nPort, string nSocket, unsigned long nClient_flag){
- host = nHost;
- username = nUsername;
- password = nPassword;
- db = nDatabase;
- port = nPort;
- socket = nSocket;
- client_flag = nClient_flag;
-
- conn = mysql_init(NULL);
-}
-
-//Destructor
-
-database::~database(){
-}
-
-//Connect to db
-
-unsigned int database::connect(){
- if(mysql_real_connect(conn, host.c_str(), username.c_str(), password.c_str(), db.c_str(), port, socket.c_str(), client_flag) == NULL){
-
- if(mysql_error(conn) != "")
- std::cout << mysql_error(conn) << std::endl;
- return mysql_errno(conn);
- }
-
- return 1;
-}
-
-//Close db connection
-
-void database::close(){
- mysql_close(conn);
-}
-
-//Execute given SQL-Statement
-
-unsigned int database::sqlexecute(string sqlcom){
-
- if(mysql_query(conn, sqlcom.c_str())){
- if(mysql_error(conn) != "")
- std::cout << mysql_error(conn) << std::endl;
- return mysql_errno(conn);
- }
-
- if((result = mysql_store_result(conn)) == NULL){
- if(mysql_error(conn) != "")
- std::cout << mysql_error(conn) << std::endl;
- return mysql_errno(conn);
- }
-
- unsigned int numrows = mysql_num_rows(result);
- unsigned int numfields = mysql_num_fields(result);
-
- //std::cout << "Zeilen: " << numrows << " Spalten: " << numfields << std::endl;
-
- return 1;
-
-}
-
-//Pushes the fetchbuffer in a vector
-
-std::vector< std::vector<string> > database::getResult(){
-
- std::vector< std::vector<string> > outResult;
- int vecCtr = 0;
- unsigned int numfields = mysql_num_fields(result);
-
- while ((fetchbuffer = mysql_fetch_row(result)) != NULL){
- //if(mysql_error(conn) != "")
- // std::cout << mysql_error(conn) << "\n";
- std::vector<string> temp;
- outResult.push_back(temp);
-
- for(unsigned int i = 0; i < numfields; i++){
- outResult[vecCtr].push_back(fetchbuffer[i] ? fetchbuffer[i] : "NULL");
- }
- vecCtr++;
-
- }
-
- return outResult;
-}
+++ /dev/null
-#include <mysql/mysql.h>
-#include <string>
-#include <vector>
-
-#ifndef DB_H
-#define DB_H
-
-using std::string;
-
-class database{
- private:
- string host;
- string username;
- string password;
- string db;
- unsigned int port;
- string socket;
- unsigned long client_flag;
- MYSQL* conn;
- MYSQL_ROW fetchbuffer;
- MYSQL_RES* result;
-
- public:
- database(string host, string username, string password, string db, unsigned int port = 0, string socket = "", unsigned long client_flag = 0);
- ~database();
- unsigned int connect();
- void close();
- unsigned int sqlexecute(string sqlcom);
- std::vector< std::vector<string> > getResult();
-};
-
-
-#endif
+++ /dev/null
-#include "pdbtozypp.h"
-#include <iostream>
-
-using namespace zypp;
-
-//Constructor
-PdbToZypp::PdbToZypp(){
- //store = _store;
-}
-
-PdbToZypp::~PdbToZypp(){
-
-}
-
-int PdbToZypp::readOut(){
-
- //store = new ResStore;
-
- database *dbDeps = new database("lorien.suse.de", "rpmread", "rrrrrrr", "rpm");
- database *dbPackages = new database("lorien.suse.de", "rpmread", "rrrrrrr", "package");
-
- if(dbPackages->connect() != 1){
- std::cout << "NO DB CONNECTION!!!\n";
- return 0;
- }
-
- if(dbDeps->connect() != 1){
- std::cout << "NO DB CONNECTION!!!\n";
- return 0;
- }
-
- dbPackages->sqlexecute("SELECT PackID, PackNameShort, PackStatus FROM Packages WHERE CDReleaseID IN (10, 64) AND PackStatus IN (0, 6, 7, 8) OR PackStatus IS NULL AND BasedOnID IS NULL");
-
- std::vector< std::vector<string> > packIDs = dbPackages->getResult();
-
- Resolvable::Kind kind = ResKind::package;
- CapFactory factory;
-
- for(unsigned int i = 0; i < packIDs.size(); i++){
-
- string sqlcom("SELECT PackID FROM Packages WHERE BasedOnID=");
- sqlcom.append(packIDs[i].at(0));
- dbPackages->sqlexecute(sqlcom);
- std::vector< std::vector<string> > basedIDs = dbPackages->getResult();
-
- std::vector< std::vector<string> > binPack;
-
- for(unsigned int j = 0; j < basedIDs.size(); j++){
-
- sqlcom = "SELECT BinPackID, Version FROM BinaryPackages WHERE PackID=";
- sqlcom.append(basedIDs[j].at(0));
- dbDeps->sqlexecute(sqlcom);
- std::vector< std::vector<string> > tempVec = dbDeps->getResult();
- for(unsigned int x = 0; x < tempVec.size(); x++)
- binPack.push_back(tempVec.at(x));
- }
-
- intrusive_ptr<resolvZypp> pkg;
- CapSet prov;
- CapSet preq;
- CapSet req;
- CapSet conf;
- CapSet obs;
- CapSet rec;
- CapSet sug;
- CapSet fre;
- CapSet enh;
- CapSet sup;
-
- string edition = "";
-
- // If Deps
- if(binPack.size() != 0){
-
- std::vector< std::vector<string> > packDeps;
-
- for(unsigned int k = 0; k < binPack.size(); k++){
- sqlcom = "SELECT Symbol, Kind, Compare, Version FROM PackReqProv WHERE BinPackID=";
- sqlcom.append(binPack[k].at(0));
- dbDeps->sqlexecute(sqlcom);
- std::vector< std::vector<string> > tempVec = dbDeps->getResult();
- for(unsigned int l = 0; l < tempVec.size(); l++)
- packDeps.push_back(tempVec.at(l));
-
- sqlcom = "SELECT name, DirID FROM PackFilelist WHERE DirID IN(1, 22, 24, 96, 178, 756, 1981) AND BinPackID=";
- sqlcom.append(binPack[k].at(0));
- dbDeps->sqlexecute(sqlcom);
- tempVec = dbDeps->getResult();
-
- for(unsigned int m = 0; m < tempVec.size(); m++){
- sqlcom = "SELECT dir FROM PackFileDirs WHERE DirID=";
- sqlcom.append(tempVec[m].at(1));
- dbDeps->sqlexecute(sqlcom);
- std::vector< std::vector<string> > tempVec2 = dbDeps->getResult();
- for(unsigned int n = 0; n < tempVec2.size(); n++){
- string fileprov = tempVec2[n].at(0) + "/" + tempVec[m].at(0);
- prov.insert(factory.parse(kind, fileprov, Rel::ANY, Edition("")));
- }
-
- }
- }
-
- for(unsigned int y = 0; y < packDeps.size(); y++){
-
- string ed = "";
- string symbol = packDeps[y].at(0);
- Rel rel = Rel::ANY;
-
- if(packDeps[y].at(0) == "(none)")
- continue;
-
- if(packDeps[y].at(2) != "NULL"){
- rel = Rel(packDeps[y].at(2));
- ed = packDeps[y].at(3);
- }
-
-
- if(packDeps[y].at(1) == "provides"){
- if(symbol.find(" = ")){
- prov.insert(factory.parse(kind, packDeps[y].at(0)));
- }else{
- prov.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }
-
- }else if(packDeps[y].at(1) == "prerequires"){
- preq.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "requires"){
- req.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "conflicts"){
- conf.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "obsoletes"){
- obs.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "recommends"){
- rec.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "suggests"){
- sug.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "freshens"){
- fre.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "enhances"){
- enh.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "supplements"){
- sup.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }
- }
-
- edition = binPack[0].at(1);
-
- }
-
- Dependencies deps;
- if(prov.size() > 0)
- deps[Dep::PROVIDES] = prov;
- if(preq.size() > 0)
- deps[Dep::PREREQUIRES] = preq;
- if(req.size() > 0)
- deps[Dep::REQUIRES] = req;
- if(conf.size() > 0)
- deps[Dep::CONFLICTS] = conf;
- if(obs.size() > 0)
- deps[Dep::OBSOLETES] = obs;
- if(rec.size() > 0)
- deps[Dep::RECOMMENDS] = rec;
- if(sug.size() > 0)
- deps[Dep::SUGGESTS] = sug;
- if(fre.size() > 0)
- deps[Dep::FRESHENS] = fre;
- if(enh.size() > 0)
- deps[Dep::ENHANCES] = enh;
- if(sup.size() > 0)
- deps[Dep::SUPPLEMENTS] = sup;
-
- NVRAD nvPkg(packIDs[i].at(1), Edition(edition), Arch("i386"), deps);
-
- Package::Ptr p( detail::makeResolvableAndImpl(nvPkg, pkg));
-
- //set Status to install
- /*for(unsigned int ii = 0; ii < pToInst.size(); ii++){
- if(pToInst.at(ii) == packIDs[i].at(1)){
- PoolItem_Ref poolItem(p);
- poolItem.status().setToBeInstalled(ResStatus::USER);
- }
- }*/
-
- store.insert(p);
- }
-
- dbDeps->close();
- dbPackages->close();
-
- return 1;
-}
-
-ResStore PdbToZypp::getStore(){
- return store;
-}
+++ /dev/null
-#include <vector>
-#include "db.h"
-#include "resolvable.h"
-
-#include <zypp/ZYpp.h>
-#include <zypp/ZYppFactory.h>
-#include <zypp/ResStore.h>
-#include <zypp/Package.h>
-//#include <zypp/Source.h>
-#include <zypp/CapFactory.h>
-
-class PdbToZypp{
- public:
- //typedef zypp::ResStore ResStore;
- //PdbToZypp(zypp::ResStore & _store);
- PdbToZypp();
- ~PdbToZypp();
- int readOut();
- zypp::ResStore getStore();
- private:
- zypp::ResStore store;
-};
+++ /dev/null
-#include "resolvable.h"
-
-resolvable::resolvable(string _name, string _kind, string _arch, string _version, string _release){
- name = _name;
- kind = _kind;
- arch = _arch;
- version = _version;
- release = _release;
-}
-
-resolvable::~resolvable(){
-}
-
-/*
-void resolvable::addDep(depType _type, string _dep){
-
- if(deps.find(_type) == deps.end()){
- std::vector<string> temp;
- deps[_type] = temp;
- }
-
- deps[_type].push_back(_dep);
-
-}
-*/
+++ /dev/null
-#include <string>
-#include <vector>
-#include <map>
-#include <zypp/detail/PackageImplIf.h>
-
-#ifndef RESOLVABLE_H
-#define RESOLVABLE_H
-
-using std::string;
-
-enum depType{
- REQUIRES,
- PROVIDES,
- OBSOLETES,
- CONFLICTS
-};
-
-class resolvable{
- private:
- string name;
- string kind;
- string arch;
- string version;
- string release;
- std::map < depType, std::vector<string> > deps;
-
- public:
- resolvable(string name, string version, string kind = "package", string arch = "i386", string release ="0");
- ~resolvable();
- //void addDep(depType type, string dep, string compare, string version);
-};
-
-class resolvZypp : public zypp::detail::PackageImplIf {};
-#endif
+++ /dev/null
-PROJECT(swigpdbtozypp)
-
-FIND_PACKAGE(Perl REQUIRED)
-
-FIND_PROGRAM(SWIG_EXECUTABLE
- NAMES swig-1.3 swig
- PATHS ${SWIG_DIR} ${SWIG_DIR}/.. ${SWIG_DIR}/../../bin /usr/bin /usr/local/bin ${CMAKE_INSTALL_PREFIX}/bin
-)
-
-IF ( NOT SWIG_EXECUTABLE )
- MESSAGE( FATAL_ERROR " swig not found" )
-ELSE ( NOT SWIG_EXECUTABLE )
- MESSAGE( STATUS "SWIG found at ${SWIG_EXECUTABLE}" )
-ENDIF ( NOT SWIG_EXECUTABLE )
-
-
-EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{cppflags}" OUTPUT_VARIABLE PERL_CXX_FLAGS)
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PERL_CXX_FLAGS}")
-
-EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print \$Config{archlibexp}" OUTPUT_VARIABLE PERL_LIB_PATH)
-SET( PERL_INS_PATH "${PERL_LIB_PATH}" )
-SET( PERL_LIB_PATH "${PERL_LIB_PATH}/CORE" )
-
-MESSAGE(STATUS "Perl executable: ${PERL_EXECUTABLE}")
-MESSAGE(STATUS "Perl cpp-flags: ${PERL_CXX_FLAGS}")
-MESSAGE(STATUS "Perl lib path: ${PERL_LIB_PATH}")
-
-SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/PdbToZypp_wrap.cxx" )
-SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/PdbToZypp.i" )
-
-ADD_CUSTOM_COMMAND (
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/PdbToZypp_wrap.cxx
- COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for perl..."
- COMMAND ${SWIG_EXECUTABLE} -c++ -perl5 -xmlout ${CMAKE_CURRENT_BINARY_DIR}/parse.xml -o ${CMAKE_CURRENT_BINARY_DIR}/PdbToZypp_wrap.cxx -I${ZYPP_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/PdbToZypp.i
- COMMAND ${CMAKE_COMMAND} -E echo "Done."
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/*.i ${CMAKE_CURRENT_SOURCE_DIR}/*.i
-)
-
-ADD_CUSTOM_TARGET( glue
- DEPENDS ${SWIG_OUTPUT}
-)
-
-ADD_LIBRARY( rpdbtozypp SHARED "${CMAKE_CURRENT_BINARY_DIR}/PdbToZypp_wrap.cxx" )
-SET_TARGET_PROPERTIES( rpdbtozypp PROPERTIES PREFIX "" )
-ADD_DEPENDENCIES( rpdbtozypp glue )
-
-INCLUDE_DIRECTORIES( ${PERL_LIB_PATH} )
-INCLUDE_DIRECTORIES( ${ZYPP_INCLUDE_DIR} )
-INCLUDE_DIRECTORIES( ${CMAKE_INSTALL_PREFIX}/include/pdbtozypp )
-TARGET_LINK_LIBRARIES( rpdbtozypp ${ZYPP_LIBRARY} )
-TARGET_LINK_LIBRARIES( rpdbtozypp -lpdbtozypp )
-
-INSTALL(TARGETS rpdbtozypp LIBRARY DESTINATION ${PERL_INS_PATH})
-INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/rpdbtozypp.pm DESTINATION ${PERL_INS_PATH})
-
+++ /dev/null
-%module rpdbtozypp
-%{
-#undef NORMAL
-#include "pdbtozypp.h"
-using namespace zypp;
-%}
-
-class PdbToZypp{
- public:
- //typedef zypp::ResStore ResStore;
- //PdbToZypp(zypp::ResStore & _store);
- PdbToZypp();
- ~PdbToZypp();
- int readOut();
- ResStore getStore();
- private:
- ResStore store;
-};
+++ /dev/null
-####### Compiler, tools and options
-
-CC = gcc
-CXX = g++
-DEFINES =
-CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
-CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
-INCPATH = -I/usr/include -I. -I. -I.
-LINK = g++
-LFLAGS = -lpdbtozypp
-LIBS = $(SUBLIBS) -L/usr/lib
-
-####### Output directory
-
-OBJECTS_DIR = ./
-
-####### Files
-
-SOURCES = main.cc
-OBJECTS = main.o
-OBJCOMP =
-DESTDIR =
-TARGET = dbread
-
-first: all
-####### Implicit rules
-
-.SUFFIXES: .o .c .cpp .cc .cxx .C
-
-.cpp.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.cc.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.cxx.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.C.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.c.o:
- $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
-
-####### Build rules
-
-all: Makefile $(TARGET)
-
-$(TARGET): $(OBJECTS)
- $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
-
+++ /dev/null
-####### Compiler, tools and options
-
-CC = gcc
-CXX = g++
-DEFINES =
-CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
-CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
-INCPATH = -I/usr/include -I. -I. -I.
-LINK = g++
-LFLAGS = -shared -fpic -lmysqlclient
-LIBS = $(SUBLIBS) -L/usr/local/lib
-
-####### Output directory
-
-OBJECTS_DIR = ./
-
-####### Files
-
-SOURCES = db.cc resolvable.h pdbtozypp.cc
-OBJECTS = db.o dbmain.o pdbtozypp.o
-OBJCOMP = /usr/local/lib/libzypp.so
-DESTDIR =
-TARGET = libpdbtozypp.so
-
-first: all
-####### Implicit rules
-
-.SUFFIXES: .o .c .cpp .cc .cxx .C
-
-.cpp.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.cc.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.cxx.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.C.o:
- $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.c.o:
- $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
-
-####### Build rules
-
-all: Makefile $(TARGET)
-
-$(TARGET): $(OBJECTS)
- $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
-
-install:
- install --mode=644 db.h /usr/include/pdbtozypp/
- install --mode=644 resolvable.h /usr/include/pdbtozypp/
- install --mode=644 pdbtozypp.h /usr/include/pdbtozypp/
- install --mode=555 libpdbtozypp.so /usr/lib/
+++ /dev/null
-#include <iostream>
-#include <vector>
-#include <map>
-#include "db.h"
-#include "resolvable.h"
-
-#include <zypp/ZYpp.h>
-#include <zypp/ZYppFactory.h>
-#include <zypp/ResStore.h>
-#include <zypp/Package.h>
-#include <zypp/Source.h>
-#include <zypp/CapFactory.h>
-
-using namespace zypp;
-
-unsigned int getResolvables(ResStore*);
-
-int main(){
-
- static ZYpp::Ptr God;
- ResStore *store = new ResStore();
-
- std::cout << "Returncode: " << getResolvables(store) << std::endl;
-
- // Get Zypp lock
- try {
- God = zypp::getZYpp();
- }
- catch (const Exception & excpt_r ) {
- ZYPP_CAUGHT( excpt_r );
- std::cerr << "Can't aquire ZYpp lock" << std::endl;
- return 1;
- }
-
- God->addResolvables(*store);
-
- std::cout << "Number of elements in pool: " << God->pool().size() << std::endl;
- std::cout << "Verify System: " << God->resolver()->verifySystem() << std::endl;
-
- /*for (ResPool::const_iterator it = God->pool().begin(); it != God->pool().end(); ++it) {
- if(it->resolvable()->name() == "tvbrowser"){
- CapSet caps = it->resolvable()->dep (Dep::REQUIRES);
- for (CapSet::const_iterator itCap = caps.begin(); itCap != caps.end(); ++itCap)
- std::cout << "Requires: " << itCap->op().asString() << " " << itCap->asString() << std::endl;
- }
- }*/
-
- return 0;
-}
-
-unsigned int getResolvables(ResStore *store){
-
- database *dbDeps = new database("lorien.suse.de", "rpmread", "Salahm1", "rpm");
- database *dbPackages = new database("lorien.suse.de", "rpmread", "Salahm1", "package");
-
- if(dbPackages->connect() != 1){
- std::cout << "NO DB CONNECTION!!!\n";
- return 1;
- }
-
- if(dbDeps->connect() != 1){
- std::cout << "NO DB CONNECTION!!!\n";
- return 1;
- }
-
- dbPackages->sqlexecute("SELECT PackID, PackNameShort, PackStatus FROM Packages WHERE CDReleaseID = 10 AND PackStatus IN (0, 6, 7, 8) AND BasedOnID IS NULL");
-
- std::vector< std::vector<string> > packIDs = dbPackages->getResult();
- std::cout << "get packages from db...\n";
-
- Resolvable::Kind kind = ResKind::package;
- CapFactory factory;
-
- for(unsigned int i = 2000; i < packIDs.size(); i++){
-
- string sqlcom("SELECT PackID FROM Packages WHERE BasedOnID=");
- sqlcom.append(packIDs[i].at(0));
- dbPackages->sqlexecute(sqlcom);
- std::vector< std::vector<string> > basedIDs = dbPackages->getResult();
-
- std::vector< std::vector<string> > binPack;
-
- for(unsigned int j = 0; j < basedIDs.size(); j++){
-
- sqlcom = "SELECT BinPackID, Version FROM BinaryPackages WHERE PackID=";
- sqlcom.append(basedIDs[j].at(0));
- dbDeps->sqlexecute(sqlcom);
- std::vector< std::vector<string> > tempVec = dbDeps->getResult();
- for(unsigned int x = 0; x < tempVec.size(); x++)
- binPack.push_back(tempVec.at(x));
- }
-
- intrusive_ptr<resolvZypp> pkg;
- CapSet prov;
- CapSet preq;
- CapSet req;
- CapSet conf;
- CapSet obs;
- CapSet rec;
- CapSet sug;
- CapSet fre;
- CapSet enh;
- CapSet sup;
-
- string edition = "";
-
- // If Deps
- if(binPack.size() != 0){
-
- std::vector< std::vector<string> > packDeps;
-
- for(unsigned int k = 0; k < binPack.size(); k++){
- sqlcom = "SELECT Symbol, Kind, Compare, Version FROM PackReqProv WHERE BinPackID=";
- sqlcom.append(binPack[k].at(0));
- dbDeps->sqlexecute(sqlcom);
- std::vector< std::vector<string> > tempVec = dbDeps->getResult();
- for(unsigned int l = 0; l < tempVec.size(); l++)
- packDeps.push_back(tempVec.at(l));
-
-
- }
-
- for(unsigned int y = 0; y < packDeps.size(); y++){
-
- string ed = "";
- Rel rel = Rel::ANY;
-
- if(packDeps[y].at(0) == "(none)")
- continue;
-
- if(packDeps[y].at(2) != "NULL"){
- rel = Rel(packDeps[y].at(2));
- ed = packDeps[y].at(3);
- }
-
-
- if(packDeps[y].at(1) == "provides"){
- prov.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "prerequires"){
- preq.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "requires"){
- req.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "conflicts"){
- conf.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "obsoletes"){
- obs.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "recommends"){
- rec.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "suggests"){
- sug.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "freshens"){
- fre.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "enhances"){
- enh.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }else if(packDeps[y].at(1) == "supplements"){
- sup.insert(factory.parse(kind, packDeps[y].at(0)
- , rel, Edition(ed)));
- }
- }
-
- edition = binPack[0].at(1);
-
- }
-
- Dependencies deps;
- if(prov.size() > 0)
- deps[Dep::PROVIDES] = prov;
- if(preq.size() > 0)
- deps[Dep::PREREQUIRES] = preq;
- if(req.size() > 0)
- deps[Dep::REQUIRES] = req;
- if(conf.size() > 0)
- deps[Dep::CONFLICTS] = conf;
- if(obs.size() > 0)
- deps[Dep::OBSOLETES] = obs;
- if(rec.size() > 0)
- deps[Dep::RECOMMENDS] = rec;
- if(sug.size() > 0)
- deps[Dep::SUGGESTS] = sug;
- if(fre.size() > 0)
- deps[Dep::FRESHENS] = fre;
- if(enh.size() > 0)
- deps[Dep::ENHANCES] = enh;
- if(sup.size() > 0)
- deps[Dep::SUPPLEMENTS] = sup;
-
- //std::cout << "Package: " << packIDs[i].at(1) << std::endl;
- NVRAD nvPkg(packIDs[i].at(1), Edition(edition), Arch("i386"), deps);
-
- CapSet::const_iterator testIter;
-
- for(testIter = req.begin(); testIter != req.end(); testIter++){
- //std::cout << testIter->asString() << std::endl;
- }
-
- Package::Ptr p( detail::makeResolvableAndImpl(nvPkg, pkg));
-
- store->insert(p);
-
- if(i%1000 == 0)
- std::cout << std::endl << i << " packages parsed!\n";
- }
-
- dbDeps->close();
- dbPackages->close();
-
- return 0;
-
-}
-
-int old_test(){
-
- //* old Test-Main
- database *db = new database("lorien.suse.de", "rpmread", "Salahm1", "rpm");
- //database *db = new database("lorien.suse.de", "rpmread", "Salahm1", "package");
- //resolvable *test = new resolvable("art", "386", "1.0", "99", "tr");
-
- string sqlcom = "";
-
- if(db->connect() == 1){
- while(1){
- std::cout << "SQL-Kommando: ";
- std::getline(std::cin, sqlcom);
-
- if(sqlcom.compare("quit") == 0)
- break;
-
- db->sqlexecute(sqlcom);
- }
- }
-
- //test->addDep(REQUIRES, "test2");
- std::vector< std::vector<string> > result = db->getResult();
- db->close();
-
- for(unsigned int i = 0; i < result.size(); i++){
- for(unsigned int y = 0; y < result[i].size(); y++)
- std::cout << result[i].at(y) << " | ";
- std::cout << std::endl;
- }
-
- //std::cout << "Anzahl an Zeilen: " << result.size() << std::endl;
- return 0;
-}
+++ /dev/null
-#include <mysql/mysql.h>
-#include <iostream>
-
-#define host "lorien.suse.de"
-#define username "rpmread"
-#define password "Salahm1"
-#define database "rpm"
-
-MYSQL *conn;
-
-int main(int argc, char *argv[]){
-
- conn = mysql_init(NULL);
- mysql_real_connect(conn,host,username,password,database,0,NULL,0);
-
- if(conn == NULL)
- std::cout << "DB connection failed!";
-
- MYSQL_RES *res_set;
- MYSQL_ROW row;
- unsigned int i;
-
- mysql_query(conn,"SELECT * FROM PackReqProv");
- res_set = mysql_store_result(conn);
- unsigned int numrows = mysql_num_rows(res_set);
-
- std::cout << "Anzahl: " << numrows << std::endl;
-
- while ((row = mysql_fetch_row(res_set)) != NULL){
- std::cout << row[5] << std::endl;
- }
-
- mysql_close(conn);
- return 0;
-
-}
+++ /dev/null
-#include <pdbtozypp/pdbtozypp.h>
-#include <zypp/ResPool.h>
-#include <zypp/RepoManager.h>
-#include <zypp/TmpPath.h>
-#include <zypp/base/Iterator.h>
-
-using namespace zypp;
-using namespace std;
-int main(){
-
- static ZYpp::Ptr God;
-
- PdbToZypp pdb;
- pdb.readOut();
-
- ResStore store = pdb.getStore();
-
- /*RepoInfo repo_info;
- repo_info.setAlias("test");
- repo_info.setName("Test Repo");
- repo_info.setEnabled(true);
- repo_info.setAutorefresh(false);
- repo_info.addBaseUrl(Url("ftp://dist.suse.de/install/stable-x86/"));
-
- RepoManagerOptions opts;
- filesystem::TmpDir cachePath;
- filesystem::TmpDir rawPath;
- filesystem::TmpDir reposPath;
-
- opts.repoCachePath = cachePath.path();
- opts.repoRawCachePath = rawPath.path();
- opts.knownReposPath = reposPath.path();
-
- RepoManager repo_man(opts);
-
- repo_man.addRepository(repo_info);
- repo_man.refreshMetadata(repo_info);
- repo_man.buildCache(repo_info);
- Repository repo = repo_man.createFromCache(repo_info);
- ResStore store = repo.resolvables();*/
-
- try {
- God = zypp::getZYpp();
- }
- catch (const Exception & excpt_r ) {
- ZYPP_CAUGHT( excpt_r );
- cerr << "ZYPP no available" << endl;
- return 1;
- }
-
- God->addResolvables(store);
- cout << "Elements in pool: " << God->pool().size() << endl;
-
- for(pool::PoolTraits::const_iterator iter = God->pool().begin(); iter != God->pool().end(); iter++){
-
- ResObject::constPtr r = iter->resolvable();
- if(r->name() == "glibc"){
- cout << "Package found!" << endl;
- iter->status().setToBeInstalled(ResStatus::USER);
- }
-
- }
-
- Resolver res(God->pool());
-
- if(res.resolvePool() == false){
- cout << "It was not possible to solve the pool" << endl;
- list<string> problems = res.problemDescription();
-
- for(list<string>::iterator iter = problems.begin(); iter != problems.end(); iter++){
- cout << *iter << endl;
- }
-
- }else{
- cout << "The pool was solved corectly" << endl;
- }
-
- return 0;
-}