You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
4.2 KiB
151 lines
4.2 KiB
# 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
|
|
}
|