summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-04-13 02:39:51 +0100
committerSam James <sam@gentoo.org>2022-04-13 02:39:59 +0100
commit1b6d55530908535b7439045af4ea35a096ee4a95 (patch)
treeca12c1206e49d6e8a120d919355d478c1cb1c0f8 /net-analyzer/hydra
parentmedia-sound/mpd: fix automagic deps (diff)
downloadgentoo-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/Manifest1
-rw-r--r--net-analyzer/hydra/files/hydra-9.3-pcre2.patch113
-rw-r--r--net-analyzer/hydra/hydra-9.3.ebuild121
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
+}