+++ /dev/null
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit eutils pax-utils
-
-DESCRIPTION="An opencl hash cracker"
-HOMEPAGE="http://hashcat.net/oclhashcat-lite/"
-MY_P="oclHashcat-lite-${PV}"
-SRC_URI="http://hashcat.net/files/${MY_P}.7z"
-
-#license applies to this version per http://hashcat.net/forum/thread-1348.html
-LICENSE="hashcat"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-
-IUSE_VIDEO_CARDS="video_cards_fglrx
- video_cards_nvidia"
-
-IUSE="virtualcl ${IUSE_VIDEO_CARDS}"
-
-RDEPEND="sys-libs/zlib
- video_cards_nvidia? ( >=x11-drivers/nvidia-drivers-310.32 )
- video_cards_fglrx? ( >=x11-drivers/ati-drivers-13.1 )"
-DEPEND="${RDEPEND}
- app-arch/p7zip"
-
-S="${WORKDIR}/${MY_P}"
-
-RESTRICT="strip"
-QA_PREBUILT="*Hashcat-lite*.bin"
-
-src_prepare() {
- if use x86; then
- rm oclHashcat-lite64.bin || die
- rm cudaHashcat-lite64.bin || die
- fi
- if use amd64; then
- rm oclHashcat-lite32.bin || die
- rm cudaHashcat-lite32.bin || die
- fi
- if ! use video_cards_fglrx; then
- rm -r kernels/4098 || die
- rm oclHashcat-lite*.bin || die
- fi
- if ! use video_cards_nvidia; then
- rm -r kernels/4318 || die
- rm cudaHashcat-lite*.bin || die
- fi
- use virtualcl || { rm vclHashcat-lite* || die; }
-
- pax-mark r *Hashcat-lite*.bin
-}
-
-src_test() {
- printf "%02x" ${PV#0.} > "${S}"/eula.accepted
- if use video_cards_nvidia; then
- addwrite /dev/nvidia0
- addwrite /dev/nvidiactl
- if [ ! -w /dev/nvidia0 ]; then
- einfo "To run these tests, portage likely must be in the video group."
- einfo "Please run \"passwd -a portage video\" if the tests will fail"
- fi
- if use amd64; then
- ./cudaHashcat-lite64.bin 6fc33db981c6c55189bbda9625eacd6d
- elif use x86; then
- ./cudaHashcat-lite32.bin 6fc33db981c6c55189bbda9625eacd6d
- fi
- fi
- if use video_cards_fglrx; then
- addwrite /dev/ati
- if use amd64; then
- ./oclHashcat-lite64.bin 6fc33db981c6c55189bbda9625eacd6d
- elif use x86; then
- ./oclHashcat-lite32.bin 6fc33db981c6c55189bbda9625eacd6d
- fi
- fi
- rm eula.accepted cudaHashcat-lite.restore
-}
-
-src_install() {
- dodoc docs/*
- rm -r "${S}"/*.exe "${S}"/*.cmd "${S}"/docs || die
-
- insinto /opt/${PN}
- doins -r "${S}"/*
-
- dodir /opt/bin
-
- cat <<-EOF > "${ED}"/opt/bin/oclhashcat-lite
- #! /bin/sh
- echo "oclHashcat-lite and all related files have been installed in /opt/${PN}"
- echo "Please run one of the following binaries to use gpu accelerated hashcat:"
- EOF
-
- for x in oclHashcat-lite64.bin oclHashcat-lite32.bin cudaHashcat-lite64.bin cudaHashcat-lite32.bin vclHashcat-lite64.bin vclHashcat-lite32.bin
- do
- if [ -f "${ED}"/opt/${PN}/${x} ]
- then
- case "${x}" in
- oclHashcat-lite64.bin)
- echo "echo '64 bit ATI accelerated \"oclHashcat-lite64.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
- ;;
- oclHashcat-lite32.bin)
- echo "echo '32 bit ATI accelerated \"oclHashcat-lite32.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
- ;;
- cudaHashcat-lite64.bin)
- echo "echo '64 bit NVIDIA accelerated \"cudaHashcat-lite64.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
- ;;
- cudaHashcat-lite32.bin)
- echo "echo '32 bit NVIDIA accelerated \"cudaHashcat-lite32.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
- ;;
- vclHashcat-lite64.bin)
- echo "echo '64 bit VirtualCL Cluster support \"vclHashcat-lite64.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
- ;;
- vclHashcat-lite32.bin)
- echo "echo '32 bit VirtualCL Cluster support \"vclHashcat-lite32.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
- ;;
- esac
-
- fperms +x /opt/${PN}/${x}
-
- cat <<-EOF > "${ED}"/opt/bin/${x}
- #! /bin/sh
- cd /opt/${PN}
- echo "Warning: ${x} is running from /opt/${PN} so be careful of relative paths."
- exec ./${x} "\$@"
- EOF
-
- fperms +x /opt/bin/${x}
-
- fi
- done
-
- fperms +x /opt/bin/oclhashcat-lite
- fowners -R root:video /opt/${PN}
- fperms g+w /opt/${PN}
- einfo "oclhashcat-lite can be run as user if you are in the video group"
-}
-
-pkg_preinst() {
- #I feel so dirty doing this
- #first we remove the eula.accepted because it cannot properly handle and empty or old one (crash or doesn't run at all)
- rm -f "${EROOT}"/opt/${PN}/eula.accepted
- #next we remove any compiled kernel files as these get built on first run only if they aren't there because there are no timestamp checks
- rm -f "${EROOT}"/opt/${PN}/kernels/{4318,4098}/"*.kernel"
- #have mercy on my soul
-}