From d42426e5263b01076457675cdfda6c6c5f8a9abf Mon Sep 17 00:00:00 2001 From: Mystery Man Date: Wed, 7 Dec 2005 10:44:44 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'V1_5_4_1mdk'. --- .cvsignore | 1 + ChangeLog | 64 ++++++++++++++++++++++++++++++++++++++++++ Makefile | 62 +++++++++++++++++++++++++++++++++++++++++ PKG-INFO | 4 +-- RepSys/commands/submit.py | 69 +++++++++++++++++++++++++-------------------- RepSys/rpmutil.py | 2 +- create-srpm | 71 +++++++++++++++++++++++++++++++++++++++++++++++ getsrpm-mdk | 5 ++++ rebrand-mdk | 10 +++++++ repsys | 2 +- repsys.conf | 28 +++++++++---------- repsys.spec | 33 +++++++++++----------- 12 files changed, 287 insertions(+), 64 deletions(-) create mode 100644 .cvsignore create mode 100644 ChangeLog create mode 100644 Makefile create mode 100755 create-srpm create mode 100755 getsrpm-mdk create mode 100755 rebrand-mdk diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..9629990 --- /dev/null +++ b/.cvsignore @@ -0,0 +1 @@ +repsys-*.tar.bz2 diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..77dcc22 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,64 @@ +2005-12-07 11:44 Frederic Lepied + + * repsys.spec: 1.5.4-1mdk + +2005-12-07 11:44 Frederic Lepied + + * repsys: 1.5.4 + +2005-12-07 11:42 Frederic Lepied + + * rebrand-mdk, getsrpm-mdk, create-srpm, .cvsignore, Makefile: + initial revision + +2005-12-07 11:21 Frederic Lepied + + * repsys.conf: real life one + +2005-12-07 11:17 Frederic Lepied + + * RepSys/commands/submit.py: added support for svn+ssh access + method. + +2005-12-07 11:16 Frederic Lepied + + * RepSys/rpmutil.py: get_srpm: fixed a test + +2005-12-07 11:12 Frederic Lepied + + * PKG-INFO: fixed URL + +2005-12-07 11:06 Frederic Lepied + + * MANIFEST.in, PKG-INFO, repsys, repsys.conf, repsys.spec, + setup.cfg, setup.py, RepSys/ConfigParser.py, RepSys/__init__.py, + RepSys/cgiutil.py, RepSys/command.py, RepSys/log.py, + RepSys/pexpect.py, RepSys/rpm.py, RepSys/rpmutil.py, + RepSys/svn.py, RepSys/util.py, RepSys/cgi/__init__.py, + RepSys/cgi/soapserver.py, RepSys/cgi/submit.py, + RepSys/cgi/xmlrpcserver.py, RepSys/commands/__init__.py, + RepSys/commands/authoremail.py, RepSys/commands/changed.py, + RepSys/commands/co.py, RepSys/commands/create.py, + RepSys/commands/editlog.py, RepSys/commands/getspec.py, + RepSys/commands/getsrpm.py, RepSys/commands/markrelease.py, + RepSys/commands/patchspec.py, RepSys/commands/putsrpm.py, + RepSys/commands/rpmlog.py, RepSys/commands/submit.py: Initial + revision + +2005-12-07 11:06 Frederic Lepied + + * MANIFEST.in, PKG-INFO, repsys, repsys.conf, repsys.spec, + setup.cfg, setup.py, RepSys/ConfigParser.py, RepSys/__init__.py, + RepSys/cgiutil.py, RepSys/command.py, RepSys/log.py, + RepSys/pexpect.py, RepSys/rpm.py, RepSys/rpmutil.py, + RepSys/svn.py, RepSys/util.py, RepSys/cgi/__init__.py, + RepSys/cgi/soapserver.py, RepSys/cgi/submit.py, + RepSys/cgi/xmlrpcserver.py, RepSys/commands/__init__.py, + RepSys/commands/authoremail.py, RepSys/commands/changed.py, + RepSys/commands/co.py, RepSys/commands/create.py, + RepSys/commands/editlog.py, RepSys/commands/getspec.py, + RepSys/commands/getsrpm.py, RepSys/commands/markrelease.py, + RepSys/commands/patchspec.py, RepSys/commands/putsrpm.py, + RepSys/commands/rpmlog.py, RepSys/commands/submit.py: initial + import + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..46ddead --- /dev/null +++ b/Makefile @@ -0,0 +1,62 @@ +#--------------------------------------------------------------- +# Project : Mandriva Linux +# Module : repsys +# File : Makefile +# Version : $Id$ +# Author : Frederic Lepied +# Created On : Wed Dec 7 11:33:09 2005 +#--------------------------------------------------------------- + +PACKAGE=repsys +VERSION:=$(shell rpm -q --qf %{VERSION} --specfile $(PACKAGE).spec) +RELEASE:=$(shell rpm -q --qf %{RELEASE} --specfile $(PACKAGE).spec) +TAG := $(shell echo "V$(VERSION)_$(RELEASE)" | tr -- '-.' '__') + +FILES = ChangeLog Makefile MANIFEST.in PKG-INFO create-srpm getsrpm-mdk rebrand-mdk \ + repsys repsys.conf repsys.spec setup.cfg setup.py RepSys/*.py RepSys/{cgi,commands}/*.py + +# rules to build a test rpm + +localrpm: localdist buildrpm + +localdist: cleandist dir localcopy tar + +cleandist: + rm -rf $(PACKAGE)-$(VERSION) $(PACKAGE)-$(VERSION).tar.bz2 + +dir: + mkdir $(PACKAGE)-$(VERSION) + +localcopy: + tar c $(FILES) | tar x -C $(PACKAGE)-$(VERSION) + +tar: + tar cvf $(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION) + bzip2 -9vf $(PACKAGE)-$(VERSION).tar + rm -rf $(PACKAGE)-$(VERSION) + +buildrpm: + rpm -ta $(RPMOPT) $(PACKAGE)-$(VERSION).tar.bz2 + +# rules to build a distributable rpm + +rpm: changelog cvstag dist buildrpm + +dist: cleandist dir export tar + +export: + cvs export -d $(PACKAGE)-$(VERSION) -r $(TAG) $(PACKAGE) + +cvstag: + cvs tag $(CVSTAGOPT) $(TAG) + +changelog: ../common/username + cvs2cl -U ../common/username -I ChangeLog + rm -f ChangeLog.bak + cvs commit -m "Generated by cvs2cl the `date '+%d_%b'`" ChangeLog + +# Local variables: +# mode: makefile +# End: +# +# Makefile ends here diff --git a/PKG-INFO b/PKG-INFO index 59af750..32a444d 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,8 +1,8 @@ Metadata-Version: 1.0 Name: repsys -Version: 1.5.2 +Version: 1.5.3 Summary: Tools for Mandriva Linux repository access and management -Home-page: http://qa.mandrakesoft.com/twiki/bin/view/Main/RepositorySystem +Home-page: http://qa.mandriva.com/twiki/bin/view/Main/RepositorySystem Author: Gustavo Niemeyer Author-email: gustavo@niemeyer.net License: GPL diff --git a/RepSys/commands/submit.py b/RepSys/commands/submit.py index ff442c1..1c3bf8b 100644 --- a/RepSys/commands/submit.py +++ b/RepSys/commands/submit.py @@ -1,6 +1,7 @@ #!/usr/bin/python from RepSys import Error, config from RepSys.command import * +from RepSys.util import execcmd from RepSys.rpmutil import get_spec, get_submit_info from RepSys.util import get_auth import urllib @@ -33,7 +34,7 @@ Examples: def parse_options(): parser = OptionParser(help=HELP) parser.defaults["revision"] = "" - parser.add_option("-t", dest="target", default="Snapshot") + parser.add_option("-t", dest="target", default="Cooker") parser.add_option("-l", dest="list", action="store_true") opts, args = parser.parse_args() if not args: @@ -63,41 +64,49 @@ def submit(pkgdirurl, revision, target, list=0): host, path = urllib.splithost(rest) user, host = urllib.splituser(host) host, port = urllib.splitport(host) - if type != "https": - raise Error, "you must use https:// urls" + if type != "https" and type != "svn+ssh": + raise Error, "you must use https:// or svn+ssh:// urls" if user: user, passwd = urllib.splitpasswd(user) if passwd: raise Error, "do not use a password in your command line" - user, passwd = get_auth(username=user) - #soap = NINZ.client.Binding(host=host, - # url="https://%s/scripts/cnc/soap" % host, - # ssl=1, - # auth=(NINZ.client.AUTH.httpbasic, - # user, passwd)) - if port: - port = ":"+port - else: - port = "" - iface = xmlrpclib.ServerProxy("https://%s:%s@%s%s/scripts/cnc/xmlrpc" - % (user, passwd, host, port)) - try: - if list: - targets = iface.submit_targets() - if not targets: - raise Error, "no targets available" - sys.stdout.writelines(['"%s"\n' % x for x in targets]) + + if type == "https": + user, passwd = get_auth(username=user) + #soap = NINZ.client.Binding(host=host, + # url="https://%s/scripts/cnc/soap" % host, + # ssl=1, + # auth=(NINZ.client.AUTH.httpbasic, + # user, passwd)) + if port: + port = ":"+port else: - iface.submit_package(pkgdirurl, revision, target) + port = "" + iface = xmlrpclib.ServerProxy("https://%s:%s@%s%s/scripts/cnc/xmlrpc" + % (user, passwd, host, port)) + try: + if list: + targets = iface.submit_targets() + if not targets: + raise Error, "no targets available" + sys.stdout.writelines(['"%s"\n' % x for x in targets]) + else: + iface.submit_package(pkgdirurl, revision, target) + print "Package submitted!" + #except NINZ.client.SoapError, e: + except xmlrpclib.ProtocolError, e: + raise Error, "remote error: "+str(e.errmsg) + except xmlrpclib.Fault, e: + raise Error, "remote error: "+str(e.faultString) + except xmlrpclib.Error, e: + raise Error, "remote error: "+str(e) + else: + status, output = execcmd("ssh %s /usr/share/repsys/create-srpm '%s' %s %s" % (host, pkgdirurl, revision, target)) + if status == 0: print "Package submitted!" - #except NINZ.client.SoapError, e: - except xmlrpclib.ProtocolError, e: - raise Error, "remote error: "+str(e.errmsg) - except xmlrpclib.Fault, e: - raise Error, "remote error: "+str(e.faultString) - except xmlrpclib.Error, e: - raise Error, "remote error: "+str(e) - + else: + sys.exit(status) + def main(): do_command(parse_options, submit) diff --git a/RepSys/rpmutil.py b/RepSys/rpmutil.py index 3df9818..7b6446f 100644 --- a/RepSys/rpmutil.py +++ b/RepSys/rpmutil.py @@ -67,7 +67,7 @@ def get_srpm(pkgdirurl, packager = " --define 'packager %s'" % packager execcmd("rpm -bs --nodeps --define '_topdir %s'%s %s" % (tmpdir, packager, spec)) - if revname: + if revision: srpm = glob.glob(os.path.join(srpmsdir, "*.src.rpm"))[0] srpmbase = os.path.basename(srpm) os.rename(srpm, "%s/@%i:%s" % (srpmsdir, revision, srpmbase)) diff --git a/create-srpm b/create-srpm new file mode 100755 index 0000000..cdf8e26 --- /dev/null +++ b/create-srpm @@ -0,0 +1,71 @@ +#!/usr/bin/python + +from RepSys import Error, config +from RepSys.rpmutil import get_srpm +from RepSys.cgiutil import get_targets +import sys +import os +import pwd + +class CmdError(Error): pass + +class CmdIface: + def author_email(self, author): + return config.get("users", author) + + def submit_package(self, packageurl, packagerev, targetname): + pw = pwd.getpwuid(os.getuid()) + username = pw[0] + packager = config.get("users", username) or pw[4] + if not packager: + raise CmdError, "your email was not found" + elif not packagerev: + raise CmdError, "no revision provided" + elif not targetname: + raise CmdError, "no target provided" + else: + targetname = targetname.lower() + for target in get_targets(): + if target.name.lower() == targetname: + break + else: + raise CmdError, "target not found" + try: + tmp = int(packagerev) + except ValueError: + raise CmdError, "invalid revision provided" + for allowed in target.allowed: + if packageurl.startswith(allowed): + break + else: + raise CmdError, "%s is not allowed for this target" \ + % packageurl + get_srpm(packageurl, + revision=packagerev, + targetdirs=target.target, + packager=packager, + revname=1, + svnlog=1, + scripts=target.scripts) + return 1 + + def submit_targets(self): + return [x.name for x in get_targets()] + + +def main(): + + iface = CmdIface() + + print sys.argv + + if len(sys.argv) == 3: + rev = None + target = sys.argv[2] + else: + rev = sys.argv[2] + target = sys.argv[3] + + iface.submit_package(sys.argv[1], rev, target) + +main() diff --git a/getsrpm-mdk b/getsrpm-mdk new file mode 100755 index 0000000..2dcf530 --- /dev/null +++ b/getsrpm-mdk @@ -0,0 +1,5 @@ +#!/bin/sh + +PACKAGE=$1 + +repsys getsrpm -l $PACKAGE diff --git a/rebrand-mdk b/rebrand-mdk new file mode 100755 index 0000000..d94d173 --- /dev/null +++ b/rebrand-mdk @@ -0,0 +1,10 @@ +#!/bin/sh + +TOPDIR=$1 +SPEC=$2 +REV=$3 + +if [ -x $TOPDIR/build_sources ]; then + cd $TOPDIR + ./build_sources "$@" +fi diff --git a/repsys b/repsys index 99ff1e6..20be09e 100755 --- a/repsys +++ b/repsys @@ -4,7 +4,7 @@ from RepSys.command import * import getopt import sys -VERSION="1.5.3" +VERSION="1.5.4" HELP = """\ Usage: repsys COMMAND [COMMAND ARGUMENTS] diff --git a/repsys.conf b/repsys.conf index 05b4890..a5812bf 100644 --- a/repsys.conf +++ b/repsys.conf @@ -1,22 +1,22 @@ - [global] -#verbose = true -default_parent = svn+ssh://cvs.mandriva.com/svn/mdv/cooker/ - -[auth] -#username = foo -#password = bar +verbose = no +default_parent = svn+ssh://svn.mandriva.com/svn/mdv/cooker [log] -concat = mapi2 -oldurl = svn+ssh://cvs.mandriva.com/svn/mdv/misc +oldurl = svn+ssh://svn.mandriva.com/svn/mdv/misc [users] +andreas = Andreas Hasenack +boiko = Gustavo Pichorim Boiko +cavassin = Wanderlei Cavassin +fcrozat = Frederic Crozat +flepied = Frederic Lepied helio = Helio Chissini de Castro +lmontel = Laurent Montel +oden = Oden Eriksson [submit] -name = cooker -target = /teste-root/testadora/entrada/ -allowed = svn+ssh://cvs.mandriva.com/svn/mdv/cooker/ -# scripts = /svnroot/cnc.admin/rebrand-cl - +name = Cooker +target = /export/home/repsys +allowed = svn+ssh://svn.mandriva.com/svn/mdv/cooker +scripts = /usr/share/repsys/rebrand-mdk diff --git a/repsys.spec b/repsys.spec index 9805508..45636f0 100644 --- a/repsys.spec +++ b/repsys.spec @@ -5,23 +5,18 @@ %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver} %define py_sitedir %{py_libdir}/site-packages -%define repsys_version 1.5.3 +%define repsys_version 1.5.4 Name: repsys -Version: 1.5.3.1 -Release: 4mdk +Version: 1.5.4 +Release: 1mdk Summary: Tools for Mandriva Linux repository access and management Group: Development/Other -Source: %{name}-%{repsys_version}.tar.gz -Source1: mdk-repsys.conf -Source2: mdk-rebrand-mdk -# Direct wrapper for get srpm with release based on svn number -Source3: getsrpm-mdk -Patch0: repsys-mdk.patch -Patch1: mdk-changelog-repsys-1.5.3.patch +Source: %{name}-%{repsys_version}.tar.bz2 License: GPL URL: http://qa.mandriva.com/twiki/bin/view/Main/RepositorySystem Prefix: %{_prefix} +BuildArch: noarch Buildrequires: python-devel BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRequires: python @@ -32,8 +27,6 @@ Tools for Mandriva Linux repository access and management. %prep %setup -q -n %{name}-%{repsys_version} -%patch0 -p1 -%patch1 -p1 %build python setup.py build @@ -50,9 +43,10 @@ python -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir mkdir -p %{buildroot}%{_sysconfdir} mkdir -p %{buildroot}%{_datadir}/repsys/ mkdir -p %{buildroot}%{_bindir}/ -cp %{SOURCE1} %{buildroot}%{_sysconfdir}/repsys.conf -cp %{SOURCE2} %{buildroot}%{_datadir}/repsys/rebrand-mdk -cp %{SOURCE3} %{buildroot}%{_bindir}/getsrpm-mdk +install -m 0644 repsys.conf %{buildroot}%{_sysconfdir}/repsys.conf +install -m 0755 rebrand-mdk %{buildroot}%{_datadir}/repsys/rebrand-mdk +install -m 0755 getsrpm-mdk %{buildroot}%{_bindir}/getsrpm-mdk +install -m 0755 create-srpm %{buildroot}%{_datadir}/repsys/create-srpm %clean rm -rf %{buildroot} @@ -65,11 +59,18 @@ rm -rf %{buildroot} %{_bindir}/repsys %{_bindir}/getsrpm-mdk %{_datadir}/repsys/rebrand-mdk +%{_datadir}/repsys/create-srpm %{py_sitedir}/RepSys - +# MAKE THE CHANGES IN CVS: NO PATCH OR SOURCE ALLOWED %changelog +* Wed Dec 7 2005 Frederic Lepied 1.5.4-1mdk +- switch to cvs + +* Fri Oct 21 2005 Frederic Lepied 1.5.3.1-4.1mdk +- add svn+ssh access method + * Fri Sep 30 2005 Andreas Hasenack + 2005-09-30 18:25:48 (979) - releasing 1.5.3.1-4mdk -- cgit v1.2.1