john/john.spec
Lars Vogdt bd7d2ccdd7 - update to 1.7.9:
+ Added optional parallelization of the MD5-based crypt(3) code with OpenMP.
  + Added optional parallelization of the bitslice DES code with OpenMP.
  + Replaced the bitslice DES key setup algorithm with a faster one, which
    significantly improves performance at LM hashes, as well as at DES-based
    crypt(3) hashes when there's just one salt (or very few salts).
  + Optimized the DES S-box x86-64 (16-register SSE2) assembly code.
  + Added support for 10-character DES-based tripcodes (not optimized yet).
  + Added support for the "$2y$" prefix of bcrypt hashes.
  + Added two more hash table sizes (16M and 128M entries) for faster processing
    of very large numbers of hashes per salt (over 1M).
  + Added two pre-defined external mode variables: "abort" and "status", which
    let an external mode request the current cracking session to be aborted or the
    status line to be displayed, respectively.
  + Made some minor optimizations to external mode function calls and virtual
    machine implementation.
  + The "--make-charset" option now uses floating-point rather than 64-bit
    integer operations, which allows for larger CHARSET_* settings in params.h.
  + Added runtime detection of Intel AVX and AMD XOP instruction set extensions,
    with optional fallback to an alternate program binary.
  + Added relbench, a Perl script to compare two "john --test" benchmark runs,
    such as for different machines, "make" targets, C compilers, optimization
    options, or/and versions of John the Ripper.
  + Additional public lists of "top N passwords" have been merged into the
    bundled common passwords list, and some insufficiently common passwords were
    removed from the list.
  + Many minor enhancements and a few bug fixes were made.
- updated jumbo patch to 1.7.9-jumbo-6
- specfile cleanup (using spec-cleaner)

OBS-URL: https://build.opensuse.org/package/show/security/john?expand=0&rev=28
2012-07-13 06:16:22 +00:00

132 lines
4.1 KiB
RPMSpec

#
# spec file for package john
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: john
Version: 1.7.9
Release: 0
Summary: Detects Weak Passwords
License: GPL-2.0+
Group: Productivity/Security
Url: http://www.openwall.com/john/
Source: %{name}-%{version}.tar.bz2
Source2: %{name}.8.gz
Source3: %{name}-rpmlintrc
Source4: %{name}-%{version}-jumbo-6.tar.bz2
BuildRequires: openssl-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define johndir /var/lib/john
%define cflags CFLAGS="-c %{optflags} -DJOHN_SYSTEMWIDE=1 -finline-limit=2000 --param inline-unit-growth=2000" LDFLAGS="-lcrypto"
%ifarch x86_64
%define cflags CFLAGS="-c %{optflags} -DJOHN_SYSTEMWIDE=1" LDFLAGS="-lcrypto"
%endif
%description
John the Ripper is a fast password cracker (password security auditing
tool). Its primary purpose is to detect weak Unix passwords, but a
number of other hash types are supported as well.
%prep
%setup -q
# apply the jumbo patch
gzip -dc %{SOURCE4} | patch -p1
# adapt the configs
perl -pi -e "s#Wordlist = (.*)#Wordlist = %{johndir}/password.lst#g" $RPM_BUILD_DIR/%{name}-%{version}/run/john.conf
perl -pi -e 's#^(\#define JOHN_SYSTEMWIDE_EXEC)\s.+$#$1\t\"%{johndir}\"#g' $RPM_BUILD_DIR/%{name}-%{version}/src/params.h
perl -pi -e 's#^(\#define CFG_FULL_NAME)\s.+$#$1\t\"%{_sysconfdir}/john.conf\"#g' $RPM_BUILD_DIR/%{name}-%{version}/src/params.h
perl -pi -e 's#^(\#define CFG_ALT_NAME)\s.+$#$1\t\"%{_sysconfdir}/john.conf\"#g' $RPM_BUILD_DIR/%{name}-%{version}/src/params.h
perl -pi -e 's#^(\#define WORDLIST_NAME)\s.+$#$1\t\"%{johndir}/password.lst\"#g' $RPM_BUILD_DIR/%{name}-%{version}/src/params.h
perl -pi -e 's#^(\#define LOG_NAME)\s.+$#$1\t\"/var/log/john.log\"#g' $RPM_BUILD_DIR/%{name}-%{version}/src/params.h
perl -pi -e 's#^(\#define JOHN_SYSTEMWIDE_HOME)\s.+$#$1\t\"%{johndir}\"#g' $RPM_BUILD_DIR/%{name}-%{version}/src/params.h
%build
%ifarch alpha
TARGET=linux-alpha
%endif
%ifarch ia64
TARGET=linux-ia64
%endif
%ifarch %ix86
%ifnarch i386 i486
TARGET=linux-x86-mmx
%endif
%endif
%ifarch ppc
TARGET=linux-ppc32
%endif
%ifarch ppc64
TARGET=linux-ppc64
%endif
%ifarch sparc sparcv9
TARGET=linux-sparc
%endif
%ifarch sparc64
TARGET=solaris-sparc64-gcc
%endif
%ifarch x86_64
TARGET=linux-x86-64
%endif
%ifarch %arm
TARGET=generic
%endif
%ifarch %ix86
if test -z "$TARGET"; then
TARGET=linux-x86-any
fi
%endif
export TARGET
pushd src
make clean $TARGET %{cflags} LDFLAGS='-lcrypto -lm'
popd
%check
pushd src
make check
popd
%install
mkdir -p %{buildroot}{%{_bindir},%johndir,%{_sysconfdir},%{_mandir}/man8}
install -m 755 run/john %{buildroot}%{_bindir}/
cp -r run/un* %{buildroot}%{_bindir}/
install -m755 run/relbench %{buildroot}%{_bindir}/
install -m 644 -p run/{password.lst,*.chr} %{buildroot}%johndir/
install -m 644 -p run/john.conf %{buildroot}%{_sysconfdir}/
install -m 755 -p run/mailer %{buildroot}%{_bindir}/
install -m 644 -p %{SOURCE2} %{buildroot}%{_mandir}/man8/
# handle documentation - makes rpmlint happy
mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
cp doc/* %{buildroot}%{_defaultdocdir}/%{name}/
rm %{buildroot}%{_defaultdocdir}/%{name}/INSTALL
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
%doc %{_defaultdocdir}/%{name}/
%doc %{_mandir}/man8/john.8.gz
%{_bindir}/un*
%{_bindir}/relbench
%dir %{johndir}
%attr(750,root,wheel) %{_bindir}/john
%{_bindir}/mailer
%attr(644,root,root) %johndir/password.lst
%attr(644,root,root) %johndir/*.chr
%config (noreplace) %{_sysconfdir}/john.conf
%changelog