summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-vcs/pwclient')
-rw-r--r--dev-vcs/pwclient/Manifest2
-rw-r--r--dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch45
-rw-r--r--dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch101
-rw-r--r--dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch125
-rw-r--r--dev-vcs/pwclient/metadata.xml15
-rw-r--r--dev-vcs/pwclient/pwclient-2.6.2.ebuild26
-rw-r--r--dev-vcs/pwclient/pwclient-20141110122616.ebuild44
7 files changed, 40 insertions, 318 deletions
diff --git a/dev-vcs/pwclient/Manifest b/dev-vcs/pwclient/Manifest
index a3d4daecb3e7..f002c2131794 100644
--- a/dev-vcs/pwclient/Manifest
+++ b/dev-vcs/pwclient/Manifest
@@ -1 +1 @@
-DIST pwclient-20141110122616 23527 BLAKE2B 61a49c6104db0015d0cf9ea4fddefe3ccde6495d0a0caf918d858e535bbbd085ee5a80f856753ea547b1ac18fb22344036734a5814d06865bde2622368b88155 SHA512 4933b7c5b4129d5fa1e47fa09dd8a75e5e5aac3254d8ed4bb65f8e7363d082217deecf8fc99f53092b607c49eebf9144e335079472a790a0193d0c6cddcf433f
+DIST pwclient-2.6.2.gh.tar.gz 33813 BLAKE2B 2bbd9deb9d3550d8e38e8552012cc206ce6a36f6c9c98418fa161daa6ec81b9ef36ec621126b9619ef4209914e23a051a8516f2e9f6c5ba2f21af50bf2ba7b97 SHA512 2763004b97de3c2801ade91df69fdda537d1b7fd39be69b9ca0857a0c0f0a535fb1f42783a073838d535d12f2a58983319ba36f8e869b194233adda617cdd0c6
diff --git a/dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch b/dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch
deleted file mode 100644
index 43e2606efa67..000000000000
--- a/dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 601e1362d63293ca567295f63cb52bcfeb5d9959 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@chromium.org>
-Date: Tue, 5 May 2015 23:19:57 -0400
-Subject: [PATCH 1/3] pwclient: handle missing ~/.pwclientrc better
-
-The upgrade path will crash if ~/.pwclientrc doesn't exist, so add an
-explicit check for the file before we try to "upgrade" it.
-
-The default error messages don't mention the config file, so it can be
-a bit confusing what pwclient is complaining about when running.
-
-Signed-off-by: Mike Frysinger <vapier@chromium.org>
----
- apps/patchwork/bin/pwclient | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/apps/patchwork/bin/pwclient b/apps/patchwork/bin/pwclient
-index 2a80981..56aa909 100755
---- a/apps/patchwork/bin/pwclient
-+++ b/apps/patchwork/bin/pwclient
-@@ -552,7 +552,7 @@ def main():
- config = ConfigParser.ConfigParser()
- config.read([CONFIG_FILE])
-
-- if not config.has_section('options'):
-+ if not config.has_section('options') and os.path.exists(CONFIG_FILE):
- sys.stderr.write('~/.pwclientrc is in the old format. Migrating it...')
-
- old_project = config.get('base','project')
-@@ -590,10 +590,10 @@ def main():
- sys.exit(1)
-
- if not config.has_section(project_str):
-- sys.stderr.write("No section for project %s\n" % project_str)
-+ sys.stderr.write('No section for project %s in ~/.pwclientrc\n' % project_str)
- sys.exit(1)
- if not config.has_option(project_str, 'url'):
-- sys.stderr.write("No URL for project %s\n" % project_str)
-+ sys.stderr.write('No URL for project %s in ~/.pwclientrc\n' % project_str)
- sys.exit(1)
- if not do_signoff and config.has_option('options', 'signoff'):
- do_signoff = config.getboolean('options', 'signoff')
---
-2.4.0
-
diff --git a/dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch b/dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch
deleted file mode 100644
index 70f54a7aed3a..000000000000
--- a/dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 0991ccb0e7c0be66e087839f88a7120394c2f052 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@chromium.org>
-Date: Tue, 5 May 2015 23:54:16 -0400
-Subject: [PATCH 2/3] pwclient: use print_function for better py3 compatibility
-
-The script already tries to use print like a function in many places but
-is really passing a parenthesized string. Import the print_function from
-the future module so that it actually works as intended.
-
-We also need to fix up a few latent print statements to make it work.
-
-Signed-off-by: Mike Frysinger <vapier@chromium.org>
----
- apps/patchwork/bin/pwclient | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/apps/patchwork/bin/pwclient b/apps/patchwork/bin/pwclient
-index 56aa909..2e6daa5 100755
---- a/apps/patchwork/bin/pwclient
-+++ b/apps/patchwork/bin/pwclient
-@@ -19,6 +19,8 @@
- # along with Patchwork; if not, write to the Free Software
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-+from __future__ import print_function
-+
- import os
- import sys
- import xmlrpclib
-@@ -170,9 +172,9 @@ def action_list(rpc, filter, submitter_str, delegate_str, format_str=None):
- else:
- for id in ids:
- person = rpc.person_get(id)
-- print "Patches submitted by %s <%s>:" % \
-- (unicode(person['name']).encode("utf-8"), \
-- unicode(person['email']).encode("utf-8"))
-+ print('Patches submitted by %s <%s>:' %
-+ (unicode(person['name']).encode('utf-8'),
-+ unicode(person['email']).encode('utf-8')))
- f = filter
- f.add("submitter_id", id)
- patches = rpc.patch_list(f.d)
-@@ -187,8 +189,8 @@ def action_list(rpc, filter, submitter_str, delegate_str, format_str=None):
- else:
- for id in ids:
- person = rpc.person_get(id)
-- print "Patches delegated to %s <%s>:" % \
-- (person['name'], person['email'])
-+ print('Patches delegated to %s <%s>:' %
-+ (person['name'], person['email']))
- f = filter
- f.add("delegate_id", id)
- patches = rpc.patch_list(f.d)
-@@ -245,7 +247,7 @@ def action_get(rpc, patch_id):
- try:
- f.write(unicode(s).encode("utf-8"))
- f.close()
-- print "Saved patch to %s" % fname
-+ print('Saved patch to %s' % fname)
- except:
- sys.stderr.write("Failed to write to %s\n" % fname)
- sys.exit(1)
-@@ -258,13 +260,13 @@ def action_apply(rpc, patch_id, apply_cmd=None):
- sys.exit(1)
-
- if apply_cmd is None:
-- print "Applying patch #%d to current directory" % patch_id
-+ print('Applying patch #%d to current directory' % patch_id)
- apply_cmd = ['patch', '-p1']
- else:
-- print "Applying patch #%d using %s" % (
-- patch_id, repr(' '.join(apply_cmd)))
-+ print('Applying patch #%d using %s' %
-+ (patch_id, repr(' '.join(apply_cmd))))
-
-- print "Description: %s" % patch['name']
-+ print('Description: %s' % patch['name'])
- s = rpc.patch_get_mbox(patch_id)
- if len(s) > 0:
- proc = subprocess.Popen(apply_cmd, stdin = subprocess.PIPE)
-@@ -295,7 +297,7 @@ def action_update_patch(rpc, patch_id, state = None, commit = None):
- success = False
- try:
- success = rpc.patch_set(patch_id, params)
-- except xmlrpclib.Fault, f:
-+ except xmlrpclib.Fault as f:
- sys.stderr.write("Error updating patch: %s\n" % f.faultString)
-
- if not success:
-@@ -668,7 +670,7 @@ def main():
- for patch_id in non_empty(h, patch_ids):
- s = rpc.patch_get_mbox(patch_id)
- if len(s) > 0:
-- print unicode(s).encode("utf-8")
-+ print(unicode(s).encode('utf-8'))
-
- elif action == 'info':
- for patch_id in non_empty(h, patch_ids):
---
-2.4.0
-
diff --git a/dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch b/dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch
deleted file mode 100644
index da75ac1d3e1a..000000000000
--- a/dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From fcbd40fe7fa3fbdc5ffb386c5c7b72a8704e7136 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@chromium.org>
-Date: Wed, 6 May 2015 00:12:02 -0400
-Subject: [PATCH 3/3] pwclient: basic python3 support
-
-This fixes a few random issues to make the script work at least somewhat
-under python 3:
-- set the default encoding to utf-8
-- handle xmlrpclib/xmlrpc.client module renames
-- handle ConfigParser/configparser module renames
-- add a unicode() stub for python 3
-- fix old style class definition w/Filter
-- use list comprehension instead of map()
-- drop the unused version= keyword w/argparse
-
-The code still runs under python 2 the same as before, and now works for
-the most part under python 3 -- the handling of encoded content still needs
-some work, but that'll require more surgery, and is best left to another
-commit after this.
-
-Signed-off-by: Mike Frysinger <vapier@chromium.org>
----
- apps/patchwork/bin/pwclient | 31 +++++++++++++++++++++++--------
- 1 file changed, 23 insertions(+), 8 deletions(-)
-
-diff --git a/apps/patchwork/bin/pwclient b/apps/patchwork/bin/pwclient
-index 2e6daa5..5080a17 100755
---- a/apps/patchwork/bin/pwclient
-+++ b/apps/patchwork/bin/pwclient
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+# -*- coding: utf-8 -*-
- #
- # Patchwork command line client
- # Copyright (C) 2008 Nate Case <ncase@xes-inc.com>
-@@ -23,16 +24,31 @@ from __future__ import print_function
-
- import os
- import sys
--import xmlrpclib
-+try:
-+ import xmlrpclib
-+except ImportError:
-+ # Python 3 has merged/renamed things.
-+ import xmlrpc.client as xmlrpclib
- import argparse
- import string
- import tempfile
- import subprocess
- import base64
--import ConfigParser
-+try:
-+ import ConfigParser
-+except ImportError:
-+ # Python 3 has renamed things.
-+ import configparser as ConfigParser
- import shutil
- import re
-
-+# Add a shim for Python 2's unicode() helper.
-+try:
-+ unicode
-+except NameError:
-+ # Python 3 does everything by unicode now.
-+ unicode = str
-+
- # Default Patchwork remote XML-RPC server URL
- # This script will check the PW_XMLRPC_URL environment variable
- # for the URL to access. If that is unspecified, it will fallback to
-@@ -40,7 +56,7 @@ import re
- DEFAULT_URL = "http://patchwork/xmlrpc/"
- CONFIG_FILE = os.path.expanduser('~/.pwclientrc')
-
--class Filter:
-+class Filter(object):
- """Filter for selecting patches."""
- def __init__(self):
- # These fields refer to specific objects, so they are special
-@@ -135,7 +151,7 @@ def person_ids_by_name(rpc, name):
- if len(name) == 0:
- return []
- people = rpc.person_list(name, 0)
-- return map(lambda x: x['id'], people)
-+ return [x['id'] for x in people]
-
- def list_patches(patches, format_str=None):
- """Dump a list of patches to stdout."""
-@@ -352,7 +368,7 @@ class _RecursiveHelpAction(argparse._HelpAction):
- parser.exit()
-
- def main():
-- hash_parser = argparse.ArgumentParser(add_help=False, version=False)
-+ hash_parser = argparse.ArgumentParser(add_help=False)
- hash_parser.add_argument(
- '-h', metavar='HASH', dest='hash', action='store',
- help='''Lookup by patch hash'''
-@@ -362,7 +378,7 @@ def main():
- help='Patch ID',
- )
-
-- filter_parser = argparse.ArgumentParser(add_help=False, version=False)
-+ filter_parser = argparse.ArgumentParser(add_help=False)
- filter_parser.add_argument(
- '-s', metavar='STATE',
- help='''Filter by patch state (e.g., 'New', 'Accepted', etc.)'''
-@@ -397,7 +413,7 @@ def main():
- 'patch_name', metavar='STR', nargs='?',
- help='substring to search for patches by name',
- )
-- help_parser = argparse.ArgumentParser(add_help=False, version=False)
-+ help_parser = argparse.ArgumentParser(add_help=False)
- help_parser.add_argument(
- '--help', action='help', help=argparse.SUPPRESS,
- #help='''show this help message and exit'''
-@@ -406,7 +422,6 @@ def main():
- action_parser = argparse.ArgumentParser(
- prog='pwclient',
- add_help=False,
-- version=False,
- formatter_class=argparse.RawDescriptionHelpFormatter,
- epilog='''(apply | get | info | view | update) (-h HASH | ID [ID ...])''',
- )
---
-2.4.0
-
diff --git a/dev-vcs/pwclient/metadata.xml b/dev-vcs/pwclient/metadata.xml
index 6f49eba8f496..1b713c1e2270 100644
--- a/dev-vcs/pwclient/metadata.xml
+++ b/dev-vcs/pwclient/metadata.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<!-- maintainer-needed -->
+ <longdescription>
+ pwclient is a VCS-agnostic tool for interacting with Patchwork,
+ the web-based patch tracking system.
+ </longdescription>
+ <maintainer type="person">
+ <email>dlan@gentoo.org</email>
+ <name>Yixun Lan</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="github">getpatchwork/pwclient</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-vcs/pwclient/pwclient-2.6.2.ebuild b/dev-vcs/pwclient/pwclient-2.6.2.ebuild
new file mode 100644
index 000000000000..6ffd451e343d
--- /dev/null
+++ b/dev-vcs/pwclient/pwclient-2.6.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1
+
+DESCRIPTION="The command-line client for the patchwork patch tracking tool"
+HOMEPAGE="https://github.com/getpatchwork/pwclient"
+SRC_URI="https://github.com/getpatchwork/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+BDEPEND="dev-python/pbr[${PYTHON_USEDEP}]"
+
+distutils_enable_tests pytest
+
+src_compile() {
+ export PBR_VERSION=${PV}
+ distutils-r1_src_compile
+}
diff --git a/dev-vcs/pwclient/pwclient-20141110122616.ebuild b/dev-vcs/pwclient/pwclient-20141110122616.ebuild
deleted file mode 100644
index 9a0ace1caf6d..000000000000
--- a/dev-vcs/pwclient/pwclient-20141110122616.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-PYTHON_COMPAT=( python{2_7,3_5,3_6} )
-
-inherit eutils python-r1
-
-# The PV comes from:
-# git clone ${EGIT_REPO_URI}
-# cd patchwork
-# EGIT_COMMIT=$(git log -n1 --format=%H apps/patchwork/bin/pwclient)
-# date --date="$(git log -n1 --format=%ci ${EGIT_COMMIT})" -u +%Y%m%d%H%M%S
-EGIT_REPO_URI="git://ozlabs.org/home/jk/git/patchwork"
-EGIT_COMMIT="8904a7dcaf959da8db4a9a5d92b91a61eed05201"
-
-DESCRIPTION="command line utility for interacting with patchwork repos"
-HOMEPAGE="http://jk.ozlabs.org/projects/patchwork/"
-SRC_URI="mirror://gentoo/${P}"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
-IUSE=""
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="${PYTHON_DEPS}"
-DEPEND="${RDEPEND}"
-
-S=${WORKDIR}
-
-src_unpack() {
- cp "${DISTDIR}"/${P} ${PN} || die
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${P}-*.patch
-}
-
-src_install() {
- python_setup
- python_doscript ${PN}
-}