1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-12 23:56:13 +01:00
Conflicts:
	osc/build.py

Resolved merge conflict.
This commit is contained in:
Marcus Huewe 2014-08-14 17:24:28 +02:00
commit b07a4d0b37
8 changed files with 73 additions and 73 deletions

View File

@ -63,7 +63,7 @@ can_also_build = {
'armv7hl': [ 'armv7hl' ], # not existing arch, just for compatibility 'armv7hl': [ 'armv7hl' ], # not existing arch, just for compatibility
'armv8el': [ 'armv4l', 'armv5el', 'armv6el', 'armv7el', 'armv8el' ], # not existing arch, just for compatibility 'armv8el': [ 'armv4l', 'armv5el', 'armv6el', 'armv7el', 'armv8el' ], # not existing arch, just for compatibility
'armv8l': [ 'armv4l', 'armv5el', 'armv6el', 'armv7el', 'armv8el' ], # not existing arch, just for compatibility 'armv8l': [ 'armv4l', 'armv5el', 'armv6el', 'armv7el', 'armv8el' ], # not existing arch, just for compatibility
'armv5tel': [ 'armv4l', 'armv5el', 'armv5tel' ], 'armv5tel': [ 'armv4l', 'armv5el', 'armv5tel' ],
's390x': ['s390' ], 's390x': ['s390' ],
'ppc64': [ 'ppc', 'ppc64', 'ppc64p7', 'ppc64le' ], 'ppc64': [ 'ppc', 'ppc64', 'ppc64p7', 'ppc64le' ],
'ppc64le': [ 'ppc64le' ], 'ppc64le': [ 'ppc64le' ],
@ -640,8 +640,8 @@ def main(apiurl, opts, argv):
pkg_meta_e = None pkg_meta_e = None
try: try:
# take care, not to run into double trouble. # take care, not to run into double trouble.
pkg_meta_e = meta_exists(metatype='pkg', path_args=(quote_plus(prj), pkg_meta_e = meta_exists(metatype='pkg', path_args=(quote_plus(prj),
quote_plus(pac)), template_args=None, create_new=False, quote_plus(pac)), template_args=None, create_new=False,
apiurl=apiurl) apiurl=apiurl)
except: except:
pass pass

View File

@ -90,7 +90,7 @@ class Checker:
def check(self, pkg): def check(self, pkg):
# avoid errors on non rpm # avoid errors on non rpm
if pkg[-4:] != '.rpm': if pkg[-4:] != '.rpm':
return return
fd = None fd = None
try: try:

View File

@ -516,7 +516,7 @@ class RawCmdln(cmd.Cmd):
elif line[0] == '?': elif line[0] == '?':
line = 'help ' + line[1:] line = 'help ' + line[1:]
i, n = 0, len(line) i, n = 0, len(line)
while i < n and line[i] in self.identchars: while i < n and line[i] in self.identchars:
i = i+1 i = i+1
cmd, arg = line[:i], line[i:].strip() cmd, arg = line[:i], line[i:].strip()
return cmd, arg, line return cmd, arg, line
@ -574,7 +574,7 @@ class RawCmdln(cmd.Cmd):
doc = self.__class__.__doc__ # try class docstring doc = self.__class__.__doc__ # try class docstring
if doc is None: if doc is None:
# Try to provide some reasonable useful default help. # Try to provide some reasonable useful default help.
if self.cmdlooping: if self.cmdlooping:
prefix = "" prefix = ""
else: else:
prefix = self.name+' ' prefix = self.name+' '
@ -739,7 +739,7 @@ class RawCmdln(cmd.Cmd):
token2canonical = self._get_canonical_map() token2canonical = self._get_canonical_map()
aliases = {} aliases = {}
for token, cmdname in token2canonical.items(): for token, cmdname in token2canonical.items():
if token == cmdname: if token == cmdname:
continue continue
aliases.setdefault(cmdname, []).append(token) aliases.setdefault(cmdname, []).append(token)
@ -803,7 +803,7 @@ class RawCmdln(cmd.Cmd):
helpnames = {} helpnames = {}
token2cmdname = self._get_canonical_map() token2cmdname = self._get_canonical_map()
for attr in self.get_names(): for attr in self.get_names():
if not attr.startswith("help_"): if not attr.startswith("help_"):
continue continue
helpname = attr[5:] helpname = attr[5:]
if helpname not in token2cmdname: if helpname not in token2cmdname:
@ -854,9 +854,9 @@ class RawCmdln(cmd.Cmd):
# Adjust argcount for possible *args and **kwargs arguments. # Adjust argcount for possible *args and **kwargs arguments.
argcount = co_argcount argcount = co_argcount
if co_flags & CO_FLAGS_ARGS: if co_flags & CO_FLAGS_ARGS:
argcount += 1 argcount += 1
if co_flags & CO_FLAGS_KWARGS: if co_flags & CO_FLAGS_KWARGS:
argcount += 1 argcount += 1
# Determine the usage string. # Determine the usage string.
@ -937,9 +937,9 @@ class RawCmdln(cmd.Cmd):
token2canonical = {} token2canonical = {}
cmd2funcname = {} # use a dict to strip duplicates cmd2funcname = {} # use a dict to strip duplicates
for attr in self.get_names(): for attr in self.get_names():
if attr.startswith("do_"): if attr.startswith("do_"):
cmdname = attr[3:] cmdname = attr[3:]
elif attr.startswith("_do_"): elif attr.startswith("_do_"):
cmdname = attr[4:] cmdname = attr[4:]
else: else:
continue continue
@ -1371,12 +1371,12 @@ def line2argv(line):
i = -1 i = -1
while True: while True:
i += 1 i += 1
if i >= len(line): if i >= len(line):
break break
ch = line[i] ch = line[i]
if ch == "\\": # escaped char always added to arg, regardless of state if ch == "\\": # escaped char always added to arg, regardless of state
if arg is None: if arg is None:
arg = "" arg = ""
i += 1 i += 1
arg += line[i] arg += line[i]
@ -1394,11 +1394,11 @@ def line2argv(line):
arg += ch arg += ch
elif state == "default": elif state == "default":
if ch == '"': if ch == '"':
if arg is None: if arg is None:
arg = "" arg = ""
state = "double-quoted" state = "double-quoted"
elif ch == "'": elif ch == "'":
if arg is None: if arg is None:
arg = "" arg = ""
state = "single-quoted" state = "single-quoted"
elif ch in string.whitespace: elif ch in string.whitespace:
@ -1406,7 +1406,7 @@ def line2argv(line):
argv.append(arg) argv.append(arg)
arg = None arg = None
else: else:
if arg is None: if arg is None:
arg = "" arg = ""
arg += ch arg += ch
if arg is not None: if arg is not None:
@ -1485,7 +1485,7 @@ def _dedentlines(lines, tabsize=8, skip_first_line=False):
break break
else: else:
continue # skip all-whitespace lines continue # skip all-whitespace lines
if DEBUG: if DEBUG:
print("dedent: indent=%d: %r" % (indent, line)) print("dedent: indent=%d: %r" % (indent, line))
if margin is None: if margin is None:
margin = indent margin = indent
@ -1496,7 +1496,7 @@ def _dedentlines(lines, tabsize=8, skip_first_line=False):
if margin is not None and margin > 0: if margin is not None and margin > 0:
for i, line in enumerate(lines): for i, line in enumerate(lines):
if i == 0 and skip_first_line: if i == 0 and skip_first_line:
continue continue
removed = 0 removed = 0
for j, ch in enumerate(line): for j, ch in enumerate(line):
@ -1505,7 +1505,7 @@ def _dedentlines(lines, tabsize=8, skip_first_line=False):
elif ch == '\t': elif ch == '\t':
removed += tabsize - (removed % tabsize) removed += tabsize - (removed % tabsize)
elif ch in '\r\n': elif ch in '\r\n':
if DEBUG: if DEBUG:
print("dedent: %r: EOL -> strip up to EOL" % line) print("dedent: %r: EOL -> strip up to EOL" % line)
lines[i] = lines[i][j:] lines[i] = lines[i][j:]
break break

View File

@ -150,7 +150,7 @@ class Osc(cmdln.Cmdln):
conf.write_initial_config(e.file, config) conf.write_initial_config(e.file, config)
print('done', file=sys.stderr) print('done', file=sys.stderr)
if try_again: if try_again:
self.postoptparse(try_again = False) self.postoptparse(try_again = False)
except oscerr.ConfigMissingApiurl as e: except oscerr.ConfigMissingApiurl as e:
print(e.msg, file=sys.stderr) print(e.msg, file=sys.stderr)
@ -158,7 +158,7 @@ class Osc(cmdln.Cmdln):
user = raw_input('Username: ') user = raw_input('Username: ')
passwd = getpass.getpass() passwd = getpass.getpass()
conf.add_section(e.file, e.url, user, passwd) conf.add_section(e.file, e.url, user, passwd)
if try_again: if try_again:
self.postoptparse(try_again = False) self.postoptparse(try_again = False)
self.options.verbose = conf.config['verbose'] self.options.verbose = conf.config['verbose']
@ -182,7 +182,7 @@ class Osc(cmdln.Cmdln):
## check for Stale NFS file handle: '.' ## check for Stale NFS file handle: '.'
try: try:
os.stat('.') os.stat('.')
except Exception as ee: except Exception as ee:
e = ee e = ee
print("os.getcwd() failed: ", e, file=sys.stderr) print("os.getcwd() failed: ", e, file=sys.stderr)
sys.exit(1) sys.exit(1)
@ -304,7 +304,7 @@ class Osc(cmdln.Cmdln):
pass pass
if len(args) > 0: if len(args) > 0:
project = args[0] project = args[0]
if project == '/': if project == '/':
project = None project = None
if project == '.': if project == '.':
cwd = os.getcwd() cwd = os.getcwd()
@ -340,7 +340,7 @@ class Osc(cmdln.Cmdln):
if opts.binaries and opts.expand: if opts.binaries and opts.expand:
raise oscerr.WrongOptions('Sorry, --binaries and --expand are mutual exclusive.') raise oscerr.WrongOptions('Sorry, --binaries and --expand are mutual exclusive.')
apiurl = self.get_api_url() apiurl = self.get_api_url()
# list binaries # list binaries
if opts.binaries: if opts.binaries:
@ -426,7 +426,7 @@ class Osc(cmdln.Cmdln):
print_not_found = False print_not_found = False
else: else:
print('\n'.join(l)) print('\n'.join(l))
if opts.expand or opts.unexpand or not link_seen: if opts.expand or opts.unexpand or not link_seen:
break break
m = show_files_meta(apiurl, project, package) m = show_files_meta(apiurl, project, package)
li = Linkinfo() li = Linkinfo()
@ -459,7 +459,7 @@ class Osc(cmdln.Cmdln):
${cmd_option_list} ${cmd_option_list}
""" """
apiurl = self.get_api_url() apiurl = self.get_api_url()
project_dir = localdir = os.getcwd() project_dir = localdir = os.getcwd()
patchinfo = 'patchinfo' patchinfo = 'patchinfo'
if len(args) == 0: if len(args) == 0:
@ -507,7 +507,7 @@ class Osc(cmdln.Cmdln):
f = http_POST(url) f = http_POST(url)
# CAUTION: # CAUTION:
# Both conf.config['checkout_no_colon'] and conf.config['checkout_rooted'] # Both conf.config['checkout_no_colon'] and conf.config['checkout_rooted']
# fool this test: # fool this test:
if is_package_dir(localdir): if is_package_dir(localdir):
pac = Package(localdir) pac = Package(localdir)
@ -792,7 +792,7 @@ class Osc(cmdln.Cmdln):
elif cmd == 'pkg': elif cmd == 'pkg':
sys.stdout.write(''.join(show_package_meta(apiurl, project, package))) sys.stdout.write(''.join(show_package_meta(apiurl, project, package)))
elif cmd == 'attribute': elif cmd == 'attribute':
sys.stdout.write(''.join(show_attribute_meta(apiurl, project, package, subpackage, sys.stdout.write(''.join(show_attribute_meta(apiurl, project, package, subpackage,
opts.attribute, opts.attribute_defaults, opts.attribute_project))) opts.attribute, opts.attribute_defaults, opts.attribute_project)))
elif cmd == 'prjconf': elif cmd == 'prjconf':
sys.stdout.write(''.join(show_project_conf(apiurl, project))) sys.stdout.write(''.join(show_project_conf(apiurl, project)))
@ -1200,7 +1200,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
rev = root.get('rev') rev = root.get('rev')
else: else:
if linkinfo.get('project') != dst_project or linkinfo.get('package') != dst_package: if linkinfo.get('project') != dst_project or linkinfo.get('package') != dst_package:
# the submit target is not link target. use merged md5sum references to # the submit target is not link target. use merged md5sum references to
# avoid not mergable sources when multiple request from same source get created. # avoid not mergable sources when multiple request from same source get created.
rev = root.get('srcmd5') rev = root.get('srcmd5')
@ -1601,10 +1601,10 @@ Please submit there instead, or use --nodevelproject to force direct submission.
"""${cmd_name}: create multiple requests with a single command """${cmd_name}: create multiple requests with a single command
usage: usage:
osc creq [OPTIONS] [ osc creq [OPTIONS] [
-a submit SOURCEPRJ SOURCEPKG DESTPRJ [DESTPKG] -a submit SOURCEPRJ SOURCEPKG DESTPRJ [DESTPKG]
-a delete PROJECT [PACKAGE] -a delete PROJECT [PACKAGE]
-a change_devel PROJECT PACKAGE DEVEL_PROJECT [DEVEL_PACKAGE] -a change_devel PROJECT PACKAGE DEVEL_PROJECT [DEVEL_PACKAGE]
-a add_me ROLE PROJECT [PACKAGE] -a add_me ROLE PROJECT [PACKAGE]
-a add_group GROUP ROLE PROJECT [PACKAGE] -a add_group GROUP ROLE PROJECT [PACKAGE]
-a add_role USER ROLE PROJECT [PACKAGE] -a add_role USER ROLE PROJECT [PACKAGE]
@ -1703,7 +1703,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
osc requestmaintainership PROJECT PACKAGE # for current user osc requestmaintainership PROJECT PACKAGE # for current user
osc requestmaintainership PROJECT PACKAGE USER # request for specified user osc requestmaintainership PROJECT PACKAGE USER # request for specified user
osc requestbugownership ... # accepts same parameters but uses bugowner role osc requestbugownership ... # accepts same parameters but uses bugowner role
${cmd_option_list} ${cmd_option_list}
""" """
@ -1793,7 +1793,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
elif is_package_dir(os.getcwd()): elif is_package_dir(os.getcwd()):
project = store_read_project(os.curdir) project = store_read_project(os.curdir)
package = store_read_package(os.curdir) package = store_read_package(os.curdir)
else: else:
raise oscerr.WrongArgs('Please specify at least a project.') raise oscerr.WrongArgs('Please specify at least a project.')
if opts.repository: if opts.repository:
@ -1826,7 +1826,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
def do_changedevelrequest(self, subcmd, opts, *args): def do_changedevelrequest(self, subcmd, opts, *args):
"""${cmd_name}: Create request to change the devel package definition. """${cmd_name}: Create request to change the devel package definition.
[See http://en.opensuse.org/openSUSE:Build_Service_Collaboration [See http://en.opensuse.org/openSUSE:Build_Service_Collaboration
for information on this topic.] for information on this topic.]
See the "request" command for showing and modifing existing requests. See the "request" command for showing and modifing existing requests.
@ -1952,7 +1952,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
The 'review' command has the following sub commands: The 'review' command has the following sub commands:
"list" lists open requests that need to be reviewed by the "list" lists open requests that need to be reviewed by the
specified user or group specified user or group
"add" adds a person or group as reviewer to a request "add" adds a person or group as reviewer to a request
@ -2753,7 +2753,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
@cmdln.option('--set-release', metavar='RELEASETAG', @cmdln.option('--set-release', metavar='RELEASETAG',
help='rename binaries during release using this release tag') help='rename binaries during release using this release tag')
def do_release(self, subcmd, opts, *args): def do_release(self, subcmd, opts, *args):
"""${cmd_name}: Release sources and binaries """${cmd_name}: Release sources and binaries
This command is used to transfer sources and binaries without rebuilding them. This command is used to transfer sources and binaries without rebuilding them.
It requires defined release targets set to trigger="manual". Please refer the It requires defined release targets set to trigger="manual". Please refer the
@ -3127,7 +3127,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
${cmd_option_list} ${cmd_option_list}
""" """
if subcmd == 'getpac' or subcmd == 'branchco' or subcmd == 'bco': if subcmd == 'getpac' or subcmd == 'branchco' or subcmd == 'bco':
opts.checkout = True opts.checkout = True
args = slash_split(args) args = slash_split(args)
tproject = tpackage = None tproject = tpackage = None
@ -3286,7 +3286,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
## FIXME: core.py:commitDelPackage() should have something similar ## FIXME: core.py:commitDelPackage() should have something similar
rlist = get_request_list(apiurl, prj, pkg) rlist = get_request_list(apiurl, prj, pkg)
for rq in rlist: for rq in rlist:
print(rq) print(rq)
if len(rlist) >= 1 and not opts.force: if len(rlist) >= 1 and not opts.force:
print('Package has pending requests. Deleting the package will break them. '\ print('Package has pending requests. Deleting the package will break them. '\
@ -3421,11 +3421,11 @@ Please submit there instead, or use --nodevelproject to force direct submission.
Default: all files. Default: all files.
osc diff --link osc diff --link
osc linkdiff osc linkdiff
Compare current checkout directory against the link base. Compare current checkout directory against the link base.
osc diff --link PROJ PACK osc diff --link PROJ PACK
osc linkdiff PROJ PACK osc linkdiff PROJ PACK
Compare a package against the link base (ignoring working copy changes). Compare a package against the link base (ignoring working copy changes).
${cmd_option_list} ${cmd_option_list}
@ -3726,7 +3726,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
return 1 return 1
if not noparentok and not self._pdiff_package_exists(apiurl, parent_project, parent_package): if not noparentok and not self._pdiff_package_exists(apiurl, parent_project, parent_package):
self._pdiff_raise_non_existing_package(parent_project, parent_package, self._pdiff_raise_non_existing_package(parent_project, parent_package,
msg = 'Parent for %s/%s (%s/%s) does not exist.' % \ msg = 'Parent for %s/%s (%s/%s) does not exist.' % \
(project, package, parent_project, parent_package)) (project, package, parent_project, parent_package))
@ -3891,7 +3891,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
def do_install(self, subcmd, opts, *args): def do_install(self, subcmd, opts, *args):
"""${cmd_name}: install a package after build via zypper in -r """${cmd_name}: install a package after build via zypper in -r
Not implemented here. Please try Not implemented here. Please try
http://software.opensuse.org/search?q=osc-plugin-install&include_home=true http://software.opensuse.org/search?q=osc-plugin-install&include_home=true
@ -3993,7 +3993,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
osc co PACKAGE # check out PACKAGE from project osc co PACKAGE # check out PACKAGE from project
with the result of rpm -q --qf '%%{DISTURL}\\n' PACKAGE with the result of rpm -q --qf '%%{DISTURL}\\n' PACKAGE
osc co obs://API/PROJECT/PLATFORM/REVISION-PACKAGE osc co obs://API/PROJECT/PLATFORM/REVISION-PACKAGE
${cmd_option_list} ${cmd_option_list}
""" """
@ -4008,7 +4008,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
+ self.get_cmd_help('checkout')) + self.get_cmd_help('checkout'))
# XXX: this too openSUSE-setup specific... # XXX: this too openSUSE-setup specific...
# FIXME: this should go into ~jw/patches/osc/osc.proj_pack_20101201.diff # FIXME: this should go into ~jw/patches/osc/osc.proj_pack_20101201.diff
# to be available to all subcommands via @cmdline.prep(proj_pack) # to be available to all subcommands via @cmdline.prep(proj_pack)
# obs://build.opensuse.org/openSUSE:11.3/standard/fc6c25e795a89503e99d59da5dc94a79-screen # obs://build.opensuse.org/openSUSE:11.3/standard/fc6c25e795a89503e99d59da5dc94a79-screen
m = re.match(r"obs://([^/]+)/(\S+)/([^/]+)/([A-Fa-f\d]+)\-(\S+)", args[0]) m = re.match(r"obs://([^/]+)/(\S+)/([^/]+)/([A-Fa-f\d]+)\-(\S+)", args[0])
@ -4639,10 +4639,10 @@ Please submit there instead, or use --nodevelproject to force direct submission.
"""${cmd_name}: Shows all available distributions """${cmd_name}: Shows all available distributions
This command shows the available distributions. For active distributions This command shows the available distributions. For active distributions
it shows the name, project and name of the repository and a suggested default repository name. it shows the name, project and name of the repository and a suggested default repository name.
usage: usage:
osc distributions osc distributions
${cmd_option_list} ${cmd_option_list}
""" """
@ -5279,7 +5279,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
which is directly readable by the build script. It contains RPM macros which is directly readable by the build script. It contains RPM macros
and BuildRequires expansions, for example. and BuildRequires expansions, for example.
The argument REPOSITORY an be taken from the first column of the The argument REPOSITORY an be taken from the first column of the
'osc repos' output. 'osc repos' output.
usage: usage:
@ -5351,7 +5351,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
disabled = show_package_disabled_repos(apiurl, project, package) disabled = show_package_disabled_repos(apiurl, project, package)
if subcmd == 'repos_only': if subcmd == 'repos_only':
for repo in get_repositories_of_project(apiurl, project): for repo in get_repositories_of_project(apiurl, project):
if (disabled is None) or ((disabled is not None) and (repo not in disabled)): if (disabled is None) or ((disabled is not None) and (repo not in disabled)):
print(repo) print(repo)
else: else:
@ -5659,7 +5659,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
# drop the --argument, value tuple from the list # drop the --argument, value tuple from the list
def drop_arg2(lst, name): def drop_arg2(lst, name):
if not name: if not name:
return lst return lst
while name in lst: while name in lst:
i = lst.index(name) i = lst.index(name)
@ -5754,7 +5754,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
return ret return ret
for arg, long_name in ((opts.rsyncsrc, '--rsync-src'), (opts.overlay, '--overlay')): for arg, long_name in ((opts.rsyncsrc, '--rsync-src'), (opts.overlay, '--overlay')):
if not arg: if not arg:
continue continue
ret = rsync_dirs_2host(hostargs, None, long_name, (arg, )) ret = rsync_dirs_2host(hostargs, None, long_name, (arg, ))
if ret != 0: if ret != 0:
@ -6017,7 +6017,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
osc service remoterun [PROJECT PACKAGE] osc service remoterun [PROJECT PACKAGE]
COMMAND can be: COMMAND can be:
run r run defined services locally, it takes an optional parameter to run only a run r run defined services locally, it takes an optional parameter to run only a
specified source service. In case parameters exist for this one in _service file specified source service. In case parameters exist for this one in _service file
they are used. they are used.
disabledrun dr run disabled or server side only services locally and store files as local created disabledrun dr run disabled or server side only services locally and store files as local created
@ -6335,7 +6335,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
if package is None: if package is None:
package = meta_get_packagelist(apiurl, project) package = meta_get_packagelist(apiurl, project)
else: else:
package = [package] package = [package]
# Set binary target directory and create if not existing # Set binary target directory and create if not existing
@ -6418,7 +6418,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
""" """
# TODO: please clarify the difference between sr and rq. # TODO: please clarify the difference between sr and rq.
# My first implementeation was to make no difference between requests FROM one # My first implementeation was to make no difference between requests FROM one
# of my projects and TO one of my projects. The current implementation appears to make this difference. # of my projects and TO one of my projects. The current implementation appears to make this difference.
# The usage above indicates, that sr would be a subset of rq, which is no the case with my tests. # The usage above indicates, that sr would be a subset of rq, which is no the case with my tests.
# jw. # jw.
@ -6625,7 +6625,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
help='match only when given attribute exists in meta data') help='match only when given attribute exists in meta data')
@cmdln.option('-v', '--verbose', action='store_true', @cmdln.option('-v', '--verbose', action='store_true',
help='show more information') help='show more information')
@cmdln.option('-V', '--version', action='store_true', @cmdln.option('-V', '--version', action='store_true',
help='show package version, revision, and srcmd5. CAUTION: This is slow and unreliable') help='show package version, revision, and srcmd5. CAUTION: This is slow and unreliable')
@cmdln.option('-i', '--involved', action='store_true', @cmdln.option('-i', '--involved', action='store_true',
help='show projects/packages where given person (or myself) is involved as bugowner or maintainer') help='show projects/packages where given person (or myself) is involved as bugowner or maintainer')
@ -6818,7 +6818,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
continue continue
# construct a sorted, flat list # construct a sorted, flat list
# Sort by first column, follwed by second column if we have two columns, else sort by first. # Sort by first column, follwed by second column if we have two columns, else sort by first.
results.sort(lambda x, y: ( cmp(x[0], y[0]) or results.sort(lambda x, y: ( cmp(x[0], y[0]) or
(len(x)>1 and len(y)>1 and cmp(x[1], y[1])) )) (len(x)>1 and len(y)>1 and cmp(x[1], y[1])) ))
new = [] new = []
for i in results: for i in results:
@ -7152,7 +7152,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
apiurl = self.get_api_url() apiurl = self.get_api_url()
# Try the OBS 2.4 way first. # Try the OBS 2.4 way first.
if binary or opts.user or opts.group: if binary or opts.user or opts.group:
limit = None limit = None
if opts.all: if opts.all:
@ -7305,7 +7305,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
else: else:
print("Defined in project: ", definingproject) print("Defined in project: ", definingproject)
if prj: if prj:
# not for user/group search # not for user/group search
for role in roles: for role in roles:
if opts.bugowner and not len(maintainers.get(role, [])): if opts.bugowner and not len(maintainers.get(role, [])):

View File

@ -407,7 +407,7 @@ class Serviceinfo:
if r != 0: if r != 0:
print("Aborting: service call failed: " + cmd) print("Aborting: service call failed: " + cmd)
# FIXME: addDownloadUrlService calls si.execute after # FIXME: addDownloadUrlService calls si.execute after
# updating _services. # updating _services.
return r return r
@ -871,7 +871,7 @@ class Project:
if needs_update: if needs_update:
rev = p.latest_rev() rev = p.latest_rev()
elif p.hasserviceinfo() and p.serviceinfo.isexpanded() and not service_files: elif p.hasserviceinfo() and p.serviceinfo.isexpanded() and not service_files:
# FIXME: currently, do_update does not propagate the --server-side-source-service-files # FIXME: currently, do_update does not propagate the --server-side-source-service-files
# option to this method. Consequence: an expanded service is always unexpanded during # option to this method. Consequence: an expanded service is always unexpanded during
# an update (TODO: discuss if this is a reasonable behavior (at least this the default # an update (TODO: discuss if this is a reasonable behavior (at least this the default
# behavior for a while)) # behavior for a while))
@ -2109,7 +2109,7 @@ rev: %s
# this false-positives (patch was already sent to the ml) (but this also # this false-positives (patch was already sent to the ml) (but this also
# requires some slight changes in osc) # requires some slight changes in osc)
return sinfo.get('srcmd5') != self.srcmd5 return sinfo.get('srcmd5') != self.srcmd5
elif self.hasserviceinfo(): elif self.hasserviceinfo():
# check if we have expanded or unexpanded services # check if we have expanded or unexpanded services
if self.serviceinfo.isexpanded(): if self.serviceinfo.isexpanded():
return sinfo.get('lsrcmd5') != self.srcmd5 return sinfo.get('lsrcmd5') != self.srcmd5
@ -2792,7 +2792,7 @@ class Request:
if review.by_group: if review.by_group:
d['by'] = "Group: " + review.by_group d['by'] = "Group: " + review.by_group
if review.by_package: if review.by_package:
d['by'] = "Package: " + review.by_project + "/" + review.by_package d['by'] = "Package: " + review.by_project + "/" + review.by_package
elif review.by_project: elif review.by_project:
d['by'] = "Project: " + review.by_project d['by'] = "Project: " + review.by_project
d['when'] = review.when or '' d['when'] = review.when or ''
@ -3970,7 +3970,7 @@ def change_request_state_template(req, newstate):
action = req.actions[0] action = req.actions[0]
tmpl_name = '%srequest_%s_template' % (action.type, newstate) tmpl_name = '%srequest_%s_template' % (action.type, newstate)
tmpl = conf.config.get(tmpl_name, '') tmpl = conf.config.get(tmpl_name, '')
tmpl = tmpl.replace('\\t', '\t').replace('\\n', '\n') tmpl = tmpl.replace('\\t', '\t').replace('\\n', '\n')
data = {'reqid': req.reqid, 'type': action.type, 'who': req.get_creator()} data = {'reqid': req.reqid, 'type': action.type, 'who': req.get_creator()}
if req.actions[0].type == 'submit': if req.actions[0].type == 'submit':
data.update({'src_project': action.src_project, data.update({'src_project': action.src_project,
@ -4556,13 +4556,13 @@ def checkout_package(apiurl, project, package,
# if we are in a package dir, goto parent. # if we are in a package dir, goto parent.
# Hmm, with 'checkout_no_colon' in effect, we have directory levels that # Hmm, with 'checkout_no_colon' in effect, we have directory levels that
# do not easily reveal the fact, that they are part of a project path. # do not easily reveal the fact, that they are part of a project path.
# At least this test should find that the parent of 'home/username/branches' # At least this test should find that the parent of 'home/username/branches'
# is a project (hack alert). Also goto parent in this case. # is a project (hack alert). Also goto parent in this case.
root_dots = "../" root_dots = "../"
elif is_project_dir("../.."): elif is_project_dir("../.."):
# testing two levels is better than one. # testing two levels is better than one.
# May happen in case of checkout_no_colon, or # May happen in case of checkout_no_colon, or
# if project roots were previously inconsistent # if project roots were previously inconsistent
root_dots = "../../" root_dots = "../../"
if is_project_dir(root_dots): if is_project_dir(root_dots):
if conf.config['checkout_no_colon']: if conf.config['checkout_no_colon']:
@ -6967,7 +6967,7 @@ def find_default_project(apiurl=None, package=None):
# any fast query will do here. # any fast query will do here.
show_package_meta(apiurl, prj, package) show_package_meta(apiurl, prj, package)
return prj return prj
except HTTPError: except HTTPError:
pass pass
return None return None

View File

@ -271,7 +271,7 @@ class myProxyHTTPSConnection(M2Crypto.httpslib.ProxyHTTPSConnection, HTTPSConnec
def endheaders(self, *args, **kwargs): def endheaders(self, *args, **kwargs):
if self._proxy_auth is None: if self._proxy_auth is None:
self._proxy_auth = self._encode_auth() self._proxy_auth = self._encode_auth()
HTTPSConnection.endheaders(self, *args, **kwargs) HTTPSConnection.endheaders(self, *args, **kwargs)
# broken in m2crypto: port needs to be an int # broken in m2crypto: port needs to be an int
def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0): def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):

View File

@ -295,7 +295,7 @@ class TestCommit(OscTestCase):
file='testSimple_missingfilelist', expfile='testSimple_lfilelist') file='testSimple_missingfilelist', expfile='testSimple_lfilelist')
@PUT('http://localhost/source/osctest/simple/nochange?rev=repository', @PUT('http://localhost/source/osctest/simple/nochange?rev=repository',
exp='This file didn\'t change but\nis modified.\n', text=rev_dummy) exp='This file didn\'t change but\nis modified.\n', text=rev_dummy)
@POST('http://localhost/source/osctest/simple?comment=&cmd=commitfilelist&user=Admin', @POST('http://localhost/source/osctest/simple?comment=&cmd=commitfilelist&user=Admin',
expfile='testSimple_lfilelist', text='an error occured', code=500) expfile='testSimple_lfilelist', text='an error occured', code=500)
def test_commitfilelist_error(self): def test_commitfilelist_error(self):
"""commit modified file but when committing the filelist the server returns status 500 (see ticket #65)""" """commit modified file but when committing the filelist the server returns status 500 (see ticket #65)"""

View File

@ -70,7 +70,7 @@ class TestUpdate(OscTestCase):
@GET('http://localhost/source/osctest/conflict/_meta', file='meta.xml') @GET('http://localhost/source/osctest/conflict/_meta', file='meta.xml')
def testUpdateConflict(self): def testUpdateConflict(self):
""" """
a file was modified in the remote package (local file is also modified a file was modified in the remote package (local file is also modified
and a merge isn't possible) and a merge isn't possible)
""" """
self._change_to_pkg('conflict') self._change_to_pkg('conflict')