commit:     e41646d2f1853e91ee09129ecc29869524ac1e74
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 18 15:01:36 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jul 18 15:18:06 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e41646d2

net-analyzer/hydra: allow use of dev-libs/libmemcached-awesome

dev-libs/libmemcached-awesome is an API & ABI compatible fork of
dev-libs/libmemcached. The latter hasn't had updates or fixes in quite
some time.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-analyzer/hydra/hydra-9.5-r11.ebuild | 133 ++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

diff --git a/net-analyzer/hydra/hydra-9.5-r11.ebuild 
b/net-analyzer/hydra/hydra-9.5-r11.ebuild
new file mode 100644
index 000000000000..fce8abf78246
--- /dev/null
+++ b/net-analyzer/hydra/hydra-9.5-r11.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo 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? (
+               >=app-accessibility/at-spi2-core-2.46.0
+               dev-libs/glib:2
+               x11-libs/gdk-pixbuf:2
+               x11-libs/gtk+:2
+       )
+       firebird? ( dev-db/firebird )
+       gcrypt? ( dev-libs/libgcrypt )
+       idn? ( net-dns/libidn:= )
+       memcached? (
+               || (
+                       dev-libs/libmemcached-awesome[sasl]
+                       dev-libs/libmemcached[sasl]
+               )
+       )
+       mongodb? ( dev-libs/mongo-c-driver )
+       mysql? ( dev-db/mysql-connector-c:= )
+       ncurses? ( sys-libs/ncurses:= )
+       oracle? ( dev-db/oracle-instantclient[sdk] )
+       pcre? ( dev-libs/libpcre2 )
+       postgres? ( dev-db/postgresql:* )
+       rdp? ( net-misc/freerdp:2= )
+       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}"/${PN}-9.5-no-clobber-fortify-source.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
+
+       # Needed to get GTK+ 3 change in configure.in (.in got updated, but
+       # configure not regen'd.)
+       #cd hydra-gtk || die
+       #sed -i -e 's:AC_INIT(configure.in):AC_INIT(configure.ac):' 
configure.in || die
+       #eautoreconf
+}
+
+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'
+
+       edo ./configure \
+               $(usev !gtk '--disable-xhydra') \
+               $(usev 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 via email to