##
##  john.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package information
Name:         john
Summary:      Password Cracking Tool
URL:          http://www.openwall.com/john/
Vendor:       Solar Designer
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        PLUS
Group:        System
License:      GPL
Version:      1.9.0
Release:      20190413

#   list of sources
Source0:      http://www.openwall.com/john/k/john-%{version}.tar.gz
Patch0:       john.patch

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101, gcc
PreReq:       OpenPKG, openpkg >= 20160101

%description
    John the Ripper is a fast password cracker. Its primary purpose is
    to detect weak Unix passwords. Besides several crypt(3) password
    hash types most commonly found on various Unix flavors Kerberos AFS
    and Windows NT/2000/XP/2003 LM hashes.

%track
    prog john = {
        version   = %{version}
        url       = http://www.openwall.com/john/
        regex     = john-(__VER__)\.tar\.gz
    }

%prep
    %setup -q
    %patch -p0

%build
    %{l_shtool} subst %{l_value -s -a} src/params.h
    %{l_shtool} subst -e 's;-lcrypto -lssl;-lssl -lcrypto;' src/Makefile
    %{l_shtool} subst -e 's;/usr/local;%{l_prefix};g' src/Makefile
    ( cd src
      platform="generic"
      case "%{l_platform -t}" in
          i?86-freebsd*  ) platform="freebsd-x86-any"     ;;
          amd64-freebsd* ) platform="freebsd-x86-64"      ;;
          i?86-linux*    ) platform="linux-x86-any"       ;;
          amd64-linux*   ) platform="linux-x86-64"        ;;
          sun4u-sunos*   ) platform="solaris-sparc64-gcc" ;;
          i?86-sunos*    ) platform="solaris-x86-any"     ;;
          amd64-sunos*   ) platform="solaris-x86-any"     ;;
      esac
      %{l_make} %{l_mflags} $platform CC="%{l_cc}"
    ) || exit $?
    cat doc/README doc/OPTIONS doc/MODES >john.1

%install
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/bin \
        $RPM_BUILD_ROOT%{l_prefix}/etc/john \
        $RPM_BUILD_ROOT%{l_prefix}/man/cat1
    %{l_shtool} install -c -s -m 755 \
        run/john $RPM_BUILD_ROOT%{l_prefix}/bin/
    %{l_shtool} install -c -m 644 \
        run/john.conf $RPM_BUILD_ROOT%{l_prefix}/etc/john/
    %{l_shtool} install -c -m 644 \
        john.1 $RPM_BUILD_ROOT%{l_prefix}/man/cat1/
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
        %{l_files_std} \
        '%config %{l_prefix}/etc/john/*'

%files -f files

%clean

