Hello community,
here is the log from the commit of package osc for openSUSE:Factory checked in at 2015-07-02 22:49:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/osc (Old)
and /work/SRC/openSUSE:Factory/.osc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "osc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/osc/osc.changes 2015-05-16 07:14:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.osc.new/osc.changes 2015-07-03 00:11:38.000000000 +0200
@@ -1,0 +2,11 @@
+Tue Jun 30 13:35:47 UTC 2015 - adrian@suse.de
+
+- 0.152.0
+ - add support searching for groups via "group:" prefix
+ - show possible used incident projects on "maintained" command
+ OBS 2.7 only:
+ - support buildtime source services
+ - support maintenance_incident requests with acceptinfo data
+ - support maintenance_release requests with acceptinfo data
+
+-------------------------------------------------------------------
Old:
----
osc-0.151.2.tar.gz
New:
----
osc-0.152.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ osc.spec ++++++
--- /var/tmp/diff_new_pack.qXjUne/_old 2015-07-03 00:11:39.000000000 +0200
+++ /var/tmp/diff_new_pack.qXjUne/_new 2015-07-03 00:11:39.000000000 +0200
@@ -17,7 +17,7 @@
Name: osc
-Version: 0.151.2
+Version: 0.152.0
Release: 0
Summary: openSUSE Build Service Commander
License: GPL-2.0+
++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.qXjUne/_old 2015-07-03 00:11:39.000000000 +0200
+++ /var/tmp/diff_new_pack.qXjUne/_new 2015-07-03 00:11:39.000000000 +0200
@@ -1,5 +1,5 @@
pkgname=osc
-pkgver=0.151.2
+pkgver=0.152.0
pkgrel=0
pkgdesc="Open Build Service client"
arch=('i686' 'x86_64')
@@ -8,7 +8,7 @@
groups=('base-devel')
depends=('python2' 'python2-m2crypto' 'urlgrabber')
source=(osc-${pkgver}.tar.gz)
-md5sums=('8acda45a7a4061de2db404d79dc17bb6')
+md5sums=('4a0b1194f52280d42dd50fe2a8adaa3a')
package() {
msg "Installing osc ..."
++++++ _service ++++++
--- /var/tmp/diff_new_pack.qXjUne/_old 2015-07-03 00:11:39.000000000 +0200
+++ /var/tmp/diff_new_pack.qXjUne/_new 2015-07-03 00:11:39.000000000 +0200
@@ -1,7 +1,7 @@
<services>
<service name="tar_scm" mode="disabled">
- <param name="version">0.151.2</param>
- <param name="revision">0.151.2</param>
+ <param name="version">0.152.0</param>
+ <param name="revision">0.152.0</param>
<param name="url">git://github.com/openSUSE/osc.git</param>
<param name="scm">git</param>
</service>
++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.qXjUne/_old 2015-07-03 00:11:39.000000000 +0200
+++ /var/tmp/diff_new_pack.qXjUne/_new 2015-07-03 00:11:39.000000000 +0200
@@ -1,4 +1,4 @@
-osc (0.151.2) unstable; urgency=low
+osc (0.152.0) unstable; urgency=low
- Update to 0.135.0
-- Adrian Schroeter Wed, 28 Jun 2012 10:00:00 +0200
++++++ osc-0.151.2.tar.gz -> osc-0.152.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-0.151.2/NEWS new/osc-0.152.0/NEWS
--- old/osc-0.151.2/NEWS 2015-03-26 14:53:16.000000000 +0100
+++ new/osc-0.152.0/NEWS 2015-06-30 15:35:32.000000000 +0200
@@ -1,3 +1,11 @@
+0.152
+ - add support searching for groups via "group:" prefix
+ - show possible used incident projects on "maintained" command
+ OBS 2.7 only:
+ - support buildtime source services
+ - support maintenance_incident requests with acceptinfo data
+ - support maintenance_release requests with acceptinfo data
+
0.151
- fixed shell command injection via crafted _service files (CVE-2015-0778)
- fix times when data comes from OBS backend
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-0.151.2/README new/osc-0.152.0/README
--- old/osc-0.151.2/README 2015-03-26 14:53:16.000000000 +0100
+++ new/osc-0.152.0/README 2015-06-30 15:35:32.000000000 +0200
@@ -13,7 +13,7 @@
RPM packages are here (rpm-md repository):
http://download.opensuse.org/repositories/openSUSE:/Tools/
-To install from svn, do
+To install from git, do
python setup.py build
python setup.py install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-0.151.2/dist/complete.sh new/osc-0.152.0/dist/complete.sh
--- old/osc-0.151.2/dist/complete.sh 2015-03-26 14:53:16.000000000 +0100
+++ new/osc-0.152.0/dist/complete.sh 2015-06-30 15:35:32.000000000 +0200
@@ -1,7 +1,6 @@
test -z "$BASH_VERSION" && return
complete -o default _nullcommand >/dev/null 2>&1 || return
complete -r _nullcommand >/dev/null 2>&1 || return
-COMP_WORDBREAKS="${COMP_WORDBREAKS//:}"
test -s /usr/share/osc/complete && complete -o default -C /usr/share/osc/complete osc
test -s /usr/lib64/osc/complete && complete -o default -C /usr/lib64/osc/complete osc
test -s /usr/lib/osc/complete && complete -o default -C /usr/lib/osc/complete osc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-0.151.2/dist/osc.complete new/osc-0.152.0/dist/osc.complete
--- old/osc-0.151.2/dist/osc.complete 2015-03-26 14:53:16.000000000 +0100
+++ new/osc-0.152.0/dist/osc.complete 2015-06-30 15:35:32.000000000 +0200
@@ -6,7 +6,6 @@
#
# usage with bash
#
-# COMP_WORDBREAKS="${COMP_WORDBREAKS//:}"
# complete -C osc.complete osc
#
# Author: Werner Fink
@@ -35,14 +34,19 @@
let colon=0
else
COMMAND_LINE="${COMP_LINE:0:$COMP_POINT}"
-# let colon=1
let colon=0
+ case "$COMP_WORDBREAKS" in
+ *:*) let colon=1
+ esac
[[ $COMMAND_LINE =~ \\: ]] && COMMAND_LINE="${COMMAND_LINE//\\:/:}"
fi
IFS="${IFS}="
cmdline=($COMMAND_LINE)
IFS="$OIFS"
-test "${cmdline[0]}" != "osc" && exit 1
+case "${cmdline[0]}" in
+iosc|isc|osc) ;;
+*) exit 1
+esac
let last=${#COMMAND_LINE}
let last--
@@ -79,24 +83,64 @@
oscpkg=""
lnkprj=""
lnkpkg=""
+apiurl=""
+alias=""
test -s ${PWD}/.osc/_project && read -t 1 oscprj < ${PWD}/.osc/_project
test -s ${PWD}/.osc/_package && read -t 1 oscpkg < ${PWD}/.osc/_package
if test -s ${PWD}/.osc/_files ; then
lnkprj=$(command sed -rn '/ /dev/null)
+fi
+if test "${cmdline[0]}" = isc ; then
+ alias=internal
+fi
+
+projects=~/.osc.projects
+command=osc
+
+case "${cmdline[1]}" in
+-A|--apiurl)
+ if test -n "${cmdline[2]}" -a -s ~/.oscrc ; then
+ hints=($(sed -rn '/^(aliases=|\[http)/{s/,/ /g;s/(aliases=|\[|\])//gp}' < ~/.oscrc 2> /dev/null))
+ for h in ${hints[@]} ; do
+ case "$h" in
+ http*)
+ tmp=$(sed -rn '\@^\['${h}'@,\@=@{\@^aliases=@{s@[^=]+=([^,]+),.*@\1@p};}' < ~/.oscrc 2> /dev/null)
+ if test "${cmdline[2]}" = "$h" ; then
+ alias=$tmp
+ break
+ fi
+ ;;
+ *)
+ if test "${cmdline[2]}" = "$h" ; then
+ alias=$h
+ break
+ fi
+ esac
+ done
+ fi
+esac
-if test -s ~/.osc.projects ; then
- typeset -i ctime=$(command date -d "$(command stat -c '%z' ~/.osc.projects)" +'%s')
+if test -n "$alias" ; then
+ projects="${projects}.${alias}"
+ command="$command -A $alias"
+fi
+
+if test -s "${projects}" ; then
+ typeset -i ctime=$(command date -d "$(command stat -c '%z' ${projects})" +'%s')
typeset -i now=$(command date -d now +'%s')
if ((now - ctime > 86400)) ; then
- if tmp=$(mktemp ~/.osc.projects.XXXXXX) ; then
- command osc ls / >| $tmp
- mv -uf $tmp ~/.osc.projects
+ if tmp=$(mktemp ${projects}.XXXXXX) ; then
+ command ${command} ls / >| $tmp
+ mv -uf $tmp ${projects}
fi
fi
else
- command osc ls / >| ~/.osc.projects
+ command ${command} ls / >| "${projects}"
fi
projects ()
@@ -104,7 +148,7 @@
local -a list
local -a argv
local -i argc=0
- local arg
+ local arg cur
for arg; do
if test $arg == "--" ; then
let argc++
@@ -113,15 +157,18 @@
argv[argc++]=$arg
done
shift $argc
- if test -n "$1" ; then
- list=($(command grep -E "^$1" ~/.osc.projects))
+ cur="$1"
+ if test -n "${cur}" ; then
+ list=($(command grep -E "^${cur}" ${projects}))
else
- list=($(command cat ~/.osc.projects))
+ list=($(command cat ${projects}))
fi
if ((colon)) ; then
- builtin compgen -W "${list[*]}" "$1"|sed -r 's@([^\\]):@\1\\:@g'
+ local colon_word
+ colon_word=${cur%${cur##*:}}
+ builtin compgen -W "${list[*]}" -- "${cur}" | sed -r "s@^${colon_word}@@g"
else
- builtin compgen -W "${list[*]}" -- ${1+"$@"}
+ builtin compgen -W "${list[*]}" -- "${cur}"
fi
}
@@ -130,7 +177,7 @@
local -a list
local -a argv
local -i argc=0
- local arg
+ local arg cur
for arg; do
if test $arg == "--" ; then
let argc++
@@ -139,12 +186,13 @@
argv[argc++]=$arg
done
shift $argc
- if test -n "$1" ; then
- list=($(command osc ls ${argv[@]}|command grep -E "^$1"))
+ cur="$1"
+ if test -n "${cur}" ; then
+ list=($(command ${command} ls ${argv[@]}|command grep -E "^${cur}"))
else
- list=($(command osc ls ${argv[@]}))
+ list=($(command ${command} ls ${argv[@]}))
fi
- builtin compgen -W "${list[*]}" -- ${1+"$@"}
+ builtin compgen -W "${list[*]}" -- "${cur}"
}
repositories ()
@@ -162,11 +210,11 @@
done
shift $argc
if test -n "$1" ; then
- list=($(command osc meta prj ${argv[@]}|\
+ list=($(command ${command} meta prj ${argv[@]}|\
command sed -rn '//dev/null))
- images=($(command ls *.kiwi 2>/dev/null))
- builtin compgen -W "${opts[*]} ${specs[*]} ${images[*]}" -- "${cmdline[count]}"
+ specs=($(command ls *.spec))
+ builtin compgen -W "${opts[*]} ${specs[*]}" -- "${cmdline[count]}"
fi
;;
branch|getpac|bco|branchco)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-0.151.2/osc/build.py new/osc-0.152.0/osc/build.py
--- old/osc-0.151.2/osc/build.py 2015-03-26 14:53:16.000000000 +0100
+++ new/osc-0.152.0/osc/build.py 2015-06-30 15:35:32.000000000 +0200
@@ -66,7 +66,7 @@
'armv5tel': [ 'armv4l', 'armv5el', 'armv5tel' ],
's390x': ['s390' ],
'ppc64': [ 'ppc', 'ppc64', 'ppc64p7', 'ppc64le' ],
- 'ppc64le': [ 'ppc64le' ],
+ 'ppc64le': [ 'ppc64le', 'ppc64' ],
'i586': [ 'i386' ],
'i686': [ 'i586', 'i386' ],
'x86_64': ['i686', 'i586', 'i386' ],
@@ -211,13 +211,15 @@
self.mp['apiurl'] = apiurl
if pacsuffix == 'deb':
- filename = debquery.DebQuery.filename(self.mp['name'], self.mp['epoch'], self.mp['version'], self.mp['release'], self.mp['arch'])
+ canonname = debquery.DebQuery.filename(self.mp['name'], self.mp['epoch'], self.mp['version'], self.mp['release'], self.mp['arch'])
elif pacsuffix == 'arch':
- filename = archquery.ArchQuery.filename(self.mp['name'], self.mp['epoch'], self.mp['version'], self.mp['release'], self.mp['arch'])
+ canonname = archquery.ArchQuery.filename(self.mp['name'], self.mp['epoch'], self.mp['version'], self.mp['release'], self.mp['arch'])
else:
- filename = rpmquery.RpmQuery.filename(self.mp['name'], self.mp['epoch'], self.mp['version'], self.mp['release'], self.mp['arch'])
+ canonname = rpmquery.RpmQuery.filename(self.mp['name'], self.mp['epoch'], self.mp['version'], self.mp['release'], self.mp['arch'])
- self.mp['filename'] = node.get('binary') or filename
+ self.mp['canonname'] = canonname
+ # maybe we should rename filename key to binary
+ self.mp['filename'] = node.get('binary') or canonname
if self.mp['repopackage'] == '_repository':
self.mp['repofilename'] = self.mp['name']
else:
@@ -238,7 +240,7 @@
# or if-modified-since, so the caching is simply name-based (on the assumption
# that the filename is suitable as identifier)
self.localdir = '%s/%s/%s/%s' % (cachedir, self.project, self.repository, self.arch)
- self.fullfilename = os.path.join(self.localdir, self.filename)
+ self.fullfilename = os.path.join(self.localdir, self.canonname)
self.url_local = 'file://%s' % self.fullfilename
# first, add the local URL
@@ -444,6 +446,8 @@
build_root = opts.root
if opts.target:
buildargs.append('--target=%s' % opts.target)
+ if opts.threads:
+ buildargs.append('--threads=%s' % opts.threads)
if opts.jobs:
buildargs.append('--jobs=%s' % opts.jobs)
elif config['build-jobs'] > 1:
@@ -567,13 +571,21 @@
build_descr_data = s + build_descr_data
cpiodata = None
+ servicefile = os.path.join(os.path.dirname(build_descr), "_service")
+ if not os.path.isfile(servicefile):
+ servicefile = os.path.join(os.path.dirname(build_descr), "_service")
+ if not os.path.isfile(servicefile):
+ servicefile = None
+ else:
+ print('Using local _service file')
buildenvfile = os.path.join(os.path.dirname(build_descr), "_buildenv." + repo + "." + arch)
if not os.path.isfile(buildenvfile):
buildenvfile = os.path.join(os.path.dirname(build_descr), "_buildenv")
if not os.path.isfile(buildenvfile):
buildenvfile = None
- if buildenvfile:
- print('Using buildenv file: %s' % os.path.basename(buildenvfile))
+ else:
+ print('Using local buildenv file: %s' % os.path.basename(buildenvfile))
+ if buildenvfile or servicefile:
from .util import cpio
if not cpiodata:
cpiodata = cpio.CpioWrite()
@@ -590,6 +602,8 @@
# buildenv must come last for compatibility reasons...
if buildenvfile:
cpiodata.add("buildenv", open(buildenvfile).read())
+ if servicefile:
+ cpiodata.add("_service", open(servicefile).read())
build_descr_data = cpiodata.get()
# special handling for overlay and rsync-src/dest
@@ -753,8 +767,9 @@
enable_cpio = not opts.disable_cpio_bulk_download,
cookiejar=cookiejar)
- # implicitly trust the project we are building for
- check_trusted_projects(apiurl, [ i for i in bi.projects.keys() if not i == prj ])
+ if not opts.trust_all_projects:
+ # implicitly trust the project we are building for
+ check_trusted_projects(apiurl, [ i for i in bi.projects.keys() if not i == prj ])
# now update the package cache
fetcher.run(bi)
@@ -991,7 +1006,7 @@
my_build_swap = build_root + '/swap'
vm_options = [ '--vm-type=%s' % vm_type ]
- if vm_type != 'lxc' and vm_type != 'emulator':
+ if vm_type != 'lxc':
vm_options += [ '--vm-disk=' + my_build_device ]
vm_options += [ '--vm-swap=' + my_build_swap ]
vm_options += [ '--logfile=%s/.build.log' % build_root ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-0.151.2/osc/commandline.py new/osc-0.152.0/osc/commandline.py
--- old/osc-0.151.2/osc/commandline.py 2015-03-26 14:53:16.000000000 +0100
+++ new/osc-0.152.0/osc/commandline.py 2015-06-30 15:35:32.000000000 +0200
@@ -1748,10 +1748,10 @@
@cmdln.option('-m', '--message', metavar='TEXT',
help='specify message TEXT')
- @cmdln.option('-r', '--repository', metavar='TEXT',
- help='specify message TEXT')
- @cmdln.option('--accept-in-hours', metavar='TEXT',
- help='specify message time when request shall get accepted automatically. Only works with write permissions in target.')
+ @cmdln.option('-r', '--repository', metavar='REPOSITORY',
+ help='specify repository')
+ @cmdln.option('--accept-in-hours', metavar='HOURS',
+ help='specify time when request shall get accepted automatically. Only works with write permissions in target.')
@cmdln.alias("dr")
@cmdln.alias("dropreq")
@cmdln.alias("droprequest")
@@ -2236,8 +2236,8 @@
except HTTPError as e:
# for OBS 2.0 and before
sr_actions = r.get_actions('submit')
- if not sr_actions:
- raise oscerr.WrongOptions('\'--diff\' not possible (request has no \'submit\' actions)')
+ if not r.get_actions('submit') and not r.get_actions('maintenance_incident') and not r.get_actions('maintenance_release'):
+ raise oscerr.WrongOptions('\'--diff\' not possible (request has no supported actions)')
for action in sr_actions:
diff += 'old: %s/%s\nnew: %s/%s\n' % (action.src_project, action.src_package,
action.tgt_project, action.tgt_package)
@@ -3062,7 +3062,10 @@
if opts.dryrun:
for r in result.findall('package'):
- print("%s/%s"%(r.get('project'), r.get('package')))
+ line="%s/%s"%(r.get('project'), r.get('package'))
+ for d in r.findall('devel'):
+ line+=" using sources from %s/%s"%(d.get('project'), d.get('package'))
+ print(line)
return
apiopt = ''
@@ -3318,6 +3321,33 @@
delete_project(apiurl, prj, opts.force, msg)
+ def do_lock(self, subcmd, opts, project, package=None):
+ """${cmd_name}: Locks a project or package.
+
+ usage:
+ osc lock PROJECT [PACKAGE]
+
+ ${cmd_option_list}
+ """
+ apiurl = self.get_api_url()
+ kind = 'prj'
+ path_args = (project,)
+ if package is not None:
+ kind = 'pkg'
+ path_args = (project, package)
+ meta = meta_exists(kind, path_args, create_new=False, apiurl=apiurl)
+ root = ET.fromstring(''.join(meta))
+ if root.find('lock') is not None:
+ print('Already locked', file=sys.stderr)
+ sys.exit(1)
+ # alternatively, we could also use the set_flag api call
+ # instead of manually manipulating the xml
+ lock = ET.SubElement(root, 'lock')
+ ET.SubElement(lock, 'enable')
+ meta = ET.tostring(root)
+ edit_meta(kind, path_args=path_args, data=meta)
+
+
@cmdln.option('-m', '--message', metavar='TEXT',
help='specify log message TEXT')
def do_unlock(self, subcmd, opts, *args):
@@ -3951,8 +3981,12 @@
else:
raise oscerr.WrongArgs('Wrong number of arguments')
- # XXX: API should somehow tell that
- url_tmpl = 'http://download.opensuse.org/repositories/%s/%s/%s.repo'
+ root = ET.fromstring(''.join(show_configuration(apiurl)))
+ elm = root.find('download_url')
+ if elm is None or not elm.text:
+ raise oscerr.APIError('download_url configuration element expected')
+
+ url_tmpl = elm.text + '/%s/%s/%s.repo'
repos = get_repositories_of_project(apiurl, project)
for repo in repos:
print(url_tmpl % (project.replace(':', ':/'), repo, project))
@@ -5527,6 +5561,8 @@
help='Build in specified directory')
@cmdln.option('-j', '--jobs', metavar='N',
help='Compile with N jobs')
+ @cmdln.option('-t', '--threads', metavar='N',
+ help='Compile with N threads')
@cmdln.option('--icecream', metavar='N',
help='use N parallel build jobs with icecream')
@cmdln.option('--ccache', action='store_true',
@@ -5574,6 +5610,8 @@
help=SUPPRESS_HELP)
@cmdln.option('--host', metavar='HOST',
help='perform the build on a remote server - user@server:~/remote/directory')
+ @cmdln.option('--trust-all-projects', action='store_true',
+ help='trust packages from all projects')
def do_build(self, subcmd, opts, *args):
"""${cmd_name}: Build a package on your local machine
@@ -5821,10 +5859,10 @@
@cmdln.option('-o', '--offline', action='store_true',
help='Use cached data without contacting the api server')
def do_chroot(self, subcmd, opts, *args):
- """${cmd_name}: chroot into the buildchroot
+ """${cmd_name}: opens a shell inside of the build root
- chroot into the buildchroot for the given repository, arch and build description
- (NOTE: this command does not work if "build-type" is set in the config)
+ chroot into the build root for the given repository, arch and build description
+ (NOTE: this command does not work if a VM is used)
usage:
osc chroot [OPTS] REPOSITORY ARCH BUILD_DESCR
@@ -5836,7 +5874,7 @@
"""
if len(args) > 3:
raise oscerr.WrongArgs('Too many arguments')
- if conf.config['build-type']:
+ if conf.config['build-type'] and conf.config['build-type'] != "lxc":
print('Not implemented for VMs', file=sys.stderr)
sys.exit(1)
@@ -5886,6 +5924,8 @@
${cmd_option_list}
"""
+ args = slash_split(args)
+
if len(args) < 2 and is_package_dir('.'):
self.print_repos()
@@ -6651,7 +6691,7 @@
@cmdln.option('-V', '--version', action='store_true',
help='show package version, revision, and srcmd5. CAUTION: This is slow and unreliable')
@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 [[{group|person}/]<name>] default: person')
@cmdln.option('-b', '--bugowner', action='store_true',
help='as -i, but only bugowner')
@cmdln.option('-m', '--maintainer', action='store_true',
@@ -6742,14 +6782,25 @@
# role filter
role_filter = ''
if opts.bugowner or opts.maintainer or opts.involved:
- xpath = xpath_join(xpath, 'person/@userid = \'%s\'' % search_term, inner=True)
- role_filter = '%s (%s)' % (search_term, 'person')
+ tmp = search_term.split(':')
+ if len(tmp) > 1:
+ search_type, search_term = [tmp[0], tmp[1]]
+ else:
+ search_type = 'person'
+ search_dict = { 'person' : 'userid',
+ 'group' : 'groupid' }
+ try:
+ search_id = search_dict[ search_type ]
+ except KeyError:
+ search_type, search_id = [ 'person', 'userid' ]
+ xpath = xpath_join(xpath, '%s/@%s = \'%s\'' % (search_type, search_id, search_term), inner=True)
+ role_filter = '%s (%s)' % (search_term, search_type)
role_filter_xpath = xpath
if opts.bugowner and not opts.maintainer:
- xpath = xpath_join(xpath, 'person/@role=\'bugowner\'', op='and')
+ xpath = xpath_join(xpath, '%s/@role=\'bugowner\'' % search_type, op='and')
role_filter = 'bugowner'
elif not opts.bugowner and opts.maintainer:
- xpath = xpath_join(xpath, 'person/@role=\'maintainer\'', op='and')
+ xpath = xpath_join(xpath, '%s/@role=\'maintainer\'' % search_type, op='and')
role_filter = 'maintainer'
if opts.limit_to_attribute:
xpath = xpath_join(xpath, 'attribute/@name=\'%s\'' % opts.limit_to_attribute, op='and')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-0.151.2/osc/core.py new/osc-0.152.0/osc/core.py
--- old/osc-0.151.2/osc/core.py 2015-03-26 14:53:16.000000000 +0100
+++ new/osc-0.152.0/osc/core.py 2015-06-30 15:35:33.000000000 +0200
@@ -5,7 +5,7 @@
from __future__ import print_function
-__version__ = '0.151'
+__version__ = '0.152'
# __store_version__ is to be incremented when the format of the working copy
# "store" changes in an incompatible way. Please add any needed migration
@@ -81,7 +81,7 @@
<enable />
</build>
<debuginfo>
- <disable />
+ <enable />
</debuginfo>
Reply