diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-python/python-ptrace | |
download | gentoo-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-python/python-ptrace')
-rw-r--r-- | dev-python/python-ptrace/Manifest | 1 | ||||
-rw-r--r-- | dev-python/python-ptrace/files/0.8.1-python3.4.patch | 147 | ||||
-rw-r--r-- | dev-python/python-ptrace/metadata.xml | 9 | ||||
-rw-r--r-- | dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild | 30 |
4 files changed, 187 insertions, 0 deletions
diff --git a/dev-python/python-ptrace/Manifest b/dev-python/python-ptrace/Manifest new file mode 100644 index 000000000000..489888fcd087 --- /dev/null +++ b/dev-python/python-ptrace/Manifest @@ -0,0 +1 @@ +DIST python-ptrace-0.8.1.tar.gz 93674 SHA256 779e04c7bdc00150b739e7d49c9c61b7f36f17afd26355f91b10cd0e7d55d19f SHA512 1c3dadf381ad0fe30374fe030fc3a81b5ec0885c31ac9be4ae561cf14ff891fc2e465555133b2efce6be0154b06768121aa068161bb3de10aca6df0eb181e25c WHIRLPOOL 1541571ed580b5852b1fc51f515776463dc622a4a2c334691f0433083a29bc1059549e0b4e938ea7c694517e341cd39bbc3f487f5ea7f83b327aaad1dbd8b7df diff --git a/dev-python/python-ptrace/files/0.8.1-python3.4.patch b/dev-python/python-ptrace/files/0.8.1-python3.4.patch new file mode 100644 index 000000000000..2e6e76f8e6df --- /dev/null +++ b/dev-python/python-ptrace/files/0.8.1-python3.4.patch @@ -0,0 +1,147 @@ +# HG changeset patch +# User Victor Stinner <victor.stinner@gmail.com> +# Date 1417423044 -3600 +# Mon Dec 01 09:37:24 2014 +0100 +# Node ID eba1a6dba205559d724d32c80d955a65e078505e +# Parent e6fef4231a8a28ef91c1feaf3bfbcbd29822c939 +Issue #17: syscall parser now supports O_CLOEXEC and SOCK_CLOEXEC, fix unit +tests on Python 3.4 and newer + +diff --git a/doc/changelog.rst b/doc/changelog.rst +--- a/doc/changelog.rst ++++ b/doc/changelog.rst +@@ -3,6 +3,12 @@ + Changelog + ========= + ++python-ptrace 0.8.2 ++------------------- ++ ++* Issue #17: syscall parser now supports O_CLOEXEC and SOCK_CLOEXEC, fix unit ++ tests on Python 3.4 and newer ++ + python-ptrace 0.8.1 (2014-10-30) + -------------------------------- + +diff --git a/ptrace/syscall/posix_arg.py b/ptrace/syscall/posix_arg.py +--- a/ptrace/syscall/posix_arg.py ++++ b/ptrace/syscall/posix_arg.py +@@ -24,7 +24,7 @@ + return formatBits(argument.value, ACCESS_MODE_BITMASK, "F_OK") + + # From /usr/include/bits/fcntl.h (Ubuntu Feisty, i386) +-OPEN_MODE_BITMASK = ( ++OPEN_MODE_BITMASK = [ + (0o1, "O_WRONLY"), + (0o2, "O_RDWR"), + (0o100, "O_CREAT"), +@@ -40,10 +40,17 @@ + (0o200000, "O_DIRECTORY"), + (0o400000, "O_NOFOLLOW"), + (0o1000000, "O_NOATIME"), +-) ++] ++O_CLOEXEC = 0o02000000 + + def formatOpenMode(argument): +- return formatBits(int(argument.value), OPEN_MODE_BITMASK, "O_RDONLY", oct) ++ value = argument.value ++ cloexec = bool(value & O_CLOEXEC) ++ value = value & ~O_CLOEXEC ++ text = formatBits(int(value), OPEN_MODE_BITMASK, "O_RDONLY", oct) ++ if cloexec: ++ text += '|O_CLOEXEC' ++ return text + + CLONE_FLAGS_BITMASK = ( + (0x00000100, "CLONE_VM"), +diff --git a/ptrace/syscall/posix_constants.py b/ptrace/syscall/posix_constants.py +--- a/ptrace/syscall/posix_constants.py ++++ b/ptrace/syscall/posix_constants.py +@@ -1,5 +1,5 @@ + from ptrace.syscall.socketcall_constants import ( +- SOCKET_FAMILY, SOCKET_TYPE, SOCKET_PROTOCOL, ++ SOCKET_FAMILY, SOCKET_PROTOCOL, + SETSOCKOPT_LEVEL, SETSOCKOPT_OPTNAME) + + SYSCALL_ARG_DICT = { +@@ -51,7 +51,6 @@ + }, + "socket": { + "domain": SOCKET_FAMILY, +- "type": SOCKET_TYPE, + "protocol": SOCKET_PROTOCOL, + }, + "getsockopt": { +diff --git a/ptrace/syscall/socketcall_constants.py b/ptrace/syscall/socketcall_constants.py +--- a/ptrace/syscall/socketcall_constants.py ++++ b/ptrace/syscall/socketcall_constants.py +@@ -1,3 +1,5 @@ ++import socket ++ + SOCKETCALL = { + 1: "socket", + 2: "bind", +@@ -56,6 +58,19 @@ + 10: "SOCK_PACKET", + } + ++def formatSocketType(argument): ++ value = argument.value ++ text = [] ++ if hasattr(socket, 'SOCK_CLOEXEC'): ++ cloexec = value & socket.SOCK_CLOEXEC ++ value &= ~socket.SOCK_CLOEXEC ++ else: ++ cloexec = False ++ text = SOCKET_TYPE.get(value, value) ++ if cloexec: ++ text += '|SOCK_CLOEXEC' ++ return text ++ + SOCKET_PROTOCOL = { + 1: "IPPROTO_ICMP", + 58: "IPPROTO_ICMPV6", +diff --git a/ptrace/syscall/syscall_argument.py b/ptrace/syscall/syscall_argument.py +--- a/ptrace/syscall/syscall_argument.py ++++ b/ptrace/syscall/syscall_argument.py +@@ -22,6 +22,7 @@ + from ptrace.syscall.freebsd_constants import SYSCALL_ARG_DICT + else: + SYSCALL_ARG_DICT = {} ++from ptrace.syscall.socketcall_constants import formatSocketType + + KNOWN_STRUCTS = [] + if RUNNING_LINUX: +@@ -35,6 +36,7 @@ + "mmap": {"prot": formatMmapProt}, + "mmap2": {"prot": formatMmapProt}, + "clone": {"flags": formatCloneFlags}, ++ "socket": {"type": formatSocketType}, + "setsockopt": {"optval": formatOptVal}, + } + +diff --git a/tests/test_strace.py b/tests/test_strace.py +--- a/tests/test_strace.py ++++ b/tests/test_strace.py +@@ -39,10 +39,19 @@ + expected = os.fsencode(expected) + self.assertEqual(match.group(1), expected) + ++ def test_open(self): ++ if PY3: ++ code = 'open(%a).close()' % __file__ ++ else: ++ code = 'open(%r).close()' % __file__ ++ stdout = self.strace(sys.executable, '-c', code) ++ pattern = re.compile(br"^open\(.*test_strace\.py', O_RDONLY(\|O_CLOEXEC)?\)", re.MULTILINE) ++ self.assertTrue(pattern.search(stdout), stdout) ++ + def test_socket(self): + code = 'import socket; socket.socket(socket.AF_INET, socket.SOCK_STREAM).close()' + stdout = self.strace(sys.executable, '-c', code) +- pattern = re.compile(b'^socket\\(AF_INET, SOCK_STREAM, ', re.MULTILINE) ++ pattern = re.compile(br'^socket\(AF_INET, SOCK_STREAM(\|SOCK_CLOEXEC)?, ', re.MULTILINE) + self.assertTrue(pattern.search(stdout), stdout) + + if __name__ == "__main__": diff --git a/dev-python/python-ptrace/metadata.xml b/dev-python/python-ptrace/metadata.xml new file mode 100644 index 000000000000..a484905aea3b --- /dev/null +++ b/dev-python/python-ptrace/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>python</herd> + <upstream> + <remote-id type="pypi">python-ptrace</remote-id> + <remote-id type="bitbucket">haypo/python-ptrace</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild b/dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild new file mode 100644 index 000000000000..06c2354266d6 --- /dev/null +++ b/dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild @@ -0,0 +1,30 @@ +# 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} pypy ) + +inherit distutils-r1 + +DESCRIPTION="python-ptrace is a debugger using ptrace (Linux, BSD and Darwin system call to trace processes)" +HOMEPAGE="http://bitbucket.org/haypo/python-ptrace/ http://pypi.python.org/pypi/python-ptrace" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="doc examples" + +PATCHES=( "${FILESDIR}/0.8.1-python3.4.patch" ) + +python_test() { + "${PYTHON}" runtests.py || die "Testing failed with ${EPYTHON}" +} + +python_install_all() { + use examples && local EXAMPLES=( examples/. ) + # doc folder missing key files to effect a proper doc build + use doc && local DOCS=( README doc/* ) + distutils-r1_python_install_all +} |