+# Conditional build:
+%bcond_without opencl # OpenCL support (in jumbo version)
+%bcond_without openmp # OpenMP support (in jumbo version)
+
+%define snap 20181101
+%define githash d73288b91d92f3bd670c18d3853ddaf0e02159f0
+
Summary: Password cracker
-Summary(pl): £amacz hase³
+Summary(pl.UTF-8): Łamacz haseł
Name: john
-Version: 1.6
-Release: 3
-Copyright: GPL
-Group: Utilities/System
-Group(pl): Narzêdzia/System
-URL: http://www.false.com/security/john/
-Source: %{name}-%{version}.tar.gz
-Patch0: %{name}-%{version}.PLD.diff
-Patch1: %{name}-%{version}.ini.diff
-Patch2: %{name}-%{version}.makefile.diff
-Buildroot: /tmp/%{name}-%{version}-root
+Version: 1.8.0
+Release: 2.%{snap}.1
+License: GPL v2
+Group: Applications/System
+Source0: https://github.com/magnumripper/JohnTheRipper/archive/%{githash}/john-%{snap}.tar.gz
+# Source0-md5: a75c1108111c5181b471a9f4a9dab898
+Patch0: %{name}-mailer.patch
+Patch1: jumbo-optflags.patch
+Patch4: %{name}-x32.patch
+URL: http://www.openwall.com/john/
+BuildRequires: rpmbuild(macros) >= 1.213
+BuildRequires: autoconf >= 2.69
+BuildRequires: tar >= 1:1.22
+%{?with_opencl:BuildRequires: OpenCL-devel}
+BuildRequires: bzip2-devel
+%{?with_openmp:BuildRequires: gcc >= 6:4.2}
+BuildRequires: gmp-devel
+%{?with_openmp:BuildRequires: libgomp-devel}
+# for SIPdump and vncpcap2john binaries, which are not packaged
+#BuildRequires: libpcap-devel
+BuildRequires: openssl-devel >= 0.9.7
+BuildRequires: pkgconfig
+BuildRequires: yasm
+BuildRequires: zlib-devel
+Requires: words
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-John the Ripper is a password cracker, currently available for UNIX, DOS,
-WinNT/Win95. Its primary purpose is to detect weak UNIX passwords. It has
-been tested with Linux x86/Alpha/SPARC, FreeBSD x86, OpenBSD x86, Solaris
-2.x SPARC and x86, Digital UNIX, AIX, HP-UX, and IRIX.
-
-%description -l pl
-John The Ripper jest "³amaczem" hase³ dostêpnym dla systemów UNIX, DOS,
-WinNT/Win95. G³ównym jego zadaniem jest wykrywanie "s³abych" hase³.
-
+John the Ripper is a fast password cracker, currently available for
+many flavors of Unix (11 are officially supported, not counting
+different architectures), DOS, Win32, BeOS, and OpenVMS (the latter
+requires a contributed patch). Its primary purpose is to detect weak
+Unix passwords. Besides several crypt(3) password hash types most
+commonly found on various Unix flavors, supported out of the box are
+Kerberos/AFS and Windows NT/2000/XP LM hashes, plus several more with
+contributed patches.
+
+%description -l pl.UTF-8
+John The Ripper jest szybkim "łamaczem" haseł dostępnym dla wielu
+rodzajów uniksów (oficjalnie obsługiwanych jest 11, nie licząc różnych
+architektur), DOS-a, Win32, BeOS-a i OpenVMS-a (ten ostatni wymaga
+łaty). Głównym zastosowaniem jest wykrywanie słabych haseł uniksowych.
+Oprócz różnych rodzajów skrótów haseł crypt(3) najczęściej używanych
+na różnych uniksach, obsługiwane są także skróty Kerberos/AFS oraz
+Windows NT/2000/XP LM, a także kilka innych przy użyciu łat.
+
%prep
-%setup -q
+%setup -q -n JohnTheRipper-%{githash}
%patch0 -p1
%patch1 -p1
-%patch2 -p1
+%ifarch x32
+%patch4 -p1
+%endif
%build
cd src
-# Hmm. I don't know what is in /proc/cpuinfo on other processors than Intel MMX
-if grep -q "MMX" /proc/cpuinfo; then
- make OPT="$RPM_OPT_FLAGS" linux-x86-mmx-elf
-elif grep -q "K6" /proc/cpuinfo; then
- make OPT="$RPM_OPT_FLAGS" linux-x86-k6-elf
-elif grep -q "Alpha" /proc/cpuinfo; then
- make OPT="$RPM_OPT_FLAGS" linux-alpha
-elif grep -q "SPARC" /proc/cpuinfo; then
- make OPT="$RPM_OPT_FLAGS" linux-sparc
-else
- make OPT="$RPM_OPT_FLAGS" linux-x86-any-elf
-fi
-
+%{__autoconf}
+
+%ifarch x32
+ax_intel_x32=yes \
+%endif
+%configure \
+ %{!?with_opencl:--disable-opencl} \
+ %{!?with_openmp:--disable-openmp}
+
+%{__make}
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/usr/{bin,lib/john}
-install run/*.chr $RPM_BUILD_ROOT%{_libdir}/john
-install run/john.ini $RPM_BUILD_ROOT%{_libdir}/john
-install run/john $RPM_BUILD_ROOT%{_bindir}
-
-gzip -9nf doc/* run/mailer
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}/john}
+cp -a run/{*.conf,*.chr,*.lst} $RPM_BUILD_ROOT%{_datadir}/john
+install -p run/john $RPM_BUILD_ROOT%{_bindir}
-cd $RPM_BUILD_ROOT%{_bindir}
-ln -s john unafs; ln -s john unique; ln -s john unshadow
+ln -sf john $RPM_BUILD_ROOT%{_bindir}/unafs
+ln -sf john $RPM_BUILD_ROOT%{_bindir}/unique
+ln -sf john $RPM_BUILD_ROOT%{_bindir}/unshadow
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc doc/* run/mailer.gz
-%attr(755,root,root) %{_bindir}/*
-
-%dir %{_libdir}/john
-%{_libdir}/john/*
-
-%changelog
-* Mon Apr 26 1999 Micha³ Kuratczyk <kura@pld.org.pl>
- [1.6-3]
-- gzipping documentation instead bzipping
-- sloted BuildRoot into PLD standard
-
-* Wed Dec 09 1998 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
-- added ini patch.
-
-* Sun Oct 06 1998 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
-- initial rpm release.
+%doc doc/* run/mailer
+%attr(755,root,root) %{_bindir}/john
+%attr(755,root,root) %{_bindir}/unafs
+%attr(755,root,root) %{_bindir}/unique
+%attr(755,root,root) %{_bindir}/unshadow
+%{_datadir}/john