summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-crypt/johntheripper/johntheripper-1.9.0.ebuild')
-rw-r--r--app-crypt/johntheripper/johntheripper-1.9.0.ebuild129
1 files changed, 129 insertions, 0 deletions
diff --git a/app-crypt/johntheripper/johntheripper-1.9.0.ebuild b/app-crypt/johntheripper/johntheripper-1.9.0.ebuild
new file mode 100644
index 000000000000..d7bd1317da50
--- /dev/null
+++ b/app-crypt/johntheripper/johntheripper-1.9.0.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+MY_PN="john"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="fast password cracker"
+HOMEPAGE="https://www.openwall.com/john/"
+
+SRC_URI="https://www.openwall.com/john/k/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~hppa ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+CPU_FLAGS="cpu_flags_x86_mmx cpu_flags_x86_sse2 cpu_flags_x86_avx cpu_flags_x86_xop"
+IUSE="custom-cflags openmp ${CPU_FLAGS}"
+
+DEPEND="virtual/libcrypt:="
+RDEPEND="${DEPEND}
+ !app-crypt/johntheripper-jumbo"
+
+S="${WORKDIR}/${MY_P}"
+
+get_target() {
+ if use alpha; then
+ echo "linux-alpha"
+ elif use amd64; then
+ if use cpu_flags_x86_xop; then
+ echo "linux-x86-64-xop"
+ elif use cpu_flags_x86_avx; then
+ echo "linux-x86-64-avx"
+ else
+ echo "linux-x86-64"
+ fi
+ elif use ppc; then
+ echo "linux-ppc32"
+ elif use ppc64; then
+ echo "linux-ppc64"
+ elif use sparc; then
+ echo "linux-sparc"
+ elif use x86; then
+ if use cpu_flags_x86_xop; then
+ echo "linux-x86-xop"
+ elif use cpu_flags_x86_avx; then
+ echo "linux-x86-avx"
+ elif use cpu_flags_x86_sse2; then
+ echo "linux-x86-sse2"
+ elif use cpu_flags_x86_mmx; then
+ echo "linux-x86-mmx"
+ else
+ echo "linux-x86-any"
+ fi
+ elif use ppc-macos; then
+ echo "macosx-ppc32-altivec"
+ elif use x64-macos; then
+ echo "macosx-x86-64"
+ else
+ echo "generic"
+ fi
+}
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ default
+}
+
+src_compile() {
+ local OMP
+
+ use custom-cflags || strip-flags
+ cat <<- EOF >> config.gentoo || die
+ #define JOHN_SYSTEMWIDE 1
+ #define JOHN_SYSTEMWIDE_HOME "${EPREFIX}/etc/john"
+ #define JOHN_SYSTEMWIDE_EXEC "${EPREFIX}/usr/libexec/john"
+EOF
+
+ append-flags -fPIC -fPIE
+ #gcc-specs-pie && append-ldflags -nopie
+ use openmp && OMP="-fopenmp"
+
+ CPP="$(tc-getCXX)" CC="$(tc-getCC)" AS="$(tc-getCC)" LD="$(tc-getCC)"
+
+ emake -C src/ \
+ CPP="${CPP}" CC="${CC}" AS="${AS}" LD="${LD}" \
+ CFLAGS="-c -Wall -include ../config.gentoo ${CFLAGS} ${OMP}" \
+ LDFLAGS="${LDFLAGS} ${OMP}" \
+ OPT_NORMAL="" \
+ OMPFLAGS="${OMP}" \
+ $(get_target)
+}
+
+src_test() {
+ emake -C src/ check
+}
+
+src_install() {
+ # executables
+ dosbin run/john
+ newsbin run/mailer john-mailer
+
+ dosym john /usr/sbin/unafs
+ dosym john /usr/sbin/unique
+ dosym john /usr/sbin/unshadow
+
+ # config files
+ insinto /etc/john
+ doins run/*.chr run/password.lst
+ doins run/*.conf
+
+ # documentation
+ dodoc doc/*
+}
+
+pkg_postinst() {
+ if [ -n "${REPLACING_VERSIONS}" ] && [ "${REPLACING_VERSIONS}" != "1.8.0" ]; then
+ ewarn "This package no longer includes jumbo. If you want jumbo please install app-crypt/johntheripper-jumbo instead."
+ fi
+}