aboutsummaryrefslogtreecommitdiffstats
path: root/security/john/Makefile
blob: eb305141d06430f244e89c4c10802a15281ec85c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Created by: David O'Brien <obrien@FreeBSD.org>
# $FreeBSD$

PORTNAME=   john
DISTVERSION=    1.8.0-jumbo-1
PORTREVISION=   2
CATEGORIES= security
MASTER_SITES=   http://www.openwall.com/john/j/ \
        http://mirrors.kernel.org/openwall/projects/john/${DISTVERSION:C/-.*//}/ \
        http://distro.ibiblio.org/pub/linux/distributions/openwall/projects/john/${DISTVERSION:C/-.*//}/ \
        http://gd.tuwien.ac.at/opsys/linux/openwall/projects/john/${DISTVERSION:C/-.*//}/

MAINTAINER= danfe@FreeBSD.org
COMMENT=    Featureful Unix password cracker

LICENSE=    GPLv2

LIB_DEPENDS=    libgmp.so:math/gmp

BROKEN_aarch64= Fails to build: Cannot detect CPU architechture
BROKEN_mips64=  Fails to build: Cannot detect CPU architechture

USES=       gmake shebangfix ssl tar:xz
GNU_CONFIGURE=  yes
CONFIGURE_ENV=  OPENSSL_CFLAGS="-I${OPENSSLINC}" \
        OPENSSL_LIBS="-L${OPENSSLLIB} -lcrypto -lssl"
SHEBANG_FILES=  ../run/*.pl ../run/*.rb ../run/benchmark-unify ../run/relbench
WRKSRC_SUBDIR=  src

ALL_TARGET= default
CFLAGS+=    -DJOHN_SYSTEMWIDE=1 \
        -DJOHN_SYSTEMWIDE_HOME=\\\"${DATADIR}\\\" \
        -DJOHN_SYSTEMWIDE_EXEC=\\\"${LOCALBASE}/libexec/${PORTNAME}\\\"

# We prefer -jumbo (community-enhanced) versions instead of vanilla releases
# due to the sad fact that `-jumbo-???' suffixed versions *precede* official
# ones per pkg_version(1) -t check.  So, when Alexander rolls out new "plain"
# release, just hold the horses and wait for corresponding -jumbo one, which
# usually does not take too long to appear.
#
PORTSCOUT=  limit:.*-jumbo

BINARIES=   calc_stat cprepair genmkvpwd john luks2john mkvcalcproba \
        raw2dyna SIPdump tgtsnarf uaf2john vncpcap2john wpapcap2john

BINLINKS=   base64conv dmg2john gpg2john hccap2john keepass2john \
        keychain2john keyring2john keystore2john kwallet2john \
        pfx2john putty2john pwsafe2john racf2john rar2john ssh2john \
        truecrypt_volume2john unafs undrop unique unshadow zip2john

PORTDOCS=   *

OPTIONS_DEFINE= DOCS #OPENMP
#OPENMP_USES=   compiler:openmp

post-patch:
# Replace methods and types that were marked deprecated by OpenSSL 0.9.7
# and removed in OpenSSL 1.1.0 and LibreSSL
    @${REINPLACE_CMD} -e 's|des_string_to_key|DES_string_to_key|' \
        ${WRKSRC}/KRB4_fmt_plug.c
    @${REINPLACE_CMD} -e 's|des_set_odd_parity|DES_set_odd_parity|' \
        ${WRKSRC}/KRB4_std_plug.c
    @${REINPLACE_CMD} -e 's|C_Block|DES_cblock|' \
        ${WRKSRC}/efs_fmt_plug.c \
        ${WRKSRC}/gpg_fmt_plug.c \
        ${WRKSRC}/keychain_fmt_plug.c \
        ${WRKSRC}/mozilla_ng_fmt_plug.c \
        ${WRKSRC}/opencl_gpg_fmt_plug.c \
        ${WRKSRC}/opencl_keychain_fmt_plug.c \
        ${WRKSRC}/ssh_ng_fmt_plug.c

.include <bsd.port.pre.mk>

.if ${SSL_DEFAULT:Mopenssl-devel}
BROKEN=     Does not build with openssl-devel
.endif

do-install:
.for b in ${BINARIES}
    ${INSTALL_PROGRAM} ${WRKSRC}/../run/${b} ${STAGEDIR}${PREFIX}/bin
.endfor
.for l in ${BINLINKS}
    ${LN} -sf john ${STAGEDIR}${PREFIX}/bin/${l}
.endfor
    @${MKDIR} ${STAGEDIR}${DATADIR}/extra
    cd ${WRKSRC}/../run && ${INSTALL_DATA} *.chr *.conf *.lst \
        ${STAGEDIR}${DATADIR}
    cd ${WRKSRC}/../run && ${INSTALL_DATA} *.?? benchmark-unify \
        dictionary.rfc2865 john.*sh_completion mailer makechr \
        relbench stats ${STAGEDIR}${DATADIR}/extra

do-install-DOCS-on:
    @${MKDIR} ${STAGEDIR}${DOCSDIR}
    @${RM} ${WRKSRC}/../doc/COPYING
    ${INSTALL_DATA} ${WRKSRC}/../doc/* ${STAGEDIR}${DOCSDIR}

.include <bsd.port.post.mk>