# Contributor: Ivan Tham # Contributor: Francesco Colista # Maintainer: Francesco Colista setglobal pkgname = 'john' setglobal pkgver = '1.8.0' setglobal _pkgrel = 'jumbo-1' setglobal pkgrel = '7' setglobal pkgdesc = '"John the Ripper password cracker'" setglobal url = '"http://www.openwall.com/john'" setglobal arch = '"x86_64 armhf ppc64le'" setglobal license = '"GPL2'" setglobal depends = '"nss'" setglobal options = '"!strip'" setglobal makedepends = '"libpcap-dev libressl-dev gmp-dev yasm-dev zlib-dev'" setglobal install = ''"" setglobal subpackages = ""$pkgname-doc $pkgname-scripts-py:py:noarch $pkgname-scripts-perl:perl:noarch $pkgname-scripts-ruby:ruby:noarch $pkgname-misc::noarch $pkgname-zsh-completion:zshcomp:noarch $pkgname-bash-completion:bashcomp:noarch $pkgname-jumbo:jumbo:noarch "" setglobal source = ""$pkgname-$pkgver.tar.gz::https://github.com/magnumripper/JohnTheRipper/archive/$pkgver-$_pkgrel.tar.gz truecrypt_fmt_plug.patch params-h.patch gcc5-support.patch libressl.patch "" setglobal builddir = ""$srcdir/JohnTheRipper-$pkgver-$_pkgrel"" proc build { cd "$builddir"/src sed -i -e "s/ac_default_prefix.*/ac_default_prefix=\/usr/g" configure export OPENSSL_LIBS="-lssl -lcrypto" ./configure \ --disable-openmp make || return 1 } proc package { cd $builddir mkdir -p "$pkgdir"/usr/bin mkdir -p "$pkgdir"/usr/share/doc/$pkgname install -Dm644 run/john.conf "$pkgdir"/etc/john/john.conf install -Dm644 run/john.local.conf "$pkgdir"/etc/john/john.local.conf install -Dm644 doc/* "$pkgdir"/usr/share/doc/$pkgname install -Dm644 doc/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE rm "$pkgdir"/usr/share/doc/$pkgname/LICENSE* local john_bins="john calc_stat genmkvpwd mkvcalcproba relbench tgtsnarf raw2dyna" for bin in [$(john_bins)] { install -Dm755 run/$(bin) "$pkgdir"/usr/bin } local john_links="hccap2john keepass2john mozilla2john pdf2john pfx2john pwsafe2john racf2john rar2john ssh2john unafs unique unsahdow undrop zip2john" for link in [$(john_links)] { ln -s john "$pkgdir"/usr/bin/$(link) } } proc py { setglobal depends = '"libxml2 libgsf'" _script python "*.py" } proc perl { _script perl "*.pl benchmark-unify" } proc ruby { _script ruby "*.rb" } proc _script { local lang="$1" setglobal depends = ""$depends $lang"" setglobal pkgdesc = ""John the Ripper ($lang scripts)"" _install 755 $2 } proc misc { setglobal pkgdesc = '"Misc tools for John the Ripper: password list and charset files'" local john_pwd="password.lst dictionary.rfc2865 stats" local john_chr="*.chr" local john_cfg="dumb*.conf repeats*.conf dynamic*.conf korelogic.conf regex_alphabets.conf" _install 644 "$john_pwd $john_cfg $john_chr" } proc _install { local perm="$1" local files="$2" mkdir -p "$subpkgdir"/usr/share/$pkgname cd "$builddir"/run for f in [$(files)] { install -Dm$(perm) $(f) "$subpkgdir"/usr/share/john } } proc bashcomp { setglobal depends = ''"" setglobal pkgdesc = ""Bash completions for $pkgname"" setglobal install_if = ""$pkgname=$pkgver-r$pkgrel bash-completion"" cd $builddir install -Dm644 run/john.bash_completion \ "$subpkgdir"/usr/share/bash-completion/completions/$pkgname || return 1 } proc zshcomp { setglobal depends = ''"" setglobal pkgdesc = ""Zsh completions for $pkgname"" setglobal install_if = ""$pkgname=$pkgver-r$pkgrel zsh"" cd $builddir install -Dm644 run/john.zsh_completion \ "$subpkgdir"/usr/share/zsh/site-functions/$pkgname || return 1 } proc jumbo { setglobal pkgdesc = ""$pkgdesc (jumbo pack)"" setglobal depends = ""$pkgname-scripts-py $pkgname-scripts-perl $pkgname-scripts-ruby $pkgname-misc"" mkdir $subpkgdir } setglobal sha512sums = '"8b7fad7a6330b5ff1afc306218ba698aaa27776b566f82c2e76102d5ceb10aeafa69d71fa6fff67c81996ea2c6a04384bab4696ed192306c6d074873562e7089 john-1.8.0.tar.gz 80be6cc1b1b35c6a85392008638b2f8b6d8a518ee35f59405e2f5682e025e4b8beecf964148311e6f62d76b59153f04427024fa81aaf56ee2062ac2dbf0a9bcb truecrypt_fmt_plug.patch a5c22feb8bf11509c306a2f236f2bd4891fdfc3b01882f07d85015e0895d82f28df0dff78ba8d3a3862d8d95877a88a9eb8138e6c407b40881fa1455079b98fc params-h.patch 4ebe8b41b1d0c3839348dcf5348332f9d7ce25919077fa054db64b7106150f299c6b177d117f7c18c1db672a494a6de6be8b5afe502f5ca3639602ba3aef6866 gcc5-support.patch fb46431fe3e42e36c72361c13460e8ac626d2f146fa84c8f6e17e5407e69530a84ceb1de6bc9910c1a03a6e907fc113f7000a2cbc3936ae0860103d3e2d489b0 libressl.patch'"