From 56bd759df1d0c750a065b8c845e93d5dfa6b549d Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Sat, 8 Aug 2015 13:49:04 -0700 Subject: proj/gentoo: Initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 X-Thanks: Alec Warner - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring - wrote much python to improve cvs2svn X-Thanks: Rich Freeman - validation scripts X-Thanks: Patrick Lauer - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed --- dev-vcs/pwclient/Manifest | 2 + ...wclient-handle-missing-.pwclientrc-better.patch | 45 ++++++++ ...e-print_function-for-better-py3-compatibi.patch | 101 +++++++++++++++++ ...22616-0003-pwclient-basic-python3-support.patch | 125 +++++++++++++++++++++ dev-vcs/pwclient/metadata.xml | 7 ++ dev-vcs/pwclient/pwclient-20121105131501.ebuild | 32 ++++++ dev-vcs/pwclient/pwclient-20141110122616.ebuild | 43 +++++++ 7 files changed, 355 insertions(+) create mode 100644 dev-vcs/pwclient/Manifest create mode 100644 dev-vcs/pwclient/files/pwclient-20141110122616-0001-pwclient-handle-missing-.pwclientrc-better.patch create mode 100644 dev-vcs/pwclient/files/pwclient-20141110122616-0002-pwclient-use-print_function-for-better-py3-compatibi.patch create mode 100644 dev-vcs/pwclient/files/pwclient-20141110122616-0003-pwclient-basic-python3-support.patch create mode 100644 dev-vcs/pwclient/metadata.xml create mode 100644 dev-vcs/pwclient/pwclient-20121105131501.ebuild create mode 100644 dev-vcs/pwclient/pwclient-20141110122616.ebuild (limited to 'dev-vcs/pwclient') 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 +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 +--- + 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 +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 +--- + 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 +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 +--- + 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 +@@ -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 @@ + + + + + vapier@gentoo.org + + 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} +} -- cgit v1.2.3-65-gdbad