3 %bcond_without jumbo # Build community-enhanced version with lots of contributed
4 # patches adding support for over 30
5 # of additional hash types, and more.
6 %bcond_with avx # use x86 AVX instructions
7 %bcond_with xop # use x86 XOP instructions
8 %bcond_with altivec # use PPC Altivec instructions
10 %ifarch i586 i686 athlon pentium2 pentium3 pentium4
15 %ifarch i686 athlon pentium4
22 %define optmmxfb -DCPU_FALLBACK=1
29 %define optssefb -DCPU_FALLBACK=1
32 %define optssefb %{nil}
35 Summary: Password cracker
36 Summary(pl.UTF-8): Łamacz haseł
41 Group: Applications/System
42 Source0: http://www.openwall.com/john/j/%{name}-%{version}.tar.xz
43 # Source0-md5: a4086df68f51778782777e60407f1869
44 Source1: http://www.openwall.com/john/j/%{name}-%{version}-jumbo-1.tar.xz
45 # Source1-md5: 1d6b22ec41a12cdcd62ad6eae3e77345
46 Source2: http://www.openwall.com/john/j/%{name}-extra-20130529.tar.xz
47 # Source2-md5: bb191828e8cbfd5fe0779dff5d87d5f4
48 Patch0: %{name}-mailer.patch
49 Patch1: optflags.patch
50 URL: http://www.openwall.com/john/
51 %{?with_jumbo:BuildRequires: openssl-devel >= 0.9.7}
52 BuildRequires: rpmbuild(macros) >= 1.213
53 BuildRequires: tar >= 1:1.22
56 %ifarch %{ix86} %{x8664}
58 Requires: cpuinfo(xop)
60 %if %{with xop} || %{with avx}
61 Requires: cpuinfo(avx)
63 %if %{do_sse2} && !%{do_ssefb}
64 Requires: cpuinfo(sse2)
67 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
70 John the Ripper is a fast password cracker, currently available for
71 many flavors of Unix (11 are officially supported, not counting
72 different architectures), DOS, Win32, BeOS, and OpenVMS (the latter
73 requires a contributed patch). Its primary purpose is to detect weak
74 Unix passwords. Besides several crypt(3) password hash types most
75 commonly found on various Unix flavors, supported out of the box are
76 Kerberos/AFS and Windows NT/2000/XP LM hashes, plus several more with
79 %description -l pl.UTF-8
80 John The Ripper jest szybkim "łamaczem" haseł dostępnym dla wielu
81 rodzajów uniksów (oficjalnie obsługiwanych jest 11, nie licząc różnych
82 architektur), DOS-a, Win32, BeOS-a i OpenVMS-a (ten ostatni wymaga
83 łaty). Głównym zastosowaniem jest wykrywanie słabych haseł uniksowych.
84 Oprócz różnych rodzajów skrótów haseł crypt(3) najczęściej używanych
85 na różnych uniksach, obsługiwane są także skróty Kerberos/AFS oraz
86 Windows NT/2000/XP LM, a także kilka innych przy użyciu łat.
89 %setup -q -T %{?with_jumbo:-b1 -n %{name}-%{version}-jumbo-1} %{!?with_jumbo:-b0} -a2
91 %{!?with_jumbo:%patch1 -p1}
93 mv john-extra-*/*.chr run
105 #define JOHN_SYSTEMWIDE 1
106 #define JOHN_SYSTEMWIDE_EXEC "%{_libdir}/john"
110 %{__make} linux-x86-any \
112 OPTFLAGS="%{rpmcflags} -include defs.h"
113 mv ../run/john ../run/john-non-mmx
118 %{__make} linux-x86-mmx \
120 OPTFLAGS="%{rpmcflags} -include defs.h %{?optmmxfb}"
121 mv ../run/john ../run/john-non-sse
127 TARG=linux-x86-64%{?with_xop:-xop}%{!?with_xop:%{?with_avx:-avx}}
130 %if %{with xop} || %{with avx}
131 TARG=linux-x86%{?with_xop:-xop}%{!?with_xop:%{?with_avx:-avx}}
145 TARG=linux-ppc32%{?with_altivec:-altivec}
148 TARG=linux-ppc64%{?with_altivec:-altivec}
156 %ifarch sparc sparcv9
162 OPTFLAGS='%{rpmcflags} -include defs.h %{?optmmxfb}'
166 rm -rf $RPM_BUILD_ROOT
167 install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}/john}
168 cp -a run/{*.conf,*.chr,*.lst} $RPM_BUILD_ROOT%{_datadir}/john
169 install -p run/john $RPM_BUILD_ROOT%{_bindir}
171 install -D -p run/john-non-mmx $RPM_BUILD_ROOT%{_libdir}/john/john-non-mmx
174 install -D -p run/john-non-sse $RPM_BUILD_ROOT%{_libdir}/john/john-non-sse
177 ln -sf john $RPM_BUILD_ROOT%{_bindir}/unafs
178 ln -sf john $RPM_BUILD_ROOT%{_bindir}/unique
179 ln -sf john $RPM_BUILD_ROOT%{_bindir}/unshadow
182 rm -rf $RPM_BUILD_ROOT
185 %defattr(644,root,root,755)
186 %doc doc/* run/mailer
187 %attr(755,root,root) %{_bindir}/john
188 %attr(755,root,root) %{_bindir}/unafs
189 %attr(755,root,root) %{_bindir}/unique
190 %attr(755,root,root) %{_bindir}/unshadow
191 %if %{do_mmxfb} || %{do_ssefb}
194 %attr(755,root,root) %{_libdir}/john/john-non-mmx
197 %attr(755,root,root) %{_libdir}/john/john-non-sse