diff options
Diffstat (limited to 'app-crypt/johntheripper/johntheripper-1.7.2-r1.ebuild')
-rw-r--r-- | app-crypt/johntheripper/johntheripper-1.7.2-r1.ebuild | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/app-crypt/johntheripper/johntheripper-1.7.2-r1.ebuild b/app-crypt/johntheripper/johntheripper-1.7.2-r1.ebuild new file mode 100644 index 000000000000..7e716fd4a4c7 --- /dev/null +++ b/app-crypt/johntheripper/johntheripper-1.7.2-r1.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-crypt/johntheripper/johntheripper-1.7.2-r1.ebuild,v 1.1 2007/07/19 16:16:49 alonbl Exp $ + +inherit eutils flag-o-matic toolchain-funcs pax-utils + +MY_PBASE=${P/theripper/} +MY_PNBASE=${PN/theripper/} +S=${WORKDIR}/${MY_PBASE} +DESCRIPTION="fast password cracker" +HOMEPAGE="http://www.openwall.com/john/" +SRC_URI="http://www.openwall.com/john/f/${MY_PBASE}.tar.gz + http://www.openwall.com/john/contrib/${MY_PNBASE}-1.7.2-all-7.diff.gz" + +# banquise-to-bigpatch-17.patch.bz2" +# based off /var/tmp/portage/johntheripper-1.6.40 + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86" +IUSE="mmx altivec sse2" + +RDEPEND="virtual/libc + >=dev-libs/openssl-0.9.7" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${WORKDIR}"/${MY_PNBASE}-1.7.2-all-7.diff + + for p in params.h sha1-memset stackdef.S stackdef-2.S stripping; do + epatch "${FILESDIR}/${P}-${p}.patch" + done + + ebegin "Applying ${P}-Makefile.patch" + sed -i -e "s|^CFLAGS.*|CFLAGS= -c -Wall ${CFLAGS}|" \ + -e 's|^LDFLAGS.*|LDFLAGS= -lm|' "${S}"/src/Makefile + eend $? + + ebegin "Applying ${P}-john.conf.patch" + sed -i -e 's:$JOHN:/usr/share/john:g' "${S}"/run/john.conf + eend $? +} + +src_compile() { + cd "${S}"/src + # Note this program uses AS and LD incorrectly + OPTIONS="CPP=$(tc-getCXX) CC=$(tc-getCC) AS=$(tc-getCC) LD=$(tc-getCC) \ + OPT_NORMAL= OPT_INLINE= JOHN_SYSTEMWIDE=1 + CFG_FULL_NAME=/etc/john/john.conf + CFG_ALT_NAME=/etc/john/john.ini" + + if use x86 ; then + if use sse2 ; then + emake ${OPTIONS} linux-x86-sse2 || die "Make failed" + elif use mmx ; then + emake ${OPTIONS} linux-x86-mmx || die "Make failed" + else + emake ${OPTIONS} linux-x86-any || die "Make failed" + fi + elif use alpha ; then + emake ${OPTIONS} linux-alpha || die "Make failed" + elif use sparc; then + emake ${OPTIONS} linux-sparc || die "Make failed" + elif use amd64; then + emake ${OPTIONS} linux-x86-64 || die "Make failed" + elif use ppc-macos; then + if use altivec; then + emake ${OPTIONS} macosx-ppc32-altivec || die "Make failed" + else + emake ${OPTIONS} macosx-ppc32 || die "Make failed" + fi + # for Tiger this can be macosx-ppc64 + elif use ppc64; then + if use altivec; then + emake ${OPTIONS} linux-ppc32-altivec || die "Make failed" + else + emake ${OPTIONS} linux-ppc64 || die "Make failed" + fi + # linux-ppc64-altivec is slightly slower than linux-ppc32-altivec for most hash types. + # as per the Makefile comments + elif use ppc; then + if use altivec; then + emake ${OPTIONS} linux-ppc32-altivec || die "Make failed" + else + emake ${OPTIONS} linux-ppc32 || die "Make failed" + fi + else + emake ${OPTIONS} generic || die "Make failed" + fi + + # currently broken + #emake bench || die "make failed" +} + +src_test() { + cd run + if [[ -f /etc/john/john.conf || -f /etc/john/john.ini ]] + then + ./john --test || die 'self test failed' + else + ewarn "selftest requires /etc/john/john.conf or /etc/john/john.ini" + fi +} + +src_install() { + # config files + insinto /etc/john + doins run/john.conf + + # executables + dosbin run/john + newsbin run/mailer john-mailer + + pax-mark -m "${D}"/usr/sbin/john + + dosym john /usr/sbin/unafs + dosym john /usr/sbin/unique + dosym john /usr/sbin/unshadow + + # for EGG only + dosym john /usr/sbin/undrop + + #newsbin src/bench john-bench + + # share + insinto /usr/share/john/ + doins run/*.chr run/password.lst + + # documentation + dodoc doc/* +} |