diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-07-14 21:03:06 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-07-14 21:03:06 +0100 |
commit | 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch) | |
tree | 7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-python/twisted | |
parent | 30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff) |
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-python/twisted')
-rw-r--r-- | dev-python/twisted/Manifest | 20 | ||||
-rw-r--r-- | dev-python/twisted/files/test_main.patch | 73 | ||||
-rwxr-xr-x | dev-python/twisted/files/trial | 22 | ||||
-rw-r--r-- | dev-python/twisted/files/twistd.conf | 7 | ||||
-rw-r--r-- | dev-python/twisted/files/twistd.init | 25 | ||||
-rw-r--r-- | dev-python/twisted/files/twisted-16.5.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch | 11 | ||||
-rw-r--r-- | dev-python/twisted/files/twisted-16.6.0-test-fixes.patch | 282 | ||||
-rw-r--r-- | dev-python/twisted/files/twisted-17.9.0-Fix-test-on-Python-363.patch | 74 | ||||
-rw-r--r-- | dev-python/twisted/files/twisted-17.9.0-python-27-utf-8-fix.patch | 47 | ||||
-rw-r--r-- | dev-python/twisted/files/twisted-18.4.0-Disable-writing-of-plugin-cache.patch | 25 | ||||
-rw-r--r-- | dev-python/twisted/files/utf8_overrides.patch | 64 | ||||
-rw-r--r-- | dev-python/twisted/metadata.xml | 35 | ||||
-rw-r--r-- | dev-python/twisted/twisted-16.6.0-r3.ebuild | 183 | ||||
-rw-r--r-- | dev-python/twisted/twisted-17.1.0-r2.ebuild | 184 | ||||
-rw-r--r-- | dev-python/twisted/twisted-17.9.0.ebuild | 189 | ||||
-rw-r--r-- | dev-python/twisted/twisted-18.4.0.ebuild | 188 |
16 files changed, 1429 insertions, 0 deletions
diff --git a/dev-python/twisted/Manifest b/dev-python/twisted/Manifest new file mode 100644 index 000000000000..3a01eca63793 --- /dev/null +++ b/dev-python/twisted/Manifest @@ -0,0 +1,20 @@ +AUX test_main.patch 3035 BLAKE2B 849a8d5aa6014d8c62f2cb464265b2b0d2a2e11e58eb28803b06683e89acdf6ce8668b1b1beb36f1437684f26f57b94b840201f9f8aa3e34b37cf888e2cb6644 SHA512 8e85a2aeb934f9a85bce223e50bae62e63188b4a75f6ef9e67badd040a6018075e7c777683106cf160d65383351d2d6ce02d3bc9a57e434e6e120ac8b669b147 +AUX trial 485 BLAKE2B 5a8ac382860e3967b5cb2d3b30a3799d77525ad3010b19daf5bed693c5739149b4bef070790485585d1e0b13d0286e84196a3cea26d3646ecd8e36ed7f966eef SHA512 b6a58da5281e18306d558fd665acfff02e2478e4f692661a3ed0fc0b01e6e13794a8d2b56ac3f2790a0cdd83a882f37a247f5083ceaf6ed6686fb69bd87853ce +AUX twistd.conf 277 BLAKE2B 78ca35b410a6597c9afe6a9c8d3dfb1de113411634901f936794e8a59c0644233d0673e710bd0870ecf4312d079c46f62f43928605700559134f1fb62490559a SHA512 76d44caebab8404f16937c2515ad9ae8236732a48c7127366f7fa22c6ed3d88ace2d33b832a6d95f775973d41b7caf75344805fe5b01e964c04eb710bf3c89fb +AUX twistd.init 563 BLAKE2B 24488118b025bf2068bbf07af900064ff6a7ee99106c3da30f15f2b3f85af7443212afebc6b52a12645488b85656f87b653df9263fc2be6bd09707917899f252 SHA512 7860601beba1efda2b0a045b2a044ec33caff9ee915d45225c05e281760a68da349b4c45080600177aab32aa806714327acf3cf5dda92be0874f781f129bb129 +AUX twisted-16.5.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch 427 BLAKE2B 0bf2c34f6dce2eed84782da7ce29ce4a76f6cca3f3b4b273c16c02fc75b22df3115deeca9c836916dc43ea88dc08e3e4c2f544c50164ee0c8fae491b4e54befb SHA512 d14b4941c3a13c59dfe0599a3eb73b9b0d5bde8e7c26033848ac920da8e8c63a0290d7f4d711cab16a17ba55a2e13830ab02bbd0db38f0757768cb973000064c +AUX twisted-16.6.0-test-fixes.patch 10591 BLAKE2B 27729db1ce4b84ea66acfa12bfdf2232623fa6c607fb1a6e0b3cd8325c31343a4565568141d9e659204fce9a2156117db05027cc2b023e8099fdf9e394524df6 SHA512 5071ffe30d1911ab4eb301403542f34198cbb3e09137d6260125fa61f702a0ce10e5c11c7967c10841a9d1b62f2eaf44e04119182a108cfbb7046622ddbdbcf2 +AUX twisted-17.9.0-Fix-test-on-Python-363.patch 3490 BLAKE2B 421318533759dad2d4ad3f054fbfab7900362aa3b3ca0adc75fb42431272fcaa40fe85ab2a3417232d97d3389b380ae658ee5b475e087f3a6097e28dd2094111 SHA512 0ba6b68267418bee3b2cfb15937dab4d6d3291725dd7acc41f37e0c8d39218acc4e23cb704c292f62eea57a128a1fcee6899826601b6763f37800c4b83ad18a8 +AUX twisted-17.9.0-python-27-utf-8-fix.patch 1630 BLAKE2B c70f3223b66a9372e07df7a767937d77a07f91cafecb4a5d84452f57458516e3ef17e4d5862d6b9f003e0edce3391e282f5bfcaf57ff2029db3c499fc6e97262 SHA512 635c498ab0e612b7d7ab262c333f18408e22dbe95d86389e87da36f0c41cee90f25b4c1df626cb755932c970a9f12dc25ca67e3790bd9c15c8a4d8ee6f547956 +AUX twisted-18.4.0-Disable-writing-of-plugin-cache.patch 853 BLAKE2B f2f4f3906266199856056d4eae062aafaa8d5b574858bd494d6a51512ad3f27ee0d813de8a760fbd21bdf479fde0bb1c3e724e13bddceb0d3af83bb8ecb31aa6 SHA512 e27a61855523a64c27e7adfe8ec917fae60149b1bfe0fc555694dc4321669665116046baa8f293d75b4bf68ec19743850062132aa05fed5feab4f582cc75219c +AUX utf8_overrides.patch 2288 BLAKE2B 450f921f6a07cd56d9311c15c9f2bf342ec82c807325ebb5b5c2fd61572d489ac7f1c8978892530016a343b7284c580def705127c57ce947a2698835e447b8ce SHA512 b495268282e0233c570655b2b3d42ecc90116b22c36cdec4ebf581ce1019abedb7ee301d860ec161b4b5e691d1b747ad45257966b5f510de8dcce8271021e7e8 +DIST Twisted-16.6.0.tar.bz2 2979747 BLAKE2B 898e0a0fa3ae8547a801b09118423ec8ad80727dd6d034e3f8a151f084eff5a3fc560f2eb9e76c452a14ec90b36d93e14d3bbb388010c3c5c01fd1c4d5ca16bb SHA512 0b8de0ec7f64457f76c396fced64b366b8e63c6e000a5edc6c6388cd917fb2f95711918cd8edda39e0aa77e2cd32b5d775d23630a5ad10fc013c18f8316300cf +DIST Twisted-17.1.0.tar.bz2 2997334 BLAKE2B 54bd9813fb265f3561be7bc42a3ca6fc36aa5f8553ff0f40fd4ba7939947015632ef91c011a088b511d9f3f262aa0a785467ad3e4fab00cc97cb85bdbd93a726 SHA512 e5eedc9a70b7e4d0ec18dddaa82aa9a784e96fd517db65c278d822d15e8bdc65a35307a5a0474eb68dcb73fcd5508086bec605580a9f2f767bcbe27d714b4966 +DIST Twisted-17.9.0.tar.bz2 3019243 BLAKE2B a79fade6c84a99303df803ad80f02c63562e7064d5b79db39c08bd0ac9a62d61f1388932b36348aa106aa409a51b2d49dc0eb5b1007ce10f196a34c2f963b8e5 SHA512 0fb854db1044bfdb208594a379a0f8df0193326a9974e193266e82113488d49220648d4a50b323fa144654e94976f5848e1d60efed13ab2668b02cc795720345 +DIST Twisted-18.4.0.tar.bz2 3037019 BLAKE2B 6fc32f7591493ccc4fe03233307b566899b82cd035ba3329b3faaf950339a6653de697ba3873b37b22f9d7f8a66109694b80496917bf61e79c56eeb7e351ac87 SHA512 3733a6df0196ea580187da3576f5fd08f287437528a4e19813056d019cca213c61b62d879d80a12eef38661d3505ba33aac9a4fc956b19afa6da7d37a6465c83 +DIST twisted-regen-cache.gz 911 BLAKE2B ffd3fcda6c67ffe6fd3ef581c8d507548396b66ed0708e9a5c790095e579c0d5f0f71596acf05712989da2ddef2b8d437eca973bc4d80ef8a9fa852915f38305 SHA512 95a9b931c73017d16d1b5e6b41345dddffe62b6af1a8e93b5e40d06d3d15be17b0dd0181c767ffeeb791534d463764ef9e066fa6c2ee2ac4b53c86d1da8fce03 +EBUILD twisted-16.6.0-r3.ebuild 5724 BLAKE2B 108dbd9936312c45c5deec67b539a1154435a5ac46e604c61ace5f6daab3ac53bc1ee2b79fa3d849a4932465a2059342696b080b38ebe445aee3862aaa10c402 SHA512 6532cfb88d75b3e82b7e0cd5cf54b70c7727d23cf3f5314af7b490b26cd8e16c3c8aa17acdc4c9533867f818e6aaf9d61510dc5ad3dbe66a3efc301ec714dff8 +EBUILD twisted-17.1.0-r2.ebuild 5748 BLAKE2B 89d1134a993c8c474c4afb010e5cf99839b396b7c17cf5f8369485852c4306fc9db0bf0f1820f4896d499d8b4d499e8bdf9e3056e79edcf84a8c13ec876c404a SHA512 662b4382f38de1c3177e73df9e7598f175f6a511131d633a676534ce2ca80e1e1fdec96a5bba3d859de973b416cd02a384233c24fbf56069f0ab6dc59910dccb +EBUILD twisted-17.9.0.ebuild 6037 BLAKE2B 6bcb95874ad77de1a27e823a936bc99da1149a3a7040ed24d3ce4d726e8946d153b29e0d1bd7e0c51791e5d1167cfbd6ce2b38e98e98f917d611fd1979b313e2 SHA512 701e4475125c89600b85158790da2198d46774b8011fc3db66a4c3efa22538523c45fc13a0f31041d927432284dc6372ccde014cfe89d2a7d829141bdc10c6bf +EBUILD twisted-18.4.0.ebuild 5904 BLAKE2B 49c877416a803bfbfe1c3ca941078bc272502757aabd5988f2ed7191bd118868b3df63c1d8f35b7257aa466582c1fbfb5a93a0bb84d6b5792585eb355b83ef65 SHA512 3679e96f0819bdc252803889c13e70b4753a01bb07035d0aad838a8d6ddde414b7125aa1c8dbf258cdd08ad996be48e5410ad5bfb22f27c3210f45793834b10d +MISC metadata.xml 1429 BLAKE2B f6bf7279da38a837c80fff9f9319d5c2d3893fb4a5a17d731b170153d1c4e10479b58a6576d84fa59ae653794aa017862a4fcb11bf1bc6ca85c374e3b9dc7cd5 SHA512 1ddcc6bb727f97eacb712badf834ceca15a4544e340090622774bc0e781f2ce1a20a96f8b5018535998e9865204697a25ab84eff87c480246fe14e39ef9411ed diff --git a/dev-python/twisted/files/test_main.patch b/dev-python/twisted/files/test_main.patch new file mode 100644 index 000000000000..bfef40450d52 --- /dev/null +++ b/dev-python/twisted/files/test_main.patch @@ -0,0 +1,73 @@ +From 2c3c28f5dbbd61bcfa5c548d1d423fffbaf2132d Mon Sep 17 00:00:00 2001 +From: Brian Dolbec <dolsen@gentoo.org> +Date: Fri, 31 Mar 2017 09:32:18 -0700 +Subject: [PATCH] tests/test_main.py: Fix test_twisted to handle differntly + sorted options + +Some systems retuned the usage with '__main__.py' instead of the command 'trial' +So, substitute that out if it exists. +The options returned via python can be a different sort order than is output via the +command --help. So break up the lines into a list and check equality, lines are neither +missing or extra. +--- + src/twisted/test/test_main.py | 34 ++++++++++++++++++++++++++++++++-- + 1 file changed, 32 insertions(+), 2 deletions(-) + +diff --git a/src/twisted/test/test_main.py b/src/twisted/test/test_main.py +index 572769018..b010a389e 100644 +--- a/src/twisted/test/test_main.py ++++ b/src/twisted/test/test_main.py +@@ -18,6 +18,10 @@ from twisted.trial.unittest import TestCase + + class MainTests(TestCase): + """Test that twisted scripts can be invoked as modules.""" ++ # this test just does not work correctly on Gentoo ++ # the output has '__main__.py' instead of 'trial' ++ # I have only been able to get 2.7 working correctly ++ # with replacing the value with what is expected. + def test_twisted(self): + """Invoking python -m twisted should execute twist.""" + cmd = sys.executable +@@ -28,11 +32,37 @@ class MainTests(TestCase): + + def processEnded(ign): + f = p.outF +- output = f.getvalue().replace(b'\r\n', b'\n') ++ # Some systems may return __main__.py instead of the command name expected ++ output = f.getvalue().replace(b'\r\n', b'\n').replace(b"__main__.py", b"trial") + + options = TwistOptions() + message = '{}\n'.format(options).encode('utf-8') +- self.assertEqual(output, message) ++ # NOTE: python may return the options in a different order ++ # than is output via the command --help option ++ # so we must break up the text and compare that lines ++ # are not missing or extra from what is expected ++ a = output.split(b'\n') ++ b = message.split(b'\n') ++ extras = [] ++ missing = [] ++ equal_len = (len(a) == len(b)) ++ for i in a: ++ if i not in b: ++ extras.append(i) ++ for i in b: ++ if i not in a: ++ missing.append(i) ++ ++ self.assertTrue(equal_len, ++ msg="Usage reported a different number of lines than expected") ++ self.assertTrue(extras == [], ++ msg="Usage returned these extra lines not expected: %s" ++ % '\n'.join(extras) ++ ) ++ self.assertTrue(missing == [], ++ msg="Usage was missing these expected lines: %s" ++ % '\n'.join(missing) ++ ) + return d.addCallback(processEnded) + + def test_twisted_import(self): +-- +2.12.1 + diff --git a/dev-python/twisted/files/trial b/dev-python/twisted/files/trial new file mode 100755 index 000000000000..8da58861abf6 --- /dev/null +++ b/dev-python/twisted/files/trial @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# Copyright (c) Twisted Matrix Laboratories. +# See LICENSE for details. +import os, sys + +try: + import _preamble +except ImportError: + try: + sys.exc_clear() + except AttributeError: + # exc_clear() (and the requirement for it) has been removed from Py3 + pass + +# begin chdir armor +sys.path[:] = map(os.path.abspath, sys.path) +# end chdir armor + +sys.path.insert(0, os.path.abspath(os.getcwd())) + +from twisted.scripts.trial import run +run() diff --git a/dev-python/twisted/files/twistd.conf b/dev-python/twisted/files/twistd.conf new file mode 100644 index 000000000000..53788cd0017e --- /dev/null +++ b/dev-python/twisted/files/twistd.conf @@ -0,0 +1,7 @@ + +# These are passed to twistd. +# TWISTD_OPTS="--no_save --logfile=/var/log/twistd -y /etc/twistd.tac" +# TWISTD_OPTS="--no_save --logfile=/var/log/twistd -f /etc/twistd.tap" + +# Make any additions to PYTHONPATH the twistd needs here. +# PYTHONPATH="/path/to/extra/python/modules" diff --git a/dev-python/twisted/files/twistd.init b/dev-python/twisted/files/twistd.init new file mode 100644 index 000000000000..b031b0020c6e --- /dev/null +++ b/dev-python/twisted/files/twistd.init @@ -0,0 +1,25 @@ +#!/sbin/openrc-run + +depend() { + need net +} + +start() { + if [ -z "${TWISTD_OPTS}" ]; then + eerror "TWISTD_OPTS is not set!" + eerror "You need to configure twistd in /etc/conf.d/twistd." + return 1 + fi + export PYTHONPATH + ebegin "Starting twistd" + start-stop-daemon --start --quiet --pidfile /var/run/twistd.pid \ + --exec /usr/bin/twistd -- --pidfile /var/run/twistd.pid \ + ${TWISTD_OPTS} + eend $? "Failed to start twistd" +} + +stop() { + ebegin "Stopping twistd" + start-stop-daemon --stop --quiet --pidfile /var/run/twistd.pid + eend $? "Failed to stop twistd" +} diff --git a/dev-python/twisted/files/twisted-16.5.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch b/dev-python/twisted/files/twisted-16.5.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch new file mode 100644 index 000000000000..ed1a46840678 --- /dev/null +++ b/dev-python/twisted/files/twisted-16.5.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch @@ -0,0 +1,11 @@ +--- src/twisted/plugin.py ++++ src/twisted/plugin.py +@@ -180,7 +180,7 @@ + if pluginKey not in existingKeys: + del dropinDotCache[pluginKey] + needsWrite = True +- if needsWrite: ++ if needsWrite and os.environ.get("TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE") is None: + try: + dropinPath.setContent(pickle.dumps(dropinDotCache)) + except: diff --git a/dev-python/twisted/files/twisted-16.6.0-test-fixes.patch b/dev-python/twisted/files/twisted-16.6.0-test-fixes.patch new file mode 100644 index 000000000000..3ce04aa3f684 --- /dev/null +++ b/dev-python/twisted/files/twisted-16.6.0-test-fixes.patch @@ -0,0 +1,282 @@ +From 91b6d8b5b9d602152fb7148c6e2921463b93a8a5 Mon Sep 17 00:00:00 2001 +From: Brian Dolbec <dolsen@gentoo.org> +Date: Fri, 31 Mar 2017 10:55:32 -0700 +Subject: [PATCH] twisted test overrides + +--- + src/twisted/internet/test/test_gireactor.py | 3 ++- + src/twisted/pair/test/test_ethernet.py | 9 +++++++++ + src/twisted/pair/test/test_ip.py | 8 ++++++++ + src/twisted/pair/test/test_rawudp.py | 10 +++++++++- + src/twisted/pair/test/test_tuntap.py | 16 ++++++++++++++++ + src/twisted/python/test/test_dist3.py | 2 ++ + src/twisted/test/test_ident.py | 5 ++++- + src/twisted/test/test_plugin.py | 6 ++++++ + src/twisted/test/test_policies.py | 5 +++++ + src/twisted/test/test_udp.py | 6 ++++++ + 10 files changed, 67 insertions(+), 3 deletions(-) + +diff --git a/src/twisted/internet/test/test_gireactor.py b/src/twisted/internet/test/test_gireactor.py +index 43147fdce..6333218e7 100644 +--- a/src/twisted/internet/test/test_gireactor.py ++++ b/src/twisted/internet/test/test_gireactor.py +@@ -39,6 +39,7 @@ from twisted.python.compat import _PY3 + if gireactor is None: + skip = "gtk3/gi not importable" + ++EMERGE_TEST_OVERRIDE = os.environ.get("EMERGE_TEST_OVERRIDE", False) + + + class GApplicationRegistrationTests(ReactorBuilder, TestCase): +@@ -103,7 +104,7 @@ class GApplicationRegistrationTests(ReactorBuilder, TestCase): + + self.runReactor(app, reactor) + +- if gtk3reactor is None: ++ if gtk3reactor is None or EMERGE_TEST_OVERRIDE: + test_gtkApplicationActivate.skip = ( + "Gtk unavailable (may require running with X11 DISPLAY env set)") + +diff --git a/src/twisted/pair/test/test_ethernet.py b/src/twisted/pair/test/test_ethernet.py +index a4c3a5d19..fe9c57151 100644 +--- a/src/twisted/pair/test/test_ethernet.py ++++ b/src/twisted/pair/test/test_ethernet.py +@@ -1,11 +1,16 @@ + # Copyright (c) Twisted Matrix Laboratories. + # See LICENSE for details. ++ ++import os ++ + from twisted.trial import unittest + + from twisted.python import components + from twisted.pair import ethernet, raw + from zope.interface import implementer + ++EMERGE_TEST_OVERRIDE = os.environ.get("EMERGE_TEST_OVERRIDE", False) ++ + + @implementer(raw.IRawPacketProtocol) + class MyProtocol: +@@ -221,3 +226,7 @@ class EthernetTests(unittest.TestCase): + raise + else: + raise AssertionError('addProto must raise an exception for bad protocols') ++ ++ ++if EMERGE_TEST_OVERRIDE: ++ EthernetTests.skip = "This test does not work via FEATURES=test emerge twisted" +diff --git a/src/twisted/pair/test/test_ip.py b/src/twisted/pair/test/test_ip.py +index 0f192a357..0a99658ef 100644 +--- a/src/twisted/pair/test/test_ip.py ++++ b/src/twisted/pair/test/test_ip.py +@@ -1,11 +1,16 @@ + # Copyright (c) Twisted Matrix Laboratories. + # See LICENSE for details. ++ ++import os ++ + from twisted.trial import unittest + + from twisted.python import components + from twisted.pair import ip, raw + from zope import interface + ++EMERGE_TEST_OVERRIDE = os.environ.get("EMERGE_TEST_OVERRIDE", False) ++ + + @interface.implementer(raw.IRawDatagramProtocol) + class MyProtocol: +@@ -432,3 +437,6 @@ class IPTests(unittest.TestCase): + raise + else: + raise AssertionError('addProto must raise an exception for bad protocols') ++ ++if EMERGE_TEST_OVERRIDE: ++ IPTests.skip = "This test does not work via FEATURES=test emerge twisted" +diff --git a/src/twisted/pair/test/test_rawudp.py b/src/twisted/pair/test/test_rawudp.py +index 15aae10f1..dade38618 100644 +--- a/src/twisted/pair/test/test_rawudp.py ++++ b/src/twisted/pair/test/test_rawudp.py +@@ -1,12 +1,17 @@ + # Copyright (c) Twisted Matrix Laboratories. + # See LICENSE for details. +- + # ++ ++import os ++ + from twisted.trial import unittest + + from twisted.internet import protocol + from twisted.pair import rawudp + ++EMERGE_TEST_OVERRIDE = os.environ.get("EMERGE_TEST_OVERRIDE", False) ++ ++ + class MyProtocol(protocol.DatagramProtocol): + def __init__(self, expecting): + self.expecting = list(expecting) +@@ -325,3 +330,6 @@ class RawUDPTests(unittest.TestCase): + raise + else: + raise AssertionError('addProto must raise an exception for bad protocols') ++ ++if EMERGE_TEST_OVERRIDE: ++ RawUDPTests.skip = "This test does not work via FEATURES=test emerge twisted" +diff --git a/src/twisted/pair/test/test_tuntap.py b/src/twisted/pair/test/test_tuntap.py +index 5e2da6e0f..53e03a008 100644 +--- a/src/twisted/pair/test/test_tuntap.py ++++ b/src/twisted/pair/test/test_tuntap.py +@@ -64,6 +64,7 @@ if platformSkip is None: + else: + skip = platformSkip + ++EMERGE_TEST_OVERRIDE = os.environ.get("EMERGE_TEST_OVERRIDE", False) + + + @implementer(IReactorFDSet) +@@ -1417,3 +1418,18 @@ class RealIOSystemTests(IOSystemTestsMixin, SynchronousTestCase, + """ + General L{_IInputOutputSystem} tests applied to L{_RealSystem}. + """ ++ ++if EMERGE_TEST_OVERRIDE: ++ RealIOSystemTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ MemoryIOSystemTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ TapTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ TunTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ TunnelAddressEqualityTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ TunnelAddressTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ TuntapPortTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ TunnelTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ FakeTapDeviceTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ FakeTapDeviceWithPITests.skip = "This test does not work via FEATURES=test emerge twisted" ++ FakeTunDeviceTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ RealDeviceWithProtocolInformationTests.skip = "This test does not work via FEATURES=test emerge twisted" ++ RealDeviceWithoutProtocolInformationTests.skip = "This test does not work via FEATURES=test emerge twisted" +diff --git a/src/twisted/python/test/test_dist3.py b/src/twisted/python/test/test_dist3.py +index 3ce2bdd60..494674bc7 100644 +--- a/src/twisted/python/test/test_dist3.py ++++ b/src/twisted/python/test/test_dist3.py +@@ -53,3 +53,5 @@ class ModulesToInstallTests(TestCase): + test_exist.skip = "Only on Python 2" + else: + test_notexist.skip = "Only on Python 3" ++ ++ModulesToInstallTests.skip = "This is an upstream distribution test only" +diff --git a/src/twisted/test/test_ident.py b/src/twisted/test/test_ident.py +index d86b840e5..3cc40261f 100644 +--- a/src/twisted/test/test_ident.py ++++ b/src/twisted/test/test_ident.py +@@ -12,7 +12,7 @@ from twisted.protocols import ident + from twisted.python import failure + from twisted.internet import error + from twisted.internet import defer +-from twisted.python.compat import NativeStringIO ++from twisted.python.compat import NativeStringIO, _PY3 + + from twisted.trial import unittest + from twisted.test.proto_helpers import StringTransport +@@ -216,6 +216,9 @@ class ProcMixinTests(unittest.TestCase): + """ + L{ident.ProcServerMixin.lookup} uses the Linux TCP process table. + """ ++ if not _PY3: ++ # test is broken in py2.7 ++ return + open_calls = [] + + def mocked_open(*args, **kwargs): +diff --git a/src/twisted/test/test_plugin.py b/src/twisted/test/test_plugin.py +index a23caa72b..a6d61858c 100644 +--- a/src/twisted/test/test_plugin.py ++++ b/src/twisted/test/test_plugin.py +@@ -29,6 +29,8 @@ else: + On python 2, import caches don't need to be invalidated. + """ + ++EMERGE_TEST_OVERRIDE = os.environ.get("EMERGE_TEST_OVERRIDE", False) ++ + + + class ITestPlugin(Interface): +@@ -327,6 +329,8 @@ class PluginTests(unittest.TestCase): + attainable, but an error should be logged to show that the cache + couldn't be updated. + """ ++ if EMERGE_TEST_OVERRIDE: ++ return + # Generate the cache + plugin.getCache(self.module) + +@@ -580,6 +584,8 @@ class DeveloperSetupTests(unittest.TestCase): + provide useful coverage on Windows due to the different meaning of + "read-only directory". + """ ++ if EMERGE_TEST_OVERRIDE: ++ return + self.unlockSystem() + self.sysplug.child('newstuff.py').setContent(pluginFileContents('one')) + self.lockSystem() +diff --git a/src/twisted/test/test_policies.py b/src/twisted/test/test_policies.py +index 3d92633d6..c08809a66 100644 +--- a/src/twisted/test/test_policies.py ++++ b/src/twisted/test/test_policies.py +@@ -7,6 +7,8 @@ Test code for policies. + + from __future__ import division, absolute_import + ++import os ++ + from zope.interface import Interface, implementer, implementedBy + + from twisted.python.compat import NativeStringIO +@@ -23,6 +25,7 @@ try: + except ImportError: + import __builtin__ as builtins + ++EMERGE_TEST_OVERRIDE = os.environ.get("EMERGE_TEST_OVERRIDE", False) + + + class SimpleProtocol(protocol.Protocol): +@@ -883,6 +886,8 @@ class LoggingFactoryTests(unittest.TestCase): + automatically opens a unique log file for that protocol and attaches + the logfile to the built protocol. + """ ++ if EMERGE_TEST_OVERRIDE: ++ return + open_calls = [] + open_rvalues = [] + +diff --git a/src/twisted/test/test_udp.py b/src/twisted/test/test_udp.py +index 6cf4583b2..86b513704 100644 +--- a/src/twisted/test/test_udp.py ++++ b/src/twisted/test/test_udp.py +@@ -8,6 +8,8 @@ Tests for implementations of L{IReactorUDP} and L{IReactorMulticast}. + + from __future__ import division, absolute_import + ++import os ++ + from twisted.trial import unittest + + from twisted.python.compat import intToBytes +@@ -15,6 +17,8 @@ from twisted.internet.defer import Deferred, gatherResults, maybeDeferred + from twisted.internet import protocol, reactor, error, defer, interfaces, udp + from twisted.python import runtime + ++EMERGE_TEST_OVERRIDE = os.environ.get("EMERGE_TEST_OVERRIDE", False) ++ + + class Mixin: + +@@ -699,3 +703,5 @@ if not interfaces.IReactorUDP(reactor, None): + ReactorShutdownInteractionTests.skip = "This reactor does not support UDP" + if not interfaces.IReactorMulticast(reactor, None): + MulticastTests.skip = "This reactor does not support multicast" ++elif EMERGE_TEST_OVERRIDE: ++ MulticastTests.skip = "This reactor test does not work via FEATURES=test emerge twisted" +-- +2.12.1 + diff --git a/dev-python/twisted/files/twisted-17.9.0-Fix-test-on-Python-363.patch b/dev-python/twisted/files/twisted-17.9.0-Fix-test-on-Python-363.patch new file mode 100644 index 000000000000..ea7a480abace --- /dev/null +++ b/dev-python/twisted/files/twisted-17.9.0-Fix-test-on-Python-363.patch @@ -0,0 +1,74 @@ +From e58956fe12af7b41f6c1735ba7b14cba69e82a5e Mon Sep 17 00:00:00 2001 +From: Craig Rodrigues <rodrigc@FreeBSD.org> +Date: Fri, 6 Oct 2017 02:47:55 -0700 +Subject: [PATCH] Fix test on Python 3.6.3 + +--- + src/twisted/test/test_sslverify.py | 53 +++++++++++++++++++++++++++++------------------------ + 1 file changed, 29 insertions(+), 24 deletions(-) + +diff --git a/src/twisted/test/test_sslverify.py b/src/twisted/test/test_sslverify.py +index aca56f5..3fdc480 100644 +--- a/src/twisted/test/test_sslverify.py ++++ b/src/twisted/test/test_sslverify.py +@@ -3052,28 +3052,33 @@ class SelectVerifyImplementationTests(unittest.SynchronousTestCase): + in self.flushWarnings() + if warning["category"] == UserWarning) + +- if _PY3: +- importError = ( +- "'import of 'service_identity' halted; None in sys.modules'") +- else: +- importError = "'No module named service_identity'" +- +- expectedMessage = ( +- "You do not have a working installation of the " +- "service_identity module: {message}. Please install it from " +- "<https://pypi.python.org/pypi/service_identity> " +- "and make sure all of its dependencies are satisfied. " +- "Without the service_identity module, Twisted can perform only " +- "rudimentary TLS client hostname verification. Many valid " +- "certificate/hostname mappings may be rejected.").format( +- message=importError) ++ importErrors =[ ++ # Python 3.6.3 ++ "'import of service_identity halted; None in sys.modules'", ++ # Python 3 ++ "'import of 'service_identity' halted; None in sys.modules'", ++ # Python 2 ++ "'No module named service_identity'" ++ ] + +- self.assertEqual( +- (warning["message"], warning["filename"], warning["lineno"]), +- +- # Make sure we're abusing the warning system to a sufficient +- # degree: there is no filename or line number that makes sense for +- # this warning to "blame" for the problem. It is a system +- # misconfiguration. So the location information should be blank +- # (or as blank as we can make it). +- (expectedMessage, "", 0)) ++ expectedMessages = [] ++ for importError in importErrors: ++ expectedMessages.append( ++ "You do not have a working installation of the " ++ "service_identity module: {message}. Please install it from " ++ "<https://pypi.python.org/pypi/service_identity> " ++ "and make sure all of its dependencies are satisfied. " ++ "Without the service_identity module, Twisted can perform only" ++ " rudimentary TLS client hostname verification. Many valid " ++ "certificate/hostname mappings may be rejected.".format( ++ message=importError)) ++ ++ self.assertIn(warning["message"], expectedMessages) ++ ++ # Make sure we're abusing the warning system to a sufficient ++ # degree: there is no filename or line number that makes sense for ++ # this warning to "blame" for the problem. It is a system ++ # misconfiguration. So the location information should be blank ++ # (or as blank as we can make it). ++ self.assertEqual(warning["filename"], "") ++ self.assertEqual(warning["lineno"], 0) +-- +libgit2 0.26.0 + diff --git a/dev-python/twisted/files/twisted-17.9.0-python-27-utf-8-fix.patch b/dev-python/twisted/files/twisted-17.9.0-python-27-utf-8-fix.patch new file mode 100644 index 000000000000..7e3ec26bcfdb --- /dev/null +++ b/dev-python/twisted/files/twisted-17.9.0-python-27-utf-8-fix.patch @@ -0,0 +1,47 @@ +From c7db4c055e92509e5c19a051cbebea53034994ba Mon Sep 17 00:00:00 2001 +From: Brian Dolbec <bdolbec@gaikai.com> +Date: Wed, 25 Oct 2017 14:39:57 -0700 +Subject: [PATCH] python-2.7 utf-8 fixes + +--- + src/twisted/test/test_twistd.py | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/src/twisted/test/test_twistd.py b/src/twisted/test/test_twistd.py +index 3a9d337..4b0cf28 100644 +--- a/src/twisted/test/test_twistd.py ++++ b/src/twisted/test/test_twistd.py +@@ -1902,8 +1902,12 @@ class DaemonizeTests(unittest.TestCase): + message is Unicode, the child encodes the message as ascii + with backslash Unicode code points. + """ ++ if sys.hexversion >= 0x3000000: ++ reported_str = b'\u2022' ++ else: ++ reported_str = b'\xe2\x80\xa2' + self.assertErrorWritten(raised=u"\u2022", +- reported=b'1 RuntimeError: \\u2022') ++ reported=b'1 RuntimeError: ' + reported_str) + + + +@@ -2003,9 +2007,15 @@ class DaemonizeTests(unittest.TestCase): + unicode and too long, it's truncated by the child, even if + this splits a unicode escape sequence. + """ ++ if sys.hexversion >= 0x3000000: ++ reported_str = b'\\u2022' ++ length = 14 ++ else: ++ reported_str = b'\xe2\x80\xa2' ++ length = 28 + self.assertErrorWritten( + raised=u"\u2022" * 30, +- reported=b'1 RuntimeError: ' + b'\\u2022' * 14, ++ reported=b'1 RuntimeError: ' + reported_str * length, + ) + + +-- +libgit2 0.26.0 + diff --git a/dev-python/twisted/files/twisted-18.4.0-Disable-writing-of-plugin-cache.patch b/dev-python/twisted/files/twisted-18.4.0-Disable-writing-of-plugin-cache.patch new file mode 100644 index 000000000000..318304e58df3 --- /dev/null +++ b/dev-python/twisted/files/twisted-18.4.0-Disable-writing-of-plugin-cache.patch @@ -0,0 +1,25 @@ +From cac07e9ef273b065eeebbeeaa27155c8402a36e1 Mon Sep 17 00:00:00 2001 +From: Brian Dolbec <dolsen@gentoo.org> +Date: Sat, 7 Jul 2018 11:37:23 -0700 +Subject: [PATCH] Disable writing of plugin cache + +--- + src/twisted/plugin.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/twisted/plugin.py b/src/twisted/plugin.py +index 82522ee..e5849d6 100644 +--- a/src/twisted/plugin.py ++++ b/src/twisted/plugin.py +@@ -180,7 +180,7 @@ def getCache(module): + if pluginKey not in existingKeys: + del dropinDotCache[pluginKey] + needsWrite = True +- if needsWrite: ++ if needsWrite and os.environ.get("TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE") is None: + try: + dropinPath.setContent(pickle.dumps(dropinDotCache)) + except OSError as e: +-- +libgit2 0.26.4 + diff --git a/dev-python/twisted/files/utf8_overrides.patch b/dev-python/twisted/files/utf8_overrides.patch new file mode 100644 index 000000000000..41f48cebfd84 --- /dev/null +++ b/dev-python/twisted/files/utf8_overrides.patch @@ -0,0 +1,64 @@ +From f8b2e95cc9bd1cbae565e1b4d576950961edc9a7 Mon Sep 17 00:00:00 2001 +From: Brian Dolbec <dolsen@gentoo.org> +Date: Fri, 31 Mar 2017 09:40:16 -0700 +Subject: [PATCH] UTF8 test overrides: The DaemonizeTests SafeStrTests tests + may need to be run independantly + +Some other tests may leave python in a state that returns a different form of the b'\\u2022' +bytestring (b'\xe2\x80\xa2') which causes the tests to fail. +In StafeStrTests, the returned 't\\xfcst' != 't\xc3\xbcst' originally sent, but is just +the unicode equivalent. + +This adds an environment override which can be used to skip these test during a full +"trial twisted" run. The DaemonizeTests, SafeStrTests can then be run independantly +with a clean python interpreter. +--- + src/twisted/test/test_reflect.py | 6 ++++++ + src/twisted/test/test_twistd.py | 3 +++ + 2 files changed, 9 insertions(+) + +diff --git a/src/twisted/test/test_reflect.py b/src/twisted/test/test_reflect.py +index ff0c7fc9e..0c13b949b 100644 +--- a/src/twisted/test/test_reflect.py ++++ b/src/twisted/test/test_reflect.py +@@ -19,6 +19,9 @@ from twisted.python.reflect import ( + accumulateMethods, prefixedMethods, prefixedMethodNames, + addMethodNamesToDict, fullyQualifiedName) + ++UTF8_OVERRIDES = os.environ.get("UTF8_OVERRIDES", False) ++ ++ + + class Base(object): + """ +@@ -553,6 +556,9 @@ class SafeStrTests(TestCase): + x = b't\xc3\xbcst' + self.assertEqual(reflect.safe_str(x), x) + ++ if UTF8_OVERRIDES: ++ test_workingUtf8_2.skip = "test_workingUtf8_2 requires to be run independantly of other tests" ++ + + def test_workingUtf8_3(self): + """ +diff --git a/src/twisted/test/test_twistd.py b/src/twisted/test/test_twistd.py +index b74fe4a08..d55be16b9 100644 +--- a/src/twisted/test/test_twistd.py ++++ b/src/twisted/test/test_twistd.py +@@ -78,6 +78,7 @@ if getattr(os, 'setuid', None) is None: + else: + setuidSkip = None + ++UTF8_OVERRIDES = os.environ.get("UTF8_OVERRIDES", False) + + + def patchUserDatabase(patch, user, uid, group, gid): +@@ -1913,3 +1914,5 @@ class DaemonizeTests(unittest.TestCase): + + if _twistd_unix is None: + DaemonizeTests.skip = "twistd unix support not available" ++elif UTF8_OVERRIDES: ++ DaemonizeTests.skip = "twistd.DaemonizeTests testing needs to be run separately" +-- +2.12.1 + diff --git a/dev-python/twisted/metadata.xml b/dev-python/twisted/metadata.xml new file mode 100644 index 000000000000..a18c193cb3da --- /dev/null +++ b/dev-python/twisted/metadata.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <maintainer type="person"> + <email>dolsen@gentoo.org</email> + </maintainer> + <upstream> + <maintainer> + <email>twisted-python@twistedmatrix.com</email> + <name>Twisted Matrix Laboratories</name> + </maintainer> + <remote-id type="pypi">Twisted</remote-id> + </upstream> + <use> + <flag name="conch">include Twisted SSHv2 implementation</flag> + <flag name="http2">include http2 support</flag> + <flag name="serial">include serial port support</flag> + </use> + <longdescription>Twisted is an event-based framework for internet + applications, supporting Python 2.7 and Python 3.3+. It includes + modules for many different purposes, including the following: + +twisted.web: HTTP clients and servers, HTML templating, and a WSGI server +twisted.conch: SSHv2 and Telnet clients and servers and terminal emulators +twisted.words: Clients and servers for IRC, XMPP, and other IM protocols +twisted.mail: IMAPv4, POP3, SMTP clients and servers +twisted.positioning: Tools for communicating with NMEA-compatible GPS receivers +twisted.names: DNS client and tools for making your own DNS servers +twisted.trial: A unit testing framework that integrates well with Twisted-based code. + </longdescription> +</pkgmetadata> diff --git a/dev-python/twisted/twisted-16.6.0-r3.ebuild b/dev-python/twisted/twisted-16.6.0-r3.ebuild new file mode 100644 index 000000000000..36dcfae1b4c9 --- /dev/null +++ b/dev-python/twisted/twisted-16.6.0-r3.ebuild @@ -0,0 +1,183 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +PYTHON_COMPAT=( python2_7 python3_{4,5,6}) +PYTHON_REQ_USE="threads(+)" + +inherit eutils flag-o-matic distutils-r1 versionator + +TWISTED_PN="Twisted" +TWISTED_P="${TWISTED_PN}-${PV}" +TWISTED_RELEASE=$(get_version_component_range 1-2 "${PV}") + +DESCRIPTION="An asynchronous networking framework written in Python" +HOMEPAGE="https://www.twistedmatrix.com/trac/" +SRC_URI="https://twistedmatrix.com/Releases/${TWISTED_PN}" +SRC_URI="${SRC_URI}/${TWISTED_RELEASE}/${TWISTED_P}.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz" + +# Dropped keywords due to new deps not keyworded +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~sparc x86" + +LICENSE="MIT" +SLOT="0" +IUSE="conch crypt http2 serial +soap test" + +RDEPEND=" + >=dev-python/incremental-16.10.1[${PYTHON_USEDEP}] + >=dev-python/zope-interface-4.0.2[${PYTHON_USEDEP}] + conch? ( + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/cryptography-0.9.1[${PYTHON_USEDEP}] + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + ) + crypt? ( + >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}] + dev-python/service_identity[${PYTHON_USEDEP}] + >=dev-python/idna-0.6[${PYTHON_USEDEP}] + ) + serial? ( dev-python/pyserial[${PYTHON_USEDEP}] ) + soap? ( $(python_gen_cond_dep 'dev-python/soappy[${PYTHON_USEDEP}]' python2_7) ) + http2? ( + >=dev-python/hyper-h2-2.5.0[${PYTHON_USEDEP}] + <dev-python/hyper-h2-3.0.0[${PYTHON_USEDEP}] + >=dev-python/priority-1.1.0[${PYTHON_USEDEP}] + <dev-python/priority-2.0[${PYTHON_USEDEP}] + ) + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + !dev-python/twisted-core + !dev-python/twisted-conch + !dev-python/twisted-lore + !dev-python/twisted-mail + !dev-python/twisted-names + !dev-python/twisted-news + !dev-python/twisted-pair + !dev-python/twisted-runner + !dev-python/twisted-words + !dev-python/twisted-web +" +DEPEND=" + >=dev-python/incremental-16.10.1[${PYTHON_USEDEP}] + test? ( + dev-python/gmpy[${PYTHON_USEDEP}] + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/cryptography-0.9.1[${PYTHON_USEDEP}] + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}] + dev-python/service_identity[${PYTHON_USEDEP}] + dev-python/idna[${PYTHON_USEDEP}] + dev-python/pyserial[${PYTHON_USEDEP}] + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable. + "${FILESDIR}/${PN}-16.5.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch" + "${FILESDIR}/test_main.patch" + "${FILESDIR}/utf8_overrides.patch" + "${FILESDIR}/${PN}-16.6.0-test-fixes.patch" +) + +S=${WORKDIR}/${TWISTED_P} + +python_prepare_all() { + # disable tests that don't work in our sandbox + # and other test failures due to our conditions + if use test ; then + # Remove since this is an upstream distribution test for making releases + rm src/twisted/python/test/test_release.py || die "rm src/twisted/python/test/test_release.py FAILED" + fi + distutils-r1_python_prepare_all +} + +python_compile() { + if ! python_is_python3; then + # Needed to make the sendmsg extension work + # (see https://twistedmatrix.com/trac/ticket/5701 ) + local -x CFLAGS="${CFLAGS} -fno-strict-aliasing" + local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing" + fi + + distutils-r1_python_compile +} + +python_test() { + distutils_install_for_testing + + export EMERGE_TEST_OVERRIDE=1 + export UTF8_OVERRIDES=1 + # workaround for the eclass not installing the entry points + # in the test environment. copy the old 16.3.2 start script + # to run the tests with + cp "${FILESDIR}"/trial "${TEST_DIR}" + + pushd "${TEST_DIR}" > /dev/null || die + + if ! "${TEST_DIR}"/trial twisted; then + die "Tests failed with ${EPYTHON}" + fi + # due to an anomoly in the tests, python doesn't return the correct form + # of the escape sequence. So run those test separately with a clean python interpreter + export UTF8_OVERRIDES=0 + if ! "${TEST_DIR}"/trial twisted.test.test_twistd.DaemonizeTests; then + die "DaemonizeTests failed with ${EPYTHON}" + fi + if ! "${TEST_DIR}"/trial twisted.test.test_reflect.SafeStrTests; then + die "SafeStrTests failed with ${EPYTHON}" + fi + + popd > /dev/null || die +} + +python_install() { + distutils-r1_python_install + + cd "${D%/}$(python_get_sitedir)" || die + + # own the dropin.cache so we don't leave orphans + touch twisted/plugins/dropin.cache || die + + python_doscript "${WORKDIR}"/twisted-regen-cache +} + +python_install_all() { + distutils-r1_python_install_all + + newconfd "${FILESDIR}/twistd.conf" twistd + newinitd "${FILESDIR}/twistd.init" twistd +} + +python_postinst() { + twisted-regen-cache || die +} + +pkg_postinst() { + python_foreach_impl python_postinst + + einfo "Install complete" + if use test ; then + einfo "" + einfo "Some tests have been disabled during testing due to" + einfo "known incompatibilities with the emerge sandboxes and/or" + einfo "not runnable as the root user." + einfo "For a complete test suite run on the code." + einfo "Run the tests as a normal user for each python it is installed to." + einfo " ie: $ python3.6 /usr/bin/trial twisted" + einfo "There are a few known python-2.7 errors due to some unicode issues" + einfo "which are different in Gentoo installed python-2.7" + fi +} + +python_postrm() { + rm -f "${ROOT%/}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die +} + +pkg_postrm(){ + # if we're removing the last version, remove the cache file + if [[ ! ${REPLACING_VERSIONS} ]]; then + python_foreach_impl python_postrm + fi +} diff --git a/dev-python/twisted/twisted-17.1.0-r2.ebuild b/dev-python/twisted/twisted-17.1.0-r2.ebuild new file mode 100644 index 000000000000..a3283137b4cd --- /dev/null +++ b/dev-python/twisted/twisted-17.1.0-r2.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +PYTHON_COMPAT=( python2_7 python3_{4,5,6}) +PYTHON_REQ_USE="threads(+)" + +inherit eutils flag-o-matic distutils-r1 versionator + +TWISTED_PN="Twisted" +TWISTED_P="${TWISTED_PN}-${PV}" +TWISTED_RELEASE=$(get_version_component_range 1-2 "${PV}") + +DESCRIPTION="An asynchronous networking framework written in Python" +HOMEPAGE="https://www.twistedmatrix.com/trac/" +SRC_URI="https://twistedmatrix.com/Releases/${TWISTED_PN}" +SRC_URI="${SRC_URI}/${TWISTED_RELEASE}/${TWISTED_P}.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz" + +# Dropped keywords due to new deps not keyworded +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc64 ~x86" + +LICENSE="MIT" +SLOT="0" +IUSE="conch crypt http2 serial +soap test" + +RDEPEND=" + >=dev-python/incremental-16.10.1[${PYTHON_USEDEP}] + >=dev-python/zope-interface-4.0.2[${PYTHON_USEDEP}] + conch? ( + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/cryptography-0.9.1[${PYTHON_USEDEP}] + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + ) + crypt? ( + >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}] + dev-python/service_identity[${PYTHON_USEDEP}] + >=dev-python/idna-0.6[${PYTHON_USEDEP}] + ) + serial? ( dev-python/pyserial[${PYTHON_USEDEP}] ) + soap? ( $(python_gen_cond_dep 'dev-python/soappy[${PYTHON_USEDEP}]' python2_7) ) + http2? ( + >=dev-python/hyper-h2-2.5.0[${PYTHON_USEDEP}] + <dev-python/hyper-h2-3.0.0[${PYTHON_USEDEP}] + >=dev-python/priority-1.1.0[${PYTHON_USEDEP}] + <dev-python/priority-2.0[${PYTHON_USEDEP}] + ) + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + >=dev-python/automat-0.3.0[${PYTHON_USEDEP}] + !dev-python/twisted-core + !dev-python/twisted-conch + !dev-python/twisted-lore + !dev-python/twisted-mail + !dev-python/twisted-names + !dev-python/twisted-news + !dev-python/twisted-pair + !dev-python/twisted-runner + !dev-python/twisted-words + !dev-python/twisted-web +" +DEPEND=" + >=dev-python/incremental-16.10.1[${PYTHON_USEDEP}] + test? ( + dev-python/gmpy[${PYTHON_USEDEP}] + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/cryptography-0.9.1[${PYTHON_USEDEP}] + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}] + dev-python/service_identity[${PYTHON_USEDEP}] + dev-python/idna[${PYTHON_USEDEP}] + dev-python/pyserial[${PYTHON_USEDEP}] + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable. + "${FILESDIR}/${PN}-16.5.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch" + "${FILESDIR}/test_main.patch" + "${FILESDIR}/utf8_overrides.patch" + "${FILESDIR}/${PN}-16.6.0-test-fixes.patch" +) + +S=${WORKDIR}/${TWISTED_P} + +python_prepare_all() { + # disable tests that don't work in our sandbox + # and other test failures due to our conditions + if use test ; then + # Remove since this is an upstream distribution test for making releases + rm src/twisted/python/test/test_release.py || die "rm src/twisted/python/test/test_release.py FAILED" + fi + distutils-r1_python_prepare_all +} + +python_compile() { + if ! python_is_python3; then + # Needed to make the sendmsg extension work + # (see https://twistedmatrix.com/trac/ticket/5701 ) + local -x CFLAGS="${CFLAGS} -fno-strict-aliasing" + local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing" + fi + + distutils-r1_python_compile +} + +python_test() { + distutils_install_for_testing + + export EMERGE_TEST_OVERRIDE=1 + export UTF8_OVERRIDES=1 + # workaround for the eclass not installing the entry points + # in the test environment. copy the old 16.3.2 start script + # to run the tests with + cp "${FILESDIR}"/trial "${TEST_DIR}" + + pushd "${TEST_DIR}" > /dev/null || die + + if ! "${TEST_DIR}"/trial twisted; then + die "Tests failed with ${EPYTHON}" + fi + # due to an anomoly in the tests, python doesn't return the correct form + # of the escape sequence. So run those test separately with a clean python interpreter + export UTF8_OVERRIDES=0 + if ! "${TEST_DIR}"/trial twisted.test.test_twistd.DaemonizeTests; then + die "DaemonizeTests failed with ${EPYTHON}" + fi + if ! "${TEST_DIR}"/trial twisted.test.test_reflect.SafeStrTests; then + die "SafeStrTests failed with ${EPYTHON}" + fi + + popd > /dev/null || die +} + +python_install() { + distutils-r1_python_install + + cd "${D%/}$(python_get_sitedir)" || die + + # own the dropin.cache so we don't leave orphans + touch twisted/plugins/dropin.cache || die + + python_doscript "${WORKDIR}"/twisted-regen-cache +} + +python_install_all() { + distutils-r1_python_install_all + + newconfd "${FILESDIR}/twistd.conf" twistd + newinitd "${FILESDIR}/twistd.init" twistd +} + +python_postinst() { + twisted-regen-cache || die +} + +pkg_postinst() { + python_foreach_impl python_postinst + + einfo "Install complete" + if use test ; then + einfo "" + einfo "Some tests have been disabled during testing due to" + einfo "known incompatibilities with the emerge sandboxes and/or" + einfo "not runnable as the root user." + einfo "For a complete test suite run on the code." + einfo "Run the tests as a normal user for each python it is installed to." + einfo " ie: $ python3.6 /usr/bin/trial twisted" + einfo "There are a few known python-2.7 errors due to some unicode issues" + einfo "which are different in Gentoo installed python-2.7" + fi +} + +python_postrm() { + rm -f "${ROOT%/}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die +} + +pkg_postrm(){ + # if we're removing the last version, remove the cache file + if [[ ! ${REPLACING_VERSIONS} ]]; then + python_foreach_impl python_postrm + fi +} diff --git a/dev-python/twisted/twisted-17.9.0.ebuild b/dev-python/twisted/twisted-17.9.0.ebuild new file mode 100644 index 000000000000..a57cbdc68996 --- /dev/null +++ b/dev-python/twisted/twisted-17.9.0.ebuild @@ -0,0 +1,189 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +PYTHON_COMPAT=( python2_7 python3_{4,5,6}) +PYTHON_REQ_USE="threads(+)" + +inherit eutils flag-o-matic distutils-r1 versionator + +TWISTED_PN="Twisted" +TWISTED_P="${TWISTED_PN}-${PV}" +TWISTED_RELEASE=$(get_version_component_range 1-2 "${PV}") + +DESCRIPTION="An asynchronous networking framework written in Python" +HOMEPAGE="https://www.twistedmatrix.com/trac/" +SRC_URI="https://twistedmatrix.com/Releases/${TWISTED_PN}" +SRC_URI="${SRC_URI}/${TWISTED_RELEASE}/${TWISTED_P}.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz" + +# Dropped keywords due to new deps not keyworded +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-fbsd" + +LICENSE="MIT" +SLOT="0" +IUSE="conch crypt http2 serial +soap test" + +# openssh-7.6_p1 test failures: bug https://twistedmatrix.com/trac/ticket/9311 +RDEPEND=" + >=dev-python/incremental-16.10.1[${PYTHON_USEDEP}] + >=dev-python/zope-interface-4.0.2[${PYTHON_USEDEP}] + conch? ( + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/cryptography-1.5.0[${PYTHON_USEDEP}] + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + ) + crypt? ( + >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}] + dev-python/service_identity[${PYTHON_USEDEP}] + >=dev-python/idna-0.6[${PYTHON_USEDEP}] + ) + serial? ( >=dev-python/pyserial-3.0[${PYTHON_USEDEP}] ) + soap? ( $(python_gen_cond_dep 'dev-python/soappy[${PYTHON_USEDEP}]' python2_7) ) + http2? ( + >=dev-python/hyper-h2-3.0.0[${PYTHON_USEDEP}] + <dev-python/hyper-h2-4.0.0[${PYTHON_USEDEP}] + >=dev-python/priority-1.1.0[${PYTHON_USEDEP}] + <dev-python/priority-2.0[${PYTHON_USEDEP}] + ) + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + >=dev-python/automat-0.3.0[${PYTHON_USEDEP}] + >=dev-python/hyperlink-17.1.1[${PYTHON_USEDEP}] + !dev-python/twisted-core + !dev-python/twisted-conch + !dev-python/twisted-lore + !dev-python/twisted-mail + !dev-python/twisted-names + !dev-python/twisted-news + !dev-python/twisted-pair + !dev-python/twisted-runner + !dev-python/twisted-words + !dev-python/twisted-web +" +DEPEND=" + >=dev-python/incremental-16.10.1[${PYTHON_USEDEP}] + test? ( + dev-python/gmpy[${PYTHON_USEDEP}] + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/cryptography-0.9.1[${PYTHON_USEDEP}] + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}] + dev-python/service_identity[${PYTHON_USEDEP}] + dev-python/idna[${PYTHON_USEDEP}] + dev-python/pyserial[${PYTHON_USEDEP}] + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + <net-misc/openssh-7.6 + ) +" + +PATCHES=( + # ${PN}-17.9.0-Fix-test-on-Python-363.patch" <== version specific from upstream + # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable. + "${FILESDIR}/${PN}-16.5.0-respect_TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE.patch" + "${FILESDIR}/test_main.patch" + "${FILESDIR}/utf8_overrides.patch" + "${FILESDIR}/${PN}-16.6.0-test-fixes.patch" + "${FILESDIR}/${PN}-17.9.0-python-27-utf-8-fix.patch" + "${FILESDIR}/${PN}-17.9.0-Fix-test-on-Python-363.patch" +) + +S=${WORKDIR}/${TWISTED_P} + +python_prepare_all() { + # disable tests that don't work in our sandbox + # and other test failures due to our conditions + if use test ; then + # Remove since this is an upstream distribution test for making releases + rm src/twisted/python/test/test_release.py || die "rm src/twisted/python/test/test_release.py FAILED" + fi + distutils-r1_python_prepare_all +} + +python_compile() { + if ! python_is_python3; then + # Needed to make the sendmsg extension work + # (see https://twistedmatrix.com/trac/ticket/5701 ) + local -x CFLAGS="${CFLAGS} -fno-strict-aliasing" + local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing" + fi + + distutils-r1_python_compile +} + +python_test() { + distutils_install_for_testing + + export EMERGE_TEST_OVERRIDE=1 + export UTF8_OVERRIDES=1 + unset TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE + # workaround for the eclass not installing the entry points + # in the test environment. copy the old 16.3.2 start script + # to run the tests with + cp "${FILESDIR}"/trial "${TEST_DIR}" + + pushd "${TEST_DIR}" > /dev/null || die + + if ! "${TEST_DIR}"/trial twisted; then + die "Tests failed with ${EPYTHON}" + fi + # due to an anomoly in the tests, python doesn't return the correct form + # of the escape sequence. So run those test separately with a clean python interpreter + export UTF8_OVERRIDES=0 + if ! "${TEST_DIR}"/trial twisted.test.test_twistd.DaemonizeTests; then + die "DaemonizeTests failed with ${EPYTHON}" + fi + if ! "${TEST_DIR}"/trial twisted.test.test_reflect.SafeStrTests; then + die "SafeStrTests failed with ${EPYTHON}" + fi + + popd > /dev/null || die +} + +python_install() { + distutils-r1_python_install + + cd "${D%/}$(python_get_sitedir)" || die + + # own the dropin.cache so we don't leave orphans + touch twisted/plugins/dropin.cache || die + + python_doscript "${WORKDIR}"/twisted-regen-cache +} + +python_install_all() { + distutils-r1_python_install_all + + newconfd "${FILESDIR}/twistd.conf" twistd + newinitd "${FILESDIR}/twistd.init" twistd +} + +python_postinst() { + twisted-regen-cache || die +} + +pkg_postinst() { + python_foreach_impl python_postinst + + einfo "Install complete" + if use test ; then + einfo "" + einfo "Some tests have been disabled during testing due to" + einfo "known incompatibilities with the emerge sandboxes and/or" + einfo "not runnable as the root user." + einfo "For a complete test suite run on the code." + einfo "Run the tests as a normal user for each python it is installed to." + einfo " ie: $ python3.6 /usr/bin/trial twisted" + fi +} + +python_postrm() { + rm -f "${ROOT%/}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die +} + +pkg_postrm(){ + # if we're removing the last version, remove the cache file + if [[ ! ${REPLACING_VERSIONS} ]]; then + python_foreach_impl python_postrm + fi +} diff --git a/dev-python/twisted/twisted-18.4.0.ebuild b/dev-python/twisted/twisted-18.4.0.ebuild new file mode 100644 index 000000000000..cc0e79d778b7 --- /dev/null +++ b/dev-python/twisted/twisted-18.4.0.ebuild @@ -0,0 +1,188 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python2_7 python3_{4,5,6}) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 + +TWISTED_PN="Twisted" +TWISTED_P="${TWISTED_PN}-${PV}" +TWISTED_RELEASE=$(ver_cut 1-2) + +DESCRIPTION="An asynchronous networking framework written in Python" +HOMEPAGE="https://www.twistedmatrix.com/trac/" +SRC_URI="https://twistedmatrix.com/Releases/${TWISTED_PN}" +SRC_URI="${SRC_URI}/${TWISTED_RELEASE}/${TWISTED_P}.tar.bz2 + https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz" + +# Dropped keywords due to new deps not keyworded +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~x86 ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-fbsd" + +LICENSE="MIT" +SLOT="0" +IUSE="conch crypt http2 serial +soap test" + +# openssh-7.6_p1 test failures: bug https://twistedmatrix.com/trac/ticket/9311 +RDEPEND=" + >=dev-python/incremental-16.10.1[${PYTHON_USEDEP}] + >=dev-python/zope-interface-4.4.2[${PYTHON_USEDEP}] + conch? ( + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/cryptography-1.5.0[${PYTHON_USEDEP}] + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + ) + crypt? ( + >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}] + dev-python/service_identity[${PYTHON_USEDEP}] + >=dev-python/idna-0.6[${PYTHON_USEDEP}] + ) + serial? ( >=dev-python/pyserial-3.0[${PYTHON_USEDEP}] ) + soap? ( $(python_gen_cond_dep 'dev-python/soappy[${PYTHON_USEDEP}]' python2_7) ) + http2? ( + >=dev-python/hyper-h2-3.0.0[${PYTHON_USEDEP}] + <dev-python/hyper-h2-4.0.0[${PYTHON_USEDEP}] + >=dev-python/priority-1.1.0[${PYTHON_USEDEP}] + <dev-python/priority-2.0[${PYTHON_USEDEP}] + ) + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + >=dev-python/automat-0.3.0[${PYTHON_USEDEP}] + >=dev-python/hyperlink-17.1.1[${PYTHON_USEDEP}] + !dev-python/twisted-core + !dev-python/twisted-conch + !dev-python/twisted-lore + !dev-python/twisted-mail + !dev-python/twisted-names + !dev-python/twisted-news + !dev-python/twisted-pair + !dev-python/twisted-runner + !dev-python/twisted-words + !dev-python/twisted-web +" +DEPEND=" + >=dev-python/incremental-16.10.1[${PYTHON_USEDEP}] + test? ( + dev-python/gmpy[${PYTHON_USEDEP}] + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/cryptography-0.9.1[${PYTHON_USEDEP}] + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}] + dev-python/service_identity[${PYTHON_USEDEP}] + dev-python/idna[${PYTHON_USEDEP}] + dev-python/pyserial[${PYTHON_USEDEP}] + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + <net-misc/openssh-7.6 + ) +" + +PATCHES=( + # ${PN}-17.9.0-Fix-test-on-Python-363.patch" <== version specific from upstream + # Respect TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE variable. + "${FILESDIR}/${PN}-18.4.0-Disable-writing-of-plugin-cache.patch" + "${FILESDIR}/test_main.patch" + "${FILESDIR}/utf8_overrides.patch" + "${FILESDIR}/${PN}-16.6.0-test-fixes.patch" + "${FILESDIR}/${PN}-17.9.0-python-27-utf-8-fix.patch" +) + +S=${WORKDIR}/${TWISTED_P} + +python_prepare_all() { + # disable tests that don't work in our sandbox + # and other test failures due to our conditions + if use test ; then + # Remove since this is an upstream distribution test for making releases + rm src/twisted/python/test/test_release.py || die "rm src/twisted/python/test/test_release.py FAILED" + fi + distutils-r1_python_prepare_all +} + +python_compile() { + if ! python_is_python3; then + # Needed to make the sendmsg extension work + # (see https://twistedmatrix.com/trac/ticket/5701 ) + local -x CFLAGS="${CFLAGS} -fno-strict-aliasing" + local -x CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing" + fi + + distutils-r1_python_compile +} + +python_test() { + distutils_install_for_testing + + export EMERGE_TEST_OVERRIDE=1 + export UTF8_OVERRIDES=1 + unset TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE + # workaround for the eclass not installing the entry points + # in the test environment. copy the old 16.3.2 start script + # to run the tests with + cp "${FILESDIR}"/trial "${TEST_DIR}" + + pushd "${TEST_DIR}" > /dev/null || die + + if ! "${TEST_DIR}"/trial twisted; then + die "Tests failed with ${EPYTHON}" + fi + # due to an anomoly in the tests, python doesn't return the correct form + # of the escape sequence. So run those test separately with a clean python interpreter + export UTF8_OVERRIDES=0 + if ! "${TEST_DIR}"/trial twisted.test.test_twistd.DaemonizeTests; then + die "DaemonizeTests failed with ${EPYTHON}" + fi + if ! "${TEST_DIR}"/trial twisted.test.test_reflect.SafeStrTests; then + die "SafeStrTests failed with ${EPYTHON}" + fi + + popd > /dev/null || die +} + +python_install() { + distutils-r1_python_install + + cd "${D%/}$(python_get_sitedir)" || die + + # own the dropin.cache so we don't leave orphans + touch twisted/plugins/dropin.cache || die + + python_doscript "${WORKDIR}"/twisted-regen-cache +} + +python_install_all() { + distutils-r1_python_install_all + + newconfd "${FILESDIR}/twistd.conf" twistd + newinitd "${FILESDIR}/twistd.init" twistd +} + +python_postinst() { + twisted-regen-cache || die +} + +pkg_postinst() { + python_foreach_impl python_postinst + + einfo "Install complete" + if use test ; then + einfo "" + einfo "Some tests have been disabled during testing due to" + einfo "known incompatibilities with the emerge sandboxes and/or" + einfo "not runnable as the root user." + einfo "For a complete test suite run on the code." + einfo "Run the tests as a normal user for each python it is installed to." + einfo " ie: $ python3.6 /usr/bin/trial twisted" + fi +} + +python_postrm() { + rm -f "${ROOT%/}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die +} + +pkg_postrm(){ + # if we're removing the last version, remove the cache file + if [[ ! ${REPLACING_VERSIONS} ]]; then + python_foreach_impl python_postrm + fi +} |