parent
764e7b757c
commit
23a3c08445
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
DIST openpgp-keys-tcpdump-20210416.asc 1776 BLAKE2B d0522a6e03156685b88e74d80311ec37065430ad304116c892b7623b792957aaff38abf1b41f10e9c9ca8a74f852659b6194da61d5d4f309e48ce82a10c740c5 SHA512 5182b3ecc229cdb53b4ecc14696717698df3ffdca93482a771945b4e988da929dc30ad11cad272c6545c10290df1dc0338c26c039821ad19acabb9c08fd690ad
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>sam@gentoo.org</email>
|
||||
<name>Sam James</name>
|
||||
</maintainer>
|
||||
<stabilize-allarches/>
|
||||
</pkgmetadata>
|
@ -0,0 +1,20 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="OpenPGP keys used to sign tcpdump releases"
|
||||
HOMEPAGE="https://www.tcpdump.org/index.html#latest-releases"
|
||||
SRC_URI="https://www.tcpdump.org/release/signing-key.asc -> ${P}.asc"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
|
||||
src_install() {
|
||||
local files=( ${A} )
|
||||
|
||||
insinto /usr/share/openpgp-keys
|
||||
newins - tcpdump.asc < <(cat "${files[@]/#/${DISTDIR}/}" || die)
|
||||
}
|
Binary file not shown.
@ -1,2 +1 @@
|
||||
DIST gnuplot-mode-0.7.0.tar.gz 373475 BLAKE2B 6aa547b90922fa445de10825ae8f0c05249a335a1cc531118200bc49c4b62f610e07a7c5bd694a3c6bf6605b937a520a8008d67263d2e83cabf009fb855e7a97 SHA512 fdf04a3a32755892d422de8a535682ff44d1b635ecdc814738564376f5c7027a82c23807439835f2b7bf959f4f8b7a7d38d07a643f84ab2056ba187f3558e596
|
||||
DIST gnuplot-mode-0.8.0.tar.gz 352106 BLAKE2B 5408cc682b205ee712d2e0ff94b57a585d4040a62d1c61b3248cac63c16c76899b4ebe9b8e6ff091216beac3c9c79ea1425e018b275145d8ed5aff3b64e524bf SHA512 d1f93f0a28036ed66869ce228ff7c7007cdd463006d29930f01a6c5fa31c0487f603f0394f423fb8831b054e8d465f669f11ec2c3f8115ef1c84d828f77056cf
|
||||
|
@ -1,43 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit readme.gentoo elisp
|
||||
|
||||
DESCRIPTION="Gnuplot mode for Emacs"
|
||||
HOMEPAGE="http://xafs.org/BruceRavel/GnuplotMode"
|
||||
SRC_URI="https://github.com/bruceravel/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
||||
IUSE="doc"
|
||||
|
||||
DEPEND="doc? ( virtual/latex-base )"
|
||||
RDEPEND="sci-visualization/gnuplot[-emacs(-)]"
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
EMACS="${EMACS}" \
|
||||
--with-lispdir="${EPREFIX}${SITELISP}/${PN}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake
|
||||
use doc && emake pdf
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||
|
||||
dodoc README.org
|
||||
use doc && dodoc gpelcard.pdf
|
||||
|
||||
DOC_CONTENTS="Please see ${SITELISP}/${PN}/gnuplot.el for the
|
||||
complete documentation."
|
||||
readme.gentoo_create_doc
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,2 +1,3 @@
|
||||
DIST mydumper-0.10.1.tar.gz 63967 BLAKE2B ad2876eb4fd6528c119d722e70b096d12698119e6d84737601d7bc0e71022926f579d21456b73b8ff1d384c961256538467badeaceaf60a92b333196a17dda10 SHA512 dbcb207c8ac61b286cd4464a3f2c67ea6972d1cab215c09a577cdf621f685011cc26e1e36399b72be2a8165b4e4c518b401be928b6a1a31e35d2f27c169dcc18
|
||||
DIST mydumper-0.10.3.tar.gz 64622 BLAKE2B 14020b6bbb72271659dec965de164274e2bf81c72b52fa7c1d6997f393d1c0cc977d06d689bb7d7c6e3da86926add2c61f1551afdd30be71ddc97c4803d4e455 SHA512 d7cf6897815de3d46ec15cbcacc393722f7d547300a45e70960e47b8ce30e06a5e652f52a0ff8999d2ac3662b4a48927aadbab464668ac23f446eee95ba574cf
|
||||
DIST mydumper-0.9.5.tar.gz 60010 BLAKE2B f74a949712526b3fc3b1957c9f9dc5c5f820d88f781926331e751eb99e6315b37bd8f38ac8a0e1943485cc74fe9b14a7e74e955c77ceba6b10bb1e18a7720d75 SHA512 5b72234c88fd22c103afb9fa5a7c3c99d6585cb450b8cc7385cfd23ae2ce09c0848d15767a5957a7b8f87a7614bdb058dea8990f1a2a12300c2c74fc9da2de75
|
||||
|
@ -0,0 +1,45 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake
|
||||
|
||||
DESCRIPTION="A high-performance multi-threaded backup (and restore) toolset for MySQL"
|
||||
HOMEPAGE="https://github.com/maxbube/mydumper"
|
||||
SRC_URI="https://github.com/maxbube/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="doc"
|
||||
|
||||
RDEPEND="app-arch/zstd
|
||||
dev-db/mysql-connector-c:=
|
||||
dev-libs/glib:=
|
||||
dev-libs/libpcre:=
|
||||
dev-libs/openssl:0=
|
||||
sys-libs/zlib:="
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="virtual/pkgconfig
|
||||
doc? ( dev-python/sphinx )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-atomic.patch" #654314
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
# respect user cflags; do not expand ${CMAKE_C_FLAGS} (!)
|
||||
sed -i -e 's|-Werror -O3 -g|${CMAKE_C_FLAGS}|' CMakeLists.txt || die
|
||||
|
||||
# fix doc install path
|
||||
sed -i -e "s|share/doc/mydumper|share/doc/${PF}|" docs/CMakeLists.txt || die
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=("-DBUILD_DOCS=$(usex doc)")
|
||||
|
||||
cmake_src_configure
|
||||
}
|
Binary file not shown.
@ -1,6 +1,7 @@
|
||||
DIST commons-lang-2.0-src.tar.gz 440989 BLAKE2B d71d73504c740138bdb9c1e190e0f4e846fb08a35d8ee2430ac2e24b0094e83cfc8cab9eaa44230c0d7fd26ec768bf7b448f04e123467acc20d49af6efe3008b SHA512 aecbbdd8eb2712981dcd8615bac2ec69e3ea7ae137407287d2a9b3eeaddb48e5367bc9c5cb8d232429ac6091548dac8af67e0593366365c04fcfe39984c3e549
|
||||
DIST commons-lang-2.6-src.tar.gz 564032 BLAKE2B 9d72b0426f2146eaa8498a6601edf80dbf45a16ef5ee14cf4ed87130e6d3732d5c713f25f44c10435baa1357f61a271acb88483915968aaf645d1ceaa318c601 SHA512 4a30ed153f93fe6616a28974721bdf005d064203ef8a3dd375d6c1176647c0cdbd29cfde2a580e2c8d26bfa4655be6be7025b8ccae94086dcd816676c5cf8e87
|
||||
DIST commons-lang-3.11.tar.gz 1054329 BLAKE2B 7d198e2e7f09f3711909a168cbef405d06aff7482d8ab87059aa11584e82d950ea32f1c1a4d0c9c6c54729396e6b5ee6165a7689b3c38081af31b7a3dad23657 SHA512 ebcb13e47c24e6984835d9d6904fe33077aa3ba781cd61db109fa7005517e4e74cf086c4789a1d65cf3d6c4924b32337c98827a75f91aab908d8e8b9d3b92087
|
||||
DIST commons-lang-3.12.0-sources.tar.gz 1072858 BLAKE2B d6b7ee9ef165e60f61d8d0dfaaf38919877f2edc6742cd58b2b70d379e807e75d9dc24e19f23db1b174d1797d6ef0af7700d686dd835d7a40bf2b2a91346e215 SHA512 80d1b960ae0b02859be329ea60d68cef33f3c7be7ec19752b3c9cfef442adef480878317ce2cfa309a27e662e2c72cab22023eaa3702e27970a1e5d55ca43f57
|
||||
DIST commons-lang-3.4-sources.tar.gz 771275 BLAKE2B 870f9c5aa18cb68cb88edc28d426df258af69eb6efc3dfe77bab40e2e81bddd4e56b1244a5ad4433f9dd4c0d533dc7b3b10c865fcaaefd9602e1f681bb48538b SHA512 44e93f2d8f7e6a54becaa797ee3348c6125ccdce96d772158f2a1e5ba2a7ecaecf00a6290f2e0fe2fa61db422313709ec6bc836d9296e2f16c5acf6635bb12b5
|
||||
DIST commons-lang-3.6.tar.gz 852347 BLAKE2B 4a3ad5f557d27e4a109f6e65f9fe8d792b017376227747669bf949725cdc3817a7f14766e121db099e027fc3c322eeb3f68c41786be9a8d500172cfd3c104c7f SHA512 fb627605154c1b3d4561c27ad931bfcac43303ce98ffca8fca538ce6368506cdd2b80de7f22a93ca628e86804923940dd9909bb884c77ca196b654521febc60a
|
||||
DIST commons-lang3-3.1-src.tar.gz 638619 BLAKE2B f971afc9bdd3896178bc4be0b6c5d8809f1c1ac0d69ad73ba0d71c185c600ca7a55c3b4877af64b552ccebed9567aa7830f236f2c0d9c38f259870b894c9d745 SHA512 4d201c695a9b908a1809bbab689f80c6aa508b221b4c2786974eada08e647936f5879841c64eed509032ffdd5410735480e7ecb2910295d0f79e857c27019560
|
||||
|
@ -0,0 +1,33 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# Skeleton command:
|
||||
# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri https://mirror.checkdomain.de/apache//commons/lang/source/commons-lang3-3.12.0-src.tar.gz --slot 3.6 --keywords "~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris" --ebuild commons-lang-3.12.0.ebuild
|
||||
|
||||
EAPI=7
|
||||
|
||||
JAVA_PKG_IUSE="doc source"
|
||||
MAVEN_ID="org.apache.commons:commons-lang3:3.12.0"
|
||||
|
||||
inherit java-pkg-2 java-pkg-simple
|
||||
|
||||
DESCRIPTION="Commons components to manipulate core java classes"
|
||||
HOMEPAGE="https://commons.apache.org/proper/commons-lang/"
|
||||
SRC_URI="mirror://apache/commons/lang/source/${PN}3-${PV}-src.tar.gz -> ${P}-sources.tar.gz"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="3.6"
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris"
|
||||
|
||||
DEPEND="
|
||||
>=virtual/jdk-1.8:*
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
>=virtual/jre-1.8:*
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${PN}3-${PV}-src"
|
||||
|
||||
JAVA_ENCODING="ISO-8859-1"
|
||||
|
||||
JAVA_SRC_DIR="src/main/java"
|
@ -1,335 +0,0 @@
|
||||
/*
|
||||
* Main.java The main application class.
|
||||
*
|
||||
* Created on May 1, 2007, 6:32 PM
|
||||
*
|
||||
* Copyright (C) 2007,2008 Petteri Räty <betelgeuse@gentoo.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
package javadepchecker;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.cli.CommandLine;
|
||||
import org.apache.commons.cli.CommandLineParser;
|
||||
import org.apache.commons.cli.HelpFormatter;
|
||||
import org.apache.commons.cli.Options;
|
||||
import org.apache.commons.cli.ParseException;
|
||||
import org.apache.commons.cli.PosixParser;
|
||||
import org.objectweb.asm.AnnotationVisitor;
|
||||
import org.objectweb.asm.ClassReader;
|
||||
import org.objectweb.asm.FieldVisitor;
|
||||
import org.objectweb.asm.Label;
|
||||
import org.objectweb.asm.MethodVisitor;
|
||||
import org.objectweb.asm.Type;
|
||||
import org.objectweb.asm.commons.EmptyVisitor;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author betelgeuse
|
||||
* @author serkan
|
||||
*/
|
||||
public final class Main extends EmptyVisitor {
|
||||
|
||||
static private String image = "";
|
||||
private Set<String> deps = new HashSet<String>();
|
||||
private Set<String> current = new HashSet<String>();
|
||||
|
||||
/** Creates a new instance of Main */
|
||||
public Main() {
|
||||
}
|
||||
|
||||
private static Collection<String> getPackageJars(String pkg) {
|
||||
ArrayList<String> jars = new ArrayList<String>();
|
||||
try {
|
||||
Process p = Runtime.getRuntime().exec("java-config -p " + pkg);
|
||||
p.waitFor();
|
||||
BufferedReader in;
|
||||
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||
String output = in.readLine();
|
||||
if (output!=null/* package somehow missing*/ && !output.trim().equals("")) {
|
||||
for (String jar : output.split(":")) {
|
||||
jars.add(jar);
|
||||
}
|
||||
}
|
||||
} catch (InterruptedException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
return jars;
|
||||
}
|
||||
|
||||
public void processJar(JarFile jar) throws IOException {
|
||||
for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();) {
|
||||
JarEntry entry = e.nextElement();
|
||||
String name = entry.getName();
|
||||
if (!entry.isDirectory() && name.endsWith(".class")) {
|
||||
this.current.add(name);
|
||||
InputStream stream = jar.getInputStream(entry);
|
||||
new ClassReader(stream).accept(this, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean depNeeded(String pkg, Collection<String> deps) throws IOException {
|
||||
Collection<String> jars = getPackageJars(pkg);
|
||||
// We have a virtual with VM provider here
|
||||
if (jars.size() == 0) {
|
||||
return true;
|
||||
}
|
||||
for (String jarName : jars) {
|
||||
JarFile jar = new JarFile(jarName);
|
||||
for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();) {
|
||||
String name = e.nextElement().getName();
|
||||
if (deps.contains(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean depsFound(Collection<String> pkgs, Collection<String> deps) throws IOException {
|
||||
boolean found = true;
|
||||
Collection<String> jars = new ArrayList<String>();
|
||||
String[] bootClassPathJars = System.getProperty("sun.boot.class.path").split(":");
|
||||
// Do we need "java-config -r" here?
|
||||
for (String jar : bootClassPathJars) {
|
||||
File jarFile = new File(jar);
|
||||
if (jarFile.exists()) {
|
||||
jars.add(jar);
|
||||
}
|
||||
}
|
||||
for (Iterator<String> pkg = pkgs.iterator(); pkg.hasNext();) {
|
||||
jars.addAll(getPackageJars(pkg.next()));
|
||||
}
|
||||
|
||||
if (jars.size() == 0) {
|
||||
return false;
|
||||
}
|
||||
ArrayList<String> jarClasses = new ArrayList<String>();
|
||||
for (String jarName : jars) {
|
||||
JarFile jar = new JarFile(jarName);
|
||||
for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();) {
|
||||
jarClasses.add(e.nextElement().getName());
|
||||
}
|
||||
}
|
||||
for (String dep : deps) {
|
||||
if (!jarClasses.contains(dep)) {
|
||||
if (found) {
|
||||
System.out.println("Class files not found via DEPEND in package.env");
|
||||
}
|
||||
System.out.println("\t" + dep);
|
||||
found = false;
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
private static boolean checkPkg(File env) {
|
||||
boolean needed = true;
|
||||
boolean found = true;
|
||||
HashSet<String> pkgs = new HashSet<String>();
|
||||
Collection<String> deps = null;
|
||||
|
||||
BufferedReader in = null;
|
||||
try {
|
||||
Pattern dep_re = Pattern.compile("^DEPEND=\"([^\"]*)\"$");
|
||||
Pattern cp_re = Pattern.compile("^CLASSPATH=\"([^\"]*)\"$");
|
||||
|
||||
String line;
|
||||
in = new BufferedReader(new FileReader(env));
|
||||
while ((line = in.readLine()) != null) {
|
||||
Matcher m = dep_re.matcher(line);
|
||||
if (m.matches()) {
|
||||
String atoms = m.group(1);
|
||||
for (String atom : atoms.split(":")) {
|
||||
String pkg = atom;
|
||||
if (atom.contains("@")) {
|
||||
pkg = atom.split("@")[1];
|
||||
}
|
||||
pkgs.add(pkg);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
m = cp_re.matcher(line);
|
||||
if (m.matches()) {
|
||||
Main classParser = new Main();
|
||||
for (String jar : m.group(1).split(":")) {
|
||||
if (jar.endsWith(".jar")) {
|
||||
classParser.processJar(new JarFile(image + jar));
|
||||
}
|
||||
}
|
||||
deps = classParser.getDeps();
|
||||
}
|
||||
}
|
||||
|
||||
for (String pkg : pkgs) {
|
||||
if (!depNeeded(pkg, deps)) {
|
||||
if (needed) {
|
||||
System.out.println("Possibly unneeded dependencies found");
|
||||
}
|
||||
System.out.println("\t" + pkg);
|
||||
needed = false;
|
||||
}
|
||||
}
|
||||
found = depsFound(pkgs, deps);
|
||||
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} finally {
|
||||
try {
|
||||
in.close();
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
return needed && found;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param args the command line arguments
|
||||
*/
|
||||
public static void main(String[] args) throws IOException {
|
||||
int exit = 0;
|
||||
try {
|
||||
CommandLineParser parser = new PosixParser();
|
||||
Options options = new Options();
|
||||
options.addOption("h", "help", false, "print help");
|
||||
options.addOption("i", "image", true, "image directory");
|
||||
options.addOption("v", "verbose", false, "print verbose output");
|
||||
CommandLine line = parser.parse(options, args);
|
||||
String[] files = line.getArgs();
|
||||
if (line.hasOption("h") || files.length == 0) {
|
||||
HelpFormatter h = new HelpFormatter();
|
||||
h.printHelp("java-dep-check [-i <image>] <package.env>+", options);
|
||||
} else {
|
||||
image = line.getOptionValue("i", "");
|
||||
|
||||
for (String arg : files) {
|
||||
if (line.hasOption('v')) {
|
||||
System.out.println("Checking " + arg);
|
||||
}
|
||||
if (!checkPkg(new File(arg))) {
|
||||
exit = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (ParseException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
System.exit(exit);
|
||||
}
|
||||
|
||||
private void addDep(String dep) {
|
||||
deps.add(dep + ".class");
|
||||
}
|
||||
|
||||
private void addDep(Type dep) {
|
||||
if (dep.getSort() == Type.ARRAY) {
|
||||
addDep(dep.getElementType());
|
||||
}
|
||||
if (dep.getSort() == Type.OBJECT) {
|
||||
addDep(dep.getInternalName());
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<String> getDeps() {
|
||||
ArrayList<String> result = new ArrayList<String>();
|
||||
for (String s : deps) {
|
||||
if (!current.contains(s)) {
|
||||
result.add(s);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
|
||||
if(superName != null) {
|
||||
addDep(superName);
|
||||
}
|
||||
for (String iface : interfaces) {
|
||||
addDep(iface);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
|
||||
addDep(Type.getType(desc));
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
|
||||
for (Type param : Type.getArgumentTypes(desc)) {
|
||||
addDep(param);
|
||||
}
|
||||
|
||||
if (exceptions != null) {
|
||||
for (String exception : exceptions) {
|
||||
addDep(exception);
|
||||
}
|
||||
}
|
||||
addDep(Type.getReturnType(desc));
|
||||
return new EmptyVisitor() {
|
||||
@Override
|
||||
public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) {
|
||||
addDep(Type.getType(desc));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitFieldInsn(int opcode, String owner, String name, String desc) {
|
||||
addDep(Type.getObjectType(owner));
|
||||
addDep(Type.getType(desc));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitMethodInsn(int opcode, String owner, String name, String desc) {
|
||||
addDep(Type.getObjectType(owner));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible) {
|
||||
return Main.this.visitAnnotation(desc, visible);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
|
||||
addDep(Type.getType(desc));
|
||||
return null;
|
||||
}
|
||||
}
|
@ -1,436 +0,0 @@
|
||||
/**
|
||||
* This file is part of javadepchecker
|
||||
*
|
||||
* Copyright (C) 2016 Gentoo Foundation
|
||||
*
|
||||
* javadepchecker is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
package javadepchecker;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.commons.cli.CommandLine;
|
||||
import org.apache.commons.cli.CommandLineParser;
|
||||
import org.apache.commons.cli.HelpFormatter;
|
||||
import org.apache.commons.cli.Options;
|
||||
import org.apache.commons.cli.ParseException;
|
||||
import org.apache.commons.cli.PosixParser;
|
||||
|
||||
import org.objectweb.asm.AnnotationVisitor;
|
||||
import org.objectweb.asm.ClassReader;
|
||||
import org.objectweb.asm.ClassVisitor;
|
||||
import org.objectweb.asm.FieldVisitor;
|
||||
import org.objectweb.asm.Label;
|
||||
import org.objectweb.asm.MethodVisitor;
|
||||
import org.objectweb.asm.Opcodes;
|
||||
import org.objectweb.asm.Type;
|
||||
|
||||
/**
|
||||
* Main Class of javadepchecker
|
||||
* Gentoo Java Utility to scan class files for unneeded dependencies and
|
||||
* ophaned class files
|
||||
*
|
||||
* @author Petteri Räty <betelgeuse@gentoo.org>
|
||||
* @author Serkan Kaba <serkan@gentoo.org>
|
||||
* @author William L. Thomson Jr., <wlt@o-sinc.com>
|
||||
*/
|
||||
public final class Main extends ClassVisitor {
|
||||
|
||||
static private String image = "";
|
||||
private Set<String> mDeps = new HashSet<>();
|
||||
private Set<String> mCurrent = new HashSet<>();
|
||||
|
||||
/**
|
||||
* Empty Constructor, sets ASM op code version
|
||||
*/
|
||||
public Main() {
|
||||
super(Opcodes.ASM5);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get jar names from the Gentoo package and store in a collection
|
||||
*
|
||||
* @param pkg Gentoo package name
|
||||
* @return a collection of jar names
|
||||
*/
|
||||
private static Collection<String> getPackageJars(String pkg) {
|
||||
ArrayList<String> jars = new ArrayList<>();
|
||||
try {
|
||||
Process p = Runtime.getRuntime().exec("java-config -p " + pkg);
|
||||
p.waitFor();
|
||||
BufferedReader in;
|
||||
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||
String output = in.readLine();
|
||||
if (output!=null/* package somehow missing*/ &&
|
||||
!output.trim().isEmpty()) {
|
||||
jars.addAll(Arrays.asList(output.split(":")));
|
||||
}
|
||||
} catch (InterruptedException | IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
return jars;
|
||||
}
|
||||
|
||||
/**
|
||||
* Scan jar for classes to be processed by ASM
|
||||
*
|
||||
* @param jar jar file to be processed
|
||||
* @throws IOException
|
||||
*/
|
||||
public void processJar(JarFile jar) throws IOException {
|
||||
Collections.list(jar.entries())
|
||||
.stream()
|
||||
.filter((JarEntry entry) -> (!entry.isDirectory() && entry.getName().endsWith("class")))
|
||||
.forEach((JarEntry entry) -> {
|
||||
InputStream is = null;
|
||||
try {
|
||||
Main.this.mCurrent.add(entry.getName());
|
||||
is = jar.getInputStream(entry);
|
||||
new ClassReader(is).accept(Main.this, 0);
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} finally {
|
||||
try {
|
||||
if(is!=null)
|
||||
is.close();
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a dependency is needed by a given package
|
||||
*
|
||||
* @param pkg Gentoo package name
|
||||
* @param deps collection of dependencies for the package
|
||||
* @return boolean if the dependency is needed or not
|
||||
* @throws IOException
|
||||
*/
|
||||
private static boolean depNeeded(String pkg,
|
||||
Collection<String> deps) throws IOException {
|
||||
Collection<String> jars = getPackageJars(pkg);
|
||||
|
||||
// We have a virtual with VM provider here
|
||||
if (jars.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
for (String jarName : jars) {
|
||||
JarFile jar = new JarFile(jarName);
|
||||
for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();) {
|
||||
String name = e.nextElement().getName();
|
||||
if (deps.contains(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check for orphaned class files not owned by any package in dependencies
|
||||
*
|
||||
* @param pkg Gentoo package name
|
||||
* @param deps collection of dependencies for the package
|
||||
* @return boolean if the dependency is found or not
|
||||
* @throws IOException
|
||||
*/
|
||||
private static boolean depsFound(Collection<String> pkgs,
|
||||
Collection<String> deps) throws IOException {
|
||||
boolean found = true;
|
||||
Collection<String> jars = new ArrayList<>();
|
||||
String[] bootClassPathJars = System.getProperty("sun.boot.class.path").split(":");
|
||||
// Do we need "java-config -r" here?
|
||||
for (String jar : bootClassPathJars) {
|
||||
File jarFile = new File(jar);
|
||||
if (jarFile.exists()) {
|
||||
jars.add(jar);
|
||||
}
|
||||
}
|
||||
pkgs.forEach((String pkg) -> {
|
||||
jars.addAll(getPackageJars(pkg));
|
||||
});
|
||||
|
||||
if (jars.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
ArrayList<String> jarClasses = new ArrayList<>();
|
||||
jars.forEach((String jarName) -> {
|
||||
try {
|
||||
JarFile jar = new JarFile(jarName);
|
||||
Collections.list(jar.entries()).forEach((JarEntry entry) -> {
|
||||
jarClasses.add(entry.getName());
|
||||
});
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
});
|
||||
for (String dep : deps) {
|
||||
if (!jarClasses.contains(dep)) {
|
||||
if (found) {
|
||||
System.out.println("Class files not found via DEPEND in package.env");
|
||||
}
|
||||
System.out.println("\t" + dep);
|
||||
found = false;
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
/**
|
||||
* Core method, this one fires off all others and is the one called from
|
||||
* Main. Check this package for unneeded dependencies and orphaned class
|
||||
* files
|
||||
*
|
||||
* @param env
|
||||
* @return
|
||||
*/
|
||||
private static boolean checkPkg(File env) {
|
||||
boolean needed = true;
|
||||
boolean found = true;
|
||||
HashSet<String> pkgs = new HashSet<>();
|
||||
Collection<String> deps = null;
|
||||
InputStream is = null;
|
||||
|
||||
try {
|
||||
// load package.env
|
||||
Properties props = new Properties();
|
||||
is = new FileInputStream(env);
|
||||
props.load(is);
|
||||
|
||||
// load package deps, add to hashset if exist
|
||||
String depend = props.getProperty("DEPEND");
|
||||
if(depend!=null &&
|
||||
!depend.isEmpty()) {
|
||||
for (String atom : depend.replaceAll("\"","").split(":")) {
|
||||
String pkg = atom;
|
||||
if (atom.contains("@")) {
|
||||
pkg = atom.split("@")[1];
|
||||
}
|
||||
pkgs.add(pkg);
|
||||
}
|
||||
}
|
||||
|
||||
// load package classpath
|
||||
String classpath = props.getProperty("CLASSPATH");
|
||||
if(classpath!=null &&
|
||||
!classpath.isEmpty()) {
|
||||
Main classParser = new Main();
|
||||
for (String jar : classpath.replaceAll("\"","").split(":")) {
|
||||
if (jar.endsWith(".jar")) {
|
||||
classParser.processJar(new JarFile(image + jar));
|
||||
}
|
||||
}
|
||||
deps = classParser.getDeps();
|
||||
}
|
||||
|
||||
for (String pkg : pkgs) {
|
||||
if (!depNeeded(pkg, deps)) {
|
||||
if (needed) {
|
||||
System.out.println("Possibly unneeded dependencies found");
|
||||
}
|
||||
System.out.println("\t" + pkg);
|
||||
needed = false;
|
||||
}
|
||||
}
|
||||
found = depsFound(pkgs, deps);
|
||||
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} finally {
|
||||
try {
|
||||
if(is!=null)
|
||||
is.close();
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
return needed && found;
|
||||
}
|
||||
|
||||
/** Main method, parse command line opts, invoke the package checker
|
||||
* @param args the command line arguments
|
||||
* @throws java.io.IOException
|
||||
*/
|
||||
public static void main(String[] args) throws IOException {
|
||||
int exit = 0;
|
||||
try {
|
||||
CommandLineParser parser = new PosixParser();
|
||||
Options options = new Options();
|
||||
options.addOption("h", "help", false, "print help");
|
||||
options.addOption("i", "image", true, "image directory");
|
||||
options.addOption("v", "verbose", false, "print verbose output");
|
||||
CommandLine line = parser.parse(options, args);
|
||||
String[] files = line.getArgs();
|
||||
if (line.hasOption("h") || files.length == 0) {
|
||||
HelpFormatter h = new HelpFormatter();
|
||||
h.printHelp("java-dep-check [-i <image>] <package.env>+", options);
|
||||
} else {
|
||||
image = line.getOptionValue("i", "");
|
||||
|
||||
for (String arg : files) {
|
||||
if (line.hasOption('v')) {
|
||||
System.out.println("Checking " + arg);
|
||||
}
|
||||
if (!checkPkg(new File(arg))) {
|
||||
exit = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (ParseException ex) {
|
||||
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
System.exit(exit);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add dependency to deps hashset
|
||||
*
|
||||
* @param dep dependent class name
|
||||
*/
|
||||
private void addDep(String dep) {
|
||||
mDeps.add(dep + ".class");
|
||||
}
|
||||
|
||||
/**
|
||||
* Add dependency type to deps hashset
|
||||
*
|
||||
* @param dep dependent class name
|
||||
*/
|
||||
private void addDep(Type dep) {
|
||||
if (dep.getSort() == Type.ARRAY) {
|
||||
addDep(dep.getElementType());
|
||||
}
|
||||
if (dep.getSort() == Type.OBJECT) {
|
||||
addDep(dep.getInternalName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get deps not contained in the current hashset
|
||||
*
|
||||
* @return a collection of deps
|
||||
*/
|
||||
private Collection<String> getDeps() {
|
||||
ArrayList<String> result = new ArrayList<>();
|
||||
mDeps.stream().filter((s) -> (!mCurrent.contains(s))).forEach((s) -> {
|
||||
result.add(s);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(int version,
|
||||
int access,
|
||||
String name,
|
||||
String signature,
|
||||
String superName,
|
||||
String[] interfaces) {
|
||||
if(superName != null) {
|
||||
addDep(superName);
|
||||
}
|
||||
for (String iface : interfaces) {
|
||||
addDep(iface);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldVisitor visitField(int access,
|
||||
String name,
|
||||
String desc,
|
||||
String signature,
|
||||
Object value) {
|
||||
addDep(Type.getType(desc));
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MethodVisitor visitMethod(int access,
|
||||
String name,
|
||||
String desc,
|
||||
String signature,
|
||||
String[] exceptions) {
|
||||
for (Type param : Type.getArgumentTypes(desc)) {
|
||||
addDep(param);
|
||||
}
|
||||
|
||||
if (exceptions != null) {
|
||||
for (String exception : exceptions) {
|
||||
addDep(exception);
|
||||
}
|
||||
}
|
||||
addDep(Type.getReturnType(desc));
|
||||
return new MethodVisitor(Opcodes.ASM5) {
|
||||
@Override
|
||||
public void visitLocalVariable(String name,
|
||||
String desc,
|
||||
String signature,
|
||||
Label start,
|
||||
Label end,
|
||||
int index) {
|
||||
addDep(Type.getType(desc));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitFieldInsn(int opcode,
|
||||
String owner,
|
||||
String name,
|
||||
String desc) {
|
||||
addDep(Type.getObjectType(owner));
|
||||
addDep(Type.getType(desc));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitMethodInsn(int opcode,
|
||||
String owner,
|
||||
String name,
|
||||
String desc,
|
||||
boolean itf) {
|
||||
addDep(Type.getObjectType(owner));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnnotationVisitor visitParameterAnnotation(int parameter,
|
||||
String desc,
|
||||
boolean visible) {
|
||||
return Main.this.visitAnnotation(desc, visible);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
|
||||
addDep(Type.getType(desc));
|
||||
return null;
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit java-pkg-2 java-pkg-simple
|
||||
|
||||
DESCRIPTION="Java Dependency checker"
|
||||
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Java"
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
|
||||
COMMON_DEP="
|
||||
dev-java/commons-cli:1
|
||||
dev-java/asm:3"
|
||||
RDEPEND=">=virtual/jre-1.5
|
||||
${COMMON_DEP}"
|
||||
DEPEND=">=virtual/jdk-1.5
|
||||
${COMMON_DEP}"
|
||||
|
||||
JAVA_GENTOO_CLASSPATH="asm-3,commons-cli-1"
|
||||
|
||||
src_unpack() {
|
||||
cp "${FILESDIR}/Main-${PV}.java" Main.java || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg-simple_src_install
|
||||
java-pkg_dolauncher ${PN} --main javadepchecker.Main
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
# Copyright 2016-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit java-pkg-2 java-pkg-simple
|
||||
|
||||
DESCRIPTION="Java Dependency checker"
|
||||
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Java"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
COMMON_DEP="
|
||||
dev-java/commons-cli:1
|
||||
dev-java/asm:4"
|
||||
RDEPEND=">=virtual/jre-1.8:*
|
||||
${COMMON_DEP}"
|
||||
DEPEND=">=virtual/jdk-1.8:*
|
||||
${COMMON_DEP}"
|
||||
|
||||
JAVA_GENTOO_CLASSPATH="asm-4,commons-cli-1"
|
||||
|
||||
src_unpack() {
|
||||
cp "${FILESDIR}/Main-${PV}.java" Main.java || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg-simple_src_install
|
||||
java-pkg_dolauncher ${PN} --main javadepchecker.Main
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
# Copyright 2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit java-pkg-2 java-pkg-simple
|
||||
|
||||
DESCRIPTION="Java Dependency checker"
|
||||
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Java"
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
COMMON_DEP="
|
||||
dev-java/commons-cli:1
|
||||
dev-java/asm:4"
|
||||
RDEPEND=">=virtual/jre-1.8
|
||||
${COMMON_DEP}"
|
||||
DEPEND=">=virtual/jdk-1.8
|
||||
${COMMON_DEP}"
|
||||
|
||||
JAVA_GENTOO_CLASSPATH="asm-4,commons-cli-1"
|
||||
|
||||
src_unpack() {
|
||||
cp "${FILESDIR}/Main-${PV}.java" Main.java || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg-simple_src_install
|
||||
java-pkg_dolauncher ${PN} --main javadepchecker.Main
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
DIST ansible-runner-1.4.7.tar.gz 47112 BLAKE2B 0e9ac2f63179dda44a403d90bd218f848929c2e46cc25fb5a6e34ace36db24619d3498b18319d7f49b078ea4a5d149c2eeef1671fdfe2a495cdd4cc61ca8209c SHA512 504d1e25abfe39fc5a7867f799accabe98c8a065eda06869f04a5ef2a5bb30058623497c761c8fa99d39372d1215046431484eebdaa2850f50de75a273b70ab3
|
@ -0,0 +1,23 @@
|
||||
# Copyright 2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{7..9} )
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="A tool and python library that helps when interfacing with Ansible"
|
||||
HOMEPAGE="https://github.com/ansible/ansible-runner"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_prepare_all() {
|
||||
sed -e 's|find_packages()|find_packages(exclude=["test", "test.*"])|' -i setup.py || die
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>zmedico@gentoo.org</email>
|
||||
<name>Zac Medico</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="pypi">ansible-runner</remote-id>
|
||||
<remote-id type="github">ansible/ansible-runner</remote-id>
|
||||
<bugs-to>https://github.com/ansible/ansible-runner/issues</bugs-to>
|
||||
</upstream>
|
||||
<longdescription lang="en">
|
||||
A tool and python library that helps when interfacing with Ansible
|
||||
directly or as part of another system whether that be through a
|
||||
container image interface, as a standalone tool, or as a Python module
|
||||
that can be imported. The goal is to provide a stable and consistent
|
||||
interface abstraction to Ansible.
|
||||
</longdescription>
|
||||
</pkgmetadata>
|
@ -0,0 +1 @@
|
||||
DIST awxkit-19.0.0.tar.gz 95820 BLAKE2B eadb3ffbfd5a1bf2835e4a7df788e06676cd7c8132c8527c04c4876e87039b72ed00775ddc342e0b31bb0c4a7036b3ecb0456761b9a6a1a5f40e60656fd06521 SHA512 169531549fd668e9917db55f2d61d8959645659496f249d9bb94432b9d7449aa549a751aa3c0255c38334e24684e4039e581d26aa2c291ede88b623824b78ff9
|
@ -0,0 +1,21 @@
|
||||
# Copyright 2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{7..9} )
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Command line interface for Ansible AWX"
|
||||
HOMEPAGE="https://github.com/ansible/awx"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-python/urllib3[${PYTHON_USEDEP}]"
|
||||
distutils_enable_tests pytest
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>zmedico@gentoo.org</email>
|
||||
<name>Zac Medico</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="pypi">awxkit</remote-id>
|
||||
<remote-id type="github">ansible/awx</remote-id>
|
||||
<bugs-to>https://github.com/ansible/awx/issues</bugs-to>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -0,0 +1,56 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
PYTHON_COMPAT=( python3_{7..9} )
|
||||
DISTUTILS_USE_SETUPTOOLS=bdepend
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="The AWS SDK for Python"
|
||||
HOMEPAGE="https://github.com/boto/boto3"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
EGIT_REPO_URI="https://github.com/boto/boto3"
|
||||
inherit git-r3
|
||||
BOTOCORE_PV=${PV}
|
||||
else
|
||||
SRC_URI="https://github.com/boto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
# botocore is x.(y+3).z
|
||||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 3)).$(ver_cut 3-)"
|
||||
fi
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||
>=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/s3transfer-0.3.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_sphinx docs/source \
|
||||
'dev-python/guzzle_sphinx_theme'
|
||||
distutils_enable_tests nose
|
||||
|
||||
python_prepare_all() {
|
||||
# don't lock versions to narrow ranges
|
||||
sed -e '/botocore/ d' \
|
||||
-e '/jmespath/ d' \
|
||||
-e '/s3transfer/ d' \
|
||||
-i setup.py || die
|
||||
|
||||
# prevent an infinite loop
|
||||
rm tests/functional/docs/test_smoke.py || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
nosetests -v tests/unit/ tests/functional/ || die "test failed under ${EPYTHON}"
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
PYTHON_COMPAT=( python3_{7..9} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Low-level, data-driven core of boto 3"
|
||||
HOMEPAGE="https://github.com/boto/botocore"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
EGIT_REPO_URI="https://github.com/boto/botocore"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
RDEPEND="
|
||||
dev-python/six[${PYTHON_USEDEP}]
|
||||
dev-python/jmespath[${PYTHON_USEDEP}]
|
||||
dev-python/python-dateutil[${PYTHON_USEDEP}]
|
||||
>=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
dev-python/jsonschema[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/1.8.6-tests-pass-all-env-vars-to-cmd-runner.patch"
|
||||
)
|
||||
|
||||
distutils_enable_sphinx docs/source \
|
||||
'dev-python/guzzle_sphinx_theme'
|
||||
distutils_enable_tests nose
|
||||
|
||||
src_prepare() {
|
||||
# unpin deps
|
||||
sed -i -e "s:>=.*':':" setup.py || die
|
||||
# very unstable
|
||||
sed -i -e 's:test_stress_test_token_bucket:_&:' \
|
||||
tests/functional/retries/test_bucket.py || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
# note: suites need to be run separately as one of the unit tests
|
||||
# seems to be leaking mocks and breaking a few functional tests
|
||||
nosetests -v tests/unit ||
|
||||
die "unit tests failed under ${EPYTHON}"
|
||||
nosetests -v tests/functional ||
|
||||
die "functional tests failed under ${EPYTHON}"
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST flake8-3.8.4.tar.gz 163583 BLAKE2B 221234931365912adffec99c7c6761d2f35918222bee902ade4d8009d24f6918c66d23fc4b973fe653152cc6857b62ba859780b0d9de53fb91b7ea0379bee9d0 SHA512 51ed09beed50175573e6184b404431b3f89aa6594c40c70ed8288982fe12c2a68992e36d69c99013188f03555bf9fef1ba4f111f8e389cef1e1daa69b41ff5b0
|
||||
DIST flake8-3.9.0.tar.gz 164144 BLAKE2B e265a392445038b04ee2d8c24a763b4b1eebe9682295b70d14c07dbd739b34abbe5f76bc01dd31df7c666a106b62c5312c0522d6771c5649a91d2720a9d14467 SHA512 bfeaa13737f23318da8673c28f0f10463c0aad71a01fe70797321de3b9b7efbe7b5d0ee0664b8440db6b35d7f29f157848757d55fcac531a0c6da6371d681b65
|
||||
DIST flake8-3.9.1.tar.gz 164752 BLAKE2B 07f5049f8445bce87cee1509769e13f275f0e531b78a2769218233ac02a45ed7a8dc061f5253e4c136b47bfddfb574527d99dfff36d338516824167335f9a5fc SHA512 c592308fa32ae73982e6441624a989bdc213b639b0473f7342e75f11e3844282a713dce1f4649575d375766fa1d6b2a1840707109ac8d4672c0d2917f89a3d33
|
||||
|
@ -0,0 +1,39 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( pypy3 python3_{7..9} )
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="A wrapper around PyFlakes, pep8 & mccabe"
|
||||
HOMEPAGE="https://gitlab.com/pycqa/flake8 https://pypi.org/project/flake8/"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x64-macos"
|
||||
|
||||
# requires.txt inc. mccabe however that creates a circular dep
|
||||
RDEPEND="
|
||||
>=dev-python/pyflakes-2.3.0[${PYTHON_USEDEP}]
|
||||
<dev-python/pyflakes-2.4.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/pycodestyle-2.7.0[${PYTHON_USEDEP}]
|
||||
<dev-python/pycodestyle-2.8.0[${PYTHON_USEDEP}]
|
||||
$(python_gen_cond_dep 'dev-python/importlib_metadata[${PYTHON_USEDEP}]' pypy3 python3_{6,7})
|
||||
"
|
||||
PDEPEND="
|
||||
>=dev-python/mccabe-0.6.0[${PYTHON_USEDEP}]
|
||||
<dev-python/mccabe-0.7.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="${RDEPEND}
|
||||
test? (
|
||||
${PDEPEND}
|
||||
>=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_sphinx docs/source dev-python/sphinx-prompt dev-python/sphinx_rtd_theme
|
||||
distutils_enable_tests --install pytest
|
@ -1,3 +1,4 @@
|
||||
DIST google-auth-1.27.1.tar.gz 157876 BLAKE2B 0a06451e8a800231972b5b167d45410791b38a1616043912befb5554eff217bd1af70bf34aaf455fe68f9f515ea143cb2446800231006c369005de6981f7f466 SHA512 d640bb5395f956fd3442ea31145af2d72855108bff6b11dfeecfd4b48ad4fa50efba838e423bace310e78bbae74860d6c031d4ee873a7ab6dd522eb49e3fbdab
|
||||
DIST google-auth-1.28.0.tar.gz 158266 BLAKE2B 7e1fcdd0a6d155c0170012d43062fa5df2c9dd731105990af6d055c0dc8f9c36917776876a25caedd4b804acf24cdebd93a0953a9f7642563a5abc05cc946156 SHA512 a02db23132950c99e032d8318451cd67127f1e9fc57731a8a76505a360d77484aef1859e54d8e4efa1bcde3f6f5379c3324d54cf57c0a95fb1fa7765f43e9581
|
||||
DIST google-auth-1.28.1.tar.gz 158294 BLAKE2B 3b6e7e746a10fee3f2fcbe1003fa3f5ea94582d092da32e44d8b9772babfb4db321780d1c4253f212971603d0e1212d10fc24dca10c3978faf06bfd8d9a96532 SHA512 e07dac8c0e9814d10bd53302c19cc37339b31141cc20c9fc7b6de8656abd68225f9a7c5502a8c64527c9bdaadd4158b7fa29e5564d02e878ee9acb3d9605c15a
|
||||
DIST google-auth-1.29.0.tar.gz 167058 BLAKE2B 0c6c9ac11330e46757bc554f7ae984d4ab94562e4524e0c579c0878fb093201240ebabc3a4f44f8d9f530a82ad5f84dd76100d57e2f874b78315c7f0d2cfb4fd SHA512 a6c8ca93ef493f16b7b16c2e1456891a09635bbc4a39053dc2c4cdca2f739692a74e4588c61c8aa5f06c1a5355ef304771770e26f1656edc0ef4c3c291df796d
|
||||
|
@ -0,0 +1,51 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{7..9} )
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Google Authentication Library"
|
||||
HOMEPAGE="
|
||||
https://github.com/googleapis/google-auth-library-python/
|
||||
https://pypi.org/project/google-auth/"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/namespace-google[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyasn1-modules-0.2.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
|
||||
>=dev-python/six-1.9.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/cachetools-2.0.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/cryptography[${PYTHON_USEDEP}]
|
||||
dev-python/flask[${PYTHON_USEDEP}]
|
||||
dev-python/freezegun[${PYTHON_USEDEP}]
|
||||
dev-python/grpcio[${PYTHON_USEDEP}]
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
dev-python/moto[${PYTHON_USEDEP}]
|
||||
dev-python/oauth2client[${PYTHON_USEDEP}]
|
||||
dev-python/pyopenssl[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-localserver[${PYTHON_USEDEP}]
|
||||
dev-python/pyu2f[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-python/responses[${PYTHON_USEDEP}]
|
||||
dev-python/urllib3[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
find "${ED}" -name '*.pth' -delete || die
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST lmdb-1.1.1.tar.gz 880359 BLAKE2B b202154eae151d3748e9e90fcb71a3c8a722923c2583e469ef1a0017a4c3dfdfd62d99db24fb79e7da1fc7c6a4fb695d9db5ed6a67750967788a12fe0ba24761 SHA512 4621c87dd646f8ca37f4cdc40ffa2fe809ca4da21b335856e50e6d0ae07f3828d424cde9cc383e4cdc761cd9311eb504d67678a33de51c1931a006ec86a2fcd0
|
||||
DIST lmdb-1.2.0.tar.gz 881437 BLAKE2B bcb045868c100bcb82daed99bdbd73699dcb5a0e982679f1d9f49747f468e2ab2cbc412ba020b9deca7263fece501c25d984397ee2969187c8118da920c691aa SHA512 75c7aeb3e98ffddb9e40b4eb7404afd3c6ade93753488eac2cb5facfab3ec9b660d925b8bd1c40ca5f8180cb6ca33483020bb4c5ddc074b841693ba278883529
|
||||
|
@ -0,0 +1,35 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( pypy3 python3_{7..9} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Python bindings for the Lightning Database"
|
||||
HOMEPAGE="https://github.com/jnwatson/py-lmdb/"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="OPENLDAP"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
RDEPEND=">=dev-db/lmdb-0.9.28:="
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
distutils_enable_sphinx docs
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_compile() {
|
||||
LMDB_FORCE_SYSTEM=1 distutils-r1_python_compile
|
||||
}
|
||||
|
||||
python_test() {
|
||||
epytest tests
|
||||
}
|
||||
|
||||
python_install() {
|
||||
# This is required when the CFFI extension is used (for PyPy3)
|
||||
LMDB_FORCE_SYSTEM=1 distutils-r1_python_install
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST PyICU-2.6.tar.gz 233826 BLAKE2B 318b87b878f8d49f47f48780567751671f5f88902c4cae9a243a81300b002ca6ea2336aee38bfc76a3037326f15f197fd71819173b678c68094d16f8db51864e SHA512 ab4c167cbeb80a23904476e51a3c16aa4721e26840b1d4c2f44b5a610e5467a6880c45f27636efb9e44e8e4302a095d437f4868409103270d79ecd56a3d90c9c
|
||||
DIST pyicu-v2.7.1.tar.bz2 238508 BLAKE2B 20fed10bde607effc4d7f5e3882508e2673b4def29417fb888853565ddbbd3de22db986bf9801b8886570e080e1b50a2d941d18fcb39587fdf9a4e6bd5afefb0 SHA512 9d6a0c713396e0391a8617e68ad5ec5410e2dbb7ea0decad02816530ecc5a5ce8dc6b0ef905107b45f0e62c9d60e1e0d565ad18aeaf92e38fefd1c123e8754b5
|
||||
DIST pyicu-v2.7.2.tar.bz2 238645 BLAKE2B cca24a2cda18e943ac00a50b9a28342845af156b66bffcae2ec915e8e5d97577e1c5975b6711051558223278ccd7ad33782d02e759427ace4ce609fcad1c7ba6 SHA512 ece8a7a7e5162de8a2ad7a1ae1310ca4f32c6d27695942580a9a4cd1755a94c4230fe9f9e1c9a6b5a7d4a712b2ad570660e89316f437a7af502521e91137960e
|
||||
|
@ -0,0 +1,28 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{7..9} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
MY_P=${P/-/-v}
|
||||
DESCRIPTION="Python bindings for dev-libs/icu"
|
||||
HOMEPAGE="
|
||||
https://gitlab.pyicu.org/main/pyicu/
|
||||
https://pypi.org/project/PyICU/"
|
||||
SRC_URI="
|
||||
https://gitlab.pyicu.org/main/pyicu/-/archive/v${PV}/${MY_P}.tar.bz2"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND="dev-libs/icu:="
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
DOCS=( CHANGES CREDITS README.md )
|
||||
|
||||
distutils_enable_tests pytest
|
@ -1,2 +1,3 @@
|
||||
DIST python-engineio-3.12.1.tar.gz 37158 BLAKE2B a3f75b0ec197248029a2a257eee7694298d916bc444705df7a941e8106d09e5bc802cd612c88e526883083730797e4835e13db93121714a701af17d894ac53cf SHA512 f81012e264025dc24845986e67c7d19d46048e072a409483a130630e07efb84e831e188d3f277dd0f7d26351015009afcef0d2058bb19dacee68d6c56837fa1d
|
||||
DIST python-engineio-4.0.1.gh.tar.gz 296000 BLAKE2B dc3b2c3f25ebbfb9d795e3c08e82b2e001fbc785dfb1666f137d8b261b65a90a15af7527917bdd9c636f076f75e01c65b498145ae5051649e1264eb9339d9f7e SHA512 83886ed1a60465127b7eb42a8437196cd68f4c538076237e4f64ff36f6fb02d1e45bd6730d4bb6209c931e05b4c2e10bae60451d1d4644071178ff44a73805e9
|
||||
DIST python-engineio-4.1.0.gh.tar.gz 296431 BLAKE2B 5ab267aba4dc6e49d26166b661da5b40961d328efb92dbcb653a405f62956f33b28dbf48cd891d0e74314da998be477f917dd6eabdf154877cd80077e4172c9f SHA512 5dea0ffc24138664216eefd6f917280d6199e4c2661a2e41622bb7f4cf03467d60d555e5c28ba23c35f59ae8b549902d235308242bbc5607ac91fd61580e0c4f
|
||||
|
@ -0,0 +1,32 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
PYTHON_COMPAT=( python3_{7..9} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Python implementation of the Engine.IO realtime server."
|
||||
HOMEPAGE="
|
||||
https://python-engineio.readthedocs.io/
|
||||
https://github.com/miguelgrinberg/python-engineio/
|
||||
https://pypi.org/project/python-engineio/"
|
||||
SRC_URI="
|
||||
https://github.com/miguelgrinberg/python-engineio/archive/v${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/aiohttp[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-python/websocket-client[${PYTHON_USEDEP}]"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/eventlet[${PYTHON_USEDEP}]
|
||||
www-servers/tornado[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
distutils_enable_tests pytest
|
@ -1,28 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( pypy3 python3_{7..9} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
MY_PN="${PN//-/.}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
DESCRIPTION="YAML parser/emitter that supports roundtrip comment preservation"
|
||||
HOMEPAGE="https://pypi.org/project/ruamel.yaml/ https://sourceforge.net/p/ruamel-yaml"
|
||||
SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ppc ppc64 sparc x86"
|
||||
|
||||
RDEPEND="dev-python/ruamel-yaml-clib[${PYTHON_USEDEP}]"
|
||||
|
||||
S="${WORKDIR}"/${MY_P}
|
||||
|
||||
python_install() {
|
||||
distutils-r1_python_install --single-version-externally-managed
|
||||
find "${ED}" -name '*.pth' -delete || die
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( pypy3 python3_{7..9} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
MY_PN="${PN//-/.}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
DESCRIPTION="YAML parser/emitter that supports roundtrip comment preservation"
|
||||
HOMEPAGE="
|
||||
https://pypi.org/project/ruamel.yaml/
|
||||
https://sourceforge.net/p/ruamel-yaml/"
|
||||
# PyPI tarballs do not include tests
|
||||
SRC_URI="mirror://sourceforge/ruamel-dl-tagged-releases/${MY_P}.tar.xz -> ${P}.tar.xz"
|
||||
S="${WORKDIR}"/${MY_P}
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/namespace-ruamel[${PYTHON_USEDEP}]
|
||||
dev-python/ruamel-yaml-clib[${PYTHON_USEDEP}]"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/ruamel-std-pathlib[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
# Old PyYAML tests from lib/ require special set-up and are invoked indirectly
|
||||
# via test_z_olddata, tell pytest itself to leave the subdir alone.
|
||||
python_test() {
|
||||
local deselect=()
|
||||
|
||||
[[ ${EPYTHON} == pypy3 ]] && deselect+=(
|
||||
_test/test_deprecation.py::test_collections_deprecation
|
||||
)
|
||||
|
||||
epytest --ignore _test/lib/ ${deselect[@]/#/--deselect }
|
||||
}
|
||||
|
||||
python_install() {
|
||||
distutils-r1_python_install --single-version-externally-managed
|
||||
find "${ED}" -name '*.pth' -delete || die
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST scrypt-0.8.16.tar.gz 54205 BLAKE2B ce4f86f8bacb4f12408604822a32c9f63f96a155469cca1d2aa50cf67fc9e9576432f13ef49694a9d7ce21696aedcef27419fc0d3aad67a87d16c3bf8c0f94c4 SHA512 9498637d1354a84021f2c069a919ff157ff189d1385453397a9c43e522de77af9d628a90d649d50e9243abfc0b96efe4e38b615322d83133137bad94d448ef06
|
||||
DIST scrypt-0.8.18.tar.gz 56651 BLAKE2B d0e71e0677ab5f159da829eaf8e794fab9fa9290ff3688e525c4f2e9c60fda532d1c302fe4088bd8e88e06e926ef95d06bad145697e8a13e2662eda7027479b7 SHA512 b033203f65dd63c1e915eeff6232c01f806eb01d3ce18e753b6161ae667555095fe775585dd0d4e15ae228f2d4862860093c1a18d5b810b438d032df9fb24d81
|
||||
|
@ -0,0 +1,26 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{7,8,9} pypy3 )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Bindings for the scrypt key derivation function library"
|
||||
HOMEPAGE="https://github.com/holgern/py-scrypt/"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
# no functional changes since 0.8.16, so no point in upgrading
|
||||
KEYWORDS=""
|
||||
SLOT="0"
|
||||
IUSE="libressl"
|
||||
|
||||
RDEPEND="
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
distutils_enable_tests unittest
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue