summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-vcs/pwclient
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
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.xml7
-rw-r--r--dev-vcs/pwclient/pwclient-20121105131501.ebuild32
-rw-r--r--dev-vcs/pwclient/pwclient-20141110122616.ebuild43
7 files changed, 355 insertions, 0 deletions
diff --git a/dev-vcs/pwclient/Manifest b/dev-vcs/pwclient/Manifest
new file mode 100644
index 000000000000..e7cac9b4050d
--- /dev/null
+++ b/dev-vcs/pwclient/Manifest
@@ -0,0 +1,2 @@
+DIST pwclient-20121105131501 15497 SHA256 4818caef545d24ee4f17e28f2297c0317321a3acc892fb38b304e28b64342cc2 SHA512 07e70ec8ba2bd3a048cd9c5d5c8f8e142358608f462befc10388651c658d46660ce71cbc24eec09c908112dd38761febc8dfbee0c5a56f325eca8129e190ed1c WHIRLPOOL e97f88498774d13a2d21a38fb2a6cd63903f350870eb6d577a4e7383f9b58044307fae837d53b6946337ff5ef53815d12613830da0b6d241d06685056b53ac6d
+DIST pwclient-20141110122616 23527 SHA256 5b13aad2cba051d38a3f80f50480e903c001f737302ec371b29247e3ec6fb396 SHA512 4933b7c5b4129d5fa1e47fa09dd8a75e5e5aac3254d8ed4bb65f8e7363d082217deecf8fc99f53092b607c49eebf9144e335079472a790a0193d0c6cddcf433f WHIRLPOOL 2689190853cb37f2be3c6db9fb67d4cdb4b2e927c388b2f916d2a0d26ea2156466ebdef4b9fbb57f928050026dccaff0686ab9c258b497374c2a3eaccd1249cb
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
new file mode 100644
index 000000000000..43e2606efa67
--- /dev/null
+++ b/dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch
@@ -0,0 +1,45 @@
+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
new file mode 100644
index 000000000000..70f54a7aed3a
--- /dev/null
+++ b/dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch
@@ -0,0 +1,101 @@
+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
new file mode 100644
index 000000000000..da75ac1d3e1a
--- /dev/null
+++ b/dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch
@@ -0,0 +1,125 @@
+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
new file mode 100644
index 000000000000..7123fa8f9ece
--- /dev/null
+++ b/dev-vcs/pwclient/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>vapier@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-vcs/pwclient/pwclient-20121105131501.ebuild b/dev-vcs/pwclient/pwclient-20121105131501.ebuild
new file mode 100644
index 000000000000..e45b59680716
--- /dev/null
+++ b/dev-vcs/pwclient/pwclient-20121105131501.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+# 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="bc695f5a7e0a2dd184dc0eae7a923be24b1b1723"
+
+DESCRIPTION="command line utility for interacting with patchwork repos"
+HOMEPAGE="http://jk.ozlabs.org/projects/patchwork/"
+SRC_URI="http://repo.or.cz/w/patchwork.git/blob_plain/${EGIT_COMMIT}:/apps/patchwork/bin/pwclient -> ${P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-lang/python"
+
+S=${WORKDIR}
+
+src_unpack() { :; }
+
+src_install() {
+ newbin "${DISTDIR}"/${P} ${PN}
+}
diff --git a/dev-vcs/pwclient/pwclient-20141110122616.ebuild b/dev-vcs/pwclient/pwclient-20141110122616.ebuild
new file mode 100644
index 000000000000..7ef63f1376d0
--- /dev/null
+++ b/dev-vcs/pwclient/pwclient-20141110122616.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+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=""
+
+RDEPEND="${PYTHON_DEPS}"
+
+S=${WORKDIR}
+
+src_unpack() {
+ cp "${DISTDIR}"/${P} ${PN} || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-*.patch
+}
+
+src_install() {
+ python_setup
+ python_doscript ${PN}
+}