parent
3c12b29c65
commit
1ff702dcea
@ -0,0 +1 @@
|
||||
DIST python-dxf-6.0.0.tar.gz 18059 SHA256 9f3b60f87be1f47bf03f26f4fcfa8176dccdcfa7ea0533a0a6bb89b05f96a1bf SHA512 fb502aac73f7e4ff6c2ef8e11887ec71093c9387857da4eeca222fba23bd669d06e0f085660637ad9774decb310b56ed36c14e29014de3e15108d77417309d41 WHIRLPOOL 2ceb04804a358c2f09b7c1cff15b15c5b0d249639a3909eb0401c06e523ca0f655d740fa3929009c0cef23932e3ce65e1b52a05e59c2bb127c25947e1c528f5b
|
@ -0,0 +1,28 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Docker registry v2 client in Python"
|
||||
HOMEPAGE="https://github.com/davedoesdev/dxf"
|
||||
SRC_URI="mirror://pypi/p/python-${PN}/python-${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND=">=dev-python/jwcrypto-0.4.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/requests-2.9.0[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
>=dev-python/tqdm-4.10.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/www-authenticate-0.9.2[${PYTHON_USEDEP}]"
|
||||
|
||||
S=${WORKDIR}/python-${P}
|
||||
|
||||
RESTRICT="test"
|
||||
# Fixtures and Makefile missing on pypi
|
||||
# No tag in upstream repository
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>mrueg@gentoo.org</email>
|
||||
<name>Manuel Rüger</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="pypi">python-dxf</remote-id>
|
||||
<remote-id type="github">davedoesdev/dxf</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -1 +1,2 @@
|
||||
DIST go-mode-1.4.0.tar.gz 30705 SHA256 31365aa8b220ca67e6fb24fa197e99121a6db815690df731df2f56915805935d SHA512 00e3aa832b81d6039e38e12f1346ef838f0cd9ccbebac947d394d453690862025ce30fc253d52d485c3161a1c2307ef00272f014c8f3fa86304216525ae47bdd WHIRLPOOL e5fc9f010dd8a0346aacb9797f9d2061f02165cfce6329d1f627169dd70d288f4618f3fa12bc89403e9c00bbbb691d8390560c068af69e57391729d5c926f7cf
|
||||
DIST go-mode-1.5.0.tar.gz 36876 SHA256 d54a4afac1658082da1f26bab486c346262e5b185e6463cfe316a3e5e57ab6a9 SHA512 fee67461467feb272dbb90abbad3df786f984925747ad8588c271784f8d27db888dd1da9d4589fb63ccfded1a833b01bb860d3254b00ca5e3f3aa89f199880c3 WHIRLPOOL a5ebcd0bcb47403d4c809249f11796fbeb9d86401f8e140cb8b8882f8ae54c698ce6846a1ec0dd0471b8cde6f11688e6fc5bbaf7887ba7d6e5d4d39add5c8045
|
||||
|
@ -0,0 +1,18 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="An improved Go mode for emacs"
|
||||
HOMEPAGE="https://github.com/dominikh/go-mode.el"
|
||||
SRC_URI="https://github.com/dominikh/go-mode.el/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
S="${WORKDIR}/go-mode.el-${PV}"
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
DOCS="AUTHORS README.md"
|
@ -1 +1,2 @@
|
||||
DIST s-1.11.0.tar.gz 46771 SHA256 826d186458f7568f1304bca0c094034a9e7370bd2858dcf806dd513abe2d384f SHA512 364fa7ea875e9be6db464a826c1259889b67d87817b41cff40ab7da80e0bfc3e27dcadadfd005a64a895ee92644c2dea82789bdf1b1fe538501c40f748455608 WHIRLPOOL cccae8d9539dbc91da97e68dd88e13b08bd2ba1a414b62bb431c43dc1f4c8b1e4a8d37996a861d7817763bc08c4fee53dd9a4f8134ba0719f33b6e6f6a4b7496
|
||||
DIST s-1.12.0.tar.gz 59193 SHA256 70674d307aca5f75b44413888198c0f2db8f0fa7a183f70d4095dd6150397475 SHA512 036369011295dfde7567ae8bd479be9635de479e8821c3fe117a6c3827bc83492bb91e6ac64d4b20b061da95690f5585ed58f116a2b8c877dceee22153c8c990 WHIRLPOOL 679f27727754e08cae94456ac6cbab31e7e0e753e8428ea5d04a9cdac48b01a998e1aa59b4b2564f29e395ef34bcd289ceaf7e39f3345e4fde3120a208e2e0ec
|
||||
|
@ -0,0 +1,18 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="The long lost Emacs string manipulation library"
|
||||
HOMEPAGE="https://github.com/magnars/s.el"
|
||||
SRC_URI="https://github.com/magnars/s.el/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
S="${WORKDIR}/s.el-${PV}"
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
DOCS="README.md"
|
@ -0,0 +1,157 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
WX_GTK_VER="3.0"
|
||||
|
||||
inherit autotools elisp-common eutils java-pkg-opt-2 multilib systemd versionator wxwidgets
|
||||
|
||||
# NOTE: If you need symlinks for binaries please tell maintainers or
|
||||
# open up a bug to let it be created.
|
||||
|
||||
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
|
||||
HOMEPAGE="http://www.erlang.org/"
|
||||
SRC_URI="http://www.erlang.org/download/otp_src_${PV}.tar.gz
|
||||
http://erlang.org/download/otp_doc_man_${PV}.tar.gz
|
||||
doc? ( http://erlang.org/download/otp_doc_html_${PV}.tar.gz )"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
|
||||
|
||||
IUSE="compat-ethread dirty-schedulers doc emacs hipe java kpoll libressl odbc smp sctp ssl systemd tk wxwidgets"
|
||||
REQUIRED_USE="dirty-schedulers? ( smp )" #621610
|
||||
|
||||
RDEPEND="
|
||||
ssl? (
|
||||
!libressl? ( >=dev-libs/openssl-0.9.7d:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
)
|
||||
emacs? ( virtual/emacs )
|
||||
java? ( >=virtual/jdk-1.2:* )
|
||||
odbc? ( dev-db/unixODBC )
|
||||
systemd? ( sys-apps/systemd )"
|
||||
DEPEND="${RDEPEND}
|
||||
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] virtual/glu )
|
||||
sctp? ( net-misc/lksctp-tools )
|
||||
tk? ( dev-lang/tk )"
|
||||
|
||||
S="${WORKDIR}/otp_src_${PV}"
|
||||
|
||||
SITEFILE=50${PN}-gentoo.el
|
||||
|
||||
src_prepare() {
|
||||
epatch "${FILESDIR}"/18.2.1-wx3.0.patch
|
||||
|
||||
use odbc || sed -i 's: odbc : :' lib/Makefile
|
||||
|
||||
# bug 263129, don't ignore LDFLAGS, reported upstream
|
||||
sed -e 's:LDFLAGS = \$(DED_LDFLAGS):LDFLAGS += \$(DED_LDFLAGS):' -i "${S}"/lib/megaco/src/flex/Makefile.in
|
||||
|
||||
# don't ignore LDFLAGS, reported upstream
|
||||
sed -e 's:LDFLAGS = \$(ODBC_LIB) \$(EI_LDFLAGS):LDFLAGS += \$(ODBC_LIB) \$(EI_LDFLAGS):' -i "${S}"/lib/odbc/c_src/Makefile.in
|
||||
|
||||
if ! use wxwidgets; then
|
||||
sed -i 's: wx : :' lib/Makefile
|
||||
rm -rf lib/wx
|
||||
fi
|
||||
|
||||
# Nasty workaround, reported upstream
|
||||
cp "${S}"/lib/configure.in.src "${S}"/lib/configure.in
|
||||
|
||||
# bug 383697
|
||||
sed -i '1i#define OF(x) x' erts/emulator/drivers/common/gzio.c
|
||||
|
||||
cd erts && mv configure.in configure.ac && eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use wxwidgets && need-wxwidgets unicode
|
||||
use java || export JAVAC=false
|
||||
|
||||
econf \
|
||||
--enable-threads \
|
||||
$(use_enable sctp) \
|
||||
$(use_enable systemd) \
|
||||
$(use_enable hipe) \
|
||||
$(use_with ssl ssl "${EPREFIX}"/usr) \
|
||||
$(use_enable ssl dynamic-ssl-lib) \
|
||||
$(use_enable kpoll kernel-poll) \
|
||||
$(use_enable smp smp-support) \
|
||||
$(use compat-ethread && echo "--enable-ethread-pre-pentium4-compatibility") \
|
||||
$(use x64-macos && echo "--enable-darwin-64bit") \
|
||||
$(use_enable dirty-schedulers)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use java || export JAVAC=false
|
||||
emake
|
||||
|
||||
if use emacs ; then
|
||||
pushd lib/tools/emacs
|
||||
elisp-compile *.el
|
||||
popd
|
||||
fi
|
||||
}
|
||||
|
||||
extract_version() {
|
||||
sed -n -e "/^$2 = \(.*\)$/s::\1:p" "${S}/$1/vsn.mk"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local ERL_LIBDIR=/usr/$(get_libdir)/erlang
|
||||
local ERL_INTERFACE_VER=$(extract_version lib/erl_interface EI_VSN)
|
||||
local ERL_ERTS_VER=$(extract_version erts VSN)
|
||||
|
||||
emake INSTALL_PREFIX="${D}" install
|
||||
dodoc AUTHORS README.md
|
||||
|
||||
dosym "${ERL_LIBDIR}/bin/erl" /usr/bin/erl
|
||||
dosym "${ERL_LIBDIR}/bin/erlc" /usr/bin/erlc
|
||||
dosym "${ERL_LIBDIR}/bin/escript" /usr/bin/escript
|
||||
dosym \
|
||||
"${ERL_LIBDIR}/lib/erl_interface-${ERL_INTERFACE_VER}/bin/erl_call" \
|
||||
/usr/bin/erl_call
|
||||
dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam" /usr/bin/beam
|
||||
use smp && dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam.smp" /usr/bin/beam.smp
|
||||
|
||||
## Clean up the no longer needed files
|
||||
rm "${ED}/${ERL_LIBDIR}/Install"
|
||||
|
||||
for i in "${WORKDIR}"/man/man* ; do
|
||||
dodir "${ERL_LIBDIR}/${i##${WORKDIR}}"
|
||||
done
|
||||
for file in "${WORKDIR}"/man/man*/*.[1-9]; do
|
||||
# doman sucks so we can't use it
|
||||
cp ${file} "${ED}/${ERL_LIBDIR}"/man/man${file##*.}/
|
||||
done
|
||||
# extend MANPATH, so the normal man command can find it
|
||||
# see bug 189639
|
||||
dodir /etc/env.d/
|
||||
echo "MANPATH=\"${EPREFIX}${ERL_LIBDIR}/man\"" > "${ED}/etc/env.d/90erlang"
|
||||
|
||||
if use doc ; then
|
||||
dohtml -A README,erl,hrl,c,h,kwc,info -r \
|
||||
"${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-*
|
||||
fi
|
||||
|
||||
if use emacs ; then
|
||||
pushd "${S}"
|
||||
elisp-install erlang lib/tools/emacs/*.{el,elc}
|
||||
sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
|
||||
"${FILESDIR}"/${SITEFILE} > "${T}"/${SITEFILE}
|
||||
elisp-site-file-install "${T}"/${SITEFILE}
|
||||
popd
|
||||
fi
|
||||
|
||||
newinitd "${FILESDIR}"/epmd.init epmd
|
||||
systemd_dounit "${FILESDIR}"/epmd.service
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST pyotherside-1.5.1.tar.gz 181457 SHA256 cb29853d66d2e33f68e28c62c28d054512ab82a763fed8b7b7df9dae722c5de2 SHA512 6f916ce44615c98aa7dffaee073fcb6d7f117996c008c0e3c0e7a8aaedd03f9ba853cc66850112dfc9529d698bd2faeb498a87a0d47c3776ab52b90f83b7067a WHIRLPOOL ad6693efa3aa3a15924010144bb46632fd512fb1af360e56972ddfd28631ff381c06c505acd40b57becb5010c324f4ccc509b3d49ed3716f87b4252027a94405
|
||||
DIST pyotherside-1.5.3.tar.gz 181811 SHA256 00049d5f42cac448368bc2a521edb8de36bb6d2a624e195b7f1004236758b805 SHA512 ff6aa43e72f5492b18403559514e6fdf0d2cee0965556fcafe5fe394b654a7dd2fc3a7d64d4b8f9c0ebf95485821b77022407772b2414539f2ab287e1fb01e93 WHIRLPOOL 1b515d4d64e47c015979a70214a99151d8449fc9991bccdc524ee64c2d2e36159c61c0b8191054e2062ffe4f86b33b6d370ba8932960a8b0ef0889f76961b999
|
||||
|
@ -0,0 +1,40 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python3_{4,5,6} )
|
||||
|
||||
inherit qmake-utils python-single-r1
|
||||
|
||||
DESCRIPTION="Asynchronous Python 3 Bindings for Qt 5"
|
||||
HOMEPAGE="https://github.com/thp/pyotherside http://thp.io/2011/pyotherside"
|
||||
SRC_URI="https://github.com/thp/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="ISC"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="${PYTHON_DEPS}
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtdeclarative:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtsvg:5
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
src_prepare() {
|
||||
sed -i -e "s/qtquicktests//" pyotherside.pro || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
eqmake5
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake install INSTALL_ROOT="${D}"
|
||||
}
|
@ -1,7 +1 @@
|
||||
DIST radare2-1.1.0.tar.gz 8438634 SHA256 7bc1e206a2b4def6bdb8684c2af0281b007986a0b5b5da652bd03be264ca0fa5 SHA512 a99ac488f78c52fa9d6fbfe095b0aae10864f4a591721ee3679310ada3ef5e2a069ad919d1f7472d0dcd2c78569aac584086a7e975f1946194b346c94e4873b7 WHIRLPOOL 0d00f06eac3c6a7f3db1b4dc6b728714c73ea35eb5bbdd8281fe01052bd8519e19f8737c794c51f098d1fde9feaa8f1f7959815afad7a87ea8aaab36e862f834
|
||||
DIST radare2-1.2.0.tar.gz 8461187 SHA256 3660f4f8c1490194f5b5b80d7e21e1cc507e6aff2551008074e632c22549b941 SHA512 8419d92c9db2f1312bb188317af53497a75e0c78504d6b9c3fee7cb90f9219d6801543a2bc68f2dd3fc846d75ba60ce3f8d4cde61c99ec1e3c5f63c8c2b8dd88 WHIRLPOOL 1cc31557e4a6882251a517b24f5df59fb2fb9ad083e6670c42d392ab79a8ffd0d56f11f82512ee59f1c233edef3b3c5b08cbbb936ffe5e22753889987e313c2f
|
||||
DIST radare2-1.3.0.tar.gz 8517265 SHA256 adf9bbfb36b5cff986e8218455d75d7410e41e2fb4a380b99d1bcf6d36dce222 SHA512 ef410f8c5c0b931dab452c50b694313f26898a5f36c8286d18f56889e056658331cee87097a0e3028b8f53f25ec9c4354f6c78a41365a74d5bc67a38a6510174 WHIRLPOOL d3d5877814893308c0aa344740ef857d5814ec465d1f7deee73e226f4e1609ed9a75b3395c92fc382815464d1ceac3409bf09aade9f0f2f74cda93d3b2937ed8
|
||||
DIST radare2-1.4.0.tar.gz 8719644 SHA256 bf6e9ad94fd5828d3936563b8b13218433fbf44231cacfdf37a7312ae2b3e93e SHA512 5d022759e53f762094e237a29780d63dc4f39601ceacb22f58206bbb83a38a8938ea2321e49426b03421dcb0f6493a96f18905f8bf81025293f9c1a8087a4a0a WHIRLPOOL a86f5389d4905b970b22cd79b217d71a37a980b780b53078e5bcaf623d66e24999fb77a9d9b527986f5e9193b72f6b158e8dbefbed4d2557bdd9f0abffc88199
|
||||
DIST radare2-1.6.0.tar.gz 5752191 SHA256 759d1c65dcd69d1189fc73e427c568ec234a7ca1958c19f5001c255dd31a3787 SHA512 6e1485c4edaa007790c07a8cfe190c4ea3e4df843620e2575587478e60f1be3dacaa0c545c84e135a51d9f7aff61c27f712c0ffa6038b556d347151f2a3cd2bb WHIRLPOOL 6a35b3b58bc5ec248de53ca3970c4791a8d837b330109f832ccd12d0660537ca0fa62101b806dc29f1123bd48d4139bd7ef1856f5fdbd31afe67daea384f1872
|
||||
DIST radare2-2.0.0.tar.gz 6003014 SHA256 7d734cb3c047774600928110c8f8b970eb6117630b66d2c7284bc4ed68242c83 SHA512 387e08d06d017aac7ea7c1d6c6d1f761808ac689c85a5de22b796356fb5580d4cd6218a994ec86fbf9e9864def6d7d589bef290cacc2b10b241fe9681b80a985 WHIRLPOOL df8ca26f4f03ced670c6d911d1291a233aa1bf6e0236ee2ab34394f43afd49f7bf1ff9e7bbfd9b3c8853d126b2feeeaa64fe3553d2cc41504a3335b18c099164
|
||||
DIST radare2-2.0.1.tar.gz 6001927 SHA256 d8f7e1ab96028fc8bd62d4f92fbbe8bbf48c6cda8112e6eaec93bf5ffbbbd1dd SHA512 1a8db3c71895fd9ccf284e7d0747770a5490872c5ee7f8e6d1c3a2590d2b344873bfc11b5f686bd08caa441bb787b2ec86aae9e83bf61e296f6a233d3ba35207 WHIRLPOOL 276f5628482a56eba3596a04f42a5fa60ed267ed09efea1adef1305cb3313d6ff59b0821ad05b5421620caa3e902f0839c61c619156f5bc1e1966d33261d1e3e
|
||||
|
@ -1,31 +0,0 @@
|
||||
commit ecd8cf26c2647a1f455595209fcf2d6bfb72240f
|
||||
Author: eroen <eroen@users.noreply.github.com>
|
||||
Date: Tue Jan 3 23:45:07 2017 +0100
|
||||
|
||||
Disable deprecated initialization for openssl 1.1.0 (#6423)
|
||||
|
||||
Openssl 1.1.0 handles this initialization internally. Leaving the calls in
|
||||
place causes "undefined reference" errors if openssl was built with
|
||||
`--api=1.1.0`.
|
||||
|
||||
X-Gentoo-Bug: 604576
|
||||
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=604576
|
||||
|
||||
diff --git a/libr/socket/socket.c b/libr/socket/socket.c
|
||||
index 1e30120fb..1ba87e77e 100755
|
||||
--- a/libr/socket/socket.c
|
||||
+++ b/libr/socket/socket.c
|
||||
@@ -116,11 +116,13 @@ R_API RSocket *r_socket_new (int is_ssl) {
|
||||
s->sfd = NULL;
|
||||
s->ctx = NULL;
|
||||
s->bio = NULL;
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL
|
||||
if (!SSL_library_init ()) {
|
||||
r_socket_free (s);
|
||||
return NULL;
|
||||
}
|
||||
SSL_load_error_strings ();
|
||||
+#endif
|
||||
}
|
||||
#endif
|
||||
return s;
|
@ -1,42 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Advanced command line hexadecimal editor and more"
|
||||
HOMEPAGE="http://www.radare.org"
|
||||
SRC_URI="http://cloud.radare.org/get/${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ssl"
|
||||
|
||||
RDEPEND="
|
||||
ssl? ( dev-libs/openssl:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
src_prepare() {
|
||||
epatch "${FILESDIR}"/${PN}-0.9.9-nogit.patch
|
||||
epatch "${FILESDIR}"/${P}-openssl-1.1.0c.patch
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_with ssl openssl)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# a workaround for unstable $(INSTALL) call, bug #574866
|
||||
local d
|
||||
for d in doc/*; do
|
||||
if [[ -d $d ]]; then
|
||||
rm -rfv "$d" || die "failed to delete '$d'"
|
||||
fi
|
||||
done
|
||||
|
||||
default
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Advanced command line hexadecimal editor and more"
|
||||
HOMEPAGE="http://www.radare.org"
|
||||
SRC_URI="http://cloud.radare.org/get/${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ssl"
|
||||
|
||||
RDEPEND="
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.9.9-nogit.patch
|
||||
)
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_with ssl openssl)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# a workaround for unstable $(INSTALL) call, bug #574866
|
||||
local d
|
||||
for d in doc/*; do
|
||||
if [[ -d $d ]]; then
|
||||
rm -rfv "$d" || die "failed to delete '$d'"
|
||||
fi
|
||||
done
|
||||
|
||||
default
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Advanced command line hexadecimal editor and more"
|
||||
HOMEPAGE="http://www.radare.org"
|
||||
SRC_URI="http://cloud.radare.org/get/${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ssl"
|
||||
|
||||
RDEPEND="
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.9.9-nogit.patch
|
||||
)
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_with ssl openssl)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# a workaround for unstable $(INSTALL) call, bug #574866
|
||||
local d
|
||||
for d in doc/*; do
|
||||
if [[ -d $d ]]; then
|
||||
rm -rfv "$d" || die "failed to delete '$d'"
|
||||
fi
|
||||
done
|
||||
|
||||
default
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Advanced command line hexadecimal editor and more"
|
||||
HOMEPAGE="http://www.radare.org"
|
||||
SRC_URI="http://cloud.radare.org/get/${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ssl +system-capstone"
|
||||
|
||||
RDEPEND="
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
system-capstone? ( dev-libs/capstone:0= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.9.9-nogit.patch
|
||||
)
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_with ssl openssl) \
|
||||
$(use_with system-capstone syscapstone)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# a workaround for unstable $(INSTALL) call, bug #574866
|
||||
local d
|
||||
for d in doc/*; do
|
||||
if [[ -d $d ]]; then
|
||||
rm -rfv "$d" || die "failed to delete '$d'"
|
||||
fi
|
||||
done
|
||||
|
||||
default
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Advanced command line hexadecimal editor and more"
|
||||
HOMEPAGE="http://www.radare.org"
|
||||
SRC_URI="http://cloud.radare.org/get/${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ssl +system-capstone"
|
||||
|
||||
RDEPEND="
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
system-capstone? ( dev-libs/capstone:0= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.9.9-nogit.patch
|
||||
)
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_with ssl openssl) \
|
||||
$(use_with system-capstone syscapstone)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# a workaround for unstable $(INSTALL) call, bug #574866
|
||||
local d
|
||||
for d in doc/*; do
|
||||
if [[ -d $d ]]; then
|
||||
rm -rfv "$d" || die "failed to delete '$d'"
|
||||
fi
|
||||
done
|
||||
|
||||
default
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Advanced command line hexadecimal editor and more"
|
||||
HOMEPAGE="http://www.radare.org"
|
||||
SRC_URI="https://github.com/radare/radare2/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ssl +system-capstone"
|
||||
|
||||
RDEPEND="
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
system-capstone? ( dev-libs/capstone:0= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.9.9-nogit.patch
|
||||
)
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_with ssl openssl) \
|
||||
$(use_with system-capstone syscapstone)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# a workaround for unstable $(INSTALL) call, bug #574866
|
||||
local d
|
||||
for d in doc/*; do
|
||||
if [[ -d $d ]]; then
|
||||
rm -rfv "$d" || die "failed to delete '$d'"
|
||||
fi
|
||||
done
|
||||
|
||||
default
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="unix-like reverse engineering framework and commandline tools"
|
||||
HOMEPAGE="http://www.radare.org"
|
||||
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/radare/radare2"
|
||||
else
|
||||
SRC_URI="https://github.com/radare/radare2/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86 ~arm ~arm64"
|
||||
PATCHES=( "${FILESDIR}"/${PN}-0.9.9-nogit.patch )
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
IUSE="ssl +system-capstone zsh-completion"
|
||||
|
||||
RDEPEND="
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
system-capstone? ( dev-libs/capstone:0= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_with ssl openssl) \
|
||||
$(use_with system-capstone syscapstone)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
if use zsh-completion; then
|
||||
insinto /usr/share/zsh/site-functions
|
||||
doins doc/zsh/_*
|
||||
fi
|
||||
|
||||
# a workaround for unstable $(INSTALL) call, bug #574866
|
||||
local d
|
||||
for d in doc/*; do
|
||||
if [[ -d $d ]]; then
|
||||
rm -rfv "$d" || die "failed to delete '$d'"
|
||||
fi
|
||||
done
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Sound card based multimode software modem for Amateur Radio use"
|
||||
HOMEPAGE="http://www.w1hkj.com"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="hamlib nls pulseaudio"
|
||||
|
||||
RDEPEND="x11-libs/fltk:1[threads,xft]
|
||||
media-libs/libsamplerate
|
||||
media-libs/libpng:0
|
||||
x11-misc/xdg-utils
|
||||
dev-perl/RPC-XML
|
||||
dev-perl/Term-ReadLine-Perl
|
||||
>=media-libs/portaudio-19_pre20071207
|
||||
hamlib? ( media-libs/hamlib )
|
||||
pulseaudio? ( media-sound/pulseaudio )
|
||||
>=media-libs/libsndfile-1.0.10"
|
||||
DEPEND="${RDEPEND}
|
||||
nls? ( sys-devel/gettext )
|
||||
virtual/pkgconfig"
|
||||
|
||||
DOCS=( AUTHORS ChangeLog NEWS README )
|
||||
|
||||
src_prepare() {
|
||||
epatch "$FILESDIR"/$PN-c++11.patch
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf --with-sndfile \
|
||||
$(use_with hamlib) \
|
||||
$(use_enable nls) \
|
||||
$(use_with pulseaudio) \
|
||||
--without-asciidoc
|
||||
}
|
@ -1 +1 @@
|
||||
Mon, 16 Oct 2017 12:39:23 +0000
|
||||
Mon, 16 Oct 2017 21:09:25 +0000
|
||||
|
@ -1 +1 @@
|
||||
Mon, 16 Oct 2017 12:39:23 +0000
|
||||
Mon, 16 Oct 2017 21:09:26 +0000
|
||||
|
@ -0,0 +1,15 @@
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DEPEND=python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]
|
||||
DESCRIPTION=Docker registry v2 client in Python
|
||||
EAPI=6
|
||||
HOMEPAGE=https://github.com/davedoesdev/dxf
|
||||
IUSE=python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6
|
||||
KEYWORDS=~amd64
|
||||
LICENSE=MIT
|
||||
RDEPEND=>=dev-python/jwcrypto-0.4.2[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] >=dev-python/requests-2.9.0[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] dev-python/setuptools[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] >=dev-python/tqdm-4.10.0[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] >=dev-python/www-authenticate-0.9.2[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]
|
||||
REQUIRED_USE=|| ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 )
|
||||
RESTRICT=test
|
||||
SLOT=0
|
||||
SRC_URI=mirror://pypi/p/python-dxf/python-dxf-6.0.0.tar.gz
|
||||
_eclasses_=distutils-r1 372bbe39047c0a2550319a3a82f3e063 multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multiprocessing 6f5991c7101863d0b29df63990ad852e python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af xdg-utils f2c8335407f0b935b0a96d4adf23ef25
|
||||
_md5_=7c8a47c6dee2d0d0423accf722a6c4c8
|
@ -0,0 +1,12 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm prepare setup unpack
|
||||
DEPEND=>=virtual/emacs-23
|
||||
DESCRIPTION=An improved Go mode for emacs
|
||||
EAPI=6
|
||||
HOMEPAGE=https://github.com/dominikh/go-mode.el
|
||||
KEYWORDS=~amd64
|
||||
LICENSE=BSD
|
||||
RDEPEND=>=virtual/emacs-23
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/dominikh/go-mode.el/archive/v1.5.0.tar.gz -> go-mode-1.5.0.tar.gz
|
||||
_eclasses_=elisp 571fd9c6c9d8b71c8461bb9f33e135ab elisp-common 23f47b2e1de7abf387105eddd1318738
|
||||
_md5_=1db9b6722e79d0fb313dd9baeddba9a9
|
@ -0,0 +1,12 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm prepare setup unpack
|
||||
DEPEND=>=virtual/emacs-23
|
||||
DESCRIPTION=The long lost Emacs string manipulation library
|
||||
EAPI=6
|
||||
HOMEPAGE=https://github.com/magnars/s.el
|
||||
KEYWORDS=~amd64
|
||||
LICENSE=GPL-3+
|
||||
RDEPEND=>=virtual/emacs-23
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/magnars/s.el/archive/1.12.0.tar.gz -> s-1.12.0.tar.gz
|
||||
_eclasses_=elisp 571fd9c6c9d8b71c8461bb9f33e135ab elisp-common 23f47b2e1de7abf387105eddd1318738
|
||||
_md5_=54d87a75642a2220b8a305fb0b1ed56b
|
@ -0,0 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare setup
|
||||
DEPEND=ssl? ( !libressl? ( >=dev-libs/openssl-0.9.7d:0 ) libressl? ( dev-libs/libressl ) ) emacs? ( virtual/emacs ) java? ( >=virtual/jdk-1.2:* ) odbc? ( dev-db/unixODBC ) systemd? ( sys-apps/systemd ) wxwidgets? ( x11-libs/wxGTK:3.0[X,opengl] virtual/glu ) sctp? ( net-misc/lksctp-tools ) tk? ( dev-lang/tk ) >=app-portage/elt-patches-20170422 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4 java? ( >=dev-java/java-config-2.2.0-r3 ) virtual/pkgconfig
|
||||
DESCRIPTION=Erlang programming language, runtime environment and libraries (OTP)
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.erlang.org/
|
||||
IUSE=compat-ethread dirty-schedulers doc emacs hipe java kpoll libressl odbc smp sctp ssl systemd tk wxwidgets elibc_FreeBSD java
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris
|
||||
LICENSE=Apache-2.0
|
||||
RDEPEND=ssl? ( !libressl? ( >=dev-libs/openssl-0.9.7d:0 ) libressl? ( dev-libs/libressl ) ) emacs? ( virtual/emacs ) java? ( >=virtual/jdk-1.2:* ) odbc? ( dev-db/unixODBC ) systemd? ( sys-apps/systemd ) java? ( >=dev-java/java-config-2.2.0-r3 )
|
||||
REQUIRED_USE=dirty-schedulers? ( smp )
|
||||
SLOT=0
|
||||
SRC_URI=http://www.erlang.org/download/otp_src_20.1.tar.gz http://erlang.org/download/otp_doc_man_20.1.tar.gz doc? ( http://erlang.org/download/otp_doc_html_20.1.tar.gz )
|
||||
_eclasses_=autotools dc412f38566b91012efd58b9c203e6c3 elisp-common 23f47b2e1de7abf387105eddd1318738 epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 flag-o-matic 2274fcc1e7ef6affaff5bcd636275417 java-pkg-opt-2 77d2e22d0de7640f817d20e861c0ff3f java-utils-2 1971a6927fcd7ec839f7e12b28a24bdd libtool 0081a71a261724730ec4c248494f044d ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e systemd 34815d3b76e745c5ca33eec9f95074c2 toolchain-funcs 185a06792159ca143528e7010368e8af versionator c80ccf29e90adea7c5cae94b42eb76d0 wxwidgets 04e063b0eff26daaea83d859dd9d6e05
|
||||
_md5_=03d26a281793a9467cb80ff401e70cc2
|
@ -1,14 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DEPEND=dev-python/setuptools[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]
|
||||
DESCRIPTION=Abtraction layer for PyQt5/PyQt4/PySide
|
||||
DESCRIPTION=Abstraction layer for PyQt5/PySide
|
||||
EAPI=6
|
||||
HOMEPAGE=https://github.com/spyder-ide/qtpy
|
||||
IUSE=designer gui opengl svg testlib webkit python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6
|
||||
KEYWORDS=amd64 x86 ~amd64-linux ~x86-linux
|
||||
LICENSE=MIT
|
||||
RDEPEND=|| ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer=,opengl=,svg=,webkit=] dev-python/PyQt4[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer=,opengl=,svg=,webkit=] dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer=,opengl=,svg=,webkit=] ) gui? ( || ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),gui,widgets] dev-python/PyQt4[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) ) testlib? ( || ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),testlib] dev-python/PyQt4[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),testlib] dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]
|
||||
RDEPEND=gui? ( || ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),gui,widgets] dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) ) testlib? ( || ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),testlib] dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) ) webkit? ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer=,opengl=,svg=,webkit=] ) !webkit? ( || ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer=,opengl=,svg=] dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer=,opengl=,svg=] ) ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]
|
||||
REQUIRED_USE=|| ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 )
|
||||
SLOT=0
|
||||
SRC_URI=mirror://pypi/Q/QtPy/QtPy-1.2.1.tar.gz
|
||||
_eclasses_=distutils-r1 372bbe39047c0a2550319a3a82f3e063 multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multiprocessing 6f5991c7101863d0b29df63990ad852e python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af xdg-utils f2c8335407f0b935b0a96d4adf23ef25
|
||||
_md5_=0c4a9419f4dcb0ab27c3b5aa6de9b828
|
||||
_md5_=b2748f1c11641e994f78d55e8ca72d23
|
||||
|
@ -1,14 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DEPEND=dev-python/setuptools[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]
|
||||
DESCRIPTION=Abtraction layer for PyQt5/PyQt4/PySide
|
||||
DESCRIPTION=Abstraction layer for PyQt5/PySide
|
||||
EAPI=6
|
||||
HOMEPAGE=https://github.com/spyder-ide/qtpy
|
||||
IUSE=designer gui opengl pyqt4 +pyqt5 pyside svg testlib webkit python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6
|
||||
IUSE=designer gui opengl +pyqt5 pyside svg testlib webkit python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6
|
||||
KEYWORDS=~amd64 ~x86 ~amd64-linux ~x86-linux
|
||||
LICENSE=MIT
|
||||
RDEPEND=pyqt4? ( dev-python/PyQt4[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer?,opengl?,svg?,webkit?] gui? ( dev-python/PyQt4[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) testlib? ( dev-python/PyQt4[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),testlib] ) ) pyqt5? ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer?,opengl?,svg?,webkit?] gui? ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),gui,widgets] ) testlib? ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),testlib] ) ) pyside? ( dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer?,opengl?,svg?,webkit?] gui? ( dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) testlib? ( dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]
|
||||
REQUIRED_USE=|| ( pyqt4 pyqt5 pyside ) || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 )
|
||||
RDEPEND=pyqt5? ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer?,opengl?,svg?,webkit?] gui? ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),gui,widgets] ) testlib? ( dev-python/PyQt5[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),testlib] ) ) pyside? ( dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),designer?,opengl?,svg?] gui? ( dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) testlib? ( dev-python/pyside[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),X] ) ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) python_targets_python3_4? ( dev-lang/python:3.4 ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]
|
||||
REQUIRED_USE=|| ( pyqt5 pyside ) webkit? ( pyqt5 ) || ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 )
|
||||
SLOT=0
|
||||
SRC_URI=mirror://pypi/Q/QtPy/QtPy-1.3.1.tar.gz
|
||||
_eclasses_=distutils-r1 372bbe39047c0a2550319a3a82f3e063 multibuild 72647e255187a1fadc81097b3657e5c3 multilib 97f470f374f2e94ccab04a2fb21d811e multiprocessing 6f5991c7101863d0b29df63990ad852e python-r1 e9350ec46bb5c9f3504b4fbe8b8d8987 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af xdg-utils f2c8335407f0b935b0a96d4adf23ef25
|
||||
_md5_=469c7342cbc216abcfbeb949b41ab162
|
||||
_md5_=c86537987b4de7b11cbb485b28941f50
|
||||
|
@ -0,0 +1,14 @@
|
||||
DEFINED_PHASES=configure install prepare setup
|
||||
DEPEND=python_single_target_python3_4? ( dev-lang/python:3.4 ) python_single_target_python3_5? ( dev-lang/python:3.5 ) python_single_target_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python2_7(-),python_single_target_python3_4(+)?,python_single_target_python3_5(+)?,python_single_target_python3_6(+)?] dev-qt/qtcore:5 dev-qt/qtdeclarative:5 dev-qt/qtgui:5 dev-qt/qtsvg:5
|
||||
DESCRIPTION=Asynchronous Python 3 Bindings for Qt 5
|
||||
EAPI=5
|
||||
HOMEPAGE=https://github.com/thp/pyotherside http://thp.io/2011/pyotherside
|
||||
IUSE=python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 python_single_target_python3_4 python_single_target_python3_5 python_single_target_python3_6
|
||||
KEYWORDS=~amd64
|
||||
LICENSE=ISC
|
||||
RDEPEND=python_single_target_python3_4? ( dev-lang/python:3.4 ) python_single_target_python3_5? ( dev-lang/python:3.5 ) python_single_target_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python2_7(-),python_single_target_python3_4(+)?,python_single_target_python3_5(+)?,python_single_target_python3_6(+)?] dev-qt/qtcore:5 dev-qt/qtdeclarative:5 dev-qt/qtgui:5 dev-qt/qtsvg:5
|
||||
RESTRICT=test
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/thp/pyotherside/archive/1.5.3.tar.gz -> pyotherside-1.5.3.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e python-single-r1 317a2557b4d7319a7418225f65accf77 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d qmake-utils 990448b067cb3cfe1443bc25fb57239c toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=4a067f2eb826a33219a9140a6574e56e
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=configure install prepare
|
||||
DEPEND=ssl? ( dev-libs/openssl:= ) virtual/pkgconfig
|
||||
DESCRIPTION=Advanced command line hexadecimal editor and more
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.radare.org
|
||||
IUSE=ssl
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=ssl? ( dev-libs/openssl:= )
|
||||
SLOT=0
|
||||
SRC_URI=http://cloud.radare.org/get/1.1.0/radare2-1.1.0.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=d2ec7cb142c5563a77c49ca258db36e0
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=configure install
|
||||
DEPEND=ssl? ( dev-libs/openssl:0= ) virtual/pkgconfig
|
||||
DESCRIPTION=Advanced command line hexadecimal editor and more
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.radare.org
|
||||
IUSE=ssl
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=ssl? ( dev-libs/openssl:0= )
|
||||
SLOT=0
|
||||
SRC_URI=http://cloud.radare.org/get/1.2.0/radare2-1.2.0.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=520639127a251a4ecc9216fc09ed8188
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=configure install
|
||||
DEPEND=ssl? ( dev-libs/openssl:0= ) virtual/pkgconfig
|
||||
DESCRIPTION=Advanced command line hexadecimal editor and more
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.radare.org
|
||||
IUSE=ssl
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=ssl? ( dev-libs/openssl:0= )
|
||||
SLOT=0
|
||||
SRC_URI=http://cloud.radare.org/get/1.3.0/radare2-1.3.0.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=520639127a251a4ecc9216fc09ed8188
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=configure install
|
||||
DEPEND=ssl? ( dev-libs/openssl:0= ) system-capstone? ( dev-libs/capstone:0= ) virtual/pkgconfig
|
||||
DESCRIPTION=Advanced command line hexadecimal editor and more
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.radare.org
|
||||
IUSE=ssl +system-capstone
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=ssl? ( dev-libs/openssl:0= ) system-capstone? ( dev-libs/capstone:0= )
|
||||
SLOT=0
|
||||
SRC_URI=http://cloud.radare.org/get/1.4.0/radare2-1.4.0.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=6d5066c04f261d5e25cdbaeeedcb26e9
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=configure install
|
||||
DEPEND=ssl? ( dev-libs/openssl:0= ) system-capstone? ( dev-libs/capstone:0= ) virtual/pkgconfig
|
||||
DESCRIPTION=Advanced command line hexadecimal editor and more
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.radare.org
|
||||
IUSE=ssl +system-capstone
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=ssl? ( dev-libs/openssl:0= ) system-capstone? ( dev-libs/capstone:0= )
|
||||
SLOT=0
|
||||
SRC_URI=http://cloud.radare.org/get/1.4.0/radare2-1.4.0.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=6d5066c04f261d5e25cdbaeeedcb26e9
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=configure install
|
||||
DEPEND=ssl? ( dev-libs/openssl:0= ) system-capstone? ( dev-libs/capstone:0= ) virtual/pkgconfig
|
||||
DESCRIPTION=Advanced command line hexadecimal editor and more
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.radare.org
|
||||
IUSE=ssl +system-capstone
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=ssl? ( dev-libs/openssl:0= ) system-capstone? ( dev-libs/capstone:0= )
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/radare/radare2/archive/1.6.0.tar.gz -> radare2-1.6.0.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=cd734353b475e0d75ac39c148c59fc8e
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=configure install
|
||||
DEPEND=ssl? ( dev-libs/openssl:0= ) system-capstone? ( dev-libs/capstone:0= ) virtual/pkgconfig
|
||||
DESCRIPTION=unix-like reverse engineering framework and commandline tools
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.radare.org
|
||||
IUSE=ssl +system-capstone zsh-completion
|
||||
KEYWORDS=~amd64 ~x86 ~arm ~arm64
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=ssl? ( dev-libs/openssl:0= ) system-capstone? ( dev-libs/capstone:0= )
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/radare/radare2/archive/2.0.0.tar.gz -> radare2-2.0.0.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=7f0bd4c0ba99f87db2d72c2a168780f7
|
@ -0,0 +1,13 @@
|
||||
DEFINED_PHASES=configure prepare
|
||||
DEPEND=x11-libs/fltk:1[threads,xft] media-libs/libsamplerate media-libs/libpng:0 x11-misc/xdg-utils dev-perl/RPC-XML dev-perl/Term-ReadLine-Perl >=media-libs/portaudio-19_pre20071207 hamlib? ( media-libs/hamlib ) pulseaudio? ( media-sound/pulseaudio ) >=media-libs/libsndfile-1.0.10 nls? ( sys-devel/gettext ) virtual/pkgconfig
|
||||
DESCRIPTION=Sound card based multimode software modem for Amateur Radio use
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.w1hkj.com
|
||||
IUSE=hamlib nls pulseaudio
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-3
|
||||
RDEPEND=x11-libs/fltk:1[threads,xft] media-libs/libsamplerate media-libs/libpng:0 x11-misc/xdg-utils dev-perl/RPC-XML dev-perl/Term-ReadLine-Perl >=media-libs/portaudio-19_pre20071207 hamlib? ( media-libs/hamlib ) pulseaudio? ( media-sound/pulseaudio ) >=media-libs/libsndfile-1.0.10
|
||||
SLOT=0
|
||||
SRC_URI=mirror://sourceforge/fldigi/fldigi-4.0.11.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=2a58ee45a04091df7f788c74e563a784
|
@ -1,13 +1,13 @@
|
||||
DEFINED_PHASES=compile configure install prepare setup test unpack
|
||||
DEPEND=python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[sqlite] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] airplay? ( app-pda/libplist net-libs/shairplay ) alsa? ( >=media-libs/alsa-lib-1.1.4.1 ) bluetooth? ( net-wireless/bluez ) bluray? ( >=media-libs/libbluray-1.0.1 ) caps? ( sys-libs/libcap ) dbus? ( sys-apps/dbus ) dev-db/sqlite dev-libs/expat >=dev-libs/fribidi-0.19.7 cec? ( >=dev-libs/libcec-4.0 ) dev-libs/libpcre[cxx] >=dev-libs/libxml2-2.9.4 >=dev-libs/lzo-2.04 dev-libs/tinyxml[stl] dev-python/pillow[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] >=dev-libs/libcdio-0.94 dev-libs/libfmt gbm? ( media-libs/mesa[gbm] ) gles? ( media-libs/mesa[gles2] ) lcms? ( media-libs/lcms:2 ) libusb? ( virtual/libusb:1 ) media-fonts/corefonts >=media-fonts/noto-20160531 media-fonts/roboto >=media-libs/fontconfig-2.12.4 >=media-libs/freetype-2.8 >=media-libs/libass-0.13.4 media-libs/mesa[egl] >=media-libs/taglib-1.11.1 system-ffmpeg? ( >=media-video/ffmpeg-3.3.4:=[encode,openssl,postproc] ) mysql? ( virtual/mysql ) >=net-misc/curl-7.51.0 nfs? ( net-fs/libnfs:= ) opengl? ( media-libs/glu ) !libressl? ( >=dev-libs/openssl-1.0.2l:0= ) libressl? ( dev-libs/libressl:0= ) pulseaudio? ( media-sound/pulseaudio ) samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) sftp? ( net-libs/libssh[sftp] ) >=sys-libs/zlib-1.2.11 udev? ( virtual/udev ) vaapi? ( x11-libs/libva[egl] opengl? ( x11-libs/libva[opengl] ) system-ffmpeg? ( media-video/ffmpeg[vaapi] ) vdpau? ( x11-libs/libva[vdpau] ) wayland? ( x11-libs/libva[wayland] ) X? ( x11-libs/libva[X] ) ) virtual/libiconv vdpau? ( || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) system-ffmpeg? ( media-video/ffmpeg[vdpau] ) ) wayland? ( dev-cpp/waylandpp media-libs/mesa[wayland] >=dev-libs/wayland-protocols-1.7 x11-libs/libxkbcommon ) webserver? ( >=net-libs/libmicrohttpd-0.9.55[messages] ) X? ( x11-libs/libX11 x11-libs/libXrandr x11-libs/libXrender system-ffmpeg? ( media-video/ffmpeg[X] ) ) x11-libs/libdrm xslt? ( dev-libs/libxslt ) zeroconf? ( net-dns/avahi[dbus] ) app-arch/bzip2 app-arch/xz-utils dev-lang/swig dev-libs/crossguid dev-libs/rapidjson dev-util/cmake dev-util/gperf media-libs/giflib >=media-libs/libjpeg-turbo-1.5.1:= >=media-libs/libpng-1.6.26:0= test? ( dev-cpp/gtest ) virtual/pkgconfig x86? ( dev-lang/nasm ) virtual/jre >=app-portage/elt-patches-20170422 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4 sys-devel/make >=dev-util/cmake-3.7.2 >=dev-vcs/git-1.8.2.1
|
||||
DEPEND=python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[sqlite] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] airplay? ( app-pda/libplist net-libs/shairplay ) alsa? ( >=media-libs/alsa-lib-1.1.4.1 ) bluetooth? ( net-wireless/bluez ) bluray? ( >=media-libs/libbluray-1.0.1 ) caps? ( sys-libs/libcap ) dbus? ( sys-apps/dbus ) dev-db/sqlite dev-libs/expat >=dev-libs/fribidi-0.19.7 cec? ( >=dev-libs/libcec-4.0 ) dev-libs/libpcre[cxx] >=dev-libs/libxml2-2.9.4 >=dev-libs/lzo-2.04 dev-libs/tinyxml[stl] dev-python/pillow[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] >=dev-libs/libcdio-0.94 dev-libs/libfmt gbm? ( media-libs/mesa[gbm] ) gles? ( media-libs/mesa[gles2] ) lcms? ( media-libs/lcms:2 ) libusb? ( virtual/libusb:1 ) media-fonts/corefonts >=media-fonts/noto-20160531 media-fonts/roboto >=media-libs/fontconfig-2.12.4 >=media-libs/freetype-2.8 >=media-libs/libass-0.13.4 media-libs/mesa[egl] >=media-libs/taglib-1.11.1 system-ffmpeg? ( >=media-video/ffmpeg-3.4:=[encode,openssl,postproc] ) mysql? ( virtual/mysql ) >=net-misc/curl-7.51.0 nfs? ( net-fs/libnfs:= ) opengl? ( media-libs/glu ) !libressl? ( >=dev-libs/openssl-1.0.2l:0= ) libressl? ( dev-libs/libressl:0= ) pulseaudio? ( media-sound/pulseaudio ) samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) sftp? ( net-libs/libssh[sftp] ) >=sys-libs/zlib-1.2.11 udev? ( virtual/udev ) vaapi? ( x11-libs/libva[egl] opengl? ( x11-libs/libva[opengl] ) system-ffmpeg? ( media-video/ffmpeg[vaapi] ) vdpau? ( x11-libs/libva[vdpau] ) wayland? ( x11-libs/libva[wayland] ) X? ( x11-libs/libva[X] ) ) virtual/libiconv vdpau? ( || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) system-ffmpeg? ( media-video/ffmpeg[vdpau] ) ) wayland? ( dev-cpp/waylandpp media-libs/mesa[wayland] >=dev-libs/wayland-protocols-1.7 x11-libs/libxkbcommon ) webserver? ( >=net-libs/libmicrohttpd-0.9.55[messages] ) X? ( x11-libs/libX11 x11-libs/libXrandr x11-libs/libXrender system-ffmpeg? ( media-video/ffmpeg[X] ) ) x11-libs/libdrm xslt? ( dev-libs/libxslt ) zeroconf? ( net-dns/avahi[dbus] ) app-arch/bzip2 app-arch/xz-utils dev-lang/swig dev-libs/crossguid dev-libs/rapidjson dev-util/cmake dev-util/gperf media-libs/giflib >=media-libs/libjpeg-turbo-1.5.1:= >=media-libs/libpng-1.6.26:0= test? ( dev-cpp/gtest ) virtual/pkgconfig x86? ( dev-lang/nasm ) virtual/jre >=app-portage/elt-patches-20170422 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4 sys-devel/make >=dev-util/cmake-3.7.2 >=dev-vcs/git-1.8.2.1
|
||||
DESCRIPTION=Kodi is a free and open source media-player and entertainment hub
|
||||
EAPI=6
|
||||
HOMEPAGE=https://kodi.tv/ http://kodi.wiki/
|
||||
IUSE=airplay alsa bluetooth bluray caps cec +css dbus debug dvd gbm gles lcms libressl libusb lirc mysql nfs +opengl pulseaudio samba sftp systemd +system-ffmpeg test +udev udisks upnp upower vaapi vdpau wayland webserver +X +xslt zeroconf python_targets_python2_7
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[sqlite] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] airplay? ( app-pda/libplist net-libs/shairplay ) alsa? ( >=media-libs/alsa-lib-1.1.4.1 ) bluetooth? ( net-wireless/bluez ) bluray? ( >=media-libs/libbluray-1.0.1 ) caps? ( sys-libs/libcap ) dbus? ( sys-apps/dbus ) dev-db/sqlite dev-libs/expat >=dev-libs/fribidi-0.19.7 cec? ( >=dev-libs/libcec-4.0 ) dev-libs/libpcre[cxx] >=dev-libs/libxml2-2.9.4 >=dev-libs/lzo-2.04 dev-libs/tinyxml[stl] dev-python/pillow[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] >=dev-libs/libcdio-0.94 dev-libs/libfmt gbm? ( media-libs/mesa[gbm] ) gles? ( media-libs/mesa[gles2] ) lcms? ( media-libs/lcms:2 ) libusb? ( virtual/libusb:1 ) media-fonts/corefonts >=media-fonts/noto-20160531 media-fonts/roboto >=media-libs/fontconfig-2.12.4 >=media-libs/freetype-2.8 >=media-libs/libass-0.13.4 media-libs/mesa[egl] >=media-libs/taglib-1.11.1 system-ffmpeg? ( >=media-video/ffmpeg-3.3.4:=[encode,openssl,postproc] ) mysql? ( virtual/mysql ) >=net-misc/curl-7.51.0 nfs? ( net-fs/libnfs:= ) opengl? ( media-libs/glu ) !libressl? ( >=dev-libs/openssl-1.0.2l:0= ) libressl? ( dev-libs/libressl:0= ) pulseaudio? ( media-sound/pulseaudio ) samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) sftp? ( net-libs/libssh[sftp] ) >=sys-libs/zlib-1.2.11 udev? ( virtual/udev ) vaapi? ( x11-libs/libva[egl] opengl? ( x11-libs/libva[opengl] ) system-ffmpeg? ( media-video/ffmpeg[vaapi] ) vdpau? ( x11-libs/libva[vdpau] ) wayland? ( x11-libs/libva[wayland] ) X? ( x11-libs/libva[X] ) ) virtual/libiconv vdpau? ( || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) system-ffmpeg? ( media-video/ffmpeg[vdpau] ) ) wayland? ( dev-cpp/waylandpp media-libs/mesa[wayland] >=dev-libs/wayland-protocols-1.7 x11-libs/libxkbcommon ) webserver? ( >=net-libs/libmicrohttpd-0.9.55[messages] ) X? ( x11-libs/libX11 x11-libs/libXrandr x11-libs/libXrender system-ffmpeg? ( media-video/ffmpeg[X] ) ) x11-libs/libdrm xslt? ( dev-libs/libxslt ) zeroconf? ( net-dns/avahi[dbus] ) lirc? ( || ( app-misc/lirc app-misc/inputlircd ) ) !media-tv/xbmc udisks? ( sys-fs/udisks:0 ) upower? ( systemd? ( sys-power/upower ) !systemd? ( || ( sys-power/upower-pm-utils sys-power/upower ) ) )
|
||||
RDEPEND=python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7[sqlite] ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] airplay? ( app-pda/libplist net-libs/shairplay ) alsa? ( >=media-libs/alsa-lib-1.1.4.1 ) bluetooth? ( net-wireless/bluez ) bluray? ( >=media-libs/libbluray-1.0.1 ) caps? ( sys-libs/libcap ) dbus? ( sys-apps/dbus ) dev-db/sqlite dev-libs/expat >=dev-libs/fribidi-0.19.7 cec? ( >=dev-libs/libcec-4.0 ) dev-libs/libpcre[cxx] >=dev-libs/libxml2-2.9.4 >=dev-libs/lzo-2.04 dev-libs/tinyxml[stl] dev-python/pillow[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] >=dev-libs/libcdio-0.94 dev-libs/libfmt gbm? ( media-libs/mesa[gbm] ) gles? ( media-libs/mesa[gles2] ) lcms? ( media-libs/lcms:2 ) libusb? ( virtual/libusb:1 ) media-fonts/corefonts >=media-fonts/noto-20160531 media-fonts/roboto >=media-libs/fontconfig-2.12.4 >=media-libs/freetype-2.8 >=media-libs/libass-0.13.4 media-libs/mesa[egl] >=media-libs/taglib-1.11.1 system-ffmpeg? ( >=media-video/ffmpeg-3.4:=[encode,openssl,postproc] ) mysql? ( virtual/mysql ) >=net-misc/curl-7.51.0 nfs? ( net-fs/libnfs:= ) opengl? ( media-libs/glu ) !libressl? ( >=dev-libs/openssl-1.0.2l:0= ) libressl? ( dev-libs/libressl:0= ) pulseaudio? ( media-sound/pulseaudio ) samba? ( >=net-fs/samba-3.4.6[smbclient(+)] ) sftp? ( net-libs/libssh[sftp] ) >=sys-libs/zlib-1.2.11 udev? ( virtual/udev ) vaapi? ( x11-libs/libva[egl] opengl? ( x11-libs/libva[opengl] ) system-ffmpeg? ( media-video/ffmpeg[vaapi] ) vdpau? ( x11-libs/libva[vdpau] ) wayland? ( x11-libs/libva[wayland] ) X? ( x11-libs/libva[X] ) ) virtual/libiconv vdpau? ( || ( >=x11-libs/libvdpau-1.1 >=x11-drivers/nvidia-drivers-180.51 ) system-ffmpeg? ( media-video/ffmpeg[vdpau] ) ) wayland? ( dev-cpp/waylandpp media-libs/mesa[wayland] >=dev-libs/wayland-protocols-1.7 x11-libs/libxkbcommon ) webserver? ( >=net-libs/libmicrohttpd-0.9.55[messages] ) X? ( x11-libs/libX11 x11-libs/libXrandr x11-libs/libXrender system-ffmpeg? ( media-video/ffmpeg[X] ) ) x11-libs/libdrm xslt? ( dev-libs/libxslt ) zeroconf? ( net-dns/avahi[dbus] ) lirc? ( || ( app-misc/lirc app-misc/inputlircd ) ) !media-tv/xbmc udisks? ( sys-fs/udisks:0 ) upower? ( systemd? ( sys-power/upower ) !systemd? ( || ( sys-power/upower-pm-utils sys-power/upower ) ) )
|
||||
REQUIRED_USE=python_targets_python2_7 gbm? ( gles ) || ( gles opengl ) ^^ ( gbm wayland X ) udev? ( !libusb ) udisks? ( dbus ) upower? ( dbus )
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/xbmc/libdvdcss/archive/2f12236bc1c92f73c21e973363f79eb300de603f.tar.gz -> libdvdcss-2f12236bc1c92f73c21e973363f79eb300de603f.tar.gz https://github.com/xbmc/libdvdread/archive/17d99db97e7b8f23077b342369d3c22a6250affd.tar.gz -> libdvdread-17d99db97e7b8f23077b342369d3c22a6250affd.tar.gz https://github.com/xbmc/libdvdnav/archive/43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac.tar.gz -> libdvdnav-43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac.tar.gz !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/3.3.4-Leia-Alpha-1.tar.gz -> ffmpeg-kodi-3.3.4-Leia-Alpha-1.tar.gz )
|
||||
SRC_URI=https://github.com/xbmc/libdvdcss/archive/2f12236bc1c92f73c21e973363f79eb300de603f.tar.gz -> libdvdcss-2f12236bc1c92f73c21e973363f79eb300de603f.tar.gz https://github.com/xbmc/libdvdread/archive/17d99db97e7b8f23077b342369d3c22a6250affd.tar.gz -> libdvdread-17d99db97e7b8f23077b342369d3c22a6250affd.tar.gz https://github.com/xbmc/libdvdnav/archive/43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac.tar.gz -> libdvdnav-43b5f81f5fe30bceae3b7cecf2b0ca57fc930dac.tar.gz !system-ffmpeg? ( https://github.com/xbmc/FFmpeg/archive/3.4-Leia-Alpha-1.tar.gz -> ffmpeg-kodi-3.4-Leia-Alpha-1.tar.gz )
|
||||
_eclasses_=autotools dc412f38566b91012efd58b9c203e6c3 cmake-utils f9fb12e2dbe2e0c9c17f030bae85eb02 epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 flag-o-matic 2274fcc1e7ef6affaff5bcd636275417 git-r3 52a888802d25387c2c74cb845d1219bc libtool 0081a71a261724730ec4c248494f044d linux-info ca370deef9d44125d829f2eb6ebc83e0 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e multiprocessing 6f5991c7101863d0b29df63990ad852e ninja-utils ebb2eaddc6331c4fa000b8eb8f6fe074 pax-utils 4f95120230a315c8caaabeb2307b7eee python-single-r1 317a2557b4d7319a7418225f65accf77 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d toolchain-funcs 185a06792159ca143528e7010368e8af versionator c80ccf29e90adea7c5cae94b42eb76d0
|
||||
_md5_=0744ac5dcc144b81328ab0c69d1a00bc
|
||||
_md5_=3e520b94a77fb7e30389436684b8dfd1
|
||||
|
@ -0,0 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install postinst prepare setup test
|
||||
DEPEND=<net-libs/libtorrent-rasterbar-1.1[python,python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] dev-python/setuptools[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] dev-util/intltool python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] virtual/pkgconfig
|
||||
DESCRIPTION=BitTorrent client with a client/server model
|
||||
EAPI=6
|
||||
HOMEPAGE=http://deluge-torrent.org/
|
||||
IUSE=console geoip gtk libnotify sound webinterface python_targets_python2_7 linguas_af linguas_ar linguas_ast linguas_be linguas_bg linguas_bn linguas_bs linguas_ca linguas_cs linguas_cy linguas_da linguas_de linguas_el linguas_en_AU linguas_en_CA linguas_en_GB linguas_eo linguas_es linguas_et linguas_eu linguas_fa linguas_fi linguas_fo linguas_fr linguas_fy linguas_ga linguas_gl linguas_he linguas_hi linguas_hr linguas_hu linguas_id linguas_is linguas_it linguas_iu linguas_ja linguas_ka linguas_kk linguas_km linguas_kn linguas_ko linguas_ku linguas_ky linguas_la linguas_lb linguas_lt linguas_lv linguas_mk linguas_ml linguas_ms linguas_nap linguas_nb linguas_nds linguas_nl linguas_nn linguas_oc linguas_pl linguas_pms linguas_pt linguas_pt_BR linguas_ro linguas_ru linguas_si linguas_sk linguas_sl linguas_sr linguas_sv linguas_ta linguas_te linguas_th linguas_tl linguas_tlh linguas_tr linguas_uk linguas_ur linguas_vi linguas_zh_CN linguas_zh_HK linguas_zh_TW
|
||||
KEYWORDS=~amd64 ~arm ~ppc ~sparc ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=<net-libs/libtorrent-rasterbar-1.1[python,python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] dev-python/chardet[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] dev-python/pyopenssl[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] dev-python/pyxdg[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] dev-python/setproctitle[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] || ( >=dev-python/twisted-16.0.0[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] ( >=dev-python/twisted-core-13.0[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] >=dev-python/twisted-web-13.0[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] ) ) geoip? ( dev-libs/geoip ) gtk? ( sound? ( dev-python/pygame[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] ) dev-python/pygobject:2[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] >=dev-python/pygtk-2.12[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] gnome-base/librsvg libnotify? ( dev-python/notify-python[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] ) ) webinterface? ( dev-python/mako[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] ) python_targets_python2_7? ( >=dev-lang/python-2.7.5-r2:2.7 ) >=dev-lang/python-exec-2:=[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)]
|
||||
REQUIRED_USE=python_targets_python2_7 sound? ( gtk ) libnotify? ( gtk ) python_targets_python2_7
|
||||
SLOT=0
|
||||
SRC_URI=http://download.deluge-torrent.org/source/deluge-1.3.15.tar.bz2
|
||||
_eclasses_=distutils-r1 372bbe39047c0a2550319a3a82f3e063 epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 l10n 2c2e15383ba891d642f51896a7f0ecfe ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e python-single-r1 317a2557b4d7319a7418225f65accf77 python-utils-r1 c9de01becf9df3f8c10aeec3dc693f5d systemd 34815d3b76e745c5ca33eec9f95074c2 toolchain-funcs 185a06792159ca143528e7010368e8af user e4b567c44272a719fabf53f0f885d3f7 xdg-utils f2c8335407f0b935b0a96d4adf23ef25
|
||||
_md5_=b70b3890aab5355f421d8e67f5bf8231
|
@ -0,0 +1,13 @@
|
||||
DEFINED_PHASES=compile configure install postinst prepare
|
||||
DEPEND=ssl? ( dev-libs/openssl:*[-bindist] ) kernel_linux? ( dev-libs/libnl:3 crda? ( net-wireless/crda ) ) netlink? ( net-libs/libnfnetlink ) sqlite? ( >=dev-db/sqlite-3 ) virtual/pkgconfig
|
||||
DESCRIPTION=IEEE 802.11 wireless LAN Host AP daemon
|
||||
EAPI=6
|
||||
HOMEPAGE=http://hostap.epitest.fi
|
||||
IUSE=ipv6 logwatch netlink sqlite +ssl +wps +crda
|
||||
KEYWORDS=amd64 ~arm ~mips ~ppc x86
|
||||
LICENSE=|| ( GPL-2 BSD )
|
||||
RDEPEND=ssl? ( dev-libs/openssl:*[-bindist] ) kernel_linux? ( dev-libs/libnl:3 crda? ( net-wireless/crda ) ) netlink? ( net-libs/libnfnetlink ) sqlite? ( >=dev-db/sqlite-3 )
|
||||
SLOT=0
|
||||
SRC_URI=http://hostap.epitest.fi/releases/hostapd-2.6.tar.gz
|
||||
_eclasses_=epatch 8233751dc5105a6ae8fcd86ce2bb0247 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 227b041a120d309fdefbebb3b8c1dfa9 ltprune 2770eed66a9b8ef944714cd0e968182e multilib 97f470f374f2e94ccab04a2fb21d811e systemd 34815d3b76e745c5ca33eec9f95074c2 toolchain-funcs 185a06792159ca143528e7010368e8af
|
||||
_md5_=d98af5b02f2af008a61e189f4dbf243a
|
@ -1,7 +1,7 @@
|
||||
DEFINED_PHASES=-
|
||||
DESCRIPTION=Virtual for Module-CoreList
|
||||
EAPI=6
|
||||
KEYWORDS=~alpha amd64 ~arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
KEYWORDS=~alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
RDEPEND=|| ( =dev-lang/perl-5.26.1* =dev-lang/perl-5.24.3* ~perl-core/Module-CoreList-5.201.709.220 ) dev-lang/perl:= !<perl-core/Module-CoreList-5.201.709.220 !>perl-core/Module-CoreList-5.201.709.220-r999
|
||||
SLOT=0
|
||||
_md5_=99bdd11eebfbb7355839776d699aecc8
|
||||
_md5_=c2b832137da438c3b5422213349e21c7
|
||||
|
@ -1,7 +1,7 @@
|
||||
DEFINED_PHASES=-
|
||||
DESCRIPTION=Virtual for Time-HiRes
|
||||
EAPI=6
|
||||
KEYWORDS=~alpha amd64 ~arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
KEYWORDS=~alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
RDEPEND=|| ( =dev-lang/perl-5.26* =dev-lang/perl-5.24.3* ~perl-core/Time-HiRes-1.974.100 ) dev-lang/perl:= !<perl-core/Time-HiRes-1.974.100 !>perl-core/Time-HiRes-1.974.100-r999
|
||||
SLOT=0
|
||||
_md5_=e8907119d557772146337ba2a5b2c84d
|
||||
_md5_=029f58248071aab4a506c6a6a6ba7d21
|
||||
|
@ -1 +1 @@
|
||||
Mon, 16 Oct 2017 12:39:23 +0000
|
||||
Mon, 16 Oct 2017 21:09:26 +0000
|
||||
|
@ -1 +1 @@
|
||||
Mon Oct 16 12:39:23 UTC 2017
|
||||
Mon Oct 16 21:09:25 UTC 2017
|
||||
|
@ -1 +1 @@
|
||||
Mon, 16 Oct 2017 13:00:01 +0000
|
||||
Mon, 16 Oct 2017 21:30:01 +0000
|
||||
|
@ -1 +1 @@
|
||||
3bcf1b2baf345cdfa1519186ec9fef6f1cca61d3 1508154519 2017-10-16T11:48:39+00:00
|
||||
f6f50a2ee480f4088857ba004c64657bf3dab92a 1508187077 2017-10-16T20:51:17+00:00
|
||||
|
@ -1 +1 @@
|
||||
1508157301 Mon 16 Oct 2017 12:35:01 PM UTC
|
||||
1508187901 Mon 16 Oct 2017 09:05:01 PM UTC
|
||||
|
@ -1 +1 @@
|
||||
Mon, 16 Oct 2017 12:39:23 +0000
|
||||
Mon, 16 Oct 2017 21:09:25 +0000
|
||||
|
@ -0,0 +1,144 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
DISTUTILS_SINGLE_IMPL=1
|
||||
PLOCALES="af ar ast be bg bn bs ca cs cy da de el en_AU en_CA en_GB eo es et eu fa fi fo fr fy ga gl he hi hr hu id is it iu ja ka kk km kn ko ku ky la lb lt lv mk ml ms nap nb nds nl nn oc pl pms pt pt_BR ro ru si sk sl sr sv ta te th tl tlh tr uk ur vi zh_CN zh_HK zh_TW"
|
||||
inherit distutils-r1 eutils systemd user l10n
|
||||
|
||||
DESCRIPTION="BitTorrent client with a client/server model"
|
||||
HOMEPAGE="http://deluge-torrent.org/"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="git://deluge-torrent.org/${PN}.git
|
||||
http://git.deluge-torrent.org/${PN}"
|
||||
SRC_URI=""
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
else
|
||||
SRC_URI="http://download.deluge-torrent.org/source/${P}.tar.bz2"
|
||||
KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
IUSE="console geoip gtk libnotify sound webinterface"
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
sound? ( gtk )
|
||||
libnotify? ( gtk )
|
||||
"
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.3.5-disable_libtorrent_internal_copy.patch"
|
||||
"${FILESDIR}/${PN}-1.3.15-r1-fix-preferences-ui.patch"
|
||||
)
|
||||
|
||||
CDEPEND="<net-libs/libtorrent-rasterbar-1.1[python,${PYTHON_USEDEP}]"
|
||||
DEPEND="${CDEPEND}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
dev-util/intltool"
|
||||
RDEPEND="${CDEPEND}
|
||||
dev-python/chardet[${PYTHON_USEDEP}]
|
||||
dev-python/pyopenssl[${PYTHON_USEDEP}]
|
||||
dev-python/pyxdg[${PYTHON_USEDEP}]
|
||||
dev-python/setproctitle[${PYTHON_USEDEP}]
|
||||
|| ( >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
|
||||
(
|
||||
>=dev-python/twisted-core-13.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/twisted-web-13.0[${PYTHON_USEDEP}]
|
||||
)
|
||||
)
|
||||
geoip? ( dev-libs/geoip )
|
||||
gtk? (
|
||||
sound? ( dev-python/pygame[${PYTHON_USEDEP}] )
|
||||
dev-python/pygobject:2[${PYTHON_USEDEP}]
|
||||
>=dev-python/pygtk-2.12[${PYTHON_USEDEP}]
|
||||
gnome-base/librsvg
|
||||
libnotify? ( dev-python/notify-python[${PYTHON_USEDEP}] )
|
||||
)
|
||||
webinterface? ( dev-python/mako[${PYTHON_USEDEP}] )"
|
||||
|
||||
python_prepare_all() {
|
||||
local args=(
|
||||
-e "/Compiling po file/a \\\tuptoDate = False"
|
||||
)
|
||||
sed -i "${args[@]}" -- 'setup.py' || die
|
||||
args=(
|
||||
-e 's|"new_release_check": True|"new_release_check": False|'
|
||||
-e 's|"check_new_releases": True|"check_new_releases": False|'
|
||||
-e 's|"show_new_releases": True|"show_new_releases": False|'
|
||||
)
|
||||
sed -i "${args[@]}" -- 'deluge/core/preferencesmanager.py' || die
|
||||
|
||||
local loc_dir="${S}/deluge/i18n"
|
||||
l10n_find_plocales_changes "${loc_dir}" "" ".po"
|
||||
rm_loc() {
|
||||
rm -vf "${loc_dir}/${1}.po" || die
|
||||
}
|
||||
l10n_for_each_disabled_locale_do rm_loc
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
esetup.py() {
|
||||
# bug 531370: deluge has its own plugin system. No need to relocate its egg info files.
|
||||
# Override this call from the distutils-r1 eclass.
|
||||
# This does not respect the distutils-r1 API. DONOT copy this example.
|
||||
set -- "${PYTHON}" setup.py "$@"
|
||||
echo "$@"
|
||||
"$@" || die
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
if ! use console ; then
|
||||
rm -rf "${D}/usr/$(get_libdir)/python2.7/site-packages/deluge/ui/console/" || die
|
||||
rm -f "${D}/usr/bin/deluge-console" || die
|
||||
rm -f "${D}/usr/share/man/man1/deluge-console.1" ||die
|
||||
fi
|
||||
if ! use gtk ; then
|
||||
rm -rf "${D}/usr/$(get_libdir)/python2.7/site-packages/deluge/ui/gtkui/" || die
|
||||
rm -rf "${D}/usr/share/icons/" || die
|
||||
rm -f "${D}/usr/bin/deluge-gtk" || die
|
||||
rm -f "${D}/usr/share/man/man1/deluge-gtk.1" || die
|
||||
rm -f "${D}/usr/share/applications/deluge.desktop" || die
|
||||
fi
|
||||
if use webinterface; then
|
||||
newinitd "${FILESDIR}/deluge-web.init" deluge-web
|
||||
newconfd "${FILESDIR}/deluge-web.conf" deluge-web
|
||||
systemd_newunit "${FILESDIR}/deluge-web.service-2" deluge-web.service
|
||||
systemd_install_serviced "${FILESDIR}/deluge-web.service.conf"
|
||||
else
|
||||
rm -rf "${D}/usr/$(get_libdir)/python2.7/site-packages/deluge/ui/web/" || die
|
||||
rm -f "${D}/usr/bin/deluge-web" || die
|
||||
rm -f "${D}/usr/share/man/man1/deluge-web.1" || die
|
||||
fi
|
||||
newinitd "${FILESDIR}"/deluged.init-2 deluged
|
||||
newconfd "${FILESDIR}"/deluged.conf-2 deluged
|
||||
systemd_newunit "${FILESDIR}"/deluged.service-2 deluged.service
|
||||
systemd_install_serviced "${FILESDIR}"/deluged.service.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
enewgroup ${PN}
|
||||
enewuser ${PN} -1 -1 /var/lib/${PN} ${PN}
|
||||
elog
|
||||
elog "If, after upgrading, deluge doesn't work, please remove the"
|
||||
elog "'~/.config/deluge' directory and try again, but make a backup"
|
||||
elog "first!"
|
||||
elog
|
||||
elog "To start the daemon either run 'deluged' as user"
|
||||
elog "or modify /etc/conf.d/deluged and run"
|
||||
elog "/etc/init.d/deluged start as root"
|
||||
elog "You can still use deluge the old way"
|
||||
elog
|
||||
elog "Systemd unit files for deluged and deluge-web no longer source"
|
||||
elog "/etc/conf.d/deluge* files. Environment variable customization now"
|
||||
elog "happens in /etc/systemd/system/deluged.service.d/00gentoo.conf"
|
||||
elog "and /etc/systemd/system/deluge-web.service.d/00gentoo.conf"
|
||||
elog
|
||||
elog "For more information look at http://dev.deluge-torrent.org/wiki/Faq"
|
||||
elog
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
From 38d7b7cdfde3c50d6263602ffb03af92fcbfa52e Mon Sep 17 00:00:00 2001
|
||||
From: Calum Lind <calumlind+deluge@gmail.com>
|
||||
Date: Sat, 13 May 2017 00:05:48 +0100
|
||||
Subject: [GTKUI] Fix keyerror showing prefs
|
||||
|
||||
* Fix the single_proxy ui to True as unlikely any users using <=0.15
|
||||
and need to have different proxy type settings.
|
||||
---
|
||||
deluge/ui/gtkui/preferences.py | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/deluge/ui/gtkui/preferences.py b/deluge/ui/gtkui/preferences.py
|
||||
index 645ad26..efcd93d 100644
|
||||
--- a/deluge/ui/gtkui/preferences.py
|
||||
+++ b/deluge/ui/gtkui/preferences.py
|
||||
@@ -318,11 +318,8 @@ class Preferences(component.Component):
|
||||
}
|
||||
# Add proxy stuff
|
||||
|
||||
- # Display workaround for single proxy in libtorrent >v0.16
|
||||
- try:
|
||||
- lt_single_proxy = component.get("PreferencesManager").LT_SINGLE_PROXY
|
||||
- except AttributeError:
|
||||
- lt_single_proxy = False
|
||||
+ # Display workaround for single proxy in libtorrent >= v0.16
|
||||
+ lt_single_proxy = True
|
||||
|
||||
for t in ("peer", "web_seed", "tracker", "dht"):
|
||||
if lt_single_proxy and not t == "peer":
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -0,0 +1,174 @@
|
||||
From cf4cab804c7afd5c45505528a8d16e46163243a2 Mon Sep 17 00:00:00 2001
|
||||
From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
|
||||
Date: Fri, 14 Jul 2017 15:15:35 +0200
|
||||
Subject: [PATCH 1/8] hostapd: Avoid key reinstallation in FT handshake
|
||||
|
||||
Do not reinstall TK to the driver during Reassociation Response frame
|
||||
processing if the first attempt of setting the TK succeeded. This avoids
|
||||
issues related to clearing the TX/RX PN that could result in reusing
|
||||
same PN values for transmitted frames (e.g., due to CCM nonce reuse and
|
||||
also hitting replay protection on the receiver) and accepting replayed
|
||||
frames on RX side.
|
||||
|
||||
This issue was introduced by the commit
|
||||
0e84c25434e6a1f283c7b4e62e483729085b78d2 ('FT: Fix PTK configuration in
|
||||
authenticator') which allowed wpa_ft_install_ptk() to be called multiple
|
||||
times with the same PTK. While the second configuration attempt is
|
||||
needed with some drivers, it must be done only if the first attempt
|
||||
failed.
|
||||
|
||||
Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
|
||||
---
|
||||
src/ap/ieee802_11.c | 16 +++++++++++++---
|
||||
src/ap/wpa_auth.c | 11 +++++++++++
|
||||
src/ap/wpa_auth.h | 3 ++-
|
||||
src/ap/wpa_auth_ft.c | 10 ++++++++++
|
||||
src/ap/wpa_auth_i.h | 1 +
|
||||
5 files changed, 37 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
|
||||
index 4e04169..333035f 100644
|
||||
--- a/src/ap/ieee802_11.c
|
||||
+++ b/src/ap/ieee802_11.c
|
||||
@@ -1841,6 +1841,7 @@ static int add_associated_sta(struct hostapd_data *hapd,
|
||||
{
|
||||
struct ieee80211_ht_capabilities ht_cap;
|
||||
struct ieee80211_vht_capabilities vht_cap;
|
||||
+ int set = 1;
|
||||
|
||||
/*
|
||||
* Remove the STA entry to ensure the STA PS state gets cleared and
|
||||
@@ -1848,9 +1849,18 @@ static int add_associated_sta(struct hostapd_data *hapd,
|
||||
* FT-over-the-DS, where a station re-associates back to the same AP but
|
||||
* skips the authentication flow, or if working with a driver that
|
||||
* does not support full AP client state.
|
||||
+ *
|
||||
+ * Skip this if the STA has already completed FT reassociation and the
|
||||
+ * TK has been configured since the TX/RX PN must not be reset to 0 for
|
||||
+ * the same key.
|
||||
*/
|
||||
- if (!sta->added_unassoc)
|
||||
+ if (!sta->added_unassoc &&
|
||||
+ (!(sta->flags & WLAN_STA_AUTHORIZED) ||
|
||||
+ !wpa_auth_sta_ft_tk_already_set(sta->wpa_sm))) {
|
||||
hostapd_drv_sta_remove(hapd, sta->addr);
|
||||
+ wpa_auth_sm_event(sta->wpa_sm, WPA_DRV_STA_REMOVED);
|
||||
+ set = 0;
|
||||
+ }
|
||||
|
||||
#ifdef CONFIG_IEEE80211N
|
||||
if (sta->flags & WLAN_STA_HT)
|
||||
@@ -1873,11 +1883,11 @@ static int add_associated_sta(struct hostapd_data *hapd,
|
||||
sta->flags & WLAN_STA_VHT ? &vht_cap : NULL,
|
||||
sta->flags | WLAN_STA_ASSOC, sta->qosinfo,
|
||||
sta->vht_opmode, sta->p2p_ie ? 1 : 0,
|
||||
- sta->added_unassoc)) {
|
||||
+ set)) {
|
||||
hostapd_logger(hapd, sta->addr,
|
||||
HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_NOTICE,
|
||||
"Could not %s STA to kernel driver",
|
||||
- sta->added_unassoc ? "set" : "add");
|
||||
+ set ? "set" : "add");
|
||||
|
||||
if (sta->added_unassoc) {
|
||||
hostapd_drv_sta_remove(hapd, sta->addr);
|
||||
diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
|
||||
index 3587086..707971d 100644
|
||||
--- a/src/ap/wpa_auth.c
|
||||
+++ b/src/ap/wpa_auth.c
|
||||
@@ -1745,6 +1745,9 @@ int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event)
|
||||
#else /* CONFIG_IEEE80211R */
|
||||
break;
|
||||
#endif /* CONFIG_IEEE80211R */
|
||||
+ case WPA_DRV_STA_REMOVED:
|
||||
+ sm->tk_already_set = FALSE;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_IEEE80211R
|
||||
@@ -3250,6 +3253,14 @@ int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm)
|
||||
}
|
||||
|
||||
|
||||
+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm)
|
||||
+{
|
||||
+ if (!sm || !wpa_key_mgmt_ft(sm->wpa_key_mgmt))
|
||||
+ return 0;
|
||||
+ return sm->tk_already_set;
|
||||
+}
|
||||
+
|
||||
+
|
||||
int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm,
|
||||
struct rsn_pmksa_cache_entry *entry)
|
||||
{
|
||||
diff --git a/src/ap/wpa_auth.h b/src/ap/wpa_auth.h
|
||||
index 0de8d97..97461b0 100644
|
||||
--- a/src/ap/wpa_auth.h
|
||||
+++ b/src/ap/wpa_auth.h
|
||||
@@ -267,7 +267,7 @@ void wpa_receive(struct wpa_authenticator *wpa_auth,
|
||||
u8 *data, size_t data_len);
|
||||
enum wpa_event {
|
||||
WPA_AUTH, WPA_ASSOC, WPA_DISASSOC, WPA_DEAUTH, WPA_REAUTH,
|
||||
- WPA_REAUTH_EAPOL, WPA_ASSOC_FT
|
||||
+ WPA_REAUTH_EAPOL, WPA_ASSOC_FT, WPA_DRV_STA_REMOVED
|
||||
};
|
||||
void wpa_remove_ptk(struct wpa_state_machine *sm);
|
||||
int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event);
|
||||
@@ -280,6 +280,7 @@ int wpa_auth_pairwise_set(struct wpa_state_machine *sm);
|
||||
int wpa_auth_get_pairwise(struct wpa_state_machine *sm);
|
||||
int wpa_auth_sta_key_mgmt(struct wpa_state_machine *sm);
|
||||
int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm);
|
||||
+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm);
|
||||
int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm,
|
||||
struct rsn_pmksa_cache_entry *entry);
|
||||
struct rsn_pmksa_cache_entry *
|
||||
diff --git a/src/ap/wpa_auth_ft.c b/src/ap/wpa_auth_ft.c
|
||||
index 42242a5..e63b99a 100644
|
||||
--- a/src/ap/wpa_auth_ft.c
|
||||
+++ b/src/ap/wpa_auth_ft.c
|
||||
@@ -780,6 +780,14 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm)
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (sm->tk_already_set) {
|
||||
+ /* Must avoid TK reconfiguration to prevent clearing of TX/RX
|
||||
+ * PN in the driver */
|
||||
+ wpa_printf(MSG_DEBUG,
|
||||
+ "FT: Do not re-install same PTK to the driver");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
/* FIX: add STA entry to kernel/driver here? The set_key will fail
|
||||
* most likely without this.. At the moment, STA entry is added only
|
||||
* after association has been completed. This function will be called
|
||||
@@ -792,6 +800,7 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm)
|
||||
|
||||
/* FIX: MLME-SetProtection.Request(TA, Tx_Rx) */
|
||||
sm->pairwise_set = TRUE;
|
||||
+ sm->tk_already_set = TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -898,6 +907,7 @@ static int wpa_ft_process_auth_req(struct wpa_state_machine *sm,
|
||||
|
||||
sm->pairwise = pairwise;
|
||||
sm->PTK_valid = TRUE;
|
||||
+ sm->tk_already_set = FALSE;
|
||||
wpa_ft_install_ptk(sm);
|
||||
|
||||
buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
|
||||
diff --git a/src/ap/wpa_auth_i.h b/src/ap/wpa_auth_i.h
|
||||
index 72b7eb3..7fd8f05 100644
|
||||
--- a/src/ap/wpa_auth_i.h
|
||||
+++ b/src/ap/wpa_auth_i.h
|
||||
@@ -65,6 +65,7 @@ struct wpa_state_machine {
|
||||
struct wpa_ptk PTK;
|
||||
Boolean PTK_valid;
|
||||
Boolean pairwise_set;
|
||||
+ Boolean tk_already_set;
|
||||
int keycount;
|
||||
Boolean Pair;
|
||||
struct wpa_key_replay_counter {
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,250 @@
|
||||
From 927f891007c402fefd1ff384645b3f07597c3ede Mon Sep 17 00:00:00 2001
|
||||
From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
|
||||
Date: Wed, 12 Jul 2017 16:03:24 +0200
|
||||
Subject: [PATCH 2/8] Prevent reinstallation of an already in-use group key
|
||||
|
||||
Track the current GTK and IGTK that is in use and when receiving a
|
||||
(possibly retransmitted) Group Message 1 or WNM-Sleep Mode Response, do
|
||||
not install the given key if it is already in use. This prevents an
|
||||
attacker from trying to trick the client into resetting or lowering the
|
||||
sequence counter associated to the group key.
|
||||
|
||||
Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
|
||||
---
|
||||
src/common/wpa_common.h | 11 +++++
|
||||
src/rsn_supp/wpa.c | 116 ++++++++++++++++++++++++++++++------------------
|
||||
src/rsn_supp/wpa_i.h | 4 ++
|
||||
3 files changed, 87 insertions(+), 44 deletions(-)
|
||||
|
||||
diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
|
||||
index af1d0f0..d200285 100644
|
||||
--- a/src/common/wpa_common.h
|
||||
+++ b/src/common/wpa_common.h
|
||||
@@ -217,6 +217,17 @@ struct wpa_ptk {
|
||||
size_t tk_len;
|
||||
};
|
||||
|
||||
+struct wpa_gtk {
|
||||
+ u8 gtk[WPA_GTK_MAX_LEN];
|
||||
+ size_t gtk_len;
|
||||
+};
|
||||
+
|
||||
+#ifdef CONFIG_IEEE80211W
|
||||
+struct wpa_igtk {
|
||||
+ u8 igtk[WPA_IGTK_MAX_LEN];
|
||||
+ size_t igtk_len;
|
||||
+};
|
||||
+#endif /* CONFIG_IEEE80211W */
|
||||
|
||||
/* WPA IE version 1
|
||||
* 00-50-f2:1 (OUI:OUI type)
|
||||
diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
|
||||
index 3c47879..95bd7be 100644
|
||||
--- a/src/rsn_supp/wpa.c
|
||||
+++ b/src/rsn_supp/wpa.c
|
||||
@@ -714,6 +714,15 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
|
||||
const u8 *_gtk = gd->gtk;
|
||||
u8 gtk_buf[32];
|
||||
|
||||
+ /* Detect possible key reinstallation */
|
||||
+ if (sm->gtk.gtk_len == (size_t) gd->gtk_len &&
|
||||
+ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) {
|
||||
+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
|
||||
+ "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)",
|
||||
+ gd->keyidx, gd->tx, gd->gtk_len);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
wpa_hexdump_key(MSG_DEBUG, "WPA: Group Key", gd->gtk, gd->gtk_len);
|
||||
wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
|
||||
"WPA: Installing GTK to the driver (keyidx=%d tx=%d len=%d)",
|
||||
@@ -748,6 +757,9 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
|
||||
}
|
||||
os_memset(gtk_buf, 0, sizeof(gtk_buf));
|
||||
|
||||
+ sm->gtk.gtk_len = gd->gtk_len;
|
||||
+ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -854,6 +866,48 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
|
||||
}
|
||||
|
||||
|
||||
+#ifdef CONFIG_IEEE80211W
|
||||
+static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
|
||||
+ const struct wpa_igtk_kde *igtk)
|
||||
+{
|
||||
+ size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher);
|
||||
+ u16 keyidx = WPA_GET_LE16(igtk->keyid);
|
||||
+
|
||||
+ /* Detect possible key reinstallation */
|
||||
+ if (sm->igtk.igtk_len == len &&
|
||||
+ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) {
|
||||
+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
|
||||
+ "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)",
|
||||
+ keyidx);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
|
||||
+ "WPA: IGTK keyid %d pn %02x%02x%02x%02x%02x%02x",
|
||||
+ keyidx, MAC2STR(igtk->pn));
|
||||
+ wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", igtk->igtk, len);
|
||||
+ if (keyidx > 4095) {
|
||||
+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
|
||||
+ "WPA: Invalid IGTK KeyID %d", keyidx);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
|
||||
+ broadcast_ether_addr,
|
||||
+ keyidx, 0, igtk->pn, sizeof(igtk->pn),
|
||||
+ igtk->igtk, len) < 0) {
|
||||
+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
|
||||
+ "WPA: Failed to configure IGTK to the driver");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ sm->igtk.igtk_len = len;
|
||||
+ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif /* CONFIG_IEEE80211W */
|
||||
+
|
||||
+
|
||||
static int ieee80211w_set_keys(struct wpa_sm *sm,
|
||||
struct wpa_eapol_ie_parse *ie)
|
||||
{
|
||||
@@ -864,30 +918,14 @@ static int ieee80211w_set_keys(struct wpa_sm *sm,
|
||||
if (ie->igtk) {
|
||||
size_t len;
|
||||
const struct wpa_igtk_kde *igtk;
|
||||
- u16 keyidx;
|
||||
+
|
||||
len = wpa_cipher_key_len(sm->mgmt_group_cipher);
|
||||
if (ie->igtk_len != WPA_IGTK_KDE_PREFIX_LEN + len)
|
||||
return -1;
|
||||
+
|
||||
igtk = (const struct wpa_igtk_kde *) ie->igtk;
|
||||
- keyidx = WPA_GET_LE16(igtk->keyid);
|
||||
- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: IGTK keyid %d "
|
||||
- "pn %02x%02x%02x%02x%02x%02x",
|
||||
- keyidx, MAC2STR(igtk->pn));
|
||||
- wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK",
|
||||
- igtk->igtk, len);
|
||||
- if (keyidx > 4095) {
|
||||
- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
|
||||
- "WPA: Invalid IGTK KeyID %d", keyidx);
|
||||
- return -1;
|
||||
- }
|
||||
- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
|
||||
- broadcast_ether_addr,
|
||||
- keyidx, 0, igtk->pn, sizeof(igtk->pn),
|
||||
- igtk->igtk, len) < 0) {
|
||||
- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
|
||||
- "WPA: Failed to configure IGTK to the driver");
|
||||
+ if (wpa_supplicant_install_igtk(sm, igtk) < 0)
|
||||
return -1;
|
||||
- }
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -2307,7 +2345,7 @@ void wpa_sm_deinit(struct wpa_sm *sm)
|
||||
*/
|
||||
void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
|
||||
{
|
||||
- int clear_ptk = 1;
|
||||
+ int clear_keys = 1;
|
||||
|
||||
if (sm == NULL)
|
||||
return;
|
||||
@@ -2333,11 +2371,11 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
|
||||
/* Prepare for the next transition */
|
||||
wpa_ft_prepare_auth_request(sm, NULL);
|
||||
|
||||
- clear_ptk = 0;
|
||||
+ clear_keys = 0;
|
||||
}
|
||||
#endif /* CONFIG_IEEE80211R */
|
||||
|
||||
- if (clear_ptk) {
|
||||
+ if (clear_keys) {
|
||||
/*
|
||||
* IEEE 802.11, 8.4.10: Delete PTK SA on (re)association if
|
||||
* this is not part of a Fast BSS Transition.
|
||||
@@ -2347,6 +2385,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
|
||||
os_memset(&sm->ptk, 0, sizeof(sm->ptk));
|
||||
sm->tptk_set = 0;
|
||||
os_memset(&sm->tptk, 0, sizeof(sm->tptk));
|
||||
+ os_memset(&sm->gtk, 0, sizeof(sm->gtk));
|
||||
+#ifdef CONFIG_IEEE80211W
|
||||
+ os_memset(&sm->igtk, 0, sizeof(sm->igtk));
|
||||
+#endif /* CONFIG_IEEE80211W */
|
||||
}
|
||||
|
||||
#ifdef CONFIG_TDLS
|
||||
@@ -2877,6 +2919,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm)
|
||||
os_memset(sm->pmk, 0, sizeof(sm->pmk));
|
||||
os_memset(&sm->ptk, 0, sizeof(sm->ptk));
|
||||
os_memset(&sm->tptk, 0, sizeof(sm->tptk));
|
||||
+ os_memset(&sm->gtk, 0, sizeof(sm->gtk));
|
||||
+#ifdef CONFIG_IEEE80211W
|
||||
+ os_memset(&sm->igtk, 0, sizeof(sm->igtk));
|
||||
+#endif /* CONFIG_IEEE80211W */
|
||||
#ifdef CONFIG_IEEE80211R
|
||||
os_memset(sm->xxkey, 0, sizeof(sm->xxkey));
|
||||
os_memset(sm->pmk_r0, 0, sizeof(sm->pmk_r0));
|
||||
@@ -2949,29 +2995,11 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
|
||||
os_memset(&gd, 0, sizeof(gd));
|
||||
#ifdef CONFIG_IEEE80211W
|
||||
} else if (subelem_id == WNM_SLEEP_SUBELEM_IGTK) {
|
||||
- struct wpa_igtk_kde igd;
|
||||
- u16 keyidx;
|
||||
-
|
||||
- os_memset(&igd, 0, sizeof(igd));
|
||||
- keylen = wpa_cipher_key_len(sm->mgmt_group_cipher);
|
||||
- os_memcpy(igd.keyid, buf + 2, 2);
|
||||
- os_memcpy(igd.pn, buf + 4, 6);
|
||||
-
|
||||
- keyidx = WPA_GET_LE16(igd.keyid);
|
||||
- os_memcpy(igd.igtk, buf + 10, keylen);
|
||||
-
|
||||
- wpa_hexdump_key(MSG_DEBUG, "Install IGTK (WNM SLEEP)",
|
||||
- igd.igtk, keylen);
|
||||
- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
|
||||
- broadcast_ether_addr,
|
||||
- keyidx, 0, igd.pn, sizeof(igd.pn),
|
||||
- igd.igtk, keylen) < 0) {
|
||||
- wpa_printf(MSG_DEBUG, "Failed to install the IGTK in "
|
||||
- "WNM mode");
|
||||
- os_memset(&igd, 0, sizeof(igd));
|
||||
+ const struct wpa_igtk_kde *igtk;
|
||||
+
|
||||
+ igtk = (const struct wpa_igtk_kde *) (buf + 2);
|
||||
+ if (wpa_supplicant_install_igtk(sm, igtk) < 0)
|
||||
return -1;
|
||||
- }
|
||||
- os_memset(&igd, 0, sizeof(igd));
|
||||
#endif /* CONFIG_IEEE80211W */
|
||||
} else {
|
||||
wpa_printf(MSG_DEBUG, "Unknown element id");
|
||||
diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
|
||||
index f653ba6..afc9e37 100644
|
||||
--- a/src/rsn_supp/wpa_i.h
|
||||
+++ b/src/rsn_supp/wpa_i.h
|
||||
@@ -31,6 +31,10 @@ struct wpa_sm {
|
||||
u8 rx_replay_counter[WPA_REPLAY_COUNTER_LEN];
|
||||
int rx_replay_counter_set;
|
||||
u8 request_counter[WPA_REPLAY_COUNTER_LEN];
|
||||
+ struct wpa_gtk gtk;
|
||||
+#ifdef CONFIG_IEEE80211W
|
||||
+ struct wpa_igtk igtk;
|
||||
+#endif /* CONFIG_IEEE80211W */
|
||||
|
||||
struct eapol_sm *eapol; /* EAPOL state machine from upper level code */
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,184 @@
|
||||
From 8280294e74846ea342389a0cd17215050fa5afe8 Mon Sep 17 00:00:00 2001
|
||||
From: Jouni Malinen <j@w1.fi>
|
||||
Date: Sun, 1 Oct 2017 12:12:24 +0300
|
||||
Subject: [PATCH 3/8] Extend protection of GTK/IGTK reinstallation of WNM-Sleep
|
||||
Mode cases
|
||||
|
||||
This extends the protection to track last configured GTK/IGTK value
|
||||
separately from EAPOL-Key frames and WNM-Sleep Mode frames to cover a
|
||||
corner case where these two different mechanisms may get used when the
|
||||
GTK/IGTK has changed and tracking a single value is not sufficient to
|
||||
detect a possible key reconfiguration.
|
||||
|
||||
Signed-off-by: Jouni Malinen <j@w1.fi>
|
||||
---
|
||||
src/rsn_supp/wpa.c | 53 +++++++++++++++++++++++++++++++++++++---------------
|
||||
src/rsn_supp/wpa_i.h | 2 ++
|
||||
2 files changed, 40 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
|
||||
index 95bd7be..7a2c68d 100644
|
||||
--- a/src/rsn_supp/wpa.c
|
||||
+++ b/src/rsn_supp/wpa.c
|
||||
@@ -709,14 +709,17 @@ struct wpa_gtk_data {
|
||||
|
||||
static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
|
||||
const struct wpa_gtk_data *gd,
|
||||
- const u8 *key_rsc)
|
||||
+ const u8 *key_rsc, int wnm_sleep)
|
||||
{
|
||||
const u8 *_gtk = gd->gtk;
|
||||
u8 gtk_buf[32];
|
||||
|
||||
/* Detect possible key reinstallation */
|
||||
- if (sm->gtk.gtk_len == (size_t) gd->gtk_len &&
|
||||
- os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) {
|
||||
+ if ((sm->gtk.gtk_len == (size_t) gd->gtk_len &&
|
||||
+ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) ||
|
||||
+ (sm->gtk_wnm_sleep.gtk_len == (size_t) gd->gtk_len &&
|
||||
+ os_memcmp(sm->gtk_wnm_sleep.gtk, gd->gtk,
|
||||
+ sm->gtk_wnm_sleep.gtk_len) == 0)) {
|
||||
wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
|
||||
"WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)",
|
||||
gd->keyidx, gd->tx, gd->gtk_len);
|
||||
@@ -757,8 +760,14 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
|
||||
}
|
||||
os_memset(gtk_buf, 0, sizeof(gtk_buf));
|
||||
|
||||
- sm->gtk.gtk_len = gd->gtk_len;
|
||||
- os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
|
||||
+ if (wnm_sleep) {
|
||||
+ sm->gtk_wnm_sleep.gtk_len = gd->gtk_len;
|
||||
+ os_memcpy(sm->gtk_wnm_sleep.gtk, gd->gtk,
|
||||
+ sm->gtk_wnm_sleep.gtk_len);
|
||||
+ } else {
|
||||
+ sm->gtk.gtk_len = gd->gtk_len;
|
||||
+ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -852,7 +861,7 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
|
||||
(wpa_supplicant_check_group_cipher(sm, sm->group_cipher,
|
||||
gtk_len, gtk_len,
|
||||
&gd.key_rsc_len, &gd.alg) ||
|
||||
- wpa_supplicant_install_gtk(sm, &gd, key_rsc))) {
|
||||
+ wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0))) {
|
||||
wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
|
||||
"RSN: Failed to install GTK");
|
||||
os_memset(&gd, 0, sizeof(gd));
|
||||
@@ -868,14 +877,18 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
|
||||
|
||||
#ifdef CONFIG_IEEE80211W
|
||||
static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
|
||||
- const struct wpa_igtk_kde *igtk)
|
||||
+ const struct wpa_igtk_kde *igtk,
|
||||
+ int wnm_sleep)
|
||||
{
|
||||
size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher);
|
||||
u16 keyidx = WPA_GET_LE16(igtk->keyid);
|
||||
|
||||
/* Detect possible key reinstallation */
|
||||
- if (sm->igtk.igtk_len == len &&
|
||||
- os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) {
|
||||
+ if ((sm->igtk.igtk_len == len &&
|
||||
+ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) ||
|
||||
+ (sm->igtk_wnm_sleep.igtk_len == len &&
|
||||
+ os_memcmp(sm->igtk_wnm_sleep.igtk, igtk->igtk,
|
||||
+ sm->igtk_wnm_sleep.igtk_len) == 0)) {
|
||||
wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
|
||||
"WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)",
|
||||
keyidx);
|
||||
@@ -900,8 +913,14 @@ static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
|
||||
return -1;
|
||||
}
|
||||
|
||||
- sm->igtk.igtk_len = len;
|
||||
- os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
|
||||
+ if (wnm_sleep) {
|
||||
+ sm->igtk_wnm_sleep.igtk_len = len;
|
||||
+ os_memcpy(sm->igtk_wnm_sleep.igtk, igtk->igtk,
|
||||
+ sm->igtk_wnm_sleep.igtk_len);
|
||||
+ } else {
|
||||
+ sm->igtk.igtk_len = len;
|
||||
+ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -924,7 +943,7 @@ static int ieee80211w_set_keys(struct wpa_sm *sm,
|
||||
return -1;
|
||||
|
||||
igtk = (const struct wpa_igtk_kde *) ie->igtk;
|
||||
- if (wpa_supplicant_install_igtk(sm, igtk) < 0)
|
||||
+ if (wpa_supplicant_install_igtk(sm, igtk, 0) < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1574,7 +1593,7 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
|
||||
if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc))
|
||||
key_rsc = null_rsc;
|
||||
|
||||
- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc) ||
|
||||
+ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0) ||
|
||||
wpa_supplicant_send_2_of_2(sm, key, ver, key_info) < 0)
|
||||
goto failed;
|
||||
os_memset(&gd, 0, sizeof(gd));
|
||||
@@ -2386,8 +2405,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
|
||||
sm->tptk_set = 0;
|
||||
os_memset(&sm->tptk, 0, sizeof(sm->tptk));
|
||||
os_memset(&sm->gtk, 0, sizeof(sm->gtk));
|
||||
+ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep));
|
||||
#ifdef CONFIG_IEEE80211W
|
||||
os_memset(&sm->igtk, 0, sizeof(sm->igtk));
|
||||
+ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep));
|
||||
#endif /* CONFIG_IEEE80211W */
|
||||
}
|
||||
|
||||
@@ -2920,8 +2941,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm)
|
||||
os_memset(&sm->ptk, 0, sizeof(sm->ptk));
|
||||
os_memset(&sm->tptk, 0, sizeof(sm->tptk));
|
||||
os_memset(&sm->gtk, 0, sizeof(sm->gtk));
|
||||
+ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep));
|
||||
#ifdef CONFIG_IEEE80211W
|
||||
os_memset(&sm->igtk, 0, sizeof(sm->igtk));
|
||||
+ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep));
|
||||
#endif /* CONFIG_IEEE80211W */
|
||||
#ifdef CONFIG_IEEE80211R
|
||||
os_memset(sm->xxkey, 0, sizeof(sm->xxkey));
|
||||
@@ -2986,7 +3009,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
|
||||
|
||||
wpa_hexdump_key(MSG_DEBUG, "Install GTK (WNM SLEEP)",
|
||||
gd.gtk, gd.gtk_len);
|
||||
- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc)) {
|
||||
+ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 1)) {
|
||||
os_memset(&gd, 0, sizeof(gd));
|
||||
wpa_printf(MSG_DEBUG, "Failed to install the GTK in "
|
||||
"WNM mode");
|
||||
@@ -2998,7 +3021,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
|
||||
const struct wpa_igtk_kde *igtk;
|
||||
|
||||
igtk = (const struct wpa_igtk_kde *) (buf + 2);
|
||||
- if (wpa_supplicant_install_igtk(sm, igtk) < 0)
|
||||
+ if (wpa_supplicant_install_igtk(sm, igtk, 1) < 0)
|
||||
return -1;
|
||||
#endif /* CONFIG_IEEE80211W */
|
||||
} else {
|
||||
diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
|
||||
index afc9e37..9a54631 100644
|
||||
--- a/src/rsn_supp/wpa_i.h
|
||||
+++ b/src/rsn_supp/wpa_i.h
|
||||
@@ -32,8 +32,10 @@ struct wpa_sm {
|
||||
int rx_replay_counter_set;
|
||||
u8 request_counter[WPA_REPLAY_COUNTER_LEN];
|
||||
struct wpa_gtk gtk;
|
||||
+ struct wpa_gtk gtk_wnm_sleep;
|
||||
#ifdef CONFIG_IEEE80211W
|
||||
struct wpa_igtk igtk;
|
||||
+ struct wpa_igtk igtk_wnm_sleep;
|
||||
#endif /* CONFIG_IEEE80211W */
|
||||
|
||||
struct eapol_sm *eapol; /* EAPOL state machine from upper level code */
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,79 @@
|
||||
From 8f82bc94e8697a9d47fa8774dfdaaede1084912c Mon Sep 17 00:00:00 2001
|
||||
From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
|
||||
Date: Fri, 29 Sep 2017 04:22:51 +0200
|
||||
Subject: [PATCH 4/8] Prevent installation of an all-zero TK
|
||||
|
||||
Properly track whether a PTK has already been installed to the driver
|
||||
and the TK part cleared from memory. This prevents an attacker from
|
||||
trying to trick the client into installing an all-zero TK.
|
||||
|
||||
This fixes the earlier fix in commit
|
||||
ad00d64e7d8827b3cebd665a0ceb08adabf15e1e ('Fix TK configuration to the
|
||||
driver in EAPOL-Key 3/4 retry case') which did not take into account
|
||||
possibility of an extra message 1/4 showing up between retries of
|
||||
message 3/4.
|
||||
|
||||
Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
|
||||
---
|
||||
src/common/wpa_common.h | 1 +
|
||||
src/rsn_supp/wpa.c | 5 ++---
|
||||
src/rsn_supp/wpa_i.h | 1 -
|
||||
3 files changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
|
||||
index d200285..1021ccb 100644
|
||||
--- a/src/common/wpa_common.h
|
||||
+++ b/src/common/wpa_common.h
|
||||
@@ -215,6 +215,7 @@ struct wpa_ptk {
|
||||
size_t kck_len;
|
||||
size_t kek_len;
|
||||
size_t tk_len;
|
||||
+ int installed; /* 1 if key has already been installed to driver */
|
||||
};
|
||||
|
||||
struct wpa_gtk {
|
||||
diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
|
||||
index 7a2c68d..0550a41 100644
|
||||
--- a/src/rsn_supp/wpa.c
|
||||
+++ b/src/rsn_supp/wpa.c
|
||||
@@ -510,7 +510,6 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm,
|
||||
os_memset(buf, 0, sizeof(buf));
|
||||
}
|
||||
sm->tptk_set = 1;
|
||||
- sm->tk_to_set = 1;
|
||||
|
||||
kde = sm->assoc_wpa_ie;
|
||||
kde_len = sm->assoc_wpa_ie_len;
|
||||
@@ -615,7 +614,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm,
|
||||
enum wpa_alg alg;
|
||||
const u8 *key_rsc;
|
||||
|
||||
- if (!sm->tk_to_set) {
|
||||
+ if (sm->ptk.installed) {
|
||||
wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
|
||||
"WPA: Do not re-install same PTK to the driver");
|
||||
return 0;
|
||||
@@ -659,7 +658,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm,
|
||||
|
||||
/* TK is not needed anymore in supplicant */
|
||||
os_memset(sm->ptk.tk, 0, WPA_TK_MAX_LEN);
|
||||
- sm->tk_to_set = 0;
|
||||
+ sm->ptk.installed = 1;
|
||||
|
||||
if (sm->wpa_ptk_rekey) {
|
||||
eloop_cancel_timeout(wpa_sm_rekey_ptk, sm, NULL);
|
||||
diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
|
||||
index 9a54631..41f371f 100644
|
||||
--- a/src/rsn_supp/wpa_i.h
|
||||
+++ b/src/rsn_supp/wpa_i.h
|
||||
@@ -24,7 +24,6 @@ struct wpa_sm {
|
||||
struct wpa_ptk ptk, tptk;
|
||||
int ptk_set, tptk_set;
|
||||
unsigned int msg_3_of_4_ok:1;
|
||||
- unsigned int tk_to_set:1;
|
||||
u8 snonce[WPA_NONCE_LEN];
|
||||
u8 anonce[WPA_NONCE_LEN]; /* ANonce from the last 1/4 msg */
|
||||
int renew_snonce;
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,64 @@
|
||||
From 12fac09b437a1dc8a0f253e265934a8aaf4d2f8b Mon Sep 17 00:00:00 2001
|
||||
From: Jouni Malinen <j@w1.fi>
|
||||
Date: Sun, 1 Oct 2017 12:32:57 +0300
|
||||
Subject: [PATCH 5/8] Fix PTK rekeying to generate a new ANonce
|
||||
|
||||
The Authenticator state machine path for PTK rekeying ended up bypassing
|
||||
the AUTHENTICATION2 state where a new ANonce is generated when going
|
||||
directly to the PTKSTART state since there is no need to try to
|
||||
determine the PMK again in such a case. This is far from ideal since the
|
||||
new PTK would depend on a new nonce only from the supplicant.
|
||||
|
||||
Fix this by generating a new ANonce when moving to the PTKSTART state
|
||||
for the purpose of starting new 4-way handshake to rekey PTK.
|
||||
|
||||
Signed-off-by: Jouni Malinen <j@w1.fi>
|
||||
---
|
||||
src/ap/wpa_auth.c | 24 +++++++++++++++++++++---
|
||||
1 file changed, 21 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
|
||||
index 707971d..bf10cc1 100644
|
||||
--- a/src/ap/wpa_auth.c
|
||||
+++ b/src/ap/wpa_auth.c
|
||||
@@ -1901,6 +1901,21 @@ SM_STATE(WPA_PTK, AUTHENTICATION2)
|
||||
}
|
||||
|
||||
|
||||
+static int wpa_auth_sm_ptk_update(struct wpa_state_machine *sm)
|
||||
+{
|
||||
+ if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) {
|
||||
+ wpa_printf(MSG_ERROR,
|
||||
+ "WPA: Failed to get random data for ANonce");
|
||||
+ sm->Disconnect = TRUE;
|
||||
+ return -1;
|
||||
+ }
|
||||
+ wpa_hexdump(MSG_DEBUG, "WPA: Assign new ANonce", sm->ANonce,
|
||||
+ WPA_NONCE_LEN);
|
||||
+ sm->TimeoutCtr = 0;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
SM_STATE(WPA_PTK, INITPMK)
|
||||
{
|
||||
u8 msk[2 * PMK_LEN];
|
||||
@@ -2458,9 +2473,12 @@ SM_STEP(WPA_PTK)
|
||||
SM_ENTER(WPA_PTK, AUTHENTICATION);
|
||||
else if (sm->ReAuthenticationRequest)
|
||||
SM_ENTER(WPA_PTK, AUTHENTICATION2);
|
||||
- else if (sm->PTKRequest)
|
||||
- SM_ENTER(WPA_PTK, PTKSTART);
|
||||
- else switch (sm->wpa_ptk_state) {
|
||||
+ else if (sm->PTKRequest) {
|
||||
+ if (wpa_auth_sm_ptk_update(sm) < 0)
|
||||
+ SM_ENTER(WPA_PTK, DISCONNECTED);
|
||||
+ else
|
||||
+ SM_ENTER(WPA_PTK, PTKSTART);
|
||||
+ } else switch (sm->wpa_ptk_state) {
|
||||
case WPA_PTK_INITIALIZE:
|
||||
break;
|
||||
case WPA_PTK_DISCONNECT:
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,132 @@
|
||||
From 6c4bed4f47d1960ec04981a9d50e5076aea5223d Mon Sep 17 00:00:00 2001
|
||||
From: Jouni Malinen <j@w1.fi>
|
||||
Date: Fri, 22 Sep 2017 11:03:15 +0300
|
||||
Subject: [PATCH 6/8] TDLS: Reject TPK-TK reconfiguration
|
||||
|
||||
Do not try to reconfigure the same TPK-TK to the driver after it has
|
||||
been successfully configured. This is an explicit check to avoid issues
|
||||
related to resetting the TX/RX packet number. There was already a check
|
||||
for this for TPK M2 (retries of that message are ignored completely), so
|
||||
that behavior does not get modified.
|
||||
|
||||
For TPK M3, the TPK-TK could have been reconfigured, but that was
|
||||
followed by immediate teardown of the link due to an issue in updating
|
||||
the STA entry. Furthermore, for TDLS with any real security (i.e.,
|
||||
ignoring open/WEP), the TPK message exchange is protected on the AP path
|
||||
and simple replay attacks are not feasible.
|
||||
|
||||
As an additional corner case, make sure the local nonce gets updated if
|
||||
the peer uses a very unlikely "random nonce" of all zeros.
|
||||
|
||||
Signed-off-by: Jouni Malinen <j@w1.fi>
|
||||
---
|
||||
src/rsn_supp/tdls.c | 38 ++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 36 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/rsn_supp/tdls.c b/src/rsn_supp/tdls.c
|
||||
index e424168..9eb9738 100644
|
||||
--- a/src/rsn_supp/tdls.c
|
||||
+++ b/src/rsn_supp/tdls.c
|
||||
@@ -112,6 +112,7 @@ struct wpa_tdls_peer {
|
||||
u8 tk[16]; /* TPK-TK; assuming only CCMP will be used */
|
||||
} tpk;
|
||||
int tpk_set;
|
||||
+ int tk_set; /* TPK-TK configured to the driver */
|
||||
int tpk_success;
|
||||
int tpk_in_progress;
|
||||
|
||||
@@ -192,6 +193,20 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
|
||||
u8 rsc[6];
|
||||
enum wpa_alg alg;
|
||||
|
||||
+ if (peer->tk_set) {
|
||||
+ /*
|
||||
+ * This same TPK-TK has already been configured to the driver
|
||||
+ * and this new configuration attempt (likely due to an
|
||||
+ * unexpected retransmitted frame) would result in clearing
|
||||
+ * the TX/RX sequence number which can break security, so must
|
||||
+ * not allow that to happen.
|
||||
+ */
|
||||
+ wpa_printf(MSG_INFO, "TDLS: TPK-TK for the peer " MACSTR
|
||||
+ " has already been configured to the driver - do not reconfigure",
|
||||
+ MAC2STR(peer->addr));
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
os_memset(rsc, 0, 6);
|
||||
|
||||
switch (peer->cipher) {
|
||||
@@ -209,12 +224,15 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ wpa_printf(MSG_DEBUG, "TDLS: Configure pairwise key for peer " MACSTR,
|
||||
+ MAC2STR(peer->addr));
|
||||
if (wpa_sm_set_key(sm, alg, peer->addr, -1, 1,
|
||||
rsc, sizeof(rsc), peer->tpk.tk, key_len) < 0) {
|
||||
wpa_printf(MSG_WARNING, "TDLS: Failed to set TPK to the "
|
||||
"driver");
|
||||
return -1;
|
||||
}
|
||||
+ peer->tk_set = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -696,7 +714,7 @@ static void wpa_tdls_peer_clear(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
|
||||
peer->cipher = 0;
|
||||
peer->qos_info = 0;
|
||||
peer->wmm_capable = 0;
|
||||
- peer->tpk_set = peer->tpk_success = 0;
|
||||
+ peer->tk_set = peer->tpk_set = peer->tpk_success = 0;
|
||||
peer->chan_switch_enabled = 0;
|
||||
os_memset(&peer->tpk, 0, sizeof(peer->tpk));
|
||||
os_memset(peer->inonce, 0, WPA_NONCE_LEN);
|
||||
@@ -1159,6 +1177,7 @@ skip_rsnie:
|
||||
wpa_tdls_peer_free(sm, peer);
|
||||
return -1;
|
||||
}
|
||||
+ peer->tk_set = 0; /* A new nonce results in a new TK */
|
||||
wpa_hexdump(MSG_DEBUG, "TDLS: Initiator Nonce for TPK handshake",
|
||||
peer->inonce, WPA_NONCE_LEN);
|
||||
os_memcpy(ftie->Snonce, peer->inonce, WPA_NONCE_LEN);
|
||||
@@ -1751,6 +1770,19 @@ static int wpa_tdls_addset_peer(struct wpa_sm *sm, struct wpa_tdls_peer *peer,
|
||||
}
|
||||
|
||||
|
||||
+static int tdls_nonce_set(const u8 *nonce)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < WPA_NONCE_LEN; i++) {
|
||||
+ if (nonce[i])
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
static int wpa_tdls_process_tpk_m1(struct wpa_sm *sm, const u8 *src_addr,
|
||||
const u8 *buf, size_t len)
|
||||
{
|
||||
@@ -2004,7 +2036,8 @@ skip_rsn:
|
||||
peer->rsnie_i_len = kde.rsn_ie_len;
|
||||
peer->cipher = cipher;
|
||||
|
||||
- if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0) {
|
||||
+ if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0 ||
|
||||
+ !tdls_nonce_set(peer->inonce)) {
|
||||
/*
|
||||
* There is no point in updating the RNonce for every obtained
|
||||
* TPK M1 frame (e.g., retransmission due to timeout) with the
|
||||
@@ -2020,6 +2053,7 @@ skip_rsn:
|
||||
"TDLS: Failed to get random data for responder nonce");
|
||||
goto error;
|
||||
}
|
||||
+ peer->tk_set = 0; /* A new nonce results in a new TK */
|
||||
}
|
||||
|
||||
#if 0
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,82 @@
|
||||
From b372ab0b7daea719749194dc554b26e6367603f2 Mon Sep 17 00:00:00 2001
|
||||
From: Jouni Malinen <j@w1.fi>
|
||||
Date: Fri, 22 Sep 2017 12:06:37 +0300
|
||||
Subject: [PATCH 8/8] FT: Do not allow multiple Reassociation Response frames
|
||||
|
||||
The driver is expected to not report a second association event without
|
||||
the station having explicitly request a new association. As such, this
|
||||
case should not be reachable. However, since reconfiguring the same
|
||||
pairwise or group keys to the driver could result in nonce reuse issues,
|
||||
be extra careful here and do an additional state check to avoid this
|
||||
even if the local driver ends up somehow accepting an unexpected
|
||||
Reassociation Response frame.
|
||||
|
||||
Signed-off-by: Jouni Malinen <j@w1.fi>
|
||||
---
|
||||
src/rsn_supp/wpa.c | 3 +++
|
||||
src/rsn_supp/wpa_ft.c | 8 ++++++++
|
||||
src/rsn_supp/wpa_i.h | 1 +
|
||||
3 files changed, 12 insertions(+)
|
||||
|
||||
diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
|
||||
index 0550a41..2a53c6f 100644
|
||||
--- a/src/rsn_supp/wpa.c
|
||||
+++ b/src/rsn_supp/wpa.c
|
||||
@@ -2440,6 +2440,9 @@ void wpa_sm_notify_disassoc(struct wpa_sm *sm)
|
||||
#ifdef CONFIG_TDLS
|
||||
wpa_tdls_disassoc(sm);
|
||||
#endif /* CONFIG_TDLS */
|
||||
+#ifdef CONFIG_IEEE80211R
|
||||
+ sm->ft_reassoc_completed = 0;
|
||||
+#endif /* CONFIG_IEEE80211R */
|
||||
|
||||
/* Keys are not needed in the WPA state machine anymore */
|
||||
wpa_sm_drop_sa(sm);
|
||||
diff --git a/src/rsn_supp/wpa_ft.c b/src/rsn_supp/wpa_ft.c
|
||||
index 205793e..d45bb45 100644
|
||||
--- a/src/rsn_supp/wpa_ft.c
|
||||
+++ b/src/rsn_supp/wpa_ft.c
|
||||
@@ -153,6 +153,7 @@ static u8 * wpa_ft_gen_req_ies(struct wpa_sm *sm, size_t *len,
|
||||
u16 capab;
|
||||
|
||||
sm->ft_completed = 0;
|
||||
+ sm->ft_reassoc_completed = 0;
|
||||
|
||||
buf_len = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
|
||||
2 + sm->r0kh_id_len + ric_ies_len + 100;
|
||||
@@ -681,6 +682,11 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ if (sm->ft_reassoc_completed) {
|
||||
+ wpa_printf(MSG_DEBUG, "FT: Reassociation has already been completed for this FT protocol instance - ignore unexpected retransmission");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
if (wpa_ft_parse_ies(ies, ies_len, &parse) < 0) {
|
||||
wpa_printf(MSG_DEBUG, "FT: Failed to parse IEs");
|
||||
return -1;
|
||||
@@ -781,6 +787,8 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ sm->ft_reassoc_completed = 1;
|
||||
+
|
||||
if (wpa_ft_process_gtk_subelem(sm, parse.gtk, parse.gtk_len) < 0)
|
||||
return -1;
|
||||
|
||||
diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
|
||||
index 41f371f..56f88dc 100644
|
||||
--- a/src/rsn_supp/wpa_i.h
|
||||
+++ b/src/rsn_supp/wpa_i.h
|
||||
@@ -128,6 +128,7 @@ struct wpa_sm {
|
||||
size_t r0kh_id_len;
|
||||
u8 r1kh_id[FT_R1KH_ID_LEN];
|
||||
int ft_completed;
|
||||
+ int ft_reassoc_completed;
|
||||
int over_the_ds_in_progress;
|
||||
u8 target_ap[ETH_ALEN]; /* over-the-DS target AP */
|
||||
int set_ptk_after_assoc;
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,226 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
inherit toolchain-funcs eutils systemd
|
||||
|
||||
# bogus commit to force manifest regeneration #596462
|
||||
|
||||
DESCRIPTION="IEEE 802.11 wireless LAN Host AP daemon"
|
||||
HOMEPAGE="http://hostap.epitest.fi"
|
||||
SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz"
|
||||
|
||||
LICENSE="|| ( GPL-2 BSD )"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm ~mips ~ppc x86"
|
||||
IUSE="ipv6 logwatch netlink sqlite +ssl +wps +crda"
|
||||
|
||||
DEPEND="ssl? ( dev-libs/openssl:*[-bindist] )
|
||||
kernel_linux? (
|
||||
dev-libs/libnl:3
|
||||
crda? ( net-wireless/crda )
|
||||
)
|
||||
netlink? ( net-libs/libnfnetlink )
|
||||
sqlite? ( >=dev-db/sqlite-3 )"
|
||||
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
S="${S}/${PN}"
|
||||
|
||||
src_prepare() {
|
||||
# Allow users to apply patches to src/drivers for example,
|
||||
# i.e. anything outside ${S}/${PN}
|
||||
pushd ../ >/dev/null || die
|
||||
# https://w1.fi/security/2017-1/wpa-packet-number-reuse-with-replayed-messages.txt
|
||||
eapply "${FILESDIR}/2017-1/rebased-v2.6-0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch"
|
||||
eapply "${FILESDIR}/2017-1/rebased-v2.6-0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch"
|
||||
eapply "${FILESDIR}/2017-1/rebased-v2.6-0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch"
|
||||
eapply "${FILESDIR}/2017-1/rebased-v2.6-0004-Prevent-installation-of-an-all-zero-TK.patch"
|
||||
eapply "${FILESDIR}/2017-1/rebased-v2.6-0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch"
|
||||
eapply "${FILESDIR}/2017-1/rebased-v2.6-0006-TDLS-Reject-TPK-TK-reconfiguration.patch"
|
||||
eapply "${FILESDIR}/2017-1/rebased-v2.6-0008-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch"
|
||||
default
|
||||
popd >/dev/null || die
|
||||
|
||||
sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \
|
||||
"${S}/hostapd.conf" || die
|
||||
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local CONFIG="${S}/.config"
|
||||
|
||||
# toolchain setup
|
||||
echo "CC = $(tc-getCC)" > ${CONFIG}
|
||||
|
||||
# EAP authentication methods
|
||||
echo "CONFIG_EAP=y" >> ${CONFIG}
|
||||
echo "CONFIG_ERP=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_MD5=y" >> ${CONFIG}
|
||||
|
||||
if use ssl; then
|
||||
# SSL authentication methods
|
||||
echo "CONFIG_EAP_FAST=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_TLS=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_TTLS=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_PEAP=y" >> ${CONFIG}
|
||||
echo "CONFIG_TLSV11=y" >> ${CONFIG}
|
||||
echo "CONFIG_TLSV12=y" >> ${CONFIG}
|
||||
fi
|
||||
|
||||
if use wps; then
|
||||
# Enable Wi-Fi Protected Setup
|
||||
echo "CONFIG_WPS=y" >> ${CONFIG}
|
||||
echo "CONFIG_WPS2=y" >> ${CONFIG}
|
||||
echo "CONFIG_WPS_UPNP=y" >> ${CONFIG}
|
||||
echo "CONFIG_WPS_NFC=y" >> ${CONFIG}
|
||||
einfo "Enabling Wi-Fi Protected Setup support"
|
||||
fi
|
||||
|
||||
echo "CONFIG_EAP_IKEV2=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_TNC=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_GTC=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_SIM=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_AKA=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_AKA_PRIME=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_EKE=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_PAX=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_PSK=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_SAKE=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_GPSK=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_GPSK_SHA256=y" >> ${CONFIG}
|
||||
echo "CONFIG_EAP_PWD=y" >> ${CONFIG}
|
||||
|
||||
einfo "Enabling drivers: "
|
||||
|
||||
# drivers
|
||||
echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG}
|
||||
einfo " HostAP driver enabled"
|
||||
echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG}
|
||||
einfo " Wired driver enabled"
|
||||
echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG}
|
||||
einfo " Prism54 driver enabled"
|
||||
echo "CONFIG_DRIVER_NONE=y" >> ${CONFIG}
|
||||
einfo " None driver enabled"
|
||||
|
||||
einfo " nl80211 driver enabled"
|
||||
echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG}
|
||||
|
||||
# epoll
|
||||
echo "CONFIG_ELOOP_EPOLL=y" >> ${CONFIG}
|
||||
|
||||
# misc
|
||||
echo "CONFIG_DEBUG_FILE=y" >> ${CONFIG}
|
||||
echo "CONFIG_PKCS12=y" >> ${CONFIG}
|
||||
echo "CONFIG_RADIUS_SERVER=y" >> ${CONFIG}
|
||||
echo "CONFIG_IAPP=y" >> ${CONFIG}
|
||||
echo "CONFIG_IEEE80211R=y" >> ${CONFIG}
|
||||
echo "CONFIG_IEEE80211W=y" >> ${CONFIG}
|
||||
echo "CONFIG_IEEE80211N=y" >> ${CONFIG}
|
||||
echo "CONFIG_IEEE80211AC=y" >> ${CONFIG}
|
||||
echo "CONFIG_PEERKEY=y" >> ${CONFIG}
|
||||
echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG}
|
||||
echo "CONFIG_INTERWORKING=y" >> ${CONFIG}
|
||||
echo "CONFIG_FULL_DYNAMIC_VLAN=y" >> ${CONFIG}
|
||||
echo "CONFIG_HS20=y" >> ${CONFIG}
|
||||
echo "CONFIG_WNM=y" >> ${CONFIG}
|
||||
echo "CONFIG_FST=y" >> ${CONFIG}
|
||||
echo "CONFIG_FST_TEST=y" >> ${CONFIG}
|
||||
echo "CONFIG_ACS=y" >> ${CONFIG}
|
||||
|
||||
if use netlink; then
|
||||
# Netlink support
|
||||
echo "CONFIG_VLAN_NETLINK=y" >> ${CONFIG}
|
||||
fi
|
||||
|
||||
if use ipv6; then
|
||||
# IPv6 support
|
||||
echo "CONFIG_IPV6=y" >> ${CONFIG}
|
||||
fi
|
||||
|
||||
if use sqlite; then
|
||||
# Sqlite support
|
||||
echo "CONFIG_SQLITE=y" >> ${CONFIG}
|
||||
fi
|
||||
|
||||
# If we are using libnl 2.0 and above, enable support for it
|
||||
# Removed for now, since the 3.2 version is broken, and we don't
|
||||
# support it.
|
||||
if has_version ">=dev-libs/libnl-3.2"; then
|
||||
echo "CONFIG_LIBNL32=y" >> .config
|
||||
fi
|
||||
|
||||
# TODO: Add support for BSD drivers
|
||||
|
||||
default_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake V=1
|
||||
|
||||
if use ssl; then
|
||||
emake V=1 nt_password_hash
|
||||
emake V=1 hlr_auc_gw
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
insinto /etc/${PN}
|
||||
doins ${PN}.{conf,accept,deny,eap_user,radius_clients,sim_db,wpa_psk}
|
||||
|
||||
fperms -R 600 /etc/${PN}
|
||||
|
||||
dosbin ${PN}
|
||||
dobin ${PN}_cli
|
||||
|
||||
use ssl && dobin nt_password_hash hlr_auc_gw
|
||||
|
||||
newinitd "${FILESDIR}"/${PN}-init.d ${PN}
|
||||
newconfd "${FILESDIR}"/${PN}-conf.d ${PN}
|
||||
systemd_dounit "${FILESDIR}"/${PN}.service
|
||||
|
||||
doman ${PN}{.8,_cli.1}
|
||||
|
||||
dodoc ChangeLog README
|
||||
use wps && dodoc README-WPS
|
||||
|
||||
docinto examples
|
||||
dodoc wired.conf
|
||||
|
||||
if use logwatch; then
|
||||
insinto /etc/log.d/conf/services/
|
||||
doins logwatch/${PN}.conf
|
||||
|
||||
exeinto /etc/log.d/scripts/services/
|
||||
doexe logwatch/${PN}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
einfo
|
||||
einfo "If you are running openRC you need to follow this instructions:"
|
||||
einfo "In order to use ${PN} you need to set up your wireless card"
|
||||
einfo "for master mode in /etc/conf.d/net and then start"
|
||||
einfo "/etc/init.d/${PN}."
|
||||
einfo
|
||||
einfo "Example configuration:"
|
||||
einfo
|
||||
einfo "config_wlan0=( \"192.168.1.1/24\" )"
|
||||
einfo "channel_wlan0=\"6\""
|
||||
einfo "essid_wlan0=\"test\""
|
||||
einfo "mode_wlan0=\"master\""
|
||||
einfo
|
||||
#if [ -e "${KV_DIR}"/net/mac80211 ]; then
|
||||
# einfo "This package now compiles against the headers installed by"
|
||||
# einfo "the kernel source for the mac80211 driver. You should "
|
||||
# einfo "re-emerge ${PN} after upgrading your kernel source."
|
||||
#fi
|
||||
|
||||
if use wps; then
|
||||
einfo "You have enabled Wi-Fi Protected Setup support, please"
|
||||
einfo "read the README-WPS file in /usr/share/doc/${P}"
|
||||
einfo "for info on how to use WPS"
|
||||
fi
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue