Author: dmacvicar Date: Sun Feb 17 12:05:51 2008 New Revision: 8768 URL: http://svn.opensuse.org/viewcvs/zypp?rev=8768&view=rev Log: - add support for installing build dependencies from source package (w.i.p) - 0.10.1 Modified: trunk/zypper/VERSION.cmake trunk/zypper/package/zypper.changes trunk/zypper/src/zypper-command.cc trunk/zypper/src/zypper-command.h trunk/zypper/src/zypper-misc.cc trunk/zypper/src/zypper-misc.h trunk/zypper/src/zypper.cc Modified: trunk/zypper/VERSION.cmake URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/VERSION.cmake?rev=8768&r1=8767&r2=8768&view=diff ============================================================================== --- trunk/zypper/VERSION.cmake (original) +++ trunk/zypper/VERSION.cmake Sun Feb 17 12:05:51 2008 @@ -20,4 +20,4 @@ SET(VERSION_MAJOR "0") SET(VERSION_MINOR "10") -SET(VERSION_PATCH "0") +SET(VERSION_PATCH "1") Modified: trunk/zypper/package/zypper.changes URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/package/zypper.changes?rev=8768&r1=8767&r2=8768&view=diff ============================================================================== --- trunk/zypper/package/zypper.changes (original) +++ trunk/zypper/package/zypper.changes Sun Feb 17 12:05:51 2008 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Sun Feb 17 12:03:15 CET 2008 - dmacvicar@suse.de + +- add support for installing build dependencies from + source package (w.i.p) +- 0.10.1 + +------------------------------------------------------------------- Fri Feb 15 16:55:15 CET 2008 - jkupec@suse.cz - --xmlout added (still work in progress) Modified: trunk/zypper/src/zypper-command.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-command.cc?rev=8768&r1=8767&r2=8768&view=diff ============================================================================== --- trunk/zypper/src/zypper-command.cc (original) +++ trunk/zypper/src/zypper-command.cc Sun Feb 17 12:05:51 2008 @@ -29,6 +29,7 @@ const ZypperCommand ZypperCommand::UPDATE(ZypperCommand::UPDATE_e); const ZypperCommand ZypperCommand::DIST_UPGRADE(ZypperCommand::DIST_UPGRADE_e); const ZypperCommand ZypperCommand::SRC_INSTALL(ZypperCommand::SRC_INSTALL_e); +const ZypperCommand ZypperCommand::BUILD_DEPS_INSTALL(ZypperCommand::BUILD_DEPS_INSTALL_e); const ZypperCommand ZypperCommand::SEARCH(ZypperCommand::SEARCH_e); const ZypperCommand ZypperCommand::INFO(ZypperCommand::INFO_e); Modified: trunk/zypper/src/zypper-command.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-command.h?rev=8768&r1=8767&r2=8768&view=diff ============================================================================== --- trunk/zypper/src/zypper-command.h (original) +++ trunk/zypper/src/zypper-command.h Sun Feb 17 12:05:51 2008 @@ -23,6 +23,7 @@ static const ZypperCommand UPDATE; static const ZypperCommand DIST_UPGRADE; static const ZypperCommand SRC_INSTALL; + static const ZypperCommand BUILD_DEPS_INSTALL; static const ZypperCommand SEARCH; static const ZypperCommand INFO; @@ -61,7 +62,8 @@ UPDATE_e, DIST_UPGRADE_e, SRC_INSTALL_e, - + BUILD_DEPS_INSTALL_e, + SEARCH_e, INFO_e, LIST_UPDATES_e, Modified: trunk/zypper/src/zypper-misc.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-misc.cc?rev=8768&r1=8767&r2=8768&view=diff ============================================================================== --- trunk/zypper/src/zypper-misc.cc (original) +++ trunk/zypper/src/zypper-misc.cc Sun Feb 17 12:05:51 2008 @@ -1705,6 +1705,46 @@ return srcpkg; } +int build_deps_install(std::vectorstd::string & arguments) +{ + /* + * Workflow: + * + * 1. find the latest version or version satisfying specification. + * 2. install the source package with ZYpp->installSrcPackage(SrcPackage::constPtr); + */ + + int ret = ZYPPER_EXIT_OK; + + for (vector<string>::const_iterator it = arguments.begin(); + it != arguments.end(); ++it) + { + SrcPackage::constPtr srcpkg = source_find(*it); + + if (srcpkg) + { + cout << format(_("Installing source package %s-%s dependencies")) + % srcpkg->name() % srcpkg->edition() << endl; + + // add all src requires to pool + for_( itc, srcpkg->dep(Dep::REQUIRES).begin(), srcpkg->dep(Dep::REQUIRES).end() ) + { + God->resolver()->addRequire(*itc); + } + + ret = ZYPPER_EXIT_ERR_ZYPP; + + } + else + { + cerr << format(_("Source package '%s' not found.")) % (*it) << endl; + } + } + + return ret; +} + + int source_install(std::vectorstd::string & arguments) { /* Modified: trunk/zypper/src/zypper-misc.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-misc.h?rev=8768&r1=8767&r2=8768&view=diff ============================================================================== --- trunk/zypper/src/zypper-misc.h (original) +++ trunk/zypper/src/zypper-misc.h Sun Feb 17 12:05:51 2008 @@ -129,5 +129,7 @@ * Installs source packages specified by name. */ int source_install(std::vectorstd::string & arguments); +int build_deps_install(std::vectorstd::string & arguments); #endif + Modified: trunk/zypper/src/zypper.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper.cc?rev=8768&r1=8767&r2=8768&view=diff ============================================================================== --- trunk/zypper/src/zypper.cc (original) +++ trunk/zypper/src/zypper.cc Sun Feb 17 12:05:51 2008 @@ -187,6 +187,7 @@ "\tinfo, if\t\tShow full information for packages\n" "\tpatch-info\t\tShow full information for patches\n" "\tsource-install, si\tInstall a source package\n" + "\tbuild-deps-install, bi\tInstall source package build dependencies\n" "\tclean\t\t\tClean local caches\n" ""); @@ -1940,6 +1941,31 @@ return; } + // -------------------( build deps install )------------------------------------ + + else if (command() == ZypperCommand::BUILD_DEPS_INSTALL) + { + if (runningHelp()) { out().info(_command_help, Out::QUIET); return; } + + if (_arguments.size() < 1) + { + out().error(_("Source package name is a required argument.")); + setExitCode(ZYPPER_EXIT_ERR_INVALID_ARGS); + return; + } + + init_repos(*this); + if (exitCode() != ZYPPER_EXIT_OK) + return; + + cond_init_target(*this); + // load only repo resolvables, we don't need the installed ones + load_repo_resolvables(*this); + build_deps_install(_arguments); + solve_and_commit(*this); + return; + } + // --------------------------( search )------------------------------------- else if (command() == ZypperCommand::SEARCH) -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org