public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: net-analyzer/hydra/files/, net-analyzer/hydra/
Date: Wed, 13 Apr 2022 01:48:26 +0000 (UTC)	[thread overview]
Message-ID: <1649813999.1b6d55530908535b7439045af4ea35a096ee4a95.sam@gentoo> (raw)

commit:     1b6d55530908535b7439045af4ea35a096ee4a95
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 13 01:39:51 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Apr 13 01:39:59 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1b6d5553

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 <AT> gentoo.org>

 net-analyzer/hydra/Manifest                    |   1 +
 net-analyzer/hydra/files/hydra-9.3-pcre2.patch | 113 +++++++++++++++++++++++
 net-analyzer/hydra/hydra-9.3.ebuild            | 121 +++++++++++++++++++++++++
 3 files changed, 235 insertions(+)

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
+}


             reply	other threads:[~2022-04-13  1:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-13  1:48 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-09-09  3:35 [gentoo-commits] repo/gentoo:master commit in: net-analyzer/hydra/files/, net-analyzer/hydra/ Sam James
2021-03-26 17:00 Sam James
2017-04-16 20:49 Jeroen Roovers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1649813999.1b6d55530908535b7439045af4ea35a096ee4a95.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox