Bug 247229 - security/john: Fails to build on FreeBSD 12.1 if OpenCL is installed
Summary: security/john: Fails to build on FreeBSD 12.1 if OpenCL is installed
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Alexey Dokuchaev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-13 07:13 UTC by Ting-Wei Lan
Modified: 2021-11-26 07:39 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (danfe)


Attachments
build log (9.81 KB, application/zip)
2020-11-09 22:12 UTC, Igor Pavlov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ting-Wei Lan 2020-06-13 07:13:48 UTC
Here are the error messages. It looks like there are some OpenSSL problems in the code when OpenCL is enabled.

gmake[2]: Entering directory '/wrkdirs/usr/ports/security/john/work/john-1.8.0-jumbo-1/src'
cc -DAC_BUILT -march=native  -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  -I/usr/local/include -I/usr/include -DARCH_LITTLE_ENDIAN=1 -DJOHN_SYSTEMWIDE=1  -Wall -Wdeclaration-after-statement -fomit-frame-pointer -Wno-deprecated-declarations -Wno-format-extra-args -Qunused-arguments -D__BSD_VISIBLE   -I/usr/include -fopenmp  -D_THREAD_SAFE -pthread  -DHAVE_OPENCL -D_THREAD_SAFE -pthread -funroll-loops opencl_dmg_fmt_plug.c -o opencl_dmg_fmt_plug.o
opencl_dmg_fmt_plug.c:527:17: error: variable has incomplete type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
        EVP_CIPHER_CTX ctx;
                       ^
/usr/include/openssl/ossl_typ.h:90:16: note: forward declaration of 'struct evp_cipher_ctx_st'
typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
               ^
opencl_dmg_fmt_plug.c:575:18: error: variable has incomplete type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
                EVP_CIPHER_CTX ctx;
                               ^
/usr/include/openssl/ossl_typ.h:90:16: note: forward declaration of 'struct evp_cipher_ctx_st'
typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
               ^
opencl_dmg_fmt_plug.c:582:12: error: variable has incomplete type 'HMAC_CTX' (aka 'struct hmac_ctx_st')
                HMAC_CTX hmacsha1_ctx;
                         ^
/usr/include/openssl/ossl_typ.h:102:16: note: forward declaration of 'struct hmac_ctx_st'
typedef struct hmac_ctx_st HMAC_CTX;
               ^
opencl_dmg_fmt_plug.c:600:3: warning: implicit declaration of function 'HMAC_CTX_init' is invalid in C99 [-Wimplicit-function-declaration]
                HMAC_CTX_init(&hmacsha1_ctx);
                ^
opencl_dmg_fmt_plug.c:604:3: warning: implicit declaration of function 'HMAC_CTX_cleanup' is invalid in C99 [-Wimplicit-function-declaration]
                HMAC_CTX_cleanup(&hmacsha1_ctx);
                ^
2 warnings and 3 errors generated.
gmake[2]: *** [Makefile:502: opencl_dmg_fmt_plug.o] Error 1
gmake[2]: Leaving directory '/wrkdirs/usr/ports/security/john/work/john-1.8.0-jumbo-1/src'

This problem was found when building john on a desktop machine. To reproduce it in poudriere, adds opencl and ocl-icd to the build environment:

diff --git a/security/john/Makefile b/security/john/Makefile
index 287d45e8982..153a61feb89 100644
--- a/security/john/Makefile
+++ b/security/john/Makefile
@@ -19,6 +19,7 @@ LICENSE=      GPLv2
 BROKEN_mips64= cannot detect CPU architecture
 
 LIB_DEPENDS=   libgmp.so:math/gmp
+BUILD_DEPENDS= opencl>=0:devel/opencl ocl-icd>=0:devel/ocl-icd
 
 USES=          gmake shebangfix ssl tar:xz
 GNU_CONFIGURE= yes
Comment 1 Igor Pavlov 2020-11-09 22:12:07 UTC
Created attachment 219502 [details]
build log
Comment 2 Igor Pavlov 2020-11-09 22:13:58 UTC
I have the same issue on FreeBSD 12.2
Comment 3 commit-hook freebsd_committer freebsd_triage 2021-11-26 07:35:57 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4b7f7b97f1fffa5b008504c7255289f5a2948ba2

commit 4b7f7b97f1fffa5b008504c7255289f5a2948ba2
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2021-11-26 07:34:18 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2021-11-26 07:34:25 +0000

    security/john: belatedly update JtR to version 1.9.0-jumbo-1

    Despite what Solar Designer had said earlier, community enhancements
    were not offered as separate patch, so the top comment about JUMBO
    option still stands.

    Because supported SIMD features are detected during configure, force
    SSE2 for x86 packages as reasonable default which most modern CPUs
    should support these days.  Ideally we should probably do several build
    rounds and produce binaries targeting different SIMD features (e.g.
    like Arch Linux is doing this), but that's the task for another day.

    Actualize the lists of binaries and symlinks (some programs had become
    standalone, others had been converted to scripts offered as extras).

    Drop BROKEN_mips64: it was added in r425682 five years ago for a
    different version, since then similar breakage for aarch64 had been
    fixed, and looking at the configure script, mips64 should be supported
    (even if it's really not, that particular error message is no longer
    accurate per grepping the sources).

    Adjust LICENSE (GPLv2 or later) and fix the build with OpenCL support.

    PR:     247229, 254922

 security/john/Makefile                             |  75 +++---
 security/john/distinfo                             |   6 +-
 security/john/files/patch-Makefile.in (gone)       |  61 -----
 security/john/files/patch-Makefile.legacy (gone)   | 114 ---------
 .../john/files/patch-bitcoin__fmt__plug.c (gone)   | 134 ----------
 security/john/files/patch-dmg__fmt__plug.c (gone)  | 156 -----------
 .../john/files/patch-encfs__fmt__plug.c (gone)     | 113 --------
 security/john/files/patch-git-4442241b4c (new)     | 253 ++++++++++++++++++
 security/john/files/patch-git-4f5f6fc8dc (new)     |  14 +
 security/john/files/patch-gpg__fmt__plug.c (gone)  | 117 ---------
 security/john/files/patch-john.c (gone)            |  31 ---
 security/john/files/patch-jumbo.c (gone)           |  26 --
 security/john/files/patch-jumbo.h (gone)           |  13 -
 security/john/files/patch-rar__fmt__plug.c (gone)  | 254 ------------------
 .../john/files/patch-truecrypt__fmt__plug.c (gone) |  13 -
 security/john/files/patch-unrar.c (gone)           |  25 --
 security/john/files/patch-unrar.h (gone)           |  25 --
 security/john/files/patch-wordlist.c (gone)        |  14 -
 security/john/files/patch-wpapsk.h (gone)          |  62 -----
 security/john/pkg-plist                            | 285 +++++++++++++++++++--
 20 files changed, 570 insertions(+), 1221 deletions(-)
Comment 4 Alexey Dokuchaev freebsd_committer freebsd_triage 2021-11-26 07:39:31 UTC
Should be fixed with the recent port update commit; please reopen if you'd still encounter this issue.