dev-python/autobahn: Update ebuilds for twisted plugin cashe updates

With TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE now set in make.defaults to
prevent access violations.  All pkgs installing plugins need to run
/usr/bin/twisted-regen-cache in pkg_postinst() for twisted releases.
For older split twisted installs, the cache has to be done using a copy
of the twisted-r1 eclasses cahche update functions.

Package-Manager: Portage-2.3.6_p2, Repoman-2.3.2_p70
This commit is contained in:
Brian Dolbec
2017-06-16 12:38:36 -07:00
parent 9ae55c53f4
commit 676133f56c
7 changed files with 322 additions and 172 deletions

View File

@@ -1,4 +1,3 @@
DIST autobahn-0.12.1.tar.gz 163311 SHA256 664223879e159c88221f42d8d1ac6b8c4268d8b9316d8ab69a02761c5744cd79 SHA512 2d944ce6849017f75542b5f33cd2c4a7321c5a70ce01b24480fb17aa34c3a7dec826073261af1133e1611233dbe958e5c7d2a10b1586f6b7e5b32ce4f4e7db06 WHIRLPOOL 2d1d78ae0f468e80a7ffe44dc8f1891082adb97319d3cedad575f74ebafa3318a1b0ed1f9cd4187dc097d9a8c2cf2b0ca761c39511a6bbd490e8d30bcbb7d933
DIST autobahn-0.16.0.tar.gz 185053 SHA256 a1dcb4315a0914da56ec484659816de72dfad229be4ac19fa61bbc0111ada884 SHA512 8873202a33c7b68577e89cc91503b8002aa19638836ff39ef99022e3b0ddcfb613154ddf0c373bf315eeb8b6c36f31afc20eb0164c47caa087b2a1b28449d3a8 WHIRLPOOL b5f5f80c1d88b3b031fab0837f0d191d4d71e21798aeec6ae1ee718bad0e21cb403a1b2ecb199615b4c8351522be8d4882781fd02de95e422203cee14f1c01ef
DIST autobahn-0.9.4-2.zip 175894 SHA256 5bb64191cfdd1cbdd90d8e359b389ef62c0acdffd2f68d16ec01fa0a287262f0 SHA512 7e0d4246b8b1c552b25c2ae36f1923ed9931e3d3ca684039a422773fecd92ca04734a0b24394a9bbc787f245c72b5552522351a7c1c8e500128e7c46c740a3d5 WHIRLPOOL aa0f06b82acbebb97ca2e3c424429ada7169dca5b39237ce082a17440ec9701a307e9fc7f162f957023cfc4c067f8e8b82b9923cb056ffcab7b3e64a61a4aae8
DIST autobahn-17.5.1.tar.gz 205144 SHA256 2a32fa76a11f8aa8de482e99ad2b7a8acc8f6c0d430c48aebd4666f080e85d5c SHA512 904f8f4c527a6c1c7840ea8634d0c0a47141458500c6d29f4aa1f05ff51f91c65a451b7c447201cbdf5e255c4c2d07509efa106790217b09398e7d50c1d85382 WHIRLPOOL 28b9608110ecfd058b9bfc3a3c587e7d33c7538f62b4ada1969efc2d434dcbcd9b1d3b1711448a09b425016c2622d2135ce789ae1edeaf7f0a1dc96fcdfb7acd

View File

