john/john.spec

131 lines
3.9 KiB
RPMSpec
Raw Normal View History

#
- update to 1.7.6: + Generic crypt(3) support (enabled with "--format=crypt") has been added for auditing password hash types supported by the system but not yet supported by John's own optimized cryptographic routines (such as "SHA-crypt" and SunMD5). + Optional parallelization of the above has been implemented by means of OpenMP along with glibc's crypt_r(3) + Optional parallelization of John's own optimized code for the OpenBSD-style Blowfish-based crypt(3) (bcrypt) hashes with OpenMP has been added + A more suitable version of 32-bit x86 assembly code for Blowfish is now chosen on Core i7 and similar CPUs (in 32 bit mode) + More optimal DES S-box expressions for PowerPC with AltiVec + The bitslice DES C source code has been reworked to allow for the use of arbitrary SIMD intrinsics, which was previously only implemented for AltiVec as a special case + Support for SSE2 and MMX intrinsics with bitslice DES (as an alternative to the supplied assembly code) has been added (currently only enabled for SSE2 on x86-64) + Support for mixed-type longer virtual vectors (such as SSE2+MMX, SSE2+ALU, AltiVec+ALU, and other combinations) with bitslice DES has been added + The loader will now detect password hashes specified on a line on their own, not only as part of an /etc/passwd or PWDUMP format file + When run in "--stdin" mode and reading candidate passwords from a terminal (to be typed by the user), John will no longer mess with the terminal settings + John will now restore terminal settings not only on normal OBS-URL: https://build.opensuse.org/package/show/security/john?expand=0&rev=10
2010-09-09 16:54:17 +00:00
# spec file for package john (Version 1.7.6)
#
# Copyright (c) 2010 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/
#
# norootforbuild
Name: john
Url: http://www.openwall.com/john/
License: GPLv2+
Group: Productivity/Security
Version: 1.7.8
Release: 1
Summary: Detects Weak Passwords
Source: %{name}-%{version}.tar.bz2
Source2: %{name}.8.gz
Source3: %{name}-rpmlintrc
Source4: %{name}-%{version}-jumbo-2.tar.bz2
BuildRequires: openssl-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define johndir /var/lib/john
%define cflags CFLAGS="-c $RPM_OPT_FLAGS -DJOHN_SYSTEMWIDE=1 -finline-limit=2000 --param inline-unit-growth=2000" LDFLAGS="-lcrypto"
%ifarch x86_64
%define cflags CFLAGS="-c $RPM_OPT_FLAGS -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.
Authors:
--------
Solar Designer <solar@false.com>
%prep
%setup -q -n %{name}-%{version}
# 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 %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 -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/
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc doc/*
%doc %{_mandir}/man8/john.8.gz
%_bindir/un*
%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