diff options
author | Sam James <sam@gentoo.org> | 2022-04-13 02:39:51 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-04-13 02:39:59 +0100 |
commit | 1b6d55530908535b7439045af4ea35a096ee4a95 (patch) | |
tree | ca12c1206e49d6e8a120d919355d478c1cb1c0f8 /net-analyzer/hydra | |
parent | media-sound/mpd: fix automagic deps (diff) | |
download | gentoo-1b6d55530908535b7439045af4ea35a096ee4a95.tar.gz gentoo-1b6d55530908535b7439045af4ea35a096ee4a95.tar.bz2 gentoo-1b6d55530908535b7439045af4ea35a096ee4a95.zip |
net-analyzer/hydra: add 9.3
Closes: https://bugs.gentoo.org/805533
Closes: https://bugs.gentoo.org/838031
Closes: https://bugs.gentoo.org/811798
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-analyzer/hydra')
-rw-r--r-- | net-analyzer/hydra/Manifest | 1 | ||||
-rw-r--r-- | net-analyzer/hydra/files/hydra-9.3-pcre2.patch | 113 | ||||
-rw-r--r-- | net-analyzer/hydra/hydra-9.3.ebuild | 121 |
3 files changed, 235 insertions, 0 deletions
diff --git a/net-analyzer/hydra/Manifest b/net-analyzer/hydra/Manifest index f12f1ce825e8..b3c28ec91261 100644 --- a/net-analyzer/hydra/Manifest +++ b/net-analyzer/hydra/Manifest @@ -1,2 +1,3 @@ DIST hydra-9.1.tar.gz 611846 BLAKE2B 9a5b6dc52b5f4069bf326e86728ebaf8c1fe018536f3943b83493de934703bff6770ae3f7a9a223ee00b5f52f7bd10ee4ddc272e1bbad00c399aa19cc0c083ba SHA512 863176375fe1aae4c0a2b74c11aba297682d66e522c98c926c539348309b0af4e407e460b4cb803d2c83c008787c73f7f1e56ac6aca9791351e1b596c2e4fbb2 DIST hydra-9.2.tar.gz 614176 BLAKE2B 102c744fbdd3702c624b1c8339178883b689db093d9f1c66d8e04816327eb8095f3e3133f889b2a6ee6dcabb9e5af0c71ec8470731b4b174021fbd79741d05e7 SHA512 ee8ecd854b61ac9d708098c8a0d9a128d8b80b38db1a2ba8eb06de6fbbc6865135d994620ade8e3742fb993899274ed9d8fd0e95bed7a9fbeb1ca9e182540322 +DIST hydra-9.3.tar.gz 829856 BLAKE2B 5ae1ab77f64d2bc17bd8389acf8a47201d84455a82f5ae28ab740594571a13ab145f5981efdfb09ddab3d6cc443e171e4664bff08c1a6b2f08169dea4f87ba54 SHA512 06d2ed61492c76d16ff3b2fbbde3938f79d6038c979a2af949f9b4d116a1506943e0a3a246da4d1bc8848cf440097e6175962e3fdf3e7644dd36ad7c2f6b2ce4 diff --git a/net-analyzer/hydra/files/hydra-9.3-pcre2.patch b/net-analyzer/hydra/files/hydra-9.3-pcre2.patch new file mode 100644 index 000000000000..bb12936254bb --- /dev/null +++ b/net-analyzer/hydra/files/hydra-9.3-pcre2.patch @@ -0,0 +1,113 @@ +https://github.com/vanhauser-thc/thc-hydra/commit/c82e5d51c5595374e6b7801bfc84c26a497d8989.patch +https://bugs.gentoo.org/838031 + +From c82e5d51c5595374e6b7801bfc84c26a497d8989 Mon Sep 17 00:00:00 2001 +From: vanhauser-thc <vh@thc.org> +Date: Tue, 1 Mar 2022 14:56:05 +0100 +Subject: [PATCH] switch to pcre2 + +--- a/configure ++++ b/configure +@@ -380,21 +380,21 @@ if [ "X" = "X$CURSES_PATH" -o "X" = "X$CURSES_IPATH" ]; then + CURSES_IPATH="" + fi + +-echo "Checking for pcre (libpcre/pcre.h) ..." ++echo "Checking for pcre2 (libpcre/pcre.h) ..." + for i in $LIBDIRS ; do + if [ "X" = "X$PCRE_PATH" ]; then +- if [ -f "$i/libpcre.so" -o -f "$i/libpcre.dylib" -o -f "$i/libpcre.a" ]; then ++ if [ -f "$i/libpcre2-8.so" -o -f "$i/libpcre2-8.dylib" -o -f "$i/libpcre2-8.a" ]; then + PCRE_PATH="$i" + fi + fi + if [ "X" = "X$PCRE_PATH" ]; then +- TMP_LIB=`/bin/ls $i/libpcre.so* 2> /dev/null | grep libpcre.` ++ TMP_LIB=`/bin/ls $i/libpcre2*.so* 2> /dev/null | grep libpcre.` + if [ -n "$TMP_LIB" ]; then + PCRE_PATH="$i" + fi + fi + if [ "X" = "X$PCRE_PATH" ]; then +- TMP_LIB=`/bin/ls $i/libpcre.dll* 2> /dev/null | grep libpcre.` ++ TMP_LIB=`/bin/ls $i/libpcre2*.dll* 2> /dev/null | grep libpcre.` + if [ -n "$TMP_LIB" ]; then + PCRE_PATH="$i" + fi +@@ -402,20 +402,20 @@ for i in $LIBDIRS ; do + done + for i in $INCDIRS ; do + if [ "X" != "X$PCRE_PATH" ]; then +- if [ -f "$i/pcre.h" ]; then ++ if [ -f "$i/pcre2.h" ]; then + PCRE_IPATH="$i" + fi + fi + done + if [ "X" != "X$DEBUG" ]; then + echo DEBUG: PCRE_PATH=$PCRE_PATH/libpcre +- echo DEBUG: PCRE_IPATH=$PCRE_IPATH/pcre.h ++ echo DEBUG: PCRE_IPATH=$PCRE_IPATH/pcre2.h + fi + if [ -n "$PCRE_PATH" -a -n "$PCRE_IPATH" ]; then +- echo " ... found" ++ echo " ... found" + fi + if [ "X" = "X$PCRE_PATH" -o "X" = "X$PCRE_IPATH" ]; then +- echo " ... NOT found, server response checks will be less reliable" ++ echo " ... NOT found, server response checks will be less reliable" + PCRE_PATH="" + PCRE_IPATH="" + fi +@@ -1649,7 +1649,7 @@ if [ -n "$IDN_PATH" ]; then + XLIBS="$XLIBS -lidn" + fi + if [ -n "$PCRE_PATH" ]; then +- XLIBS="$XLIBS -lpcre" ++ XLIBS="$XLIBS -lpcre2-8" + fi + if [ -n "$MYSQL_PATH" ]; then + XLIBS="$XLIBS -lmysqlclient" +--- a/hydra-mod.c ++++ b/hydra-mod.c +@@ -7,7 +7,8 @@ + #include <openssl/ssl.h> + #endif + #ifdef HAVE_PCRE +-#include <pcre.h> ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include <pcre2.h> + #endif + + #define MAX_CONNECT_RETRY 1 +@@ -1291,19 +1292,23 @@ void hydra_set_srcport(int32_t port) { src_port = port; } + + #ifdef HAVE_PCRE + int32_t hydra_string_match(char *str, const char *regex) { +- pcre *re = NULL; +- int32_t offset_error = 0; +- const char *error = NULL; ++ pcre2_code *re = NULL; ++ int32_t error_code = 0; ++ PCRE2_SIZE error_offset; + int32_t rc = 0; + +- re = pcre_compile(regex, PCRE_CASELESS | PCRE_DOTALL, &error, &offset_error, NULL); ++ re = pcre2_compile(regex, PCRE2_ZERO_TERMINATED, PCRE2_CASELESS | PCRE2_DOTALL, &error_code, &error_offset, NULL); + if (re == NULL) { +- fprintf(stderr, "[ERROR] PCRE compilation failed at offset %d: %s\n", offset_error, error); ++ fprintf(stderr, "[ERROR] PCRE compilation failed at offset %d: %d\n", error_offset, error_code); + return 0; + } + +- rc = pcre_exec(re, NULL, str, strlen(str), 0, 0, NULL, 0); +- if (rc >= 0) { ++ pcre2_match_data *match_data = pcre2_match_data_create_from_pattern(re, NULL); ++ rc = pcre2_match(re, str, PCRE2_ZERO_TERMINATED, 0, 0, match_data, NULL); ++ pcre2_match_data_free(match_data); ++ pcre2_code_free(re); ++ ++ if (rc >= 1) { + return 1; + } + return 0; diff --git a/net-analyzer/hydra/hydra-9.3.ebuild b/net-analyzer/hydra/hydra-9.3.ebuild new file mode 100644 index 000000000000..aa7d807e29b8 --- /dev/null +++ b/net-analyzer/hydra/hydra-9.3.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Parallelized network login hacker" +HOMEPAGE="https://github.com/vanhauser-thc/thc-hydra" +SRC_URI="https://github.com/vanhauser-thc/thc-hydra/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/thc-${P}" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="debug firebird gcrypt gtk idn memcached mongodb mysql ncurses oracle pcre postgres rdp libssh samba subversion zlib" + +RDEPEND=" + dev-libs/openssl:= + gtk? ( + dev-libs/atk + dev-libs/glib:2 + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + ) + firebird? ( dev-db/firebird ) + gcrypt? ( dev-libs/libgcrypt ) + idn? ( net-dns/libidn:0= ) + memcached? ( dev-libs/libmemcached[sasl] ) + mongodb? ( dev-libs/mongo-c-driver ) + mysql? ( dev-db/mysql-connector-c:0= ) + ncurses? ( sys-libs/ncurses:= ) + oracle? ( dev-db/oracle-instantclient[sdk] ) + pcre? ( dev-libs/libpcre2 ) + postgres? ( dev-db/postgresql:* ) + rdp? ( net-misc/freerdp ) + libssh? ( >=net-libs/libssh-0.4.0 ) + samba? ( net-fs/samba ) + subversion? ( dev-vcs/subversion ) + zlib? ( sys-libs/zlib )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${P}-pcre2.patch +) + +src_prepare() { + default + + # None of the settings in Makefile.unix are useful to us + mv Makefile.unix{,.gentoo_unused} || die + touch Makefile.unix || die + + sed -i \ + -e 's:|| echo.*$::' \ + -e '/\t-$(CC)/s:-::' \ + -e '/^OPTS/{s|=|+=|;s| -O3||}' \ + -e '/ -o /s:$(OPTS):& $(LDFLAGS):g' \ + Makefile.am || die +} + +src_configure() { + # Note: the top level configure script is not autoconf-based + tc-export CC PKG_CONFIG + + export OPTS="${CFLAGS}" + + hydra_sed() { + if use ${1}; then + einfo "Enabling ${1}" + if [[ -n "${3}" ]]; then + sed -i 's#'"${2}"'#'"${3}"'#' configure || die + fi + else + einfo "Disabling ${1}" + sed -i 's#'"${2}"'##; s#'"${4}"'##' configure || die + fi + } + + hydra_sed firebird '-lfbclient' '' '-DLIBFIREBIRD' + hydra_sed gcrypt '-lgcrypt' '$( ${CTARGET:-${CHOST}}-libgcrypt-config --libs )' '-DHAVE_GCRYPT' + hydra_sed idn '-lidn' '$( "${PKG_CONFIG}" --libs libidn )' '-DLIBIDN -DHAVE_PR29_H' + hydra_sed libssh '-lssh' '$( "${PKG_CONFIG}" --libs libssh )' '-DLIBSSH' + hydra_sed memcached '-lmemcached' '$( "${PKG_CONFIG}" --libs libmemcached )' '-DLIBMCACHED' + hydra_sed mongodb '-lmongoc-1.0' '$( "${PKG_CONFIG}" --libs libmongoc-1.0 )' '-DLIBMONGODB\|-DLIBBSON' + hydra_sed mysql '-lmysqlclient' '$( ${CTARGET:-${CHOST}}-mysql_config --libs )' '-DLIBMYSQLCLIENT' + hydra_sed ncurses '-lcurses' '$( "${PKG_CONFIG}" --libs ncurses )' '-DLIBNCURSES' + hydra_sed pcre '-lpcre2-8' '$( "${PKG_CONFIG}" --libs libpcre2-8 )' '-DHAVE_PCRE' + hydra_sed postgres '-lpq' '$( "${PKG_CONFIG}" --libs libpq )' '-DLIBPOSTGRES' + hydra_sed oracle '-locci -lclntsh' '' '-DLIBORACLE' + hydra_sed rdp '-lfreerdp2' '$( "${PKG_CONFIG}" --libs freerdp2 )' '-DLIBFREERDP' + # TODO: https://bugs.gentoo.org/686148 + #hydra_sed subversion '-lsvn_client-1 -lapr-1 -laprutil-1 -lsvn_subr-1' '$( "${PKG_CONFIG}" --libs libsvn_client )' '-DLIBSVN' + hydra_sed samba '-lsmbclient' '$( "${PKG_CONFIG}" --libs smbclient )' '-DLIBSMBCLIENT' + hydra_sed subversion '-lsvn_client-1 -lapr-1 -laprutil-1 -lsvn_subr-1' '' '-DLIBSVN' + hydra_sed zlib '-lz' '$( "${PKG_CONFIG}" --libs zlib )' '-DHAVE_ZLIB' + + sh configure \ + $(use gtk || echo --disable-xhydra) \ + $(usex debug '--debug' '') \ + --nostrip \ + --prefix=/usr \ + || die + + if use gtk ; then + pushd hydra-gtk || die + econf + fi +} + +src_compile() { + emake XLIBPATHS='' + use gtk && emake -C hydra-gtk +} + +src_install() { + dobin hydra pw-inspector + use gtk && dobin hydra-gtk/src/xhydra + dodoc CHANGES README +} |