@@ -1,46 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python2_7 python3_4 )
RESTRICT="test"
inherit distutils-r1 versionator
MY_P="${PN}-$(replace_version_separator 3 -)"
DESCRIPTION="WebSocket and WAMP for Twisted and Asyncio"
HOMEPAGE="https://pypi.python.org/pypi/autobahn http://autobahn.ws/python/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
SLOT="0"
LICENSE="MIT"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="test"
RDEPEND="
virtual/python-futures[${PYTHON_USEDEP}]
>=dev-python/lz4-0.2.1[${PYTHON_USEDEP}]
>=dev-python/msgpack-0.4.0[${PYTHON_USEDEP}]
>=dev-python/six-1.6.1[${PYTHON_USEDEP}]
>=dev-python/snappy-0.5[${PYTHON_USEDEP}]
>=dev-python/trollius-0.1.2[${PYTHON_USEDEP}]
>=dev-python/twisted-core-11.1[$(python_gen_usedep 'python2*')]
>=dev-python/txaio-2.2.0[${PYTHON_USEDEP}]
>=dev-python/ujson-1.33[${PYTHON_USEDEP}]
>=dev-python/wsaccel-0.6.2[${PYTHON_USEDEP}]
>=dev-python/zope-interface-3.6[${PYTHON_USEDEP}]
"
DEPEND="${RDEPEND}
test? (
dev-python/mock[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
)"
S="${WORKDIR}"/${MY_P}
python_test() {
esetup.py test
}

View File

@@ -0,0 +1,127 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python2_7 python3_4 )
inherit distutils-r1 versionator
MY_P="${PN}-$(replace_version_separator 3 -)"
DESCRIPTION="WebSocket and WAMP for Twisted and Asyncio"
HOMEPAGE="https://pypi.python.org/pypi/autobahn http://autobahn.ws/python/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
SLOT="0"
LICENSE="MIT"
KEYWORDS="~amd64"
IUSE="crypt test"
RDEPEND="
$(python_gen_cond_dep '>=dev-python/trollius-2.0[${PYTHON_USEDEP}]' 'python2_7')
$(python_gen_cond_dep '>=dev-python/futures-3.0.4[${PYTHON_USEDEP}]' 'python2_7')
$(python_gen_cond_dep '>=dev-python/asyncio-3.4.3[${PYTHON_USEDEP}]' 'python3_3')
>=dev-python/cbor-1.0.0[${PYTHON_USEDEP}]
>=dev-python/lz4-0.7.0[${PYTHON_USEDEP}]
crypt? (
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pytrie-0.2[${PYTHON_USEDEP}]
>=dev-python/pyqrcode-1.1.0[${PYTHON_USEDEP}]
)
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
>=dev-python/snappy-0.5[${PYTHON_USEDEP}]
|| (
>=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
>=dev-python/twisted-core-12.1[$(python_gen_usedep 'python2*')]
)
>=dev-python/txaio-2.5.1[${PYTHON_USEDEP}]
>=dev-python/u-msgpack-2.1[${PYTHON_USEDEP}]
>=dev-python/py-ubjson-0.8.4[${PYTHON_USEDEP}]
>=dev-python/wsaccel-0.6.2[${PYTHON_USEDEP}]
>=dev-python/zope-interface-3.6[${PYTHON_USEDEP}]
"
DEPEND="${RDEPEND}
test? (
dev-python/mock[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pytrie-0.2[${PYTHON_USEDEP}]
>=dev-python/pyqrcode-1.1.0[${PYTHON_USEDEP}]
)"
S="${WORKDIR}"/${MY_P}
python_test() {
esetup.py test
}
# TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE is now
# set in make.defaults. so update the plugin cache
# copy of the twisted-r1 eclass cache update functions
# for the older split twisted releases
# @ECLASS-VARIABLE: TWISTED_PLUGINS
# @DESCRIPTION:
# An array of Twisted plugins, whose cache is regenerated
# in pkg_postinst() and pkg_postrm() phases.
#
# If no plugins are installed, set to empty array.
declare -p TWISTED_PLUGINS &>/dev/null || TWISTED_PLUGINS=( twisted.plugins )
# @FUNCTION: _twisted-r1_create_caches
# @USAGE: <packages>...
# @DESCRIPTION:
# Create dropin.cache for plugins in specified packages. The packages
# are to be listed in standard dotted Python syntax.
_twisted-r1_create_caches() {
# http://twistedmatrix.com/documents/current/core/howto/plugin.html
"${PYTHON}" -c \
"import sys
sys.path.insert(0, '${ROOT}$(python_get_sitedir)')
fail = False
try:
from twisted.plugin import getPlugins, IPlugin
except ImportError as e:
if '${EBUILD_PHASE}' == 'postinst':
raise
else:
for module in sys.argv[1:]:
try:
__import__(module, globals())
except ImportError as e:
if '${EBUILD_PHASE}' == 'postinst':
raise
else:
list(getPlugins(IPlugin, sys.modules[module]))
" \
"${@}" || die "twisted plugin cache update failed"
}
# @FUNCTION: twisted-r1_update_plugin_cache
# @DESCRIPTION:
# Update and clean up plugin caches for packages listed
# in TWISTED_PLUGINS.
twisted-r1_update_plugin_cache() {
[[ ${TWISTED_PLUGINS[@]} ]] || return
local subdirs=( "${TWISTED_PLUGINS[@]//.//}" )
local paths=( "${subdirs[@]/#/${ROOT}$(python_get_sitedir)/}" )
local caches=( "${paths[@]/%//dropin.cache}" )
# First, delete existing (possibly stray) caches.
rm -f "${caches[@]}" || die
# Now, let's see which ones we can regenerate.
_twisted-r1_create_caches "${TWISTED_PLUGINS[@]}"
# Finally, drop empty parent directories.
rmdir -p "${paths[@]}" 2>/dev/null
}
pkg_postinst() {
_distutils-r1_run_foreach_impl twisted-r1_update_plugin_cache
}

View File

@@ -1,62 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python2_7 python3_4 )
inherit distutils-r1 versionator
MY_P="${PN}-$(replace_version_separator 3 -)"
DESCRIPTION="WebSocket and WAMP for Twisted and Asyncio"
HOMEPAGE="https://pypi.python.org/pypi/autobahn http://autobahn.ws/python/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
SLOT="0"
LICENSE="MIT"
KEYWORDS="~amd64"
IUSE="crypt test"
RDEPEND="
$(python_gen_cond_dep '>=dev-python/trollius-2.0[${PYTHON_USEDEP}]' 'python2_7')
$(python_gen_cond_dep '>=dev-python/futures-3.0.4[${PYTHON_USEDEP}]' 'python2_7')
$(python_gen_cond_dep '>=dev-python/asyncio-3.4.3[${PYTHON_USEDEP}]' 'python3_3')
>=dev-python/cbor-1.0.0[${PYTHON_USEDEP}]
>=dev-python/lz4-0.7.0[${PYTHON_USEDEP}]
crypt? (
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pytrie-0.2[${PYTHON_USEDEP}]
>=dev-python/pyqrcode-1.1.0[${PYTHON_USEDEP}]
)
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
>=dev-python/snappy-0.5[${PYTHON_USEDEP}]
|| (
>=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
>=dev-python/twisted-core-12.1[$(python_gen_usedep 'python2*')]
)
>=dev-python/txaio-2.5.1[${PYTHON_USEDEP}]
>=dev-python/u-msgpack-2.1[${PYTHON_USEDEP}]
>=dev-python/py-ubjson-0.8.4[${PYTHON_USEDEP}]
>=dev-python/wsaccel-0.6.2[${PYTHON_USEDEP}]
>=dev-python/zope-interface-3.6[${PYTHON_USEDEP}]
"
DEPEND="${RDEPEND}
test? (
dev-python/mock[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pytrie-0.2[${PYTHON_USEDEP}]
>=dev-python/pyqrcode-1.1.0[${PYTHON_USEDEP}]
)"
S="${WORKDIR}"/${MY_P}
python_test() {
esetup.py test
}
python_compile() {
addpredict "$(python_get_sitedir)"
distutils-r1_python_compile
}

View File

@@ -1,4 +1,4 @@
# Copyright 1999-2015 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -30,3 +30,73 @@ RDEPEND="
DEPEND="${RDEPEND}"
S="${WORKDIR}"/${MY_P}
# TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE is now
# set in make.defaults. so update the plugin cache
# copy of the twisted-r1 eclass cache update functions
# for the older split twisted releases
# @ECLASS-VARIABLE: TWISTED_PLUGINS
# @DESCRIPTION:
# An array of Twisted plugins, whose cache is regenerated
# in pkg_postinst() and pkg_postrm() phases.
#
# If no plugins are installed, set to empty array.
declare -p TWISTED_PLUGINS &>/dev/null || TWISTED_PLUGINS=( twisted.plugins )
# @FUNCTION: _twisted-r1_create_caches
# @USAGE: <packages>...
# @DESCRIPTION:
# Create dropin.cache for plugins in specified packages. The packages
# are to be listed in standard dotted Python syntax.
_twisted-r1_create_caches() {
# http://twistedmatrix.com/documents/current/core/howto/plugin.html
"${PYTHON}" -c \
"import sys
sys.path.insert(0, '${ROOT}$(python_get_sitedir)')
fail = False
try:
from twisted.plugin import getPlugins, IPlugin
except ImportError as e:
if '${EBUILD_PHASE}' == 'postinst':
raise
else:
for module in sys.argv[1:]:
try:
__import__(module, globals())
except ImportError as e:
if '${EBUILD_PHASE}' == 'postinst':
raise
else:
list(getPlugins(IPlugin, sys.modules[module]))
" \
"${@}" || die "twisted plugin cache update failed"
}
# @FUNCTION: twisted-r1_update_plugin_cache
# @DESCRIPTION:
# Update and clean up plugin caches for packages listed
# in TWISTED_PLUGINS.
twisted-r1_update_plugin_cache() {
[[ ${TWISTED_PLUGINS[@]} ]] || return
local subdirs=( "${TWISTED_PLUGINS[@]//.//}" )
local paths=( "${subdirs[@]/#/${ROOT}$(python_get_sitedir)/}" )
local caches=( "${paths[@]/%//dropin.cache}" )
# First, delete existing (possibly stray) caches.
rm -f "${caches[@]}" || die
# Now, let's see which ones we can regenerate.
_twisted-r1_create_caches "${TWISTED_PLUGINS[@]}"
# Finally, drop empty parent directories.
rmdir -p "${paths[@]}" 2>/dev/null
}
pkg_postinst() {
_distutils-r1_run_foreach_impl twisted-r1_update_plugin_cache
}

View File

@@ -0,0 +1,124 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
inherit distutils-r1 versionator
MY_P="${PN}-$(replace_version_separator 3 -)"
DESCRIPTION="WebSocket and WAMP for Twisted and Asyncio"
HOMEPAGE="https://pypi.python.org/pypi/autobahn http://autobahn.ws/python/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
SLOT="0"
LICENSE="MIT"
KEYWORDS="~amd64"
IUSE="crypt test"
RDEPEND="
$(python_gen_cond_dep '>=dev-python/trollius-2.0[${PYTHON_USEDEP}]' 'python2_7')
$(python_gen_cond_dep '>=dev-python/futures-3.0.4[${PYTHON_USEDEP}]' 'python2_7')
>=dev-python/cbor-1.0.0[${PYTHON_USEDEP}]
>=dev-python/lz4-0.7.0[${PYTHON_USEDEP}]
crypt? (
>=dev-python/pyopenssl-16.2.0[${PYTHON_USEDEP}]
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pytrie-0.2[${PYTHON_USEDEP}]
>=dev-python/pyqrcode-1.1.0[${PYTHON_USEDEP}]
>=dev-python/service_identity-16.0.0
)
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
>=dev-python/snappy-0.5[${PYTHON_USEDEP}]
>=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
>=dev-python/txaio-2.6.1[${PYTHON_USEDEP}]
>=dev-python/u-msgpack-2.1[${PYTHON_USEDEP}]
>=dev-python/py-ubjson-0.8.4[${PYTHON_USEDEP}]
>=dev-python/wsaccel-0.6.2[${PYTHON_USEDEP}]
>=dev-python/zope-interface-3.6[${PYTHON_USEDEP}]
"
DEPEND="${RDEPEND}
test? (
dev-python/mock[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pytrie-0.2[${PYTHON_USEDEP}]
>=dev-python/pyqrcode-1.1.0[${PYTHON_USEDEP}]
)"
S="${WORKDIR}"/${MY_P}
python_test() {
#esetup.py test
cd "${BUILD_DIR}"/lib || die
py.test -v || die
}
# temp copy from twisted-r1 eclass
# to be replaced by a twisted-r2 eclass
# @ECLASS-VARIABLE: TWISTED_PLUGINS
# @DESCRIPTION:
# An array of Twisted plugins, whose cache is regenerated
# in pkg_postinst() and pkg_postrm() phases.
#
# If no plugins are installed, set to empty array.
declare -p TWISTED_PLUGINS &>/dev/null || TWISTED_PLUGINS=( twisted.plugins )
# @FUNCTION: _twisted-r1_create_caches
# @USAGE: <packages>...
# @DESCRIPTION:
# Create dropin.cache for plugins in specified packages. The packages
# are to be listed in standard dotted Python syntax.
_twisted-r1_create_caches() {
# http://twistedmatrix.com/documents/current/core/howto/plugin.html
"${PYTHON}" -c \
"import sys
sys.path.insert(0, '${ROOT}$(python_get_sitedir)')
fail = False
try:
from twisted.plugin import getPlugins, IPlugin
except ImportError as e:
if '${EBUILD_PHASE}' == 'postinst':
raise
else:
for module in sys.argv[1:]:
try:
__import__(module, globals())
except ImportError as e:
if '${EBUILD_PHASE}' == 'postinst':
raise
else:
list(getPlugins(IPlugin, sys.modules[module]))
" \
"${@}" || die "twisted plugin cache update failed"
}
# @FUNCTION: twisted-r1_update_plugin_cache
# @DESCRIPTION:
# Update and clean up plugin caches for packages listed
# in TWISTED_PLUGINS.
twisted-r1_update_plugin_cache() {
[[ ${TWISTED_PLUGINS[@]} ]] || return
local subdirs=( "${TWISTED_PLUGINS[@]//.//}" )
local paths=( "${subdirs[@]/#/${ROOT}$(python_get_sitedir)/}" )
local caches=( "${paths[@]/%//dropin.cache}" )
# First, delete existing (possibly stray) caches.
rm -f "${caches[@]}" || die
# Now, let's see which ones we can regenerate.
_twisted-r1_create_caches "${TWISTED_PLUGINS[@]}"
# Finally, drop empty parent directories.
rmdir -p "${paths[@]}" 2>/dev/null
}
pkg_postinst() {
_distutils-r1_run_foreach_impl twisted-r1_update_plugin_cache
}

View File

@@ -1,62 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
inherit distutils-r1 versionator
MY_P="${PN}-$(replace_version_separator 3 -)"
DESCRIPTION="WebSocket and WAMP for Twisted and Asyncio"
HOMEPAGE="https://pypi.python.org/pypi/autobahn http://autobahn.ws/python/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
SLOT="0"
LICENSE="MIT"
KEYWORDS="~amd64"
IUSE="crypt test"
RDEPEND="
$(python_gen_cond_dep '>=dev-python/trollius-2.0[${PYTHON_USEDEP}]' 'python2_7')
$(python_gen_cond_dep '>=dev-python/futures-3.0.4[${PYTHON_USEDEP}]' 'python2_7')
>=dev-python/cbor-1.0.0[${PYTHON_USEDEP}]
>=dev-python/lz4-0.7.0[${PYTHON_USEDEP}]
crypt? (
>=dev-python/pyopenssl-16.2.0[${PYTHON_USEDEP}]
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pytrie-0.2[${PYTHON_USEDEP}]
>=dev-python/pyqrcode-1.1.0[${PYTHON_USEDEP}]
>=dev-python/service_identity-16.0.0
)
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
>=dev-python/snappy-0.5[${PYTHON_USEDEP}]
>=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
>=dev-python/txaio-2.6.1[${PYTHON_USEDEP}]
>=dev-python/u-msgpack-2.1[${PYTHON_USEDEP}]
>=dev-python/py-ubjson-0.8.4[${PYTHON_USEDEP}]
>=dev-python/wsaccel-0.6.2[${PYTHON_USEDEP}]
>=dev-python/zope-interface-3.6[${PYTHON_USEDEP}]
"
DEPEND="${RDEPEND}
test? (
dev-python/mock[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pytrie-0.2[${PYTHON_USEDEP}]
>=dev-python/pyqrcode-1.1.0[${PYTHON_USEDEP}]
)"
S="${WORKDIR}"/${MY_P}
python_test() {
#esetup.py test
cd "${BUILD_DIR}"/lib || die
py.test -v || die
}
python_compile() {
addpredict "$(python_get_sitedir)"
distutils-r1_python_compile
